Несколько реально полезных bash-уловок

По мотивам http://www.shell-fu.org/ . Несколько интересных вещей:

  • Избавьтесь от повторения внутри команды. Вот, например, надо зарезервировать файл /usr/src/linux/arch/i385/boot/bzImage в /usr/src/linux/arch/i385/boot/bzImage.old (пример довольно-таки “учебный”). Даже с учётом автодополнения по Tab набор команды cp /usr/src/linux/arch/i385/boot/bzImage /usr/src/linux/arch/i385/boot/bzImage.old — достаточно нуден. Куда проще написать cp /usr/src/linux/arch/i385/boot/bzImage{,.old}. Соответственно, для возврата — cp /usr/src/linux/arch/i385/boot/bzImage{.old,}
  • Избавьтесь от повторения в цепочке команд. В набираемой команде можно использовать аргументы предыдущей: вместо первого просто написать !:1 , вместо второго — !:2 , вместо последнего — !:$ . А можно и “одним махом”: !* — сразу все. Обычно так и пишут не заморачиваясь, особенное, если аргумент всего один: !* ведь проще набрать, чем !:1
  • И ещё о повторах. Когда нужно несколько раз “прогрепить” несколько раз один файл по разным ключевым словам, имеет смысл писать команду grep “наоборот”: — тогда нажав стрелку вверх, можно сразу править ключевое слово.
  • Забытое sudo. Если набрали команду, а она “ругнулась” на права и вы вспомнили, что надо её выполнить через sudo, достаточно набрать sudo !! — команда подставится сама.
  • Несколько команд в одну строку. Можно написать несколко команд в одну строку. Причём, если разделить их && — следующая будет выполняться только в случае успешного завершения предыдущей. А если разделить ; — в любом случае.
  • Несколько вложенных каталогов. Для создания нескольких вложенных каталогов вовсе необязательно писать mkdir asd ; mkdir asd/ghjk ; mkdir asd/ghjk/qwer. Можно сразу написать mkdir -p asd/ghjk/qwer
  • Замечательные клавиши. Ctrl-U — вырезает (в “буфер обмена”) всё от курсора до начала строки, Ctrl-W — вырезает (в “буфер обмена”) одно слово влево, Ctrl-Y — вставляет из “буфера обмена”, Ctrl-A — перейти в начало строки, Ctrl-E — перейти в конец строки. “Буфер обмена” — свой собственный, ни с буфером обмена X, ни, тем более, с Windows через SSH ничего общего не имеет.
  • Генератор паролей в одну строку. Команда </dev/urandom tr -dc A-Za-z0-9_ | head -c8 ; echo создаст вполне надёжный пароль из 8 символов.

Leave a comment

Please be polite and on topic. Your e-mail will never be published.

You must be logged in to post a comment.