lwilis 06.06.2009 17:28
Tips & tricks — Полезняшки при работе в bash
Бывает, приходится открывать окно терминала и набивать строки на клавиатуре. Например, пытаешься решить проблему, народ на форуме помогает, - какие строчки нужно добавить в такие-то файлы. Что-то удается скопировать и вставить, иное нужно набрать самостоятельно.Проходит 1 час, второй, и уже решения есть, но нет результата. А спустя время, выясняешь, что где-то букву пропустил, в другом месте пробел не поставил, а иногда целое слово напечатал верно, но не там.
На мой взгляд, такие ситуации возникают чаще всего у человека, который пытается разобраться в одном вопросе, а на него как снежный ком наваливаются пробелы в знаниях из других областей. И одна из таких областей - шелл, то есть shell (в частности bash).
Человек устает постоянной ручной и нудной работы. И пока все удобство командной строки ему недоступно (не буду о причинах) - остается только гадать как это линуксоиды могут любить такое убожество.
Дальше я приведу несколько полезных приемов, которые сам использую постоянно. Все они открытиями не являются, и узнал их либо где-то в инете, либо в документации.
Открываем окно терминала и действуем.
ESC . означает ввести последнее использованное слово. Удобно использовать, когда нужно выполнить команду (ls /foo/bar), а потом захотелось еще и посмотреть файл в каталоге /foo/bar.
^БЫЛО^НУЖНО означает заменить то, что БЫЛО в последней введенной строке на то, что НУЖНО и выполнить новую команду
А еще можно просто ставить коментарии для строки, к которой хочешь вернуться. То есть, допустим, ты набираешь длинную строку, а потом возникает необходимость эту строку запомнить, но не выполнять. Делаем так: нажимаем Ctrl+a (переходим на начало строки), нажимаем # и ENTER. Таким образом строка попала в историю и к ней можно вернуться позже.
!! последняя использованная команда. Удобно, если команду выполнил, но забыл sudo. Делаем sudo !!
Alt+- Alt+u (Зажать "Alt", за ним нажать "-", отпустить кнопки, потом Зажать "Alt", за ним "u") Сделать слово слева от курсора большими буквами. Удобно при выводе значений переменных окружения.
Alt+- Alt-c Сделать слово слева от курсора с большой буквы.
Alt+- Alt-d Удалить слово влево до слеша.
Только нужно помнить, что все эти сочетания клавиш должны добраться до шелла целыми, поэтому если их зохаваит другое приложение (менеджер окон, например) - то шеллу ничего не достанется.
кстати, это сочетание ^R работает в шелле psql и scilab. скорее всего, и во многих других тоже
дык потомучто readline все юзают
В принципе, неплохой рассказик. Новичку действительно довольно тяжело работать с шеллом первое время, и обучение его таким вот трюкам — первое, что должен сделать любой гуру :)
Правда, я бы посоветовал подойти как-то более обобщённо — то есть для начала упомянуть, что в шелле вообще-то есть история — можно юзать Up, Down и Ctrl+R для повторного использования уже использованных команд. Сюда же !! и ^pattern^match. И не забудьте упомянуть про автодополнение по Tab! ;)
Правда, я бы посоветовал подойти как-то более обобщённо — то есть для начала упомянуть, что в шелле вообще-то есть история — можно юзать Up, Down и Ctrl+R для повторного использования уже использованных команд. Сюда же !! и ^pattern^match. И не забудьте упомянуть про автодополнение по Tab! ;)
более обобщенно в оф. документации, не находите?
да про гуру позабавило.
да про гуру позабавило.
более обобщенно в оф. документации, не находите?
Может быть, и так… Но новички же читают welinux, а не документацию :P
остается только гадать как это линуксоиды могут любить такое убожество
Думаю, насчет убожества ты погорячился. Назвать шелл убожеством, а после этого думать, что ты Ъ-линуксоид, по меньшей мере странно.
Для тех же, кого восхитила мощь шелл, вот несколько ссылок
Горячие клавиши bash
Несколько реально полезных bash-уловок
Приёмы работы в коммандной строке *NIX
Фокусы с автодополнением в bash
Использование списка аргументов в bash и zsh в интерактивном режиме
Собрание лучших шпаргалок по Linux
И программирование в bash
Bash by example (eng)
Думаю, насчет убожества ты погорячился. Назвать шелл убожеством, а после этого думать, что ты Ъ-линуксоид, по меньшей мере странно.
Я так понял, что это было сказано с точки зрения не автора, а новичка — то есть автор просто написал то, что думает начинающий, видя шелл.
Забыл написать: спасибо за содержательный комментарий! Не смотря на то, что я полтора месяца назад ушёл с баша на zsh (поклон muhas'у), ссылки почитаю — судя по названиям, должен найти много полезного.
кстати, это сочетание ^R работает в шелле psql и scilab. скорее всего, и во многих других тоже