Есть ли способ отделить некоторые конкретные сценарии от других в `/ usr / bin /` [duplicate]

Я хотел бы знать, есть ли способ запустить сценарий программы / оболочки без ввода полного пути:

/opt/idea/bin/idea.sh
48
задан 28 April 2016 в 21:26

19 ответов

Вы можете просто создать символическую ссылку. Создайте его в /usr/local/bin. Все, что вам нужно, это запустить команду:

sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command

После этого вы должны сделать свой исполняемый файл file:

chmod +x /full/path/to/your/file

Теперь вы сможете запустить name_of_new_command в в любое время в вашем терминале.

Обратите внимание, что это хорошее решение только для домашнего использования Linux.

49
ответ дан 17 July 2018 в 21:12

В дополнение к другим хорошим ответам рассмотрим symlinking в ~/.local/bin и добавив этот каталог в ваш PATH (например, из вашего .bashrc). Этот метод не требует специальных разрешений (в отличие от symlinking к /usr/local/bin, например). Таким образом, у вас может быть стандартная структура каталогов, не наводняя ваш $ HOME. Подробнее об этом читайте на этих https://unix.stackexchange.com/ вопросах:

https://unix.stackexchange.com/questions/11544/what-is-the-difference-between-opt -and-usr-local https://unix.stackexchange.com/questions/36871/where-should-a-local-executable-be-placed
4
ответ дан 17 July 2018 в 21:12

Вы можете создать пусковую установку, используя следующую команду:

gnome-desktop-item-edit --create-new <path-where-to-save>. Я буду открывать это окно.

Назовите его, как вам нравится, и в поле ввода команды введите

sh -c '/opt/idea/bin/idea.sh' и сохраните его.

Теперь вы можете запустить этот файл с помощью вновь созданного запуска

OR

Вы можете создать файл .desktop со следующим содержимым

[Desktop Entry] Name=<whatever-you-want> Exec=sh -c '/opt/idea/bin/idea.sh' Terminal=false Type=Application Icon='<path to an icon file if you want>'

Теперь сохраните

Сделать его исполняемым с помощью этой команды chmod a+x <your-desktop-file>

Теперь дважды щелкните, чтобы открыть его.

10
ответ дан 17 July 2018 в 21:12

Создайте его софт-ссылку в каталоге /usr/bin:

ln -s /usr/bin/idea.sh /opt/idea/bin/idea.sh

Теперь запустите его, используя:

idea.sh
1
ответ дан 17 July 2018 в 21:12

Или вы можете просто использовать

nano ~/.bashrc

и добавить

PATH=/full/path/to/file:"$PATH"

в конце, затем сохранить и выйти. Впоследствии вы можете просто ввести имя файла.

0
ответ дан 17 July 2018 в 21:12

Вы можете создать функцию в своем ~/.bashrc:

some-name () { /path/to/your/file # or: #cd /path/to/your #./path }

Или вы можете создать alias:

alias some-name='/path/to/your/file' # or #alias some-name='cd /path/to/your/; ./file'

В обоих случаях вы можете запустить его, вызвав:

$ some-name

Если файл не зависит от того, где он запущен, подумайте о его добавлении в свой ~/bin: [ ! d5] mkdir -p ~/bin cp /path/to/you/file ~/bin # or mv /path/to/you/file ~/bin # or ln -s /path/to/you/file ~/bin

~/bin, если он существует, автоматически добавляется к вашему $PATH. Затем вы вызываете file:

$ file

(Плохой выбор имени, хотя, считайте его более универсальным.)

14
ответ дан 17 July 2018 в 21:12

Вы можете добавить /opt/idea/bin к своей переменной PATH:

PATH=/opt/idea/bin:"$PATH"

После этого вы можете запустить ее просто idea.sh.

Возможно, вы захотите добавить этой строки в файле ~/.bashrc.

23
ответ дан 17 July 2018 в 21:12

Мы также можем запустить файл /opt/idea/bin/idea.sh напрямую, используя bash_aliases

Откройте файл ~/.bashrc, запустив,

gedit ~/.bashrc

Удалите # перед строками и сохраните его, чтобы линии выглядели так:

if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi

Теперь откройте файл ~/.bash_aliases,

gedit ~/.bash_aliases

Добавьте следующие строки в этот файл и сохраните его, [ ! d4] alias idea='cd /opt/idea/bin && sudo ./idea.sh'

Наконец, исправьте файл ~/.bashrc,

source ~/.bashrc

Теперь вы можете запустить файл /opt/idea/bin/idea.sh напрямую,

idea
7
ответ дан 17 July 2018 в 21:12

Вы можете просто создать символическую ссылку. Создайте его в /usr/local/bin. Все, что вам нужно, это запустить команду:

sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command

После этого вы должны сделать свой исполняемый файл file:

chmod +x /full/path/to/your/file

Теперь вы сможете запустить name_of_new_command в в любое время в вашем терминале.

Обратите внимание, что это хорошее решение только для домашнего использования Linux.

49
ответ дан 23 July 2018 в 21:52
  • 1
    Большое спасибо. Самый простой способ! – Jonny 22 September 2014 в 15:22
  • 2
    Обратите внимание, что вы не должны размещать символическую ссылку в /usr/local/bin, которая указывает на скрипт в частной домашней папке, такой как /home/jack/myscript.sh, поскольку только пользователь jack обычно сможет ее выполнить. Символьная ссылка будет видна для других пользователей, но не для файла, на который она указывает. В однопользовательской системе это может не иметь значения, но все же это «хорошая практика». для размещения сценариев (или ссылок на скрипты), которые могут использовать [) в /usr/local/bin, а также частные собственные сценарии (или ссылки на скрипты) одного пользователя в папке ~/bin. – Malte Skoruppa 22 September 2014 в 16:27

В дополнение к другим хорошим ответам рассмотрим symlinking в ~/.local/bin и добавив этот каталог в ваш PATH (например, из вашего .bashrc). Этот метод не требует специальных разрешений (в отличие от symlinking к /usr/local/bin, например). Таким образом, у вас может быть стандартная структура каталогов, не наводняя ваш $ HOME. Подробнее об этом читайте на этих https://unix.stackexchange.com/ вопросах:

https://unix.stackexchange.com/questions/11544/what-is-the-difference-between-opt -and-usr-local https://unix.stackexchange.com/questions/36871/where-should-a-local-executable-be-placed
4
ответ дан 23 July 2018 в 21:52

Вы можете создать пусковую установку, используя следующую команду:

gnome-desktop-item-edit --create-new <path-where-to-save>. Я буду открывать это окно.

Назовите его, как вам нравится, и в поле ввода команды введите

sh -c '/opt/idea/bin/idea.sh' и сохраните его.

Теперь вы можете запустить этот файл с помощью вновь созданного запуска

OR

Вы можете создать файл .desktop со следующим содержимым

[Desktop Entry] Name=<whatever-you-want> Exec=sh -c '/opt/idea/bin/idea.sh' Terminal=false Type=Application Icon='<path to an icon file if you want>'

Теперь сохраните

Сделать его исполняемым с помощью этой команды chmod a+x <your-desktop-file>

Теперь дважды щелкните, чтобы открыть его.

10
ответ дан 23 July 2018 в 21:52

Создайте его софт-ссылку в каталоге /usr/bin:

ln -s /usr/bin/idea.sh /opt/idea/bin/idea.sh

Теперь запустите его, используя:

idea.sh
1
ответ дан 23 July 2018 в 21:52

Или вы можете просто использовать

nano ~/.bashrc

и добавить

PATH=/full/path/to/file:"$PATH"

в конце, затем сохранить и выйти. Впоследствии вы можете просто ввести имя файла.

0
ответ дан 23 July 2018 в 21:52

Вы можете создать функцию в своем ~/.bashrc:

some-name () { /path/to/your/file # or: #cd /path/to/your #./path }

Или вы можете создать alias:

alias some-name='/path/to/your/file' # or #alias some-name='cd /path/to/your/; ./file'

В обоих случаях вы можете запустить его, вызвав:

$ some-name

Если файл не зависит от того, где он запущен, подумайте о его добавлении в свой ~/bin: [ ! d5] mkdir -p ~/bin cp /path/to/you/file ~/bin # or mv /path/to/you/file ~/bin # or ln -s /path/to/you/file ~/bin

~/bin, если он существует, автоматически добавляется к вашему $PATH. Затем вы вызываете file:

$ file

(Плохой выбор имени, хотя, считайте его более универсальным.)

14
ответ дан 23 July 2018 в 21:52
  • 1
    @ Оли всегда даю мои пять минут, я склонен добавлять отступы. :) Это просто раздражает, поскольку мне нужно обмануть редактор, чтобы использовать Ctrl-K для отступов второго уровня. – muru 22 September 2014 в 13:39
  • 2
    +1, в частности, для решения добавить file к вашему ~/bin, что я обычно делаю (для более длинных скриптов). Я бы, наверное, даже поставил его наверху :) Псевдонимы хороши для ярлыков команд с определенными параметрами, например, alias l='ls -CF'. Хотя я видел гораздо более удивительное использование псевдонимов . Я не склонен объявлять функции в ~/.bashrc (я предпочитаю, чтобы все мои скрипты были организованы в отдельных файлах в ~/bin). Хотя все это вопрос вкуса, я думаю :) – Malte Skoruppa 22 September 2014 в 14:19
  • 3
    @MalteSkoruppa Я просто отдал предпочтение методам, которые наиболее легко поддаются cd, потому что сценарий может зависеть от рабочего каталога. :) В противном случае, да, я обычно ставил файлы в ~/bin. – muru 22 September 2014 в 14:23

Вы можете добавить /opt/idea/bin к своей переменной PATH:

PATH=/opt/idea/bin:"$PATH"

После этого вы можете запустить ее просто idea.sh.

Возможно, вы захотите добавить этой строки в файле ~/.bashrc.

23
ответ дан 23 July 2018 в 21:52
  • 1
    также: если вы сделаете исполняемый файл сценария, расширение .sh можно оставить в стороне (при условии, что вы используете shebang в верхней части скрипта). просто "идея" достаточно. – Jacob Vlijm 1 March 2014 в 14:24
  • 2
    @Jacob: вы не можете оставить расширение, так как это часть имени файла исполняемого файла (это не Windows, где такая магия вызывает другие проблемы). Чтобы вызвать скрипт с именем idea, вам нужно будет создать ссылку или псевдоним с этим именем, указывающим на скрипт idea.sh. – Jonathan Callen 1 March 2014 в 19:25
  • 3
    @JonathanCallen Callen вы, безусловно, можете! сделать исполняемый файл сценария, удалить расширение .sh из имени файла и команды для его запуска, учитывая тот факт, что вы запускаете скрипт с помощью shebang #! / bin / bash. – Jacob Vlijm 1 March 2014 в 21:25
  • 4
    @Jacob, что я имею в виду без переименования файла , вы не можете (и, похоже, это часть более крупного программного пакета, поэтому вы не должны просто переименовывать файлы) – Jonathan Callen 2 March 2014 в 03:29
  • 5
    Спасибо @Jacob, заметите, что он говорит «Когда скрипты установлены в каталог в системе PATH» . Скрипт idea.sh не является таким скриптом, фактически его перемещение за пределы его установочного каталога полностью не поддерживается. Правила упаковки Debian здесь не применяются. – janos 2 March 2014 в 03:55

Мы также можем запустить файл /opt/idea/bin/idea.sh напрямую, используя bash_aliases

Откройте файл ~/.bashrc, запустив,

gedit ~/.bashrc

Удалите # перед строками и сохраните его, чтобы линии выглядели так:

if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi

Теперь откройте файл ~/.bash_aliases,

gedit ~/.bash_aliases

Добавьте следующие строки в этот файл и сохраните его, [ ! d4] alias idea='cd /opt/idea/bin && sudo ./idea.sh'

Наконец, исправьте файл ~/.bashrc,

source ~/.bashrc

Теперь вы можете запустить файл /opt/idea/bin/idea.sh напрямую,

idea
7
ответ дан 23 July 2018 в 21:52

Или вы можете просто использовать

nano ~/.bashrc

и добавить

PATH=/full/path/to/file:"$PATH"

в конце его, а затем сохранить и выйти. Впоследствии вы можете просто ввести имя файла.

0
ответ дан 5 August 2018 в 02:12

В дополнение к другим хорошим ответам, рассмотрим symlinking в ~/.local/bin и добавив этот каталог в ваш PATH (например, из вашего .bashrc). Этот метод не требует специальных разрешений (в отличие от symlinking к /usr/local/bin, например). Таким образом, у вас может быть стандартная структура каталогов, не наводняя ваш $ HOME. Подробнее об этом читайте на этих https://unix.stackexchange.com/ вопросах:

4
ответ дан 6 August 2018 в 18:52

Я следил за всеми ответами здесь и в других местах, и поэтому мало кто не упомянул, что вам может понадобиться LOG OUT для того, чтобы команда в конечном итоге работала.

Просто чтобы повторить, особенно для Xubuntu, но для других вариантов Debian / Ubuntu я написал эти простые инструкции.

(в следующих инструкциях мы используем каталог ~ / bin, потому что это автоматически место, откуда эти ОС ищут команды См. здесь :

Неверные инструкции, чтобы заставить вашу команду работать:

# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)

# You'll work in your home folder, no need to use sudo for any of this

cd # Go to home directory

mkdir -p bin # Create folder ~/bin if it doesn't exist

# Be careful not to type /bin, that's the bin folder in system root: /

sudo apt install nano # Skip this if you have Nano installed

nano bin/yournewcommand

    # In Nano, type:

    printf "Your new command works! \n" # \n means line break

    # Ctrl+X To leave Nano

    # Ctrl+Y To save the unsaved file

    # Enter to confirm

chmod +x bin/yournewcommand

yournewcommand # If you just created the bin folder, this command might not yet work.

# You must now log out and log back in to make the bin folder noticed (I think)

yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)

# If you add a second file/command, it should work without logging out (at least in my tests)
0
ответ дан 7 October 2018 в 19:10

Другие вопросы по тегам:

Похожие вопросы: