Создание более короткой версии команды bash - PullRequest
0 голосов
/ 16 августа 2010

Я новичок в оболочке Linux, и недавно мне пришлось использовать ее для работы ... Теперь я привык к базовым командам в bash, чтобы найти свой путь ... однако есть много команд, которые я нахожу я набираю снова и снова, и это своего рода хлопоты, чтобы набирать их каждый раз ... так что кто-нибудь может сказать мне, как я могу сократить синтаксис команд для тех, которые я часто использую.

Очень простой пример, я часто использую команду ls -lh, хотя она довольно короткая, но я просто привожу пример. Могу ли я что-нибудь (сценарий оболочки), чтобы я мог запустить его, набрав просто сказать lh.

Я хочу сделать это для более сложных команд.

Ответы [ 5 ]

8 голосов
/ 16 августа 2010
alias lh='ls -lh'

Если вы хотите сделать это постоянным между сеансами, поместите его в файл .bashrc.Не забудьте потом запустить source .bashrc, чтобы bash узнал об изменениях.

Если вы хотите передать переменные, псевдонима просто недостаточно.Вы можете сделать функцию.В качестве примера рассмотрим команду lsall для отображения всего в данном каталоге (обратите внимание, что это всего лишь пример и, следовательно, очень подвержен ошибкам):

function lsall
{
    ls $1/*
}

$N заменяется на N-й аргумент.

4 голосов
/ 16 августа 2010

Вы бы поместили следующий псевдоним в файл .bashrc:

alias lh='ls -lh'

Теперь lh - это сокращение от ls -lh.

. Для более сложных задач вы можете использоватьфункция БашНапример, на одном из моих компьютеров у меня есть функция, которая заставляет 'ls' запускаться после каждого успешного 'cd':

cdls() {
  builtin cd "$*" && ls
}
alias cd='cdls'
1 голос
/ 16 августа 2010

;) Хех, я помню одну проблему, когда я начинал работать с Linux: я задавал такие вопросы, и люди старательно отвечали на них, но никто не объяснял, как сделать такие изменения постоянными, и такЯ обнаружил, что набираю кучу команд каждый раз, когда открываю терминал.

Итак, хотя другие точно ответили на этот вопрос ... если вы хотите сделать изменение постоянным, поместите строку псевдонима вваш файл ~ / .profile или ~ / .bashrc (~ = ваш домашний каталог).Это немного зависит от вашего дистрибутива, от которого запускается, когда, но я всегда стараюсь сначала добавить свои псевдонимы в ~ / .profile, а если это не сработает, то ~ / .bashrc.Один из них должен работать наверняка.

1 голос
/ 16 августа 2010

Просто для полноты, так как вы хотите изучать bash: вы также можете написать функцию

lh() {
    ls -lh "$@"
}

хотя я бы никогда не написал это, когда подойдет простой псевдоним; -)

1 голос
/ 16 августа 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...