Не-sudo альтернатива /usr/local/bin для общих скриптов

Не-sudo альтернатива /usr/local/bin для общих скриптов

Я привык помещать общие скрипты /usr/local/binтак, чтобы иметь возможность запускать их из любого места с помощью терминала.

Например, я создаю скрипт оболочки с именем 1, делаю его исполняемым с помощью chmod +x 1и помещаю его в /usr/local/bin, а внутри скрипта я печатаю #!/bin/shв первой строке, а затем мои команды. С этого момента его очень удобно использовать и быстро выполнять, набрав

1Enter

на терминале, из любой папки.

Моя проблема в том, что в настоящее время я работаю на компьютере, на котором не могу сделать, 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

Связанный контент