По мотивам 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 символов.
Пожалуй, на сегодня хватит.
Классные команды, фмемориз. Спасибо.
где команда-то для пароля? 🙂
я тут в man bash вычитал, что можно нажать Esc-{ и в командную строку автоматом подставится сокращенный список файлов. Например, если у нас имеется три файла test1, test2, test3, то пишем test, жмём Esc+Shift+[ (получается как раз Esc {) и в командную строку подставляется test{1,2,3}.
p.s. подписался на твой блог, пиши и дальше в том же духе 🙂
Оопс. Надо поправить!
Esc-{ – просто замечательно! Прочувствовал!
А команду для пароля поправил. Как-то странно Вордпресс разметку отображает!
Он и сейчас странно отображает… Надо угловые скобки писать в виде < и >, а кавычки в виде &39; и "
За скобки спасибо! Теперь думаю о том, что год из последних двух можно было сэкономить 🙂
Идея с {,.old} {.old,} очень понравилась. Спасибо!
Ух ты! Удивили! Это действительно полезная тема! Особенно {,.old} {.old,} 🙂
Толково и полезно!
Многого не знал.
Я пользую !$ для последнего аргумента, так удобнее
Спасибо, в хозяйстве пригодится.
Уведомление: Волшебные alias’ы | Flycat.Info | КОТорый летает сам по себе...
Генератор паролей лучше смотрится так.
echo $(tr -dc A-Za-z0-9_ < /dev/urandom | head -c8)
К тому-же в скрипт можно вставить:
PWD=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c8)
или
TEMPFILE=”/tmp/$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c8).tmp”
или
TEMPFILE=”/tmp/$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c8).$USER.$$.tmp”
c именем пользователя и PID