Как создавать собственные команды в Unix / Linux? [закрыто]


55

Может кто-нибудь направить меня для создания пользовательских команд в Unix / Linux.


2
Для дальнейшего использования, вы должны проверить страницу с фактами. Это объясняет, что вы должны положить в свои вопросы. (например, публикация того, что вы исследовали и попробовали). Вероятно, поэтому кто-то дал этот вопрос голосование против.
spuder

Ответы:


68

Создайте скрипт bash в папке / usr / bin, он должен выглядеть примерно так

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

Это действительно так просто.

Просто назовите скрипт bash, который вы хотите ввести в терминал, и сделайте его исключительным: chmod +x filenameи все готово !


1
Не могли бы вы изменить это, чтобы быть пошаговым руководством, включающим каждый необходимый шаг? Я все еще не уверен, как сделать свою собственную команду.
Йода

5
@AndersMB, тебе нужно прочитать книгу . Есть много хороших, даже доступных бесплатно. Начните с «Командная строка Linux» .
Wildcard

Ммм .. он шутил. Хэ был шутите, правильно ?!
Соменат Синха

1
выполнить с./filename
Squirrl

46
  1. Создайте каталог с именем «bin» в вашем домашнем каталоге.
  2. Обновите переменную пути, чтобы включить этот каталог bin. Поместите это .profileили .bash_profleфайл, чтобы сделать его постоянным.

    export PATH=$PATH":$HOME/bin"

  3. Создайте сценарий «hello» и сохраните его в каталоге bin. Дайте разрешение на выполнение сценарию приветствия $ chmod +x hello.

    #!/bin/bash    
    echo My first program
  4. Перезагрузить .profileили .bash_profle:

    $ . ~/.bash_profile

  5. Из любого каталога вы просто набираете:

    $ hello
    My first program

Я знаю, что это очень старо, но я видел ваше предложение создать binпапку во многих ответах здесь. Есть ли проблема, если она .binвместо bin? Я очень требователен к своей homeвнешности и не хочу лишних папок только потому, что.
МО

Я пытался использовать это безуспешно и некоторое время был очень расстроен, думая, что с моей zshустановкой что-то не так, или $PATHвсе закончилось тем, что chmod -x helloне работало, как и капитал -X. Вместо этого я попытался chmod 755 hello, хотя я не уверен в угрозах безопасности в отношении этой команды, она фактически позволила мне выполнить hello. У кого-нибудь есть объяснение этому? Я предполагаю, что это проблема в отношении возраста?
ConstantFun

1
@ConstantFun Используется chmod +x helloдля добавления прав доступа к сценарию. chmod -x helloделает прямо противоположное - удаляет привилегии 'run'. (Обратите внимание на разницу в знаках плюс / минус в ответе и в вашем комментарии.)
Филипп Счастливый

25

Легко, создайте псевдоним.

Скажем, вы хотите написать команду для CD в ваш каталог загрузки. И ты хочешь назвать это кдд.

alias cdd='cd ~/Downloads' 

Вы можете создать любую команду, какую захотите.

Вот дополнительная информация:
http://www.mediacollege.com/linux/command/alias.html


6
Это не сохраняется между сессиями, все же. Эта команда работает, но не является постоянной. Более постоянный способ - изменить файл ~ / .bash_aliases и добавить строку, которую вы там предложили.
Джефф Граймс

2
Также работает, добавив его в ваш файл ~ / .bashrc
Delicia Brummitt

11

Большинство, если не все, дистрибутивов Linux имеют небольшой скрипт в ~ / .bashrc, который выглядит почти так же:

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi

Это просто означает, что вы можете создавать свои собственные команды (также известные как « aliases», обычно называемые существующей командой с некоторыми аргументами, которые вы всегда должны использовать, или списком команд, которые должны выполняться по порядку).

В вашем дистрибутиве Linux, скорее всего, не будет файла .bash_aliases, созданного у вас дома, если вы уже не сделали этого вручную. Поэтому, чтобы создать файл, введите следующую команду:
touch ~/.bash_aliases

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

Теперь вы можете создать список псевдонимов и добавить их в этот файл для последующего использования. Например, команда rm(удалить) по умолчанию НЕ запрашивает подтверждение запроса, когда вы говорите об удалении файла / каталога. Однако, есть аргумент , который говорит , rmчтобы попросить вас подтвердить ваш запрос, -i. Таким образом, rm -i filePathотобразится сообщение с вопросом, уверены ли вы, что хотите удалить указанный файл. Теперь, если вы случайно удалили файл, вы, скорее всего, забудете включить эту -iопцию, и именно здесь она aliasстановится очень полезной. Введите следующую команду

echo "alias rm='\rm -i'" >> ~/.bash_aliases

сообщит, Bashчто каждый раз, когда вы запрашиваете удаление файла, вам будет показано подтверждающее сообщение. Конечно, вы можете сделать гораздо больше - это только основы.

Если вы хотите узнать , как использовать некоторые основные команды (т.е. cd, touch, rm, mkdir, pushd, popdи т.д.) и / или более искушенные, я бы рекомендовал очень хорошую книгу вы можете иметь на книжной полке в виде ссылки под названием

практическое руководство по редакторам команд linux и программированию оболочки , написанное Марком Дж. Собеллом . ISBN: 978-0133085044


1
почему обратный слеш?
phil294
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.