Я создал файл .sh
(или bash) и хотел бы создать команду для GNOME-терминала для этого файла. Я знаю, что вы запускаете файл .sh
:
./file.sh
После того, как вы скомпилируете его, я также знаю, что все команды хранятся в /bin/bash
. Но я не могу понять, как я могу создать команду, которую я могу вызывать, находясь в любом каталоге терминала, что-то вроде:
abc
будет запускать abc.h
и т. Д. предложения?
Хотя ответ Раду абсолютно верен, я чувствую, что он немного неполон для новичка, который не знает, где находятся определенные файлы, так что пошагово по второму методу (с использованием ~/bin
). Если вы хотите сохранить файлы в другом месте, кроме ~/bin
, выполните шаг 1, в противном случае игнорируйте его и имейте в виду, что вы будете использовать ~/bin
в качестве папок скриптов.
Откройте терминал и выполните следующее:
nano .profile
В конце файла вы должны увидеть:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Если Вы не видите этого, попробуйте вместо этого использовать nano .bash_profile
. Имейте в виду, что вы должны быть в ~/
, то есть /home/YOUR_USERNAME
Это сообщает bash, где находятся пользовательские сценарии. По умолчанию установлено значение /home/YOUR_USERNAME/bin
, которое сокращенно обозначается как $HOME/bin
или ~/bin
. Затем вы можете изменить его на любую папку, в которой хотите сохранить свои скрипты. У меня есть ~/.bin
- то же самое, что и оригинал, но скрыто.
Если вы уже выпустили chmod +x script.sh
, просто переместите ваши скрипты в папку, в которой вы собираетесь их хранить - создайте их, если они не существуют. Внутри этой папки, если вы храните ваши скрипты как file.sh
, вам придется каждый раз запускать file.sh
, поэтому сохраняйте их как file
- без расширений.
Оболочка ведет список каталогов, где исполняемые файлы (программы) сохранены, и просто ищет каталоги в том списке. Если это не найдет программу после поиска каждого каталога в списке, то это выпустит известное command not found error
сообщение. Этот список каталогов называют Вашим путем. Можно просмотреть список каталогов со следующей командой:
echo $PATH
Можно добавить каталоги к пути со следующей командой, где *directory*
название каталога, который Вы хотите добавить:
export PATH=$PATH:*directory*
Лучший путь состоял бы в том, чтобы отредактировать Ваш .bash_profile
файл для включения вышеупомянутой команды. Тем путем это было бы сделано автоматически каждый раз, когда Вы входите в систему.
Большинство современных дистрибутивов Linux поощряет практику, в которой у каждого пользователя есть определенный каталог для программ, которые он лично использует. Этот каталог называют bin
и подкаталог Вашего корневого каталога. Если Вы уже не имеете один, создайте его со следующей командой:
mkdir bin
Переместите свой сценарий в Ваше новое bin
каталог и Вы все установлены. Теперь просто необходимо ввести:
my_script
и Ваш сценарий будет работать.
Я рекомендовал бы функцию псевдонима вместо этого. Другие подходы работают, но они не избавляются от ".sh" расширения, как Вы хотели.
Это может также смешать с системой пути, если Вы забыли добавлять $ {ПУТЬ}: в ПУТЬ экспорта.
можно ввести:
тест псевдонима = "/your/path/to/file/test.sh"
, Если это работает правильно, необходимо добавить его в .bashrc файл:
sudo gedit ~/.bashrc копируют Вашу команду псевдонима в конце файла.
или более быстрый путь (необходимо уделять внимание):
эхо "псевдоним тестирует =/path/to/folder/text.sh">> .bashrc
, Просто не забывайте использовать>>, если только> использовался, это повторно обошьет весь файл металлическим листом только с командой эха.
и наконец
источник ~/.bashrc
для обновления команд .bashrc.
Псевдоним может быть еще более мощным, так как можно добавить некоторые входные опции как, например, ниже:
псевдоним gaussview ='XLIB_SKIP_ARGB_VISUALS=1$GV_DIR/gview "$" '
я надеюсь, что Вы находите это полезным.