Як створити власні команди в Unix / Linux? [зачинено]


55

Хтось може мене направляти на створення спеціальних команд в Unix / Linux.


2
Для подальшого ознайомлення слід ознайомитися на сторінці фактів. Це пояснює те, що ви повинні поставити у своїх питаннях. (наприклад, розміщення речей, які ви дослідили та спробували). Ось, мабуть, чомусь хтось дав це питання прихильно.
спудер

Відповіді:


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

Гм .. він жартував. Хе був жартуєте, правильно?!
Somenath Sinha

1
виконати з./filename
Squirrl

46
  1. Створіть у своєму домашньому каталозі підказки "bin".
  2. Оновіть змінну шляху, щоб включити цей каталог бін. Помістіть це у файл .profileабо .bash_profleфайл, щоб зробити його постійним.

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

  3. Створіть сценарій, скажіть, "привіт" і збережіть його у своєму каталозі. Надайте дозвіл на виконання сценарію привіт від $ 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для додавання привілеїв 'run' до сценарію. 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.