Я привык помещать общие скрипты /usr/local/bin
так, чтобы иметь возможность запускать их из любого места с помощью терминала.
Например, я создаю скрипт оболочки с именем 1
, делаю его исполняемым с помощью chmod +x 1
и помещаю его в /usr/local/bin
, а внутри скрипта я печатаю #!/bin/sh
в первой строке, а затем мои команды. С этого момента его очень удобно использовать и быстро выполнять, набрав
1
Enter
на терминале, из любой папки.
Моя проблема в том, что в настоящее время я работаю на компьютере, на котором не могу сделать, sudo
и не могу рассчитывать на получение этой возможности, поэтому я не могу поместить свой скрипт в /usr/local/bin
.
Какие у меня есть варианты? Есть ли другой путь с такой же возможностью «запуска из любой точки мира», к которому я могу получить доступ без sudo
, или другой способ достичь чего-то эквивалентного?
Принятый ответ наэта почтаговорит
Для пользовательских скриптов используйте bin/ в вашем домашнем каталоге.
Я попробовал это сделать, но в моем домашнем каталоге нет bin
папки, а когда я ее создал, я все равно не смог запустить скрипт из другого места.
Я работаю на Ubuntu 12.04 LTS.
решение1
Какие у меня есть варианты? Есть ли другой путь с такой же возможностью «запуска из любой точки мира», к которому я могу получить доступ без sudo, или другой способ добиться чего-то эквивалентного?
Как это сделать?
Создайте у себя дома папку для хранения скриптов, обычно именуемых bin
по соглашению.
mkdir ~/bin
Теперь переместите ваши скрипты в корзину.
mv somescript ~/bin
А как теперь сделать так, чтобы он тюнинговался отовсюду?!
Вам необходимо добавить bin
в PATH
Откройте свой.bashrc
gedit .bashrc
и добавьте эту строку:
export PATH=$PATH:/home/username/bin
Не забудьте заменить username
на свое имя пользователя.
Сохраните и выйдите, затем запустите bashrc
source .bashrc
и теперь все в порядке, вы можете запустить свой скрипт, как и раньше! но вы должны заметить, что это относится только к вашему пользователю.
Примечание: лучше переименовать ваши скрипты в имена, отличные от 1,2, так как с такими именами могут возникнуть проблемы.
ОБНОВЛЯТЬ:
Вы можете сделать то же самое, просто создайте каталог bin в вашем домашнем каталоге, а затем source ~/.profile
вместо ~/.bashrc
. Поскольку добавление ~/bin в ваш PATH уже указано в.profile
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
решение2
В дополнение кhttps://askubuntu.com/a/643030/218015Вы также можете определить псевдоним внутри вашего .bashrc для небольших, часто используемых задач. Например:
alias ll='ls -l'
alias ls='ls --color=auto'
создаст вам «команду» ll, которая выполняет ls -l, и ls будет окрашена после определения псевдонима.https://wiki.ubuntuusers.de/aliasесть еще несколько примеров и инструкции по настройке.
решение3
Пытаться ~/.local/bin/
.
(Я признаю, что этот ответ не добавляет ничего нового, но на этот вопрос есть краткий ответ, который не требует прочтения всего остального.)
решение4
Действительно должен быть пользовательский bin, потому что это было бы очень полезно в многопользовательских средах, где людям отказывают в привилегиях root, чтобы сделать всех более безопасными. Используйте следующее в скрипте bash, чтобы автоматически создать его.
if [ ! -d "$HOME/.local/bin" ] ; then
mkdir -p "$HOME/.local/bin"
printf '\nexport "PATH=$PATH:'"$HOME"/.local/bin'"' >> "$HOME/.bashrc"
# Change the PATH right now:
PATH="$PATH:$HOME/.local/bin"
fi