У Bash есть хороший способ сопоставления и удаления укусов из переменных и массивов.
Path_to_remove="~/.profile"
PATH=${PATH//:${Path_to_remove}/}
Примечание выше предполагает, что вы добавили или добавили к вашей переменной пути, если вы уже написали ее то также может помочь поиск файла bashrc для пользователей.
source ~/.bashrc
Или используйте сброс для сброса текущего терминала
reset
примечание выше, действительно хорошо, если у вас есть восходящий канал с двоичным кодом в ваш терминал. На основании ваших комментариев это звучит так, будто вы скорее всего перезаписали переменную пути.
В следующий раз, прежде чем возиться с ней, верните ее up
echo "${PATH}" | tee -a /tmp/path.bak
Old_path="${PATH}"
Затем вносите изменения со знанием того, что путь может быть восстановлен в следующих примерах
PATH=$(cat /tmp/path.bak)
## or for option two
PATH=${Old_path}
Наконец, поймите, как путь разделяет пути для разных путей каталога, подскажите : двоеточие. И где большинство программ устанавливает исполняемые и / или системные ссылки; Ниже представлен список в одной из моих свежих файловых систем chroot.
/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbinпримечание выше (! d14)
for _path in ${PATH//:/ }; do echo "${_path}"; done
Обратите внимание, что предыдущее было отформатировано следующим образом и не будет отображаться путь, если будет отображаться эхо.
for _path in ${PATH//:/ }; do echo "${_path}"; done
! d20]
PATH=/bin
## Add further paths using the following syntax
PATH=${PATH}:/sbin
PATH=${PATH}:/usr/bin
PATH=${PATH}:/usr/sbin
PATH=${PATH}:/usr/local/bin
PATH=${PATH}:/usr/local/sbin
Обратите внимание, что в приведенном выше примере все, кроме первого, использует ${PATH}:, чтобы убедиться, что вы не переписываете, а вместо этого добавляете его ранее существовавшее значение. То же самое можно было бы сделать, например, с помощью +=, например PATH+=:/sbin, но сделать это таким образом более подвержено ошибкам, потому что, если вы забудете знак плюса, он перезапишет, и если вы забудете двоеточие, он будет перехватывать последний путь добавлен с новым, поскольку это подкаталоги.