Dark_SS 05.04.2011 21:00

Tips & tricksОптимизируем процесс работы в консоли

Возможно, баян.
Чтобы очищать текст до или после курсора используются комбинации клавиш: «Ctrl+K» — удаление текста от текущей позиции курсора до конца строки, а «Ctrl+U» — до начала строки. Ну и наконец, по «Ctrl+C» можно удалить сразу всю строку.
Можно удалять сразу слова: «Ctrl+W» удаляет слово слева от курсора, «Alt+D» — справа. Но удаленные слова еще и помещаются в буфер, последнее удаленное слово можно вставить начиная с текущего положения курсора по комбинации «Ctrl+Y».
Часто в спешке можно набрать 2 символа в не правильной последовательности: в этом случае удобно воспользоваться комбинацией клавиш «Ctrl+T», которая предназначена для замены местами символа до курсора и символа под курсором.

Это и многое другое по ссылке.

Памятка от тов. narical:

CTRL+R - вводишь слово, с которым надо найти команду в истории. Повторные CTRL+R перебирают все команды в истории с этим словом.

CTRL+L - очистка экрана. Я обычно писал набирал clear > для этого.

CTRL+A - альтернатива HOME, CTRL+E - end

CTRL+U - удаление текста от курсора до начала строки, CTRL+K - удаление от курсора до конца строки, CTRL+Y - вставить удаленный предыдущими примерами кусок текста, CTRL+C - удаление всей строки (обычно работает как отмена команды).

CTRL+T - меняет местами символ под курсором и предыдущий набранный (при опечатке вида /dev/dsa вместо /dev/sda).

^^ - нет это не смайлик. После попытки выполнить команду, набранную с ошибкой, строка вида ^ошибка^правильно запустит на выполнение исправленную команду.

# - если вместо набранной команды надо сначала выполнить другую, можно закомментировать строку и нажать <enter>, впоследствии вернуться к команде в истории, раскомментировать и выполнить.

ALT+. - подставляет к текущей команде аргумент предыдущей. Например, чтобы после команды ls <длинный путь> не набирать этот путь для перехода в директорию, можно набрать cd + «Alt+.» + «ENTER»

Добавляем в ~/.inputrc строчки:

"\e
"\e


Теперь для поиска команды в истории достаточно ввести первые буквы и перебирать варианты стрелками вверх/вниз.sudo !! - выполнить предыдущую команду через sudo.

Работу с хистори и настройка окружения (для постоянного использования добавить в .bashrc)

Ведение лога истории с datestamp'ом:
1
export HISTTIMEFORMAT='%F %T '



Занесение команды в .bash_history сразу же, после нажатия enter (а не после завершения сеанса), что весьма удобно при одновременной работе в нескольких сессиях:
PROMPT_COMMAND='history -a;history -n'


Удобная настройка PS1 (чтобы было видно и юзера/хост и желательно дату и время <у меня некоторые сессии висят неделями>)
1
export PS1='\033<00;32m\><`date +%d" "%h" "%Y" "%T`> \u@\h \w\n \$\<\033<00m\> '



Увеличение размера хистори (при активной работе 500 — это очень мало)
1
export HISTSIZE=100500



Говорим башу не заносить в хистори повторяющиеся друг за другом команды:
1
export HISTCONTROL=ignoredups



Отключаем занесение «бесполезных» с точки зрения истории команд:
1
export HISTIGNORE="&:ls:<bf>g:exit:< >*:ssh:history"</bf>



Используем "сокращения" для популярных комманд:
1
2
3
alias u='sudo pacman -Syu'
alias extmonitor='xrandr --output VGA1 --auto --primary && xrandr --rate 72 && xrandr --output LVDS1 --off'
alias intmonitor='xrandr --output LVDS1 --auto --primary && xrandr --output VGA1 --off'



Тэги: bash консоль терминал
+ 8 -
Похожие Поделиться

narical 06.04.2011 00:00 #
А я сначала на хабре прочитал, потом тут заметил.
Ну в по сути - нужно уже краткую и емкую памятку.
А от статьи на хабре я был в восторге.
Dark_SS 06.04.2011 00:24 #
Да, да. Я тоже =)
narical 06.04.2011 01:49 #
Оформил в виде памятки. Публикую под лицензией Creative Commons - Share alike )))
А если серьезно - то можно в топик добавить, особенно если форматирование подправить:

1. CTRL+R - вводишь слово, с которым надо найти команду в истории. Повторные CTRL+R перебирают все команды в истории с этим словом.

2. CTRL+L - очистка экрана. Я обычно писал набирал clear > для этого.

3. CTRL+A - замена HOME, CTRL+E - end

4. CTRL+U - удаление текста от курсора до начала строки, CTRL+K - удаление от курсора до конца строки, CTRL+Y - вставить удаленный предыдущими примерами кусок текста, CTRL+C - удаление всей строки (обычно работает как отмена команды).

5. CTRL+T - меняет местами символ под курсором и предыдущий набранный (при опечатке вида /dev/dsa вместо /dev/sda).

6. ^^ - нет это не смайлик. После попытки выполнить команду, набранную с ошибкой, строка вида ^ошибка^правильно запустит на выполнение исправленную команду.

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

8. ALT+. - подставляет к текущей команде аргумент предыдущей. Например, чтобы после команды ls <длинный путь> не набирать этот путь для перехода в директорию, можно набрать cd + «Alt+.» + «ENTER»

9. Добавляем в ~/.inputrc строчки:

"\e"\e

Теперь для поиска команды в истории достаточно ввести первые буквы и перебирать варианты стрелками вверх/вниз.

10. sudo !! - выполнить предыдущую команду через sudo.

Работу с хистори и настройка окружения (для постоянного использования добавить в .bashrc)

1. Ведение лога истории с datestamp'ом:
export HISTTIMEFORMAT='%F %T '

2. Занесение команды в .bash_history сразу же, после нажатия enter (а не после завершения сеанса), что весьма удобно при одновременной работе в нескольких сессиях:
PROMPT_COMMAND='history -a;history -n'

3. Удобная настройка PS1 (чтобы было видно и юзера/хост и желательно дату и время <у меня некоторые сессии висят неделями>)
export PS1='\033<00;32m\><`date +%d" "%h" "%Y" "%T`> \u@\h \w\n \$\<\033<00m\> '

4. Увеличение размера хистори (при активной работе 500 — это очень мало)
export HISTSIZE=100500

5. Говорим башу не заносить в хистори повторяющиеся друг за другом команды:
export HISTCONTROL=ignoredups

6. Отключаем занесение «бесполезных» с точки зрения истории команд:
export HISTIGNORE="&:ls:g:exit:< >*:ssh:history"

7. Используем "сокращения" для популярных комманд:
alias u='sudo pacman -Syu'
alias extmonitor='xrandr --output VGA1 --auto --primary && xrandr --rate 72 && xrandr --output LVDS1 --off'
alias intmonitor='xrandr --output LVDS1 --auto --primary && xrandr --output VGA1 --off'
Dark_SS 06.04.2011 11:32 #
Будет время, сделаю.
VVS 15.04.2011 14:27 #
Опечатка в PS1, надо:
export PS1='\<\033<00;32m\><`date +%d" "%h" "%Y" "%T`> \u@\h \w\n \$\<\033<00m\> '

Вначале пропущено \<, и выводится кривой символ.
Anrock 15.04.2011 15:50 #
Еще можно юзать !$ - вместо !$ подставиться аргумент предыдущей команды.
Например
ls /длинныйпуть/ - посмотрели что лежит в папке
cp !$/файл /еще куда-то/ - скопировали из первый папки файл.