Поскольку Вы вводите команды в оболочке удара, оболочка ищет те команды всюду по переменной $PATH. Хеш является просто индексом, которого управляет, чтобы Вы ввели и где они, как находили, помогли ускорить открытие их в следующий раз.
Примечание: ответ @Anthon дает хорошее определение того, каков хеш!
Например, если Вы выполняете просто команду hash
без аргументов Вы получите список того, какие команды были найдены ранее наряду с тем, сколько раз они использовались (т.е.: хиты):
% hash
hits command
2 /usr/bin/host
1 /bin/more
1 /home/saml/bin/autossh_mail.sh
3 /usr/bin/zip
2 /bin/rm
2 /bin/date
2 /usr/bin/vim
1 /usr/bin/htop
2 /bin/mv
3 /bin/ps
8 /usr/bin/ssh
1 /usr/bin/yum
1 /usr/bin/xfreerdp
1 /bin/cp
2 /bin/mkdir
4 /usr/bin/man
1 /usr/bin/gvim
1 /usr/bin/unzip
1 /usr/bin/w
5 /usr/bin/nslookup
51 /bin/ls
15 /usr/bin/find
Команда hash node
возвращает значение состояния (0 или 1) в зависимости от того, присутствовало ли то значение в списке хеша или нет:
hash node
не находится в моем списке% hash node
bash: hash: node: not found
% echo $?
1
Примечание: Состояние какой-либо ранее команды выполнения временно хранится в $ переменной среды?. Это - то, куда состояние (0 = успех, 1 = отказавший) помещается после того, как каждая команда выполняется.
Конструкция "cmd1" || {"cmd2"...} или оператор. Думайте и/или от логики здесь. Таким образом, это означает, делают первую вещь, если она перестала работать, затем сделайте второе, иначе не делайте второй вещи.
% true && echo "1st cmd ret. 1" || echo "1st cmd ret. 0"
1st cmd ret. 1
% false && echo "1st cmd ret. 1" || echo "1st cmd ret. 0"
1st cmd ret. 0
Логика всегда путает (по крайней мере, мне), потому что 1, возвращаемый, показывает отказавшую команду, в то время как 0, возвращаемый, показывает, что это работало успешно.
Вы можете проверить это, запустив
Для запуска графических программ из командного окна Run (Alt + F2), создайте новый пустой .xsession файл в вашем домашнем каталоге и добавьте эти строки:
Сохраните его и перезагрузите вашу сессию LXDE. Я протестировал, переместив xterm в каталог $HOME/bin и вызвав его с помощью Alt+F2 и успешно запустив.[1173244].