По мотивам 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 символов.
Пожалуй, на сегодня хватит.
Возможно, вас заинтересует:
- linux-2.6.25.10 — новость одной строкой cd /usr/src && wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/incr/patch-2.6.25.9-10.bz2 && cd linux &&...
- Горячие клавиши bash Я решил потрясти интернет на предмет горячих клавиш shell...
- Волшебные alias’ы Продолжаю тему «оптимизации работы пальцами» в bash. До сих пор...
- Чёртова дюжина способов «замочить пингвина» Предлагаю подборочку разных команд, которые гарантированно положат вашу Linux-систему....
- Не ошибается-2 «Ви-таки будете смеяться!»… Но, как выяснилось, тот парень в...
- Комиксы bash.org.ru Вообще, я не являюсь поклонником всяких комиксов, аниме, манга...

Классные команды, фмемориз. Спасибо.
где команда-то для пароля?
я тут в man bash вычитал, что можно нажать Esc-{ и в командную строку автоматом подставится сокращенный список файлов. Например, если у нас имеется три файла test1, test2, test3, то пишем test, жмём Esc+Shift+[ (получается как раз Esc {) и в командную строку подставляется test{1,2,3}.
p.s. подписался на твой блог, пиши и дальше в том же духе
Оопс. Надо поправить!
Esc-{ – просто замечательно! Прочувствовал!
А команду для пароля поправил. Как-то странно Вордпресс разметку отображает!
Он и сейчас странно отображает… Надо угловые скобки писать в виде < и >, а кавычки в виде &39; и "
За скобки спасибо! Теперь думаю о том, что год из последних двух можно было сэкономить
Идея с {,.old} {.old,} очень понравилась. Спасибо!
Ух ты! Удивили! Это действительно полезная тема! Особенно {,.old} {.old,}
Толково и полезно!
Многого не знал.
Я пользую !$ для последнего аргумента, так удобнее
Спасибо, в хозяйстве пригодится.
Генератор паролей лучше смотрится так.
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