Я использую KDE на Centos7, поэтому могу объяснить только KDE.
(Щелкните правой кнопкой мыши на панели задач)-> Настройки диспетчера задач -> Сортировка :Вручную -> Применить
Затем вы можете перетащить задачу на панель задач, чтобы изменить ее порядок по своему усмотрению.
В вашей оболочке хранится множество пар ключей -значений, называемых переменными среды . Ваш PATH — это всего лишь один пример одной из этих переменных среды.
Без установленной переменной PATH вам пришлось бы вручную устанавливать полный путь к каждой выполняемой программе. Например, вы не можете просто запустить date
, вам нужно будет запускать /usr/bin/date
каждый раз. И если вы позже установите пользовательскую версию Date в /usr/local/bin/
, вам нужно будет запустить ее как /usr/local/bin/date
.
Хотя это и неудобно, но не невозможно, так что вы видите, что PATH на самом деле является необязательным.Таким образом, PATH предназначен для простого автоматического определения местоположения программ.
Поскольку программы могут находиться в нескольких местах в системе, PATH — это не просто один каталог. Вместо этого это список каталогов, разделенных двоеточием -. Когда вы выполняете команду в своей оболочке, оболочка ищет эти каталоги, чтобы попытаться найти команду, которую вы хотите запустить.
Возвращаясь к примеру date
, вы можете установить PATH=/usr/local/bin:/usr/bin
, если предпочитаете отдавать приоритет пользовательским программам в /usr/local/bin
, с откатом к /usr/bin
, если его нет в /usr/local/bin
. Затем, когда вы запустите date
, оболочка увидит /usr/local/bin/
в начале списка PATH, поэтому она найдет /usr/local/bin/date
. Если вы удалили /usr/local/bin/date
, оболочка все равно найдет /usr/bin/date
, так как /usr/bin/
стоит вторым в PATH.
Когда вы запускаете alias testCMD=PATH=$PATH
, вы получаете псевдоним, который, вероятно, выглядит примерно так:
testCMD='PATH=.:/usr/local/bin:/usr/bin:/bin'
Поэтому, когда вы запускаете testCMD vim
, оболочка видит следующее:
PATH=.:/usr/local/bin:/usr/bin:/bin vim
Это просто дает директиву one -off, сообщающую оболочке, где искать vim
. Если бы вы просто запустили vim
отдельно, вы бы получили тот же результат, потому что ваш псевдоним testCMD не меняет значение PATH.
Вот разница, если вы измените ПУТЬ:
$ PATH=/foo vim
bash: vim: command not found
Потому что оболочка пыталась искать в каком-то каталоге с именем /foo
, но там точно не было vim
.
Переходя к приведенным вами примерам, где это не работало, это потому, что вы не выполняете присваивание переменной. Между PATH=/foo vim
и PATH vim
есть разница. В PATH vim
оболочка думает, что вы пытаетесь найти программу с именем PATH
. Затем оболочка просматривает каждый каталог в $PATH
в поисках программы с именем PATH
. Поскольку у вас (, вероятно, )нет команды PATH ни в одном из этих каталогов, вы получите
$ PATH vim
bash: PATH: command not found
Тот же принцип сохраняется, когда перед vim
ставится только значение $PATH
:, присваивание не происходит,поэтому оболочка считает, что $PATH
должно быть именем какой-то программы. Вот почему вы получаете:
$ $PATH vim
bash:.:/usr/local/bin:/usr/bin:/bin: No such file or directory
В общем, вам обычно достаточно один раз установить PATH в ~/.bashrc
или ~/.bash_profile
. Исключение будет, если вы переключаетесь между различными наборами инструментов. На самом деле это то, для чего Python virtualenvs предназначен для автоматизации перенастройки PATH. Системы модулей среды, такие как LMod , являются еще одним мощным способом манипулирования PATH, когда это необходимо.