Итак, я пытаюсь создать псевдоним, который позволил бы мне установить текущий каталог в терминале, базовый каталог, который будет отображаться в приглашении. Давайте предположим, что псевдоним называется basedir
Например:
andrepadez@theLookingGlass:~$ cd Shared
andrepadez@theLookingGlass:~/Shared$ cd development/
andrepadez@theLookingGlass:~/Shared/development$ cd nodejs/
прямо сейчас, я бы запустил этот псевдоним и я получил бы следующее приглашение:
andrepadez@theLookingGlass:~/Shared/development/nodejs$basedir
andrepadez@theLookingGlass:nodejs$
С этого момента, каждый раз, когда я перехожу в каталог пересылки, я получаю приглашения:
andrepadez@theLookingGlass:nodejs$cd project1
andrepadez@theLookingGlass:nodejs/project1$cd static
andrepadez@theLookingGlass:nodejs/project1/static$cd ..
andrepadez@theLookingGlass:nodejs/project1$ ...
(мне действительно все равно, что произойдет, если я вернусь к папкам за моей базовый каталог)
Есть ли способ создать такую команду?
Я нашел что-то близкое, но он всегда показывает только текущий каталог:
alias basedir="export PS1='\u@\h:\W$ '"
Спасибо
В вашем домашнем каталоге есть скрытый файл (начиная с.) С именем .bashrc
. Этот файл запускается всякий раз, когда вы входите в систему, и устанавливает такие параметры, как приглашение (переменная окружения PS1
) и alias
es. Переменная PS1
устанавливается в нескольких местах, в зависимости от типа используемого вами терминала - измените их все или только тот, который вы используете. Существующая установка PS1
имеет несколько кодов, которые расширяются до таких вещей, как текущий путь к рабочей директории (\w
). Отредактируйте файл .bashrc
(он у вас есть, поэтому sudo не требуется). Измените \w
везде, где `PS1 устанавливается на:
${PWD#$BASE}
Чтобы установить псевдоним BASE
, вы можете добавить его в раздел # some more ls aliases
в файле .bashrc
. Его значение является просто значением переменной PWD
, поэтому
export BASE="$PWD"
(Кавычки будут обрабатывать странности как пробелы в именах каталогов).