Автор - Максим Куприенко
Ищем корень зла
Как-то я столкнулся с интересной задачей. А именно - при работе с системой виртуализации VMware vSphere иногда возникала следующая проблема: для некоторых виртуальных машин выполнение штатных операций (старт/стоп/перезапуск) стало занимать гораздо больше времени, а также падала производительность самой...
30 псевдонимов оболочки Bash в ОС Linux / Unix / Mac OS X
Visitors have accessed this post 6501 times.
Оригинал статьи — https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html
Псевдоним (он же алиас) bash — это ярлык для команд. Команда alias позволяет пользователю запускать любую команду или группу команд (включая параметры и имена файлов), вводя одно слово. Используйте команду alias, чтобы отобразить список всех определенных псевдонимов. Вы можете добавлять пользовательские псевдонимы в файл ~/.bashrc. С помощью этих псевдонимов вы можете сократить время ввода и повысить производительность командной строки.Сегодня мы поговорим о том, как создавать и использовать псевдонимы, включая 30 практических примеров псевдонимов оболочки bash.
Подробно о псевдонимах оболочки bash
Общий синтаксис команды alias для оболочки bash выглядит следующим образом:
Как вывести список псевдонимов bash
Введите команду alias:
alias
Пример вывода:
alias ..='cd ..' alias amazonbackup='s3backup' alias apt-get='sudo apt-get' ...
По умолчанию команда alias выводит список псевдонимов, которые определены для текущего пользователя.
Как определить или создать псевдоним оболочки bash
Чтобы создать псевдоним (alias) используйте следующий синтаксис:
alias name=value alias name='command' alias name='command arg1 arg2' alias name='/path/to/script' alias name='/path/to/script.pl arg1'
В этом примере создайте псевдоним c для часто используемой команды очистки, которая очищает экран, введя следующую команду и нажав клавишу [ENTER]:
alias c='clear'
Затем, чтобы очистить экран, вместо того, чтобы вводить слово clear, вам достаточно будет кликнуть на букву «c» и нажать клавишу [ENTER]:
Как временно отключить псевдоним bash
Псевдоним можно временно отключить, используя следующий синтаксис:
## path/to/full/command /usr/bin/clear ## вызвать псевдоним с помощью бекслеша ## \c ## используйте команду /bin/ls и избегайте псевдонима ls ## command ls
Как удалить/убрать псевдоним bash
Для удаления псевдонимов необходимо использовать команду unalias . Вот так выглядит синтаксис команды:
unalias aliasname unalias foo
В этом примере удалите alias c, который был создан в предыдущем примере:
unalias c
Вам также необходимо удалить псевдоним из файла ~/.bashrc с помощью текстового редактора (см. следующий раздел).
Как сделать псевдонимы bash shell постоянными
Псевдоним c действителен только во время текущей сессии входа. После выхода из системы или перезагрузки системы псевдоним c исчезнет. Чтобы избежать этой проблемы, добавьте псевдоним в ваш файл ~/.bashrc, введите:
vi ~/.bashrc
Псевдоним c для текущего пользователя можно сделать постоянным, введя следующую строку:
alias c='clear'
Сохраните и закройте файл. Общесистемные псевдонимы (то есть, псевдонимы для всех пользователей) можно поместить в файл /etc/bashrc. Обратите внимание, что команда alias встроена в различные оболочки, включая ksh, tcsh/csh, ash, bash и другие.
Примечание о привилегированном доступе
Вы можете добавить код следующим образом в ~/.bashrc:
# если пользователь не root, нужно передать все команды через sudo # if [ $UID -ne 0 ]; then alias reboot='sudo reboot' alias update='sudo apt-get upgrade' fi
Примечание о конкретных псевдонимах ОС
Можно добавить код следующим образом в ~/.bashrc, используя оператор case:
### Получить имя ОС через uname ### _myos="$(uname)" ### добавьте псевдоним, как есть, используя $ _myos ### 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
30 примеров псевдонимов оболочки bash
Чтобы сэкономить время и повысить производительность, псевдонимы различных типов можно определить следующим образом.
#1: Управление выводом команды ls
Команда ls выводит содержимое каталога, и вы можете выделить вывод цветом:
##Выделить вывод ls цветом ## alias ls='ls --color=auto' ## Используйте длинный формат списка ## alias ll='ls -la' ## Показать скрытые файлы ## alias l.='ls -d .* --color=auto'
#2: Управление поведением команды cd
## команда get rid of не найдена ## alias cd..='cd ..' ## быстрый способ выйти из текущего каталога ## alias ..='cd ..' alias ...='cd ../../../' alias ....='cd ../../../../' alias .....='cd ../../../../' alias .4='cd ../../../../' alias .5='cd ../../../../..'
#3: Управление выводом команды grep
grep command — утилита командной строки для поиска в текстовых файлах строк, соответствующих регулярному выражению:
## Выделите вывод команды grep цветом для простоты использования (желательно для файлов журнала)## alias grep='grep --color=auto' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto'
#4: Запуск калькулятора
alias bc='bc -l'
# Создание дайджеста sha1
alias sha1='openssl sha1'
#5: Создание родительских каталогов по запросу
Команда mkdir используется для создания каталога:
alias mkdir='mkdir -pv'
#6: Выделение цветом вывода diff
Вы можете сравнивать файлы построчно, используя diff, и использовать инструмент colordiff для того, чтобы выделять цветом вывод diff:
# установить пакет colordiff :) alias diff='colordiff'
#7: Сделать вывод команды mount в удобочитаемом формате
alias mount='mount |column -t'
#8: Ярлыки команд для экономии времени
# удобные ярлыки # alias h='history' alias j='jobs -l'
#9: Создать новый набор команд
alias path='echo -e ${PATH//:/\\n}' alias now='date +"%T"' alias nowtime=now alias nowdate='date +"%d-%m-%Y"'
#10: Установить vim по умолчанию
alias vi=vim alias svi='sudo vi' alias vis='vim "+set si"' alias edit='vim'
#11: Управление выводом ping
# Остановить после отправки подсчета пакетов ECHO_REQUEST # alias ping='ping -c 5' # Не ждите 1 секунду, сразу же приступайте # alias fastping='ping -c 100 -s.2'
#12: Показать открытые порты
Используйте команду netstat для быстрого вывода списка всех портов TCP/UDP на сервере:
alias ports='netstat -tulanp'
#13: Активация серверов из спящего режима
Wake-on-LAN (WOL) — это сетевой стандарт Ethernet, который позволяет серверу включать сетевое сообщение. Вы можете быстро активировать устройства и сервер nas, используя следующие псевдонимы:
## заменить mac вашим реальным MAC-адресом # 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)
Netfilter — это файрвол на базе хоста для операционных систем Linux. Он включен в дистрибутив Linux и активирован по умолчанию. В этой статье перечислены наиболее распространенные решения iptables, необходимые новому пользователю Linux для защиты своей операционной системы от злоумышленников.
## ярлык для iptables, передать его через sudo# alias ipt='sudo /sbin/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: Отладка веб-сервера / проблемы cdn с curl
# получить заголовки веб-сервера # alias header='curl -I' # узнать, поддерживает ли удаленный сервер gzip/mod_deflate или нет # alias headerc='curl -I --compress'
#16: Добавить безопасность сети
# не удаляйте и/или не запрашивайте, если удаляете более 3 файлов одновременно # 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 Linux
Команда apt-get используется для установки пакетов через Интернет (ftp или http). Вы также можете обновить все пакеты за одну операцию:
# определенный дистрибутив - Debian / Ubuntu и друзья # # установить с помощью apt-get alias apt-get="sudo apt-get" alias updatey="sudo apt-get --yes" # обновить по одной команде alias update='sudo apt-get update && sudo apt-get upgrade'
#18: Обновить сервер Linux RHEL / CentOS / Fedora
Команда yum — это инструмент управления пакетами для RHEL / CentOS / Fedora Linux:
## RHEL / CentOS дистрибутива ## alias update='yum update' alias updatey='yum -y update'
#19: Настройка sudo и su
# стать root # alias root='sudo -i' alias su='sudo -i'
#20: Выполнить остановку/перезагрузку через sudo
Команда shutdown выключает систему Linux / Unix:
# перезагрузка / остановка / отключение питания alias reboot='sudo /sbin/reboot' alias poweroff='sudo /sbin/poweroff' alias halt='sudo /sbin/halt' alias shutdown='sudo /sbin/shutdown'
#21: Управление веб-серверами
# также передайте его через sudo, чтобы администратор мог перезагрузить его самостоятельно # alias nginxreload='sudo /usr/local/nginx/sbin/nginx -s reload' alias nginxtest='sudo /usr/local/nginx/sbin/nginx -t' alias lightyload='sudo /etc/init.d/lighttpd reload' 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'
#22: Псевдоним в резервной копии
# если cron фейлится или если вы хотите создать резервную копию по требованию, просто запустите их # # снова передайте его через sudo, чтобы любой, кто находится в группе администраторов, мог начать работу # # Скрипты резервного копирования # alias backup='sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type local --taget /raid1/backups' alias nasbackup='sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01' alias s3backup='sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01 --auth /home/scripts/admin/.authdata/amazon.keys' alias rsnapshothourly='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias rsnapshotdaily='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias rsnapshotweekly='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias rsnapshotmonthly='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias amazonbackup=s3backup
#23: Специально для рабочего стола — проигрывайте avi/mp3 файлы по запросу
## воспроизводите видео файлы в текущем каталоге ## # cd ~/Download/movie-name # воспроизвести avi или vlc 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' # перетасовать mp3/ogg etc по умолчанию # alias music='mplayer --shuffle *'
#24: Настройка интерфейсов по умолчанию для команд, связанных с сисадмином
vnstat — консольный монитор сетевого трафика. dnstop — консольный инструмент для анализа трафика DNS. Команды tcptrack и iftop отображают информацию о TCP/UDP-соединениях с сетевого интерфейса и показывают, как их пропускает хост.
## Все наши серверы eth1 подключены к интернету через vlan/router и т. д. ## 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'
#25: Быстро получить сведения о системной памяти, памяти процессора и ее использовании
## передать варианты ## alias meminfo='free -m -l -t' ## посмотреть процессы, которые едят больше всего памяти alias psmem='ps auxf | sort -nr -k 4' alias psmem10='ps auxf | sort -nr -k 4 | head -10' ## посмотреть процессы, которые едят больше всего cpu ## alias pscpu='ps auxf | sort -nr -k 3' alias pscpu10='ps auxf | sort -nr -k 3 | head -10' ## Получить информацию о сервере ## alias cpuinfo='lscpu' ## older system use /proc/cpuinfo ## ##alias cpuinfo='less /proc/cpuinfo' ## ## узнать оперативную память GPU на настольном компьютере/ноутбуке## alias gpumeminfo='grep -i --color memory /var/log/Xorg.0.log'
#26: Управление домашним роутером
Команду curl можно использовать для перезагрузки маршрутизаторов Linksys.
# Перезагрузите домашний маршрутизатор / шлюз Linksys WAG160N / WAG54 / WAG320 / WAG120N из * nix. alias rebootlinksys="curl -u 'admin:my-super-password' 'http://192.168.1.2/setup.cgi?todo=reboot'" # Перезагрузка беспроводного моста Asus NT16 alias reboottomato="ssh admin@192.168.1.1 /sbin/reboot"
#27 Возобновление wget по умолчанию
GNU Wget — бесплатная утилита для неинтерактивной загрузки файлов из интернета. Она поддерживает протоколы HTTP, HTTPS и FTP и может также возобновить загрузку:
alias wget='wget -c'
#28 Попробуйте протестить сайт в другом браузере
alias ff4='/opt/firefox4/firefox' alias ff13='/opt/firefox13/firefox' alias chrome='/opt/google/chrome/chrome' alias opera='/opt/opera/opera' #ff по умолчанию alias ff=ff13 #мой браузер по умолчанию alias browser=chrome
#29: Примечание о псевдониме ssh
Не создавайте псевдоним ssh, вместо этого используйте ~ /.ssh /config или файлы конфигурации клиента SSH. Они предлагают больше возможностей. Пример:
Host server10 Hostname 1.2.3.4 IdentityFile ~/backups/.ssh/id_dsa user foobar Port 30000 ForwardX11Trusted yes TCPKeepAlive yes
Теперь вы можете подключиться к peer1, используя следующий синтаксис:
$ ssh server10
#30: Еще кое-что…
## установить некоторые другие значения по умолчанию ## alias df='df -H' alias du='du -ch' # top это atop, как vi - vim alias top='atop' ## nfsrestart должен был под root ## ## обновить nfs mount/cache и т.д. для Apache ## alias nfsrestart='sync && sleep 2 && /etc/init.d/httpd stop && umount netapp2:/exports/http && sleep 2 && mount -o rw,sync,rsize=32768,wsize=32768,intr,hard,proto=tcp,fsc natapp2:/exports /http/var/www/html && /etc/init.d/httpd start' ## статус сервера Memcached ## alias mcdstats='/usr/bin/memcached-tool 10.10.27.11:11211 stats' alias mcdshow='/usr/bin/memcached-tool 10.10.27.11:11211 display' ## быстро очистить сервер memcached ## alias flushmcd='echo "flush_all" | nc 10.10.27.11 11211' ## Быстрое удаление активов из Akamai/Amazon cdn ## alias cdndel='/home/scripts/admin/cdn/purge_cdn_cache --profile akamai' alias amzcdndel='/home/scripts/admin/cdn/purge_cdn_cache --profile amazon' ## представьте список URL через файл или стандартный ввод alias cdnmdel='/home/scripts/admin/cdn/purge_cdn_cache --profile akamai --stdin' alias amzcdnmdel='/home/scripts/admin/cdn/purge_cdn_cache --profile amazon --stdin'
Выводы
В статье собрано несколько типов использования псевдонимов *nix bash:
- Установка параметров по умолчанию для команды (например, установить eth0 как параметр по умолчанию для команды ethtool через псевдоним ethtool = ‘ethtool eth0’).
- Исправление опечаток (cd .. будет действовать как cd .. через псевдоним cd .. = ‘cd ..’).
- Минимизация объема скрипта.
- Установка пути по умолчанию для команды, которая существует в нескольких версиях системы (например, GNU/grep находится в /usr/local/bin/grep, а Unix grep находится в /bin/grep. Чтобы использовать GNU grep, применяйте команду alias grep = ‘/usr/local/bin/grep’).
- Добавление сетей безопасности в Unix, делая команды интерактивными и устанавливая параметры по умолчанию (например, rm, mv и другие команды).
- Совместимость путем создания команд для более старых операционных систем, таких как MS-DOS или других Unix-подобных операционных систем (например, alias del = rm).
От редакции
Если вам интересно посещать открытые онлайн-мероприятия по DevOps, Kubernetes, Docker, GitlabCI и др. и задавать вопросы в режиме реального времени, подключайтесь к каналу DevOps by REBRAIN.
*Анонсы мероприятий каждую неделю
Практикумы для специалистов по инфраструктуре и разработчиков — https://rebrainme.com.
Наш Youtube-канал — https://www.youtube.com/channel/UC6uIx64IFKMVmj12gKtSgBQ.
Агентство Fevlake, проектируем и поддерживаем IT-инфраструктуры с 2012 года — https://fevlake.com.
Вам также может понравится
Автор - Юрий Власов
Docker – де-факто стандартный движок контейнеризации, который повсеместно используется для запуска приложения как в окружениях для разработки, так и в публичных\высоконагруженных средах. Подробнее о терминологии можно узнать здесь.
В этой статье я расскажу, как поставить и запустить Docker локально и начать знакомство с...
Автор - Сергей Попов
Привет, друзья. Сегодня я расскажу, как мы боролись со спамом в одной коммерческой организации. Наверняка, вы все знаете, что такое SPAM, но добавлю немного истории.
Слово «спам» имеет интересное происхождение. После Второй мировой войны в США оказалось слишком много мясных консервов от фирмы-производителя SPAM. И для...
тест