пятница, 22 марта 2013 г.

Облегчаем себе жизнь в консоли

Вводная статья про Dojo пишется тяжело, собственно, всегда самое сложно это начать, поэтому позволю себе в очередной раз немного отвлечься.

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



  

Горячие клавиши

Комбинация Действие
Ctrl+L Очистка экрана.
Ctrl+R Позволяет начать вводить команды с параллельным поиском подходящей в истории.
Ctrl+J Выход из предыдущего режима с подставлением в консоль найденной команды. При выходе по Ctrl+C найденная команда не запомнится.
Ctrl+A В начало строки.
Ctrl+E В конец строки.
# Закомментировать командую. Если поставить диез в начале команды, то она не будет выполнена, но сохранится и к ней можно будет вернутся.
Ctrl+K Удаление текста начиная с текущей позиции курсора и до конца строки.
Ctrl+U Аналогично, но не до конца, а до начала.
Ctrl+W Удаляет слово слева от курсора. Удаленное слово запоминается.
Alt+D Аналогично, но для правого слова.
Ctrl+Y Вставляет слово запомненное в двух предыдущих случаях.
Ctrl+T Меняет местами символ до курсора и символа после курсора.
!! Выполняет последнюю команду.
!число

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

Данную команду следует использовать крайне осторожно. Лучше сначала уточнить номер нужной команды с помощью конструкции history | grep команду вы запускаете пока не запустите.

!буквы Начало команды. Будет вызвана первая подходящая команда из хистори. Удобно, например, когда настраиваешь apache и его приходится часто перезапускать.
Alt+. Подставляет последний аргумент предыдущей команды.
!^ Поставляет первый аргумент.
^^ Позволяет заменить текст предыдущей команды на новый и выполнить её. Например: ls -l /dev/dsa ~ ^dsa^sda.

Alias

Linux предоставляет возможность задавать короткие псевдонимы для длинных команд. Теоретически можно задавать псевдонимы целым скриптам, но, на мой взгляд, это моветон.

Посмотреть заданные в текущий момент псевдонимы можно с помощью команды alias. Например, в моей openSUSE 12.2 по умолчанию их было задано примерно два десятка. Наиболее интересные из них:

alias ..='cd ..'
alias ...='cd ../..'
alias cd..='cd ..'
alias dir='ls -l'
alias l='ls -alF'
alias la='ls -la'
alias md='mkdir -p'
alias rd='rmdir'

Значение конкретного псевдонима можно посмотреть с помощью команды alias псевдоним.

Вы можете задать собственные временные псевдонимы с помощью команды alias myalias=’полная_команда’. Например, можно сделать быстрый переход в директорию Apache: alias cdsrv=’cd /srv/www/htdocs’. Если у вас есть несколько основных директорий по которым вы часто перемещаетесь, то, таким образом, можно завести по псевдониму на каждую и быстро между ними переключатся.

Для создания постоянного псевдонима его необходимо указать в специальном файле. Синтаксис объявления абсолютно такой же. Обычно он хранится в домашней директории пользователя и называется .bashrc или .bash_aliases. Но для root это оказалось не так. По крайней мере в openSUSE 12.2. Файл для рутовых alias обнаружился по адресу: /etc/profile.d/alias.bash. После сохранения псевдонимы нужно переинитить. Это автоматически будет сделано при смене сеанса, но также можно сделать это вручную с помощью команды . .bashrc.

Удалить все псевдонимы для текущего сеанса можно с помощью команды unalias. Но после смены сеанса все псевдонимы будут заново подключены, поэтому для полного удаления вам необходимо удалить или закомментировать псевдонимы в файлах.

А какими фишкам и хоткеями консоли пользуетесь вы?

А где находится файл псевдонимов для root в вашей ОС?