Linux alias with parameter

Содержание
  1. Создание синонимов команд в Linux. Команда alias
  2. Создание синонимов (команда alias)
  3. Синтаксис команды alias
  4. Примеры создания синонимов
  5. Сохранение синонимов
  6. Просмотр списка синонимов
  7. Удаление синонимов
  8. Несколько примеров синонимов
  9. Создание синонимов, используя Bash-функции (синонимы с аргументами)
  10. Синтаксис функций в Bash
  11. Примеры создания функций
  12. Заключение
  13. Passing argument to alias in bash [duplicate]
  14. 6 Answers 6
  15. Полезные alias Linux
  16. Команда alias
  17. Полезные alias Linux
  18. 1. Вывод ls
  19. 2. Перемещение по каталогам
  20. 3. Вывод grep
  21. 4. Калькулятор
  22. 5. Создание каталогов
  23. 6. Вывод diff
  24. 7. Вывод mount
  25. 8. История
  26. 9. Информация и дата
  27. 10. Редактор Vim
  28. 11. Ping
  29. 12. Открытые порты
  30. 13. Wakeup
  31. 14. Управление iptables
  32. 15. Утилита curl
  33. 16. Работа с файлами
  34. 17. Обновление Debian
  35. 18. Обновление RedHat
  36. 19. Стать суперпользователем
  37. 20. Выключение
  38. 21. Управление серверами
  39. 22. Мультимедиа
  40. 22. Системное администрирование
  41. 23. Информация о системе
  42. 25. Утилита wget
  43. 26. Браузеры
  44. 27. Правильные единицы измерения
  45. Выводы
  46. Оцените статью:
  47. Об авторе
  48. 10 комментариев

Создание синонимов команд в Linux. Команда alias

В Linux можно создавать синонимы для других команд. Рассмотрим, как это сделать.

Синонимы для команд (или псевдонимы, или алиасы) — это команда, состоящая из одного слова, но выполняющая другую заданную команду. Это удобно, например, когда нужно часто выполнять длинную команду или команду с различными ключами. Вместо ввода длинной команды достаточно выполнить одну команду-синоним.

Создание синонимов (команда alias)

В командной оболочке Bash для создания синонимов используется команда alias .

Синтаксис команды alias

Чтобы создать синоним нужно указать команду-синоним и в кавычках указать команду , которая должна выполняться:

синоним — короткая команда (алиас), которая будет использоваться для запуска команды .
команда — команда, которая будет запускаться при вызове синонима . Записывается в двойных или одинарных кавычках.

Примеры создания синонимов

Вывод списка файлов:

То есть, вместо выполнения ls -la теперь достаточно выполнить команду ll :

Создадим команду для быстрого перехода в заданную директорию:

Подключение по ssh к определенному серверу:

Сохранение синонимов

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

Запустите терминал и откройте файл .bashrc для редактирования, выполнив команду:

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

Сохраните изменения и закройте файл. Для этого нажмите Ctrl+X , откроется запрос на сохранение изменений в файле — нажмите y и затем Enter .

Чтобы изменения вступили в силу, можно выйти и снова войти в систему или выполните команду:

Просмотр списка синонимов

Чтобы просмотреть список всех активных в данный момент синонимов используется команда:

Во многих дистрибутивах несколько синонимов уже может быть создано в системе. Например у меня результат следующий:

Удаление синонимов

Чтобы удалить синоним используется команда unalias . Удаление происходит только в текущей сессии терминала.

Удаление синонима по заданному имени:

Удаление всех синонимов:

Несколько примеров синонимов

Очистка окна терминала:

Вывод подробного списка файлов:

Вывод списка скрытых файлов:

Поиск по истории команд (запускается, например, так hs ssh ):

Показать список открытых портов:

Выполнять ping только 5 раз, а не бесконечно:

Узнать свой внешний IP-адрес:

Создание синонимов, используя Bash-функции (синонимы с аргументами)

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

Синтаксис функций в Bash

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

Чтобы внутри функции обратиться к аргументам, используются сокращения $1 , $2 и т.д. $1 соответсвует первому аргументу, $2 второму и т.д. $0 соответсвует имени функции.

Примеры создания функций

Функции можно создавать прямо в текущей сессии терминала, но лучше прописать их в файле .bashrc .

Создадим функцию которая принимает имя директории, создает данную директорию и переходит в нее:

Теперь, вместо того, чтобы выполнять mkdir для создания директории, а затем cd , чтобы перейти в нее, достаточно выполнить:

У вас может возникнуть вопрос, что означают символы — и && внутри нашей функции?

  • — — используется, чтобы указать, конец опций команды. То есть все, что будет записываться после — это уже аргументы и они не будут интерпретироваться, как опции для данной команды. В нашем примере мы можем попробовать создать директорию имя которой начинается с символа — , и если бы мы не использовали — , то команда mkdir подумала бы, что мы пытаемся передать ей не имя директории а опцию.
  • && — логическое И — сначала выполняется команда, стоящая слева от && и только если она выполнена успешно, запускается команда, стоящая справа от && .
Читайте также:  Операционная система линукс для ноутбука

Заключение

Синонимы команд в Linux очень удобный инструмент, упрощающий работу с системой. В данной статье мы рассмотрели создание синонимов командой alias , а также использование функций Bash для создания синонимов.

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

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

Источник

Passing argument to alias in bash [duplicate]

Is it possible to do the following:

I want to run the following:

In my bash_profile I have

6 Answers 6

An alias will expand to the string it represents. Anything after the alias will appear after its expansion without needing to be or able to be passed as explicit arguments (e.g. $1 ).

will get expanded to

If you want to use explicit arguments, you’ll need to use a function

will be executed as if you had done

To undefine an alias:

To undefine a function:

To see the type and definition (for each defined alias, keyword, function, builtin or executable file):

Or type only (for the highest precedence occurrence):

Usually when I want to pass arguments to an alias in Bash, I use a combination of an alias and a function like this, for instance:

to use parameters in aliases, i use this method:

its a self-destructive function wrapped in an alias, so it pretty much is the best of both worlds, and doesnt take up an extra line(s) in your definitions. which i hate, oh yeah and if you need that return value, you’ll have to store it before calling unset, and then return the value using the «return» keyword in that self destructive function there:

you could, if you need to have that variable in there

would actually do the same thing without the need for parameters, but like i said, if you wanted or needed them for some reason (for example, you needed $2 instead of $1), you would need to use a wrapper like that. If it is bigger than one line you might consider just writing a function outright since it would become more of an eyesore as it grew larger. Functions are great since you get all the perks that functions give (see completion, traps, bind, etc for the goodies that functions can provide, in the bash manpage).

Источник

Полезные alias Linux

Alias Linux — это, по сути, ярлыки команд Linux. Команда alias позволяет пользователю запускать любую команду или даже группу команд, в том числе с опциями, параметрами и файлами, вводом одного слова или даже символа. Это очень удобно во многих ситуациях, например чтобы не вводить полностью команду при обновлении или же очень быстро перемещаться по каталогам.

В этой инструкции будет рассмотрена команда alias linux, а также полезные алиасы, которые без сомнения must have в каждой системе.

Команда alias

Чтобы посмотреть какие псевдонимы linux команд уже заданны в вашей системе просто выполните:

В выводе вы увидите что-то подобное:

Команда покажет все alias команд linux определенные для текущего пользователя. Вывод очень сильно зависит от вашего дистрибутива. Общий синтаксис команды выглядит следующим образом:

$ alias имя = «значение»

$ alias имя = «команда аргумент1 аргумент2»

$ alias имя = «/путь/к/исполняемому/файлу»

Читайте также:  Сброс пароля администратора для mac os

Вы можете создавать новые псевдонимы, просто выполняя эту команду в терминале. Но созданные таким образом алиасы linux будут работать только в этом терминале и только до его закрытия.

Давайте для примера создадим alias linux для такой часто используемой команды, как clear (очистить вывод терминала):

Теперь, чтобы очистить терминал достаточно выполнить:

Удалить созданный alias можно с помощью команды unalias:

Но как я уже сказал, такие alias команд linux сохраняются только до закрытия терминала. Поэтому их необходимо создавать в начале каждой терминальной сессии. Для этого можно записать все нужные команды в

/.bashrc. При запуске терминала, каждый раз выполняется этот скрипт, чтобы установить переменные окружения и подготовить оболочку. Таким образом добавив нужные строки в конец файла мы получим работающие alias linux в каждом терминале.

Продолжим создание alias для команды clear:

Добавьте эту строку в конец файла:

Затем сохраните и закройте редактор (:wq). Чтобы проверить работоспособность запустите новый терминал. Если вы хотите чтобы ваши алиасы linux были доступны для всех пользователей, необходимо использовать файл /etc/bashrc.

Поскольку .bashrc, это обычный bash скрипт, перед нами открываются большие возможности. Например мы можем добавить alias команд с использованием sudo, если текущий пользователь не root:

if [ $UID -ne 0 ]; then
alias reboot=’sudo reboot’
alias update=’sudo apt-get upgrade’
fi

Ещё мы можем менять команды алиасов в зависимости от дистрибутива:

_myos=»$(uname)»
case $_myos in
Linux) alias foo=’/path/to/linux/bin/foo’;;
FreeBSD|OpenBSD) alias foo=’/path/to/bsd/bin/foo’ ;;
SunOS) alias foo=’/path/to/sunos/bin/foo’ ;;
*) ;;
esac

Чтобы удалить alias достаточно просто удалить запись о нем, из того файла в который вы её добавили. Мы рассмотрели основы добавления alias linux, теперь давайте перейдем к списку полезных алиасов linux.

Полезные alias Linux

Вы можете добавить в своей системе любые или даже все эти алиасы linux чтобы повысить продуктивность своей работы в терминале.

1. Вывод ls

alias ls=’ls —color=auto’

Показывать скрытые файлы и представлять вывод в виде списка:

Показать только скрытые файлы:

alias l.=’ls -d .* —color=auto’

2. Перемещение по каталогам

Быстрое перемещение от текущей директории:

3. Вывод grep

Делаем вывод цветным:

alias grep=’grep —color=auto’
alias egrep=’egrep —color=auto’
alias fgrep=’fgrep —color=auto’

4. Калькулятор

Запускать калькулятор с поддержкой стандартной библиотеки mathlib:

5. Создание каталогов

Создавать дерево каталогов, если оно не существует:

alias mkdir=’mkdir -pv’

6. Вывод diff

Делаем вывод diff цветным:

7. Вывод mount

Сделаем вывод mount читаемым:

alias mount=’mount | column -t’

8. История

Сократим команды для экономии времени:

alias h=’history’
alias j=’jobs -l’

9. Информация и дата

alias path=’echo -e $
alias now=’date +»%T»‘
alias nowtime=now
alias nowdate=’date +»%d-%m-%Y»‘

10. Редактор Vim

alias команд linux для использования редактора vim по умолчанию:

alias vi=vim
alias svi=’sudo vi’
alias vis=’vim «+set si»‘
alias edit=’vim’

11. Ping

Посылать только пять запросов:

alias ping=’ping -c 5′

Интервал между запросами одна секунда:

alias fastping=’ping -c 100 -s.2′

12. Открытые порты

alias ports=’netstat -tulanp’

13. Wakeup

Будим серверы в режиме сна по mac адресу с помощью утилиты wakeonlan:

alias wakeupnas01=’/usr/bin/wakeonlan 00:11:32:11:15:FC’
alias wakeupnas02=’/usr/bin/wakeonlan 00:11:32:11:15:FD’
alias wakeupnas03=’/usr/bin/wakeonlan 00:11:32:11:15:FE’

14. Управление iptables

alias iptlist=’sudo /sbin/iptables -L -n -v —line-numbers’
alias iptlistin=’sudo /sbin/iptables -L INPUT -n -v —line-numbers’
alias iptlistout=’sudo /sbin/iptables -L OUTPUT -n -v —line-numbers’
alias iptlistfw=’sudo /sbin/iptables -L FORWARD -n -v —line-numbers’
alias firewall=iptlist

15. Утилита curl

Получить заголовки сервера:

alias header=’curl -I’

Проверять поддержку сжатия на сервере:

alias headerc=’curl -I —compress’

16. Работа с файлами

Не удалять корень и предупреждать об удалении файлов:

alias rm=’rm -I —preserve-root’

alias mv=’mv -i’
alias cp=’cp -i’
alias ln=’ln -i’

Защита от изменения прав для /:

alias chown=’chown —preserve-root’
alias chmod=’chmod —preserve-root’
alias chgrp=’chgrp —preserve-root’

17. Обновление Debian

alias apt=»sudo apt»
alias updatey=»sudo apt —yes»

Обновление одной командой:

alias update=’sudo apt update && sudo apt upgrade’

18. Обновление RedHat

В семействе дистрибутивов Red Hat используется пакетный менеджер yum:

alias update=’yum update’
alias updatey=’yum -y update’

19. Стать суперпользователем

alias root=’sudo -i’
alias su=’sudo -i’

20. Выключение

Выполнять команды выключения через sudo:

alias reboot=’sudo /sbin/reboot’
alias poweroff=’sudo /sbin/poweroff’
alias halt=’sudo /sbin/halt’
alias shutdown=’sudo /sbin/shutdown’

21. Управление серверами

alias nginxreload=’sudo /usr/bin/nginx -s reload’
alias nginxtest=’sudo /usr/bin/nginx -t’
alias lightyload=’sudo systemctl reload lighttpd’
alias lightytest=’sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -t’
alias httpdreload=’sudo /usr/sbin/apachectl -k graceful’
alias httpdtest=’sudo /usr/sbin/apachectl -t && /usr/sbin/apachectl -t -D DUMP_VHOSTS’

Читайте также:  Fences and the windows

22. Мультимедиа

Открыть видео в текущей директории:

alias playavi=’mplayer *.avi’
alias vlc=’vlc *.avi’

Добавить в плейлист музыку из текущей директории:

alias playwave=’for i in *.wav; do mplayer «$i»; done’
alias playogg=’for i in *.ogg; do mplayer «$i»; done’
alias playmp3=’for i in *.mp3; do mplayer «$i»; done’

Открыть музыку из устройства nas:

alias nplaywave=’for i in /nas/multimedia/wave/*.wav; do mplayer «$i»; done’
alias nplayogg=’for i in /nas/multimedia/ogg/*.ogg; do mplayer «$i»; done’
alias nplaymp3=’for i in /nas/multimedia/mp3/*.mp3; do mplayer «$i»; done’

22. Системное администрирование

Работать с интерфейсом eth1:

alias dnstop=’dnstop -l 5 eth1′
alias vnstat=’vnstat -i eth1′
alias iftop=’iftop -i eth1′
alias tcpdump=’tcpdump -i eth1′
alias ethtool=’ethtool eth1′

Работать с интерфейсом wlan0 по умолчанию:

alias iwconfig=’iwconfig wlan0′

23. Информация о системе

alias meminfo=’free -m -l -t’

Показать процессы потребляющие больше всего памяти:

alias psmem=’ps auxf | sort -nr -k 4′
alias psmem10=’ps auxf | sort -nr -k 4 | head -10′

Показать процессы использующие процессор:

alias pscpu=’ps auxf | sort -nr -k 3′
alias pscpu10=’ps auxf | sort -nr -k 3 | head -10′

Информация о процессоре:

Посмотреть память видеокарты:

alias gpumeminfo=’grep -i —color memory /var/log/Xorg.0.log’

25. Утилита wget

Продолжать незавершенную загрузку по умолчанию:

alias wget=’wget -c’

26. Браузеры

alias ff=’/usr/bin/firefox’
alias chrome=’/usr/bin/google-chrome’
alias opera=’/usr/bin/opera’
alias chromium=’/usr/bin/chromium’

Браузер по умолчанию:

27. Правильные единицы измерения

Правильное отображение данных для free, df и du:

alias df=’df -H’
alias du=’du -ch’
alias free=’free -h’

Выводы

Если вы знаете другие полезные alias команд linux, то поделитесь ими с нами в комментариях!

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

10 комментариев

Кхе, кхе. Что будет — ежели сотворить текстовый файл с набором alias, который будучи вставленным в

/.bashrc после первой установки системы, выполнял бы обновление, удаление гостевого сеанса, открывал бы скрытые пункты автозагрузки? Список можно продолжить. Черновой работы подобного рода море, особенно в классической Ubuntu.
P.S. Не судите строго. 😉

Интересно, но это уже не alias, а просто скрипт.

это и есть алиася. Или сделать /etc/profile.d/aliases.sh — рекомеднуют туда. Это для всех пользователей будет действовать.
Еще бы статью про функции, я их тоже в /etc/profile.d/файл помещаю. Но надо обязательно все проверить перед перезагрузкой.
И к функциям сделать bash-completion

Хмм. Можно попробовать
alias sizes=»du —summarize —human-readable *»
df -h и free -h по умолчанию
Обновление, наверное, лучше всё же скриптами. Тот же «

root/update » лично у меня запускает что-то вида emerge -DuNv$1 $2 —keep-going @world && emerge -vD$1 $2 —depclean && emerge @preserved-rebuild && revdep-rebuild && beep -f 2000 -l 50 || beep -f 100 -l 150″ плюс записывает время начала выполнения, time разных процессов обновления, запускает пакетный менеджер с нужными nice и ionice, и так далее. В перспективе можно прикрутить к этому cgroups, чтоб уж точно не поджимал по быстродействию, и цветное перенаправление во временные файлы для дальнейшего курения в случае ошибок. А запускаться всё равно будет так же. И не надо писать лютый однострочник с сомнительной поддержкой переменных и прочего.

Введенные на не_той раскладе команды, алиас запуска не умеющего в rc-файлы эмулятора терминала, sublime-text=»/opt/. «, и так далее. Простор огромен.

//а, и ещё манпейджи говорят про интересные применения в плане чтения истории команд плюс команду «type», показывающую текущие алиасы для команды, и «command», пропускающую алиасы при выполнении.

Ну и удобные алиасы для каждого всё равно будут своими.

Что бы не корёжить файл .bashrc, можно создать рядом файл .bash_aliases и добавлять алиасы в него.

Хорошая статья. Я делаю дополнительный файл алиасов — host-specific. Модифицирую .bashrc добавив пару строчек.

[[ -f $HOME/.bashrc.$HOSTNAME ]] && . «$HOME/.bashrc.$HOSTNAME»

Хорошо бы еще написать статью про внедрение функций для расширения функционала. (PS прошу прощения если таковая уже иммется. )

Допустим, я сделал алиас apt=’aptitude’.
Как мне вызвать прежний apt (unalias не предлагать)?

Источник

Оцените статью