Полезные alias Linux

В категории Статьи от Август 2nd, 2016. Автор admin

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

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

$ alias

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

alias beep='echo -en "\007"'
alias cd..='cd ..'
alias dir='ls -l'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'

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

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

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

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

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

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

$ alias c='clear'

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

$ с

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

$ unalias c

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

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

$ vi ~/.bashrc

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

alias c='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.

Больше »

Тэги: , , ,

Запуск скриптов в фоновом режиме

В категории Без рубрики, Статьи от Март 14th, 2015. Автор admin

Для возможности выполнения bash-подобных скриптов в Linux в с целом и в OpenWrt-версии оболочки busybox в частности существует легкая в применении инфраструктура: необходимо лишь добавить к строке запускаемого скрипта символ “&“. Но есть и менее очевидные частности.

Реализация простого запуска некоторого скрипта /srv/tools/script.sh в фоне:

# /srv/tools/script.sh &

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

Для запуска скрипта без связи с сессией пользователя следует использовать утилиту nohup:

# nohup /srv/tools/script.sh &

В этом случае запущенный скрипт останется работать даже при отключении от сервера, но весь выводимый скриптом текст будет записываться в файл nohup.log, создаваемый в текущем каталоге, о чем nohup непосредственно и информирует сообщением nohup: appending output to nohup.out. При этом данный файл будет создан даже в том случае, если у скрипта никогда не будет никакого вывода.

Чтобы nohup.log никогда не создавался, перенаправляем stdout скрипта в /dev/null:

nohup /srv/tools/netstat.sh >/dev/null &

Все, теперь лишних файлов более не создается и скрипт останется работать при отключении от консоли.

Тэги: ,

bash символы «;» и «&», «&&» и «||»

В категории Подсказки от Сентябрь 14th, 2014. Автор admin

Выполнить обе команды:

команда1; команда2 # последовательное выполнение
команда1& команда2 # параллельное выполнение

Символ «;» используется для последовательного выполнения нескольких команд: после завершения одной команды начинается выполение другой. Если вместо «;» используется «&», то команда, сопровождаемая этим знаком, выполняется в фоновом режиме, а выполнение следующей команды начинается немедленно, и, таким образом, две или более команд выполняются параллельно.

Выполнить команду1, и если она выполнилась удачно, выполнить команду2:

команда1 && команда2

Выполнить команду1, и если она выполнилась неудачно, выполнить команду2:

команда1 || команда2

Как известно, каждая команда возвращает некоторый код завершения, по которому можно судить об «успешности» выполнения. Если на командную строку смотреть как на логическое выражение, значение которого требуется вычислить, где отдельные команды — переменные, принимающие значение «истина» или «ложь», то знаки «&&» и «||» можно рассматривать как операции логического И и ИЛИ. Отсюда понятна и логика действия этих связок в командой строке: если первая из двух команд, соединенных связкой И, возвращает «ложь», то результат всего выражения — заведомо «ложь», поэтому вторая команда не выполняется; аналогично, если первая из двух команд, соединенных связкой ИЛИ, первая выполнилась успешно, то уже известно, что результат всего выражения — «истина», и вторая команда не выполняется.

Тэги: