Parfois, lorsque je saisis simplement une commande valide comme "trouver ...", ou quoi que ce soit vraiment, je récupère ce qui suit, qui est complètement inattendu et déroutant (...
est le nom de commande i type):
sh: $'\302\211...': command not found
Il y a une certaine corruption que je pense. Je n'utilise pas la couleur dans mon invite, j'utilise la coque Bash en mode POSIX en tant que sh
(chsh
à /bin/sh
etc - $Shell
est sh
).
Qu'est-ce qui se passe et pourquoi cela continue-t-il? Tout ce que je peux déboguer? Je pense que c'est plus d'un problème xterm
_ sh
, ou au moins une combinaison des deux.
Mon /etc/profile
, comme distribué avec une arche Linux X86-64:
# /etc/profile
#Set our umask
umask 022
# Set our default path
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin"
export PATH
# Load profiles from /etc/profile.d
if test -d /etc/profile.d/; then
for profile in /etc/profile.d/*.sh; do
test -r "$profile" && . "$profile"
done
unset profile
fi
# Source global bash config
if test "$PS1" && test "$BASH" && test -r /etc/bash.bashrc; then
. /etc/bash.bashrc
fi
# Termcap is outdated, old, and crusty, kill it.
unset TERMCAP
# Man is much better than us at figuring this out
unset MANPATH
Mon /etc/shrc
, que j'ai créé comme moyen d'avoir sh
analysez un fichier au démarrage, lors de la connexion non-connexion. Ceci est réalisé en utilisant ENV
variable définie dans /etc/environment
avec la ligne ENV=/etc/shrc
:
PS1='\u@\H \w \$ '
alias ls='ls -F --color'
alias grep='grep -i --color'
[ -f ~/.shrc ] && . ~/.shrc
Mon ~/.profile
, Je lance x lors de la connexion via le premier Virtual TTY:
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec xinit -- -dpi 111
Mon ~/.xinitc
, comme vous pouvez le constater, j'utilise le système comme invité de la boîte virtuelle:
xrdb -merge ~/.Xresources
VBoxClient-all
awesome &
exec xterm
Et enfin, mon ~/.Xresources
, pas de choses fantaisie ici, je suppose:
*faceName: Inconsolata
*faceSize: 10
xterm*VT100*translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)
xterm*colorBDMode: true
xterm*colorBD: #ff8000
xterm*cursorColor: S_red
Puisque ~/.profile
références entre autres choses /etc/bash.bashrc
, voici son contenu:
#
# /etc/bash.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
PS1='[\u@\h \W]\$ '
PS2='> '
PS3='> '
PS4='+ '
case ${TERM} in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
Prompt_COMMAND=${Prompt_COMMAND:+$Prompt_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
;;
screen)
Prompt_COMMAND=${Prompt_COMMAND:+$Prompt_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
;;
esac
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
Je n'ai aucune idée de ce que la déclaration case
fait, d'ailleurs, il semble un peu méfiant cependant, mais encore une fois, à qui suis-je à savoir.
sur ma machine de travail, j'ai une fenêtre et utilisez une CLI GIT-BASH (Mintty Cygwin) pour exécuter des commandes je serais normalement exécuté sur Linux
c'est arrivé à moi que j'ai eu bash: $'\302\226curl': command not found
Après avoir copié-coller à partir d'une vitrine d'alimentation:
$ curl -v -F foobar
bash: $'\302\226curl': command not found
où était complètement invisible à l'œil nu et ressemblait à $ curl -v -F foobar
Alors j'ai supprimé tous les espaces d'avant ma commande, comme :
$curl -v -F foobar
nOTE Il n'y a plus de surses espaces entre $
j'espère que cela aide quelqu'un, acclamant
Cela résout le problème:
setxkbmap -option "nbsp:none"