Есть ли способ добавить пользовательские команды /bin
?
Например, я docker container ls
много использую и хотел бы превратить это в команду быстрого доступа, например dcls
.
Если добавить файл с именем , dcls
чтобы /bin
и внутри файла, указать точную команду docker container ls
, я предполагаю , что это не будет работать.
Как правильно, если есть, сделать что-то подобное?
ubuntu
command-line
docker
alex067
источник
источник
/bin
, вы можете добавить в~/bin
(корзину в своем собственном каталоге) или в/usr/local/bin
(чтобы поделиться со всеми пользователями вашей системы, но не мешать работе менеджера пакетов). Или лучше в этом случае использовать псевдоним.Ответы:
Простой способ ярлыка - определить
alias
Это будет выполнено
docker container ls
при вводе,dcls
и командаalias
перечислит ваши определенные псевдонимы. Чтобы удалить этот псевдоним, используйтеunalias dcls
.Если вы используете bash, вы можете сохранить псевдоним в вашем
~/.bashrc
или~/.bash_aliases
.Если ваша
~/.bash_aliases
не читается при запуске, вы можете добавить эту строку в ваш~/.bashrc
:источник
~/.bashrc
или~/.profile
или ... Если вы не сохраните псевдоним, он будет потерян при выходе из системы или закрытии терминала.echo "alias dcls='docker container ls'" >> ~/.bashrc
, затем получить исходный код. ~/.bashrc
или выйти из системы и войти снова.На самом деле, то, что вы описываете, будет работать с несколькими примечаниями:
docker container ls
в файл с именем/bin/dcls
. Но поведение этого может быть немного сложным. Чуть более надежно начинать файл со строки, называемой «шебанг», поэтому файл будет выглядеть так: который указывает, что файл является сценарием оболочки.sudo
).Выполните два вышеуказанных шага, и вы сможете печатать,
который указывает, что любые аргументы, которые вы вводите вdcls
и это будет делатьdocker container ls
. Но, если вы напечатаетеdcls -l foo
, это все равно будетdocker container ls
. Если вы хотите, чтобы это сделатьdocker container ls -l foo
, вы должны изменить сценарий, чтобы сказатьdcls
командной строке, должны передаватьсяdocker container ls
команде.Естественно, есть более сложные вещи, которые вы можете сделать с аргументами командной строки.
Для отображения одной простой команды → одной простой команды, которую не нужно передавать другим пользователям, проще определить псевдоним ( как предложил Фредди ) или функцию оболочки. Более сложные функции часто пишутся в виде скриптов; т.е. текстовые файлы, которые содержат команды. Но, если вам не нужно делиться им с другими пользователями, чаще используйте личный
Затем скопируйтеbin
каталог.dcls
в$HOME/bin
, и добавить к вашему~/.bashrc
.Кроме того, принято ставить личные сценарии
/usr/local/bin
и оставлять их/bin
для программ, поставляемых с системой.источник
/bin
,/usr/bin
и обычно совместно каталоги , как/usr/local/bin
и иногда/opt
, так что программы в этих каталогах доступны всем пользователям./usr/local/bin
чтобы она не мешала работе диспетчера пакетов.$HOME/bin
. Вы должны действительно использовать это. Это не только правильная область, но и помогает, когда вы переустанавливаете свою систему (и сохраняете ееHOME
), чтобы не потерять свою пользовательскую команду.~/.local/bin
вместо этого .Если только для вас, псевдоним подойдет, но в соответствии со Стандартом иерархии файловой системы Linux используются локальные общесистемные сценарии
/usr/local/bin/
, а не/bin
./bin
, лучше придерживаться стандартов, особенно если ваше программное обеспечение будет развернуто на сайтах клиентов./opt
Сам скрипт будет:
источник