Мне было интересно, смогу ли я сделать свои собственные команды, как если бы я набирал 'music' в командной строке, мой vlc должен открыться и начать воспроизведение моего плейлиста. VLC вещь только пример, но вопрос остается.
Могу ли я сделать свои собственные команды? Если да, то как?
command-line
harisibrahimkv
источник
источник
Ответы:
Да - создайте файл с именем music и поместите в него следующее:
Далее введите
chmod +x music
- это делает файл исполняемым. Теперь вы можете напечатать,./music
чтобы запустить этот скрипт.Хорошей идеей будет напечатать
echo $PATH
и скопировать скрипт в один из этих каталогов. Я бы предложил создать$HOME/bin
и добавить это в ваш PATH через~/.bash_profile
или~/.profile
. Это может быть сделано путем добавления (к одному из этих файлов):export PATH="$HOME/bin:$PATH"
. Затем вам нужно будет запуститьsource .bash_profile
(при условии, что вы поместили это в этот файл), чтобы перезагрузить его.Другой альтернативой может быть добавление команды, которую вы хотите запустить, в качестве псевдонима bash. Вы можете сделать это, добавив следующее в файл с именем
.bash_aliases
в вашем домашнем каталоге:Запустите
source ~/.bash_aliases
или выйдите из системы и войдите, и это должно работать :-)источник
Лучший способ сделать это - изменить (или создать) файл с именем
.bash_aliases
в вашей домашней папке.Синтаксис довольно прост:
С помощью этой команды, если вы введете
install
в терминал, он будет интерпретироваться какsudo apt-get -y install
Однако эти команды не будут работать где-либо за пределами терминала.
источник
Любой исполняемый файл в каталоге на вашем пути может быть «командой». Это может быть скрипт, как предложено в других ответах, но это также может быть скомпилированная программа на любом поддерживаемом языке, который вы знаете.
Псевдонимы также будут работать, но они ограничены, потому что они являются «однострочными», так что выполнение чего-либо сложного с ними быстро генерирует код, который очень трудно прочитать. Кроме того, поскольку они выполняются в той же области переменных, что и оболочка, в которую вы их вводите, они могут легко привести к непреднамеренным побочным эффектам, таким как оставление вас в другом каталоге или определение переменных, которые необходимы только для задачи, которую выполняет псевдоним. (Конечно, иногда вы можете захотеть использовать псевдоним именно потому, что он имеет желательные побочные эффекты.)
Если вы поместите ваши новые команды в каталог по вашему пути, они могут быть найдены оболочкой и выполнены. Чаще всего их помещают в $ HOME / bin. Если этот каталог существует, он часто будет автоматически добавляться к вашему пути.
При настройке необходимо помнить две вещи: 1) Обычно лучше использовать уникальные имена для ваших команд, которые не совпадают с теми, которые уже определены в вашей системе. Об этом много споров, но главное в том, что знакомые команды не должны давать неожиданных результатов, если кто-то другой использует вашу систему, и что привыкание к обычной команде, выполняющей что-то особенное, может привести к проблемам при работе в другой системе. где это не определено таким образом.
2) Вы можете добавить $ HOME / bin в начало или конец вашего пути (или где-нибудь между ними, но обычно это не делается).
Добавление его в начало вашего пути является наиболее удобным выбором, потому что ваша версия команды всегда будет той, которая выполняется, и она будет найдена быстрее. Это также уязвимость системы безопасности, поскольку любой, кто может получить разрешение на запись в ваш $ HOME / bin (намного проще, чем получить root-доступ), может очень легко заменить обычные команды потенциально вредоносным кодом. Кроме того, если вам когда-нибудь понадобится обратиться за помощью к кому-то, кто не знает вашу систему, то он, скорее всего, будет сбит с толку особым поведением ваших пользовательских команд, если вы не потратите много дополнительных усилий, объясняя все это просто задаю свой вопрос.
Добавление его в конец вашего оператора пути немного безопаснее, потому что любая команда с тем же именем, что и ваша команда, которая уже находится в вашем пути, будет сначала найдена и запущена вместо нее - и все, что зависит от этой команды, работающей должным образом, все равно будет работать ,
Чтобы избежать всего этого (за счет небольшого дополнительного набора текста), вы также можете поместить свою команду в каталог, который не находится в вашем пути, поэтому она почти никогда не будет запускаться непреднамеренно, потому что вам придется вводить ее полный путь к запустить его.
Как и большинство вещей в Linux, существует множество способов создания и использования новых команд, и у каждой из них есть свои преимущества и ограничения.
источник