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

На этот вопрос уже есть ответ:

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

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

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

7
задан 21 June 2016 в 16:15

3 ответа

Самый легкий способ сделать сценарии Bash, которые доступны всем пользователям Вашего компьютера, состоит в том, чтобы разместить их в /usr/local/bin. Это требует, чтобы у Вас были административные привилегии все же.

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

    Откройте свой любимый текстовый редактор и запишите все команды, которые Вы хотите, чтобы сценарий выполнил, одна команда на строку.

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

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

    #!/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 (или однако Вы назвали его) к Вашему терминалу, и сценарий будет выполняться.

8
ответ дан 21 June 2016 в 16:15
  • 1
    @DavidRicherby, Если you' ve получил программу, открытую в фоновом режиме, тогда та программа все еще меньше активна, чем утечка памяти - и когда Вы идете для переключения назад на него, это должно выйти из подкачки. – Someone Somewhere 11 November 2017 в 09:48

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

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

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

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

compile somecode.c

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

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

4
ответ дан 21 June 2016 в 16:15
  • 1
    @SomeoneSomewhere, который Вы, кажется, неправильно поняли, как система памяти работает. Вы don' t должны иметь весь процесс в физической RAM: подкачка организована при гранулярности единственных страниц. Любая страница это hasn' t используемый некоторое время склонно быть выгруженным, и страница, которая состоит полностью из пропущенной памяти, никогда не будет использоваться снова, так никогда не будет вкладывать подкачанный назад после it' s выгруженный. – David Richerby 11 November 2017 в 12:24

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

, Если у Вас нет папки в Вашей домашней папке названной "мусорным ведром", создайте тот.

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

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

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

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

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

GUI: Щелкните правой кнопкой по файлу и перейдите к вкладке полномочий и проверьте поле "Allow executing as a program".

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

0
ответ дан 21 June 2016 в 16:15
  • 1
    всегда : Я думаю you' ре, предполагающее, что /proc/sys/vm/swappiness оставлен в it' s значение по умолчанию 70, который хорош для серверов и справедливо настойчиво страниц грязные страницы от процессов это haven' t коснулся их некоторое время для создания места для большего количества pagecache. Это часто плохо для рабочих столов, потому что alt-tab может стать медленным. – Peter Cordes 7 November 2017 в 11:10

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

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