Как создать собственные команды терминала

Как создать собственные команды терминала

Я знаю, как создавать свои собственные команды терминала, и это было бы очень полезно для меня при компиляции всех моих классов Java в папке. Я также вижу, что для этого люди обычно создают папку ~/bin и помещают туда файлы .sh со строками, которые они хотят запустить, но я не смог понять это как следует, я создаю compile.sh с некоторыми строками, например

-gcc file -o file
-gcc file1 -o file1

но как я читал, мне также нужно добавить строку в файл с именем .bashrc, который скрыт в моей домашней папке, и я не знаю, как это сделать, есть ли способ проще редактировать этот файл? После того, как я это сделаю, моя пользовательская команда будет именем файла .sh (компиляция)?

решение1

Самый простой способ сделать скрипты Bash доступными для всех пользователей вашего компьютера — поместить их в /usr/local/bin. Однако для этого вам потребуются права администратора.

  1. Создайте свой сценарий:

    Откройте ваш любимый текстовый редактор и напишите все команды, которые должен выполнять скрипт, по одной команде в строке.

    Вы можете добавлять комментарии к скриптам Bash, начиная строку с #.

    Когда закончите, добавьте эту точную строку ниже в качестве первой строки в верхней части вашего скрипта. Она называется "shebang" и сообщает оболочке, с каким интерпретатором выполнять ваш скрипт.

    #!/bin/bash
    

    Вот простой пример полного скрипта, выполняющего две команды, упомянутые вами в вашем вопросе:

    #!/bin/bash
    
    # Compile 'file':
    gcc file -o file
    # Compile 'file1':
    gcc file1 -o file1
    
  2. Переместите ваш скрипт в правильное место:

    Место, где следует размещать собственные скрипты для всех пользователей, — /usr/local/bin.

    Поскольку этот каталог принадлежит пользователю root, вы должны быть администратором и использовать его sudoдля перемещения файлов туда.

    Я предполагаю, что вы создали свой скрипт в домашнем каталоге, ~/my_script.sh. Просто откройте терминал и введите команду ниже, заменив SCRIPTNAMEна имя, которое вы хотите ему дать. Это имя будет командой, которую вам нужно будет ввести для его запуска. .shРасширение файла не обязательно.

    sudo mv ~/myscript.sh /usr/local/bin/SCRIPTNAME
    
  3. Установите правильного владельца и разрешения:

    Скрипт должен принадлежать и быть доступным для записи для root, но доступным для чтения и выполнения для всех. Две команды ниже гарантируют это:

    sudo chown root: /usr/local/bin/SCRIPTNAME
    sudo chmod 755 /usr/local/bin/SCRIPTNAME
    
  4. Запустите свой скрипт и наслаждайтесь:

    Теперь вы можете просто ввести команду SCRIPTNAME(или как вы ее назвали) в свой терминал, и скрипт будет выполнен.

решение2

Хотя написание сценариев — очень удобный способ выполнениямного команд из одного файла, я бы предложил использовать функции там, где требуется всего одна или две команды.

Возьмем для примера определение функции ниже.

compile()
{
  gcc "$1" -o "${1%%.*}" && printf "<<< Compiled successfully\n"
}

Поместив его в свой .bashrcфайл (а затем запустив source ~/.bashrcили открыв новую вкладку терминала), вы можете запустить эту команду из любого места, не ~/binдобавляя ее в PATHпеременную, и указать имя файла в качестве аргумента командной строки, например так:

compile somecode.c

Кстати, вы можете редактировать этот файл, просто вызвав его gedit ~/.bashrcиз командной строки.

Для тех из вас, кто интересуется, что делает "$1"and "${1%%.*}", the "$1"относится к первому параметру командной строки (в данном случае "somecode.c"), а for "${1%%.*}"- это расширение параметра, в частности тот, который удаляет суффикс и отбрасывает все после точки. Другими словами, это превращается somecode.cв somecode . Для получения дополнительной информации прочтитестраница руководства bashраздел о расширении параметров

решение3

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

Если в вашей домашней папке нет папки с названием «bin», создайте ее.

Теперь откройте окно терминала и введите nano ~/.bashrc.

Это откроет редактор. Внизу этого файла добавьте новую строку с надписью PATH="$HOME/bin:$PATH".

Теперь сохраните файл, нажав CTRL+O (буква o, а не ноль), затем нажмите ENTER. Выйдите из редактора, нажав CTRL+X. Выйдите из системы и войдите снова, чтобы изменения вступили в силу, или перезагрузите компьютер, если это не сработает.

Теперь любые скрипты, созданные вами в папке bin, будут доступны в любом месте окна терминала.

Вы можете создать эти скрипты с помощью nano или gedit (графический текстовый редактор Ubuntu) или любого текстового редактора, который вам нравится. Просто не забудьте сохранить ваш скрипт в папке ~/bin и сделать ваш файл исполняемым. Есть 2 способа сделать это:

Графический интерфейс: Щелкните правой кнопкой мыши по файлу, перейдите на вкладку «Разрешения» и установите флажок «Разрешить выполнение как программы».

ТЕРМИНАЛ :chmod +x /location/of/your/file

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