Страницы

Поиск по вопросам

воскресенье, 15 марта 2020 г.

Как правильно установить новую команду в командную оболочку (shell и другие)

#bash #shell #zsh


Я написал, нашел в сети или получил по телепатической связи некоторый код для командной
оболочки Unix (shell, zsh, bash, и прочие).

Теперь я хочу ее постоянно использовать. Как установить ее, так чтобы она была доступна
в каждом экземпляре оболочки?


Без подключения вручную на каждом запуске
И даже после перезагрузки ОС


О создании установщика и пакетных менеджерах речь не идет, это вне темы этого вопроса.

В качестве примера предлагаю использовать команду, которая обменивает именами дв
файла. В ней есть принимаемые параметры, но она достаточно проста для понимания и коротка.

mv -b $1 $2 && mv $2~ $1


Формат: одна оболочка - один ответ. Оглавление я соберу в вопросе. 
    


Ответы

Ответ 1



в любой posix-совместимой операционной системе используется переменная окружения PATH. поместите файл со скриптом в любой из каталогов, перечисленных в этой переменной (добавив файлу биты выполнимости) — и сможете вызывать этот скрипт по имени. пример содержимого: $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/games:/opt/bin пример добавления битов выполнимости: $ chmod +x file.with.script пример копирования в, например, /urs/local/bin (понадобятся права суперпользователя): $ cp file.with.script /usr/local/bin/ если нет прав записи ни в один из каталогов, перечисленных в PATH, можно добавить в неё любой другой каталог, в который у вас есть право записи. например, $HOME/bin. если его (пока) не существует, то можно создать так: $ mkdir $HOME/bin добавить этот каталог в переменную PATH можно так: $ export PATH="$HOME/bin:$PATH" последнюю команду, чтобы не вводить её каждый раз после запуска shell-а, можно добавить в конец «конфигурационного» файла используемого вами shell-а, который находится в вашем домашнем каталоге и, скорее всего, носит имя .shellrc, где вместо слова shell надо подставить название программы, которую вы используете в качестве shell-а. узнать название этой программы можно, например, так: $ ps PID TTY TIME CMD 12450 pts/0 00:00:00 bash 12576 pts/0 00:00:00 ps bash — этой и есть название используемой мною программы, а название «конфигурационного файла» в этом случае будет .bashrc.

Ответ 2



Конфигурация zsh осуществляется с помощью файла .zshrc, который находится в корневой директории пользователя (/usr/username/.zshrc) Шелл-скрипт можно подключать несколькими способами: 1. Разместить непосредственно в .zshrc 1.1 Через создание псевдонима (alias) В .zshrc размещаем следующую строку: alias swap='mv -b $1 $2 && mv $2~ $1' Использование в командной оболочке: swap file1.txt file2.txt 1.2 Через функцию В .zshrc размещаем строку name() { ; }. Если размещаем в одну строку, то последняя команда должна заканчиваться на ; swap() { 'mv -b $1 $2 && mv $2~ $1'; } Использование в командной оболочке: swap file1.txt file2.txt 2. Разместить в отдельном файле и подключить в .zshrc Подключение сторонних скриптов осуществляется с помощью двух команд: . и source. Код размещаем в отдельном файле в виде функции, name() { ; }: swap.sh: swap() { 'mv -b $1 $2 && mv $2~ $1'; } В .zshrc размещаем следующую строку: source path/to/swap.sh Путь можно указывать абсолютный или относительно корневой директории пользователя.

Комментариев нет:

Отправить комментарий