13.09.2013 11:31
Occul
 
добавил в .bashrc
Код:
shopt -s histappend
export PROMPT_COMMAND="history -a"
теперь очень удобно, что история команд пишется сразу, а не только при выходе из bash. Т.е. работаете в одном окне bash, открыли второе, стрелку вверх - и предыдущая команда соседнего окна перед вами.

Код:
export PROMPT_COMMAND="echo -ne '\a'"
очень удобная добавка для тех, кто работает через SSH. Суть ее в том, что при выходе в командную строку раздается beep, который можно подсветить в разных местах, включить мигание окна Putty, например.

Быстрый поиск команды - Ctrl-R
Нажимаете эту комбинацию и пишете часть команды, которую хотите найти. Повторное нажатие - продолжение поиска.

Код:
export HISTCONTROL="ignoredups"
удаление дубликатов из истории.

Код:
export HISTIGNORE="&:ls:[bf]g:exit"
добавляйте, если вы не хотите, чтобы в историю попадали вызовы каких-то "неинформативных" команд, их логирование можно запретить.
После этой команды в хистори не будут писаться команды &, ls, bg, fg, exit. Можно дописать и свои, через двоеточие, можно использовать шаблоны.

Код:
shopt -s cmdhist
не разрывать многострочные команды
13.09.2013 11:59
Occul
 
Если набрать
Код:
cd -
то вы попадете в директорию, где только что были (как кнопка возврата на предыдущий канал ТВ дистанционного управления)

Интересная фича, если нажать ESC и сразу за тем - ".", то в строку подставится последний использованный объект. Например, первой строкой вы набрали
ls /home/oracle/network/log
во второй строке наберите
rm, ESC, .
получите
rm /home/oracle/network/log
13.09.2013 12:06
Occul
 
Продолжая тему настройки .bashrc
Если вписать туда
Код:
export HISTTIMEFORMAT='%h %d %H:%M:%S '
то в истории команд будет записано и время выполнения, красиво выводящееся в команде history
13.09.2013 15:41
Occul
 
Горячие клавиши bash

Цитата:
Ctrl + a Возвращает курсор в начало текущей строки
Ctrl + e Курсор в конец текущей строки
Ctrl + l Очищает экран от текста, аналог команды clear
Ctrl + h Работает как и Backspace (удаление предыдущего символа)
Ctrl + r Поиск по набранным ранее командам
Ctrl + c Убить выполняемый процесс
Ctrl + d Выйти из текущей оболочки (shell)
Ctrl + z Перевод выполняемой задачи в фоновый режим. Команда fg возвращает задачу обратно.
Ctrl + w Удаляет слово перед курсором
Ctrl + u Вырезать текст (в буфер) от начала строки и до позиции курсора. Если курсор в конце строки - убирает в буфер всю строка целиком.
Ctrl + k Вырезать текст (в буфер) от позиции курсора и до конца строки. Если курсор в начале строки - убирает в буфер всю строка целиком.
Ctrl + y Вставить строку из буфера, вырезанную командой Ctrl + k или Ctrl + u
Ctrl + t Меняет два символа перед курсором местами (удобно при опечатках)
Alt + t Меняет два слова перед курсором местами
Ctrl + xx Переносит курсор к началу строки от текущей позиции, и обратно
Alt + f Сдвигает курсор на одно слово вперед на текущей строке
Alt + b Сдвигает курсор на одно слово назад на текущей строке
Alt + . Добавляет последний аргумент предыдущей команды (пример: mkdir temp, затем cd Alt+.)
Alt + / Попытаться дополнить до имени файла
Alt + c Заменить букву под курсором на заглавную
Alt + l Заменить букву под курсором на строчную
Tab Автодополнение команд и имен файлов
Tab Tab Показать доступные варианты автодополнения
13.09.2013 15:43
Occul
 
вот поподробнее
Цитата:
Bash Keyboard Shortcuts

Moving the cursor:

Ctrl + a Go to the beginning of the line (Home)
Ctrl + e Go to the End of the line (End)
Ctrl + p Previous command (Up arrow)
Ctrl + n Next command (Down arrow)
Alt + b Back (left) one word
Alt + f Forward (right) one word
Ctrl + f Forward one character
Ctrl + b Backward one character
Ctrl + xx Toggle between the start of line and current cursor position

Editing:

Ctrl + L Clear the Screen, similar to the clear command
Ctrl + u Cut/delete the line before the cursor position.

Alt + Del Delete the Word before the cursor.
Alt + d Delete the Word after the cursor.
Ctrl + d Delete character under the cursor
Ctrl + h Delete character before the cursor (Backspace)
Ctrl + w Cut the Word before the cursor to the clipboard.
Ctrl + k Cut the Line after the cursor to the clipboard.
Alt + t Swap current word with previous
Ctrl + t Swap the last two characters before the cursor (typo).
Esc + t Swap the last two words before the cursor.
ctrl + y Paste the last thing to be cut (yank)
Alt + u UPPER capitalize every character from the cursor to the end of the current word.
Alt + l Lower the case of every character from the cursor to the end of the current word.
Alt + c Capitalize the character under the cursor and move to the end of the word.
Alt + r Cancel the changes and put back the line as it was in the history (revert).
ctrl + _ Undo

TAB Tab completion for file/directory names

For example, to move to a directory 'sample1'; Type cd sam ; then press TAB and ENTER.
type just enough characters to uniquely identify the directory you wish to open.

History:

Ctrl + r Recall the last command including the specified character(s)
(equivalent to : vim ~/.bash_history).
Ctrl + p Previous command in history (i.e. walk back through the command history)
Ctrl + n Next command in history (i.e. walk forward through the command history)

Ctrl + s Go back to the next most recent command.
(beware to not execute it from a terminal because this will also launch its XOFF).
Ctrl + o Execute the command found via Ctrl+r or Ctrl+s
Ctrl + g Escape from history searching mode
!! Repeat last command
!abc Run last command starting with abc
!abc:p Print last command starting with abc
!$ Last argument of previous command
ALT + . Last argument of previous command
!* All arguments of previous command
^abc^def Run previous command, replacing abc with def

Process control:

Ctrl + C Interrupt/Kill whatever you are running (SIGINT)
Ctrl + l Clear the screen
Ctrl + s Stop output to the screen (for long running verbose commands)
Ctrl + q Allow output to the screen (if previously stopped using command above)
Ctrl + D Send an EOF marker, unless disabled by an option, this will close the current shell (EXIT)
Ctrl + Z Send the signal SIGTSTP to the current task, which suspends it.
To return to it later enter fg 'process name' (foreground).
13.09.2013 15:53
Occul
 
И еще до кучи интересная особенность
Код:
cp config.cfg{,-old}
копирует config.cfg в config.cfg-old
13.09.2013 15:56
Occul
 
Код:
$ ehco foo bar baz
bash: ehco: command not found
$ ^ehco^echo
foo bar baz
т.е. если начать с ^ строку, то произойдет замена и выполнение команды
13.09.2013 15:57
Occul
 
Если требуется быстро переименовать файлы (по идее для полезных команд тема)
Код:
$ ls
this_has_text_to_find_1.txt
this_has_text_to_find_2.txt
this_has_text_to_find_3.txt
this_has_text_to_find_4.txt

$ rename 's/text_to_find/been_renamed/' *.txt
$ ls
this_has_been_renamed_1.txt
this_has_been_renamed_2.txt
this_has_been_renamed_3.txt
this_has_been_renamed_4.txt
13.09.2013 16:25
Occul
 
Код:
mv file-with-long-name-typed-with-tab-completion.txt old-!#^
переименует файл в имя с префиксом "old-"
13.09.2013 16:48
Occul
 
Код:
renamer() {
   local fn
   for fn in *."$1"; do
     mv "$fn" "${fn%.*}"."$2"
   done
}
быстрое переименование расширений, например renamer doc txt
Часовой пояс GMT +3, время: 15:59.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.