it-roy-ru.com

Как запускать скрипты без ввода полного пути?

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

/opt/idea/bin/idea.sh
57
Poorman_Patrick

Вы можете просто создать символическая ссылка . Создайте его в /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.

60
c0rp

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

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

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

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

28
janos

Вы можете создать функцию в вашем ~/.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:

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

(Неправильный выбор имени, хотя, назовите это как-то менее универсальным.)

15
muru

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

gnome-desktop-item-edit --create-new <path-where-to-save>. Я открою это окно.

enter image description here

Назовите его как хотите, и в командной строке введите следующее

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>'

Теперь сохраните его с расширением .desktop в любом месте.

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

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

10
g_p

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

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

gedit ~/.bashrc

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

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

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

gedit ~/.bash_aliases

Добавьте следующие строки в этот файл и сохраните его,

alias idea='cd /opt/idea/bin && Sudo ./idea.sh'

Наконец, источник ~/.bashrc файл,

source ~/.bashrc

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

idea
7
Avinash Raj

Мы можем определить функцию и горячую клавишу добавления, используя bind команду для вызова этого. Откройте файл ~/.bashrc и добавьте в него следующие строки:

# define function that opens your program in working directory
Openprog(){
    /your-Program/path/here
}

# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'

Теперь, когда вы нажимаете F12, ваша программа запустится.

Примечание: Быстрый способ определения кода перехода:

Откройте свой терминал и нажмите Ctrl+V, Теперь нажмите вашу любимую комбинацию клавиш. Должен появиться правильный escape-код. Обязательно замените ^[ на \e, прежде чем добавить ярлык, например, к. замените ^[[24~ на \e[24~.

7
αғsнιη

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

4
abstrus

Создайте мягкую ссылку на него в /usr/bin direcotyr:

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

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

idea.sh
1
J.Franks

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

nano ~/.bashrc

и добавить

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

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

0
Help the Newbie

Я следил за всеми ответами здесь и в других местах, и поэтому немногие не могут упомянуть, что вам может понадобиться 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
Manu Järvinen