Pull to refresh

Comments 59

полезный сборник, спасибо. Часть интуитивно знаешь, часть из опыта, но многие сокращения для меня стали открытием.
ну кроме полезных переходов в начала/конец строки, настоящим открытием стало «Ctrl + x; Ctrl + e»: я люблю иногда писать «однострочки» из команд 10, а без редактора это не всегда удобно (или становится неудобно, по мере написания ;). Вот однажды вычитал в мане, что эта моя проблема легко решается. Да и результат можно сразу сохранить в файлик.
Ох какая красота, надо раскрасить и на стенку бабахнуть. Спасибо.
Я пока набирал попробовал раскидать информацию по таблице или в каком-то формате более похожем на cheat-sheet, но для статьи здесь они не очень подошли. Всю статью можно свести к одной-двум картинками подобного вида, на самом деле. Но лучше при этом заранее прочитать более развёрнутое объяснение.
Нет я считаю хорошо у вас вышло, хоть и просто списком, но я не могу представить как это сделать еще лучше, схемой или чем-то.
>Ctrl + x; Ctrl + e
о спасение
как часто писал длинные команды, изменял их, правил… они потом превращались в не читаемый ужас, не влезая в терминал, но отдельно файл со скриптом создавать ещё лень… а вот как просто всё оказалось:)
zsh выводит список дополнений при одиночном нажатии Tab, а при последующих начинает перебирать их.
Это режим редактирования emacs. Существует еще и режим vi.

set -o vi
set -o emacs
Это не совсем правильный режим emacs, в zsh он куда правильней. Например, C-w «вырезает» регион, а не удаляет слово перед курсором и т.д.
!!! Большое спасибо, не знал, что оно уже встроено. Фантастически удобно.
вместо Ctrl+xx всегда можно было использовать Home и End кнопками, кстати.
Вы не верно поняли для чего эта горячая клавиша…
Введите какую-нибудь команду, потом переместите курсор влево на несколько символов, нажмите ^xx (Ctrl+xx), попадете в начало строки, нажмите еще раз ^xx и попадете обратно, где были до этого.
В этом и есть сила ^xx :))
Может кому будет полезно:
Прерывание «текущего выполнения» — аналог Ctrl+C в Cisco:
Ctrl+6
Ctrl+Shift+6
Можно сменить на привычный Ctrl+C командой escape-character 3 на линии vty.
Спасибо, по поводу escape-character буду знать.
Но Ctrl+6 у меня по-умолчанию работает на:
cisco 2600, 7500, 2800, 7200, 7600.
catalyst 3560, 3750G, 3750E.
Так что думаю, можно и без Shift обойтись;)
Теперь я понял, почему пользователи FreeBSD использую zsh =)
UFO landed and left these words here
Спасибо большое. Вот только вопрос: можно ли баш научить по нажатию стрелки вверх перебирать из истории только те команды, начало которых совпадает с тем, что уже было набрано в строке непосредственно перед нажатием стрелки вверх? Так действует ipython и я нахожу это чрезвычайно удобным.
Сделал так:

в .bash_login
if [ -f "$HOME/.inputrc" ] ; then
    export INPUTRC=$HOME/.inputrc
fi


в ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
в убунте лучше читать и править /etc/inputrc кстати говоря.
Хмм… В симуляторе на Cisco IOS Alt+символ просто вводит символ. Попробую в вс на реальной железке, может не посчитали нужным добавить в симулятор. За Ctrl+a и Ctrl+e отдельное спасибо )
Возможно, мой комментарий будет полезен начинающим.

Ctrl + z — suspend'ит текущую задачу (csh, zsh)


Чтобы вернуться к таким задачам, используется команда fg.
Если задач несколько, введите аргумент — число, стоящее в квадратных скобках вывода команды jobs:

root@vpupkin# jobs
[1] Остановлено vim
[2]+ Остановлено nano
[3]- Остановлено less /etc/hosts
root@vpupkin# fg 2


Для двух последних команд можно использовать '+' и '-'.
Остановлено vim
Зачем, зачем переводить шелл? Мне вот приятнее читать английский, чем такую красоту.
Это вывод терминала Ubuntu (bash).
Отвечай я на этот пост с FreeBSD, перевода не последовало бы.

Признаюсь, самому больше нравится английский.
Ну и я тогда ляпну:

Ctrl+\ — убьёт то, что не может быть остановлено по Ctrl+C, например если оно впадает в dead-lock на выходе.
ctrl + \ или ctrl + | посылает программе SIGQUIT и она выходит оставляя core dump. Кроме того, можно использовать сочетание клавиш ctrl + 4, если я правильно понял.

Спасибо за комментарий, я не знал этого сочетания.
Как бы настроить Putty, чтобы он понимал виндовые сочетания клавиш для работы с кареткой? Ctrl+←, Ctrl+→, Ctrl+BckSp, Ctrl+Del

Как бы научить screen прокручивать экран по нажатию клавиши, а не по адовому сочетанию из трех сочетаний (Ctrl+A, [, Ctrl+B)?
для zsh добавить строки ~/.zshrc
#Ctrl+←,
bindkey "^[OD" beginning-of-line
# Ctrl+→
bindkey "^[OC" end-of-line

или для баша — как было выше, в .inputrc
"\eOD": beginning-of-line
"\eOC": end-of-line

насчет Ctrl+BckSp, Ctrl+Del — не могу выловить сканкод, для ctrl+del должно быть действие «удалить от курсора до конца строки» — kill-line
от Ctrl+BckSp — не понял
Подскажите, как забиндить Ctrl+Z. А лучше, как это определять для разных клавиш и сочетаний.

Ctrl+BckSp — удаление последнего слова, тоже интересно.
В винде все привыкли к этому:

Ctrl+← — переместить курсор на одно слово влево;
Ctrl+→ — переместить курсор на одно слово вправо;
Ctrl+BckSp — удалить слово слева от курсора;
Ctrl+Del — удалить слово справа от курсора.

Под словом понимается группа буквенно-цифровых символов, а также подчеркиваний, неразрывных пробелов и, возможно, чего-то еще.
UFO landed and left these words here
UFO landed and left these words here
А есть ли комбинация, чтобы послать задачу в фон, не усыпляя её? А то делать ctrl+z а потом bg как-то не очень…
Тем, кто хочет получить ещё больше экспириенса в работе с шеллом, советую поставить zsh а затем посмотреть grml-zsh-config с сайта дистрибутива grml и man-page zsh-lovers тоже с сайта grml. Там очень много интересных трюков.

Например там есть подстановка по хоткею sudo в начало текущей строки, или, если строка пустая, в последнюю введенную комманду. Или хоткей для перехода в точку после первого слова в строке (для дописывания аргументов, например) и т.п., очень много функций облегчающих работу в шелле. Есть там и функция, которой можно заменить сочетание C-z, используемое для саспенда задачи. В версии grml, если активной задачи нет — выполняется fg.

P.S. zsh самый навороченный shell, afaik
У меня он так тормозил, что пришлось вернуться к bash. Наверно, можно было просто отключить ряд фич, но тогда [для меня] терялся смысл использования zsh.
Огромное спасибо! Добавил все команды в виде комментариев в свой .bashrc. Теперь они всегда под рукой будут. Я как то редко консолью пользуюсь, но зато очень метко :) Поэтому такие шпаргалки необходимы.
Спасибо огромное! Ctrl+x,Ctrl+e вынес мой моск.

От себя добавлю в копилку:

<Esc>+. подставит последний аргумент из предыдущей команды.

Пример:
$ touch /tmp/testfile
$ rm <Esc>+. превратится в rm /tmp/testfile
Кстати в Макоси комбинации вроде Ctrl-A, Ctrl-E работает в любом поле ввода
о_О
Если скомандовать gconftool-2 --set /desktop/gnome/interface/gtk_key_theme Emacs --type string с консоли то в Gtk тоже будет везде, а так же в фаерфокс и хром
ухты, спасибо.
а графическая настройка есть какая-то для этого?
например, это возможно через выход в текстовый редактор (если нужно скопировать и вставить часть команды). Однако по моему опыту, copy/paste редко нужен в консоли. Если что-то нужно сохранить используются переменные и простейшие скрипты для их обработки. Хотя, бывает, иногда проще руками ввести что-то с экрана.
Этим занимается эмулятор терминала. Например, для копирования текста в буфер нужно выделить его мышью, а для вставки — нажать среднюю кнопку.

На самом деле буфера нет и всё происходит при нажатии средней кнопки мыши. При выделении только устанавливается окно-владелец PRIMARY SELECTION, но вам это не интересно. :) Единственное, что нужно помнить — при закрытии окна с выделением, оно теряется. Никакого промежуточного буфера нет.
Кстати Ctrl+S это поиск по истории вперед, но он по умолчанию совпадает с управлением потоком. Добавте команды
stty ixany
stty ixoff -ixon

В .bashrc
Спасибо. Надо распечатать и повесить рядом с монитором.

Офф: нет ли программы дополнения команд/имен файлов под Win? Привык уже к bash, а в Win как будто руки связаны :(
вообще, имена в cmd дополняются так же как в баше. По крайней мере я всегда пользовался табом и это срабатывало.
«Возможности csh, zsh наверняка не меньше башевских, просто я меньше с ними работал.»
zsh самый навороченный по возможностям шел =)
Only those users with full accounts are able to leave comments. Log in, please.