5 апреля 2011 в 16:03

Оптимизируем процесс работы в консоли

*nix*
Все привыкли редактировать текст в текстовых редакторах, блокнотах, веб-формах и т.д. В процессе набора текста мы пользуемся привычными стрелками, кнопками «End» и «Home», более опытные зажимают «Ctrl» и стрелками шагают по словам (что, кстати, не всегда работает). И при переходе на консоль мы ориентируемся на те же самые правила, даже не зная, что bash предлагает очень удобные средства и комбинации клавиш, которые очень упрощают работу и минимизируют количество операций для выполнения задачи. К тому же, в bash есть удобные средства работы с историей, масса различных подстановок и других интересных функций. Самые часто используемые мной и любым опытным администратором я и опишу в этой статье.

Для того, чтобы все, описанное мной, заработало, не нужно ничего до устанавливать, не нужно писать скрипты, конфиги и прочие дополнения: все эти средства работают абсолютно одинаково в большинстве современных интерпретаторах bash, работающих на любой UNIX системе.
Мой педагогический опыт говорит о том, что практика — лучший способ понять, полюбить и привыкнуть к новым функциям, поэтому я не стал рисовать голые таблицы, а сделал повествование, и рекомендую в процессе чтения статьи открыть консоль и пробовать все, чем еще не пользовались, руками.

Операции относительно курсора

По привычке, для перемещения в начало строки используется кнопка «Home», а для перемещения в конец — кнопка «End». Но на сколько удобно тянуться к этим кнопкам при наборе команды? Bash предлагает не отрываться от буквенно-цифровой клавиатуры и использовать комбинации «Ctrl+A» вместо «Home» и «Ctrl+E» вместо «End». Иногда, набрав длинную команду, вспоминаешь, что перед ней нужно было выполнить еще одну: в этом случае оптимальным способом будет переместиться по «Ctrl+A» в начало строки, дописать символ "#" (тем самым закомментировав команду, но оставив ее в истории), и нажав Enter, после чего можно выполнить нужную команду, в истории найти закомментированную команду, убрать символ комментария и выполнить ее.
Чтобы очищать текст до или после курсора используются комбинации клавиш: «Ctrl+K» — удаление текста от текущей позиции курсора до конца строки, а «Ctrl+U» — до начала строки. Ну и наконец, по «Ctrl+C» можно удалить сразу всю строку.
Можно удалять сразу слова: «Ctrl+W» удаляет слово слева от курсора, «Alt+D» — справа. Но удаленные слова еще и помещаются в буфер, последнее удаленное слово можно вставить начиная с текущего положения курсора по комбинации «Ctrl+Y».
Часто в спешке можно набрать 2 символа в не правильной последовательности: в этом случае удобно воспользоваться комбинацией клавиш «Ctrl+T», которая предназначена для замены местами символа до курсора и символа под курсором.

История

Обычно познания подсистем истории bash ограничиваются стрелками вверх и вниз. В работе удобно использовать еще следующие возможности:
  • Восклицательный знак. Вызывает какую-то команду из истории, а сама история выводится в пронумерованном виде на экран по команде history. Например: выполнить пятую команду из истории можно набрав "!5", а пред-предыдущую по "!-2". Предыдущая же команда вызывается по "!!", а первая команда в списке (в обратном порядке), начинающаяся на «ro» — при помощи комбинации "!ro".
  • Переменные и подстановки. Очень часто нужно в новую команду вставить последний аргумент предыдущей. Яркий пример: по команде ls посмотрели содержимое далекого каталога, и требуется в него перейти. Не писать же опять полный путь? Здесь можно использовать подстановку "!$", наследованную из C shell, или родную переменную "$_". Вместо обеих будет подставлен последний аргумент предыдущей команды. Единственный минус — его нельзя будет посмотреть и подредактировать. В этом случае целесообразно использовать комбинацию «Alt+.», которая вставит нужный аргумент в текущее положение курсора, и можно делать с ним что угодно. Стоит так же заметить, что если последний аргумент предыдущей команды представляет собой маску(wildcard), то вместо подстановки "!$" будет использоваться весь текст, соответствующий этой маске, а не последний элемент. Можно так же получать и первый аргумент предыдущей команды, для этого используется подстановка "!^", но на практике это используется реже.
    Опечатку в предыдущей строке можно исправить не копаясь в ней: операция замены "^^" позволяет заменить текст предыдущей команды на новый и выполнить новую команду. Например:

    [vorb@localhost ~]$ ls -l /dev/dsa
    ls: невозможно получить доступ к /dev/dsa: Нет такого файла или каталога
    [vorb@localhost ~]$ ^dsa^sda
    ls -l /dev/sda
    brw-rw---- 1 root disk 8, 0 Апр 5 03:18 /dev/sda


    Здесь ошибочная запись «dsa» прошлой команды заменена на корректную «sda», и новая команда выполнена успешно.

Перемещение по файловой системе

Командой «cd», как и авто дополнением по кнопке «TAB» уже никого не удивишь. Но часто приходится «бегать» по всей файловой системе с необходимостью потом вернуться назад. Здесь пригодится основанный на модели стека механизм bash, который поддерживается командами pushd и popd: pushd выполняет переход в целевой каталог и занесение абсолютного пути предыдущего каталога в стек, а popd — наоборот, выбирает из стека предыдущий путь и переходит в него. Пример:

[vorb@localhost ~]$ pushd /var/cache/urpmi/rpms/
/var/cache/urpmi/rpms ~
[vorb@localhost rpms]$ pushd /etc/urpmi/mediacfg.d/Cooker-2010.0-i586/
/etc/urpmi/mediacfg.d/Cooker-2010.0-i586 /var/cache/urpmi/rpms ~
[vorb@localhost Cooker-2010.0-i586]$ popd
/var/cache/urpmi/rpms ~
[vorb@localhost rpms]$ popd
~
[vorb@localhost ~]$

В этом примере я сначала перешел в каталог с кэшем urpmi, потом в каталог с конфигами urpmi, затем вернулся назад в каталог с кэшем, и домой. Одна из самых распространенных задач, решаемых с использованием этого механизма: перейти в каталог с конфигами, затем в каталог с кэшем, с логами, или чем либо еще, и иметь возможность быстро вернуться назад.
Кстати, команда «cd» тоже имеет свои хитрости: «cd» без параметров сменит каталог на домашний, «cd ~user» — на домашний каталог пользователя user.

В принципе, это все, о чем я хотел рассказать в рамках этой статьи. Конечно, это далеко не все, и, если есть желание развивать знания в этом направлении, рекомендую книгу Джерри Пика, Тима О'Райли и Майка Лукидиса «UNIX: Инструментальные средства». В ней описан не только bash, но и C shell, и ksh, и сколько я ее читаю — всегда нахожу что-то новое для себя.
Успехов!
Дмитрий Щербаков @Vorb
карма
133,2
рейтинг 0,0
Infrastructure engineer
Самое читаемое Администрирование

Комментарии (76)

  • +5
    Автору спасибо — почерпнул новые знания, статью в мемы, а заплюсую завтра — сегодня мана кончилась =)
  • +30
    cd -
    переход в предыщую директорую
    например

    $ pwd
    /usr/local/include/boost
    $ cd
    bogolt@view:~$ cd -
    /usr/local/include/boost

    тут мы из директории /usr/local/include/boost перешли в домашнуюю, а потом с помощью 'cd -' вернулись в предыщую
    • +1
      Точно! Забыл об этом упомянуть :) Спасибо!
    • +3
      ~$ shopt -s autocd
      ~$ /tmp
      cd /tmp
      /tmp$ /etc/init.d
      cd /etc/init.d
      /etc/init.d$ -
      /tmp
      /tmp$ ~
      ~$
  • +28
    Самая полезная фича для меня Ctrl-R — реверсивный поиск. Позволяет найти команду в истории по ее части, и не только запустить заново, но и отредактировать перед этим.
    • +5
      Ага! А все следующие Ctrl-R будут пытаться найти другие совпадения.
      • +7
        Что-то не точно сформулировал свою мысль.
        Все последующие нажатия комбинации Ctrl-R будут пытаться найти другие команды в истории по уже введённому контексту. Т.е. ввели известную нам подстроку и нажимаем Ctrl-R до тех пор, пока не найдём нужную команду.
      • 0
        оо спасибо!
  • 0
    Спасибо, пару удобных комбинаций не знал.
  • +4
    Операции с курсором, кстати — это не Bash, это readline. И ещё он умеет работать в vi-режиме (почти всё поддерживается)

    $ set -o vi

    что намного удобнее может быть для редактирования.
    • +10
      «Удобнее для тех, кто знаком с vi»
      • 0
        Эмс… Почему это? Можно и через этот режим познакомиться с тем, как работается в Vi. Один фиг — надо всякие нажималки магические запоминать. По-умолчанию стоит emacs режим, но вы же не считаете, что он удобнее только для тех, кто знаком с emacs.

        Вот. Так что, попробовать стоит. IMHO, всё же Vi устроен логичнее, да и искать всякими regexp'ами позволяет по истории, что может быть полезнее.
        • 0
          Я то знаю, я его и использую уже давно. Не забывайте что большинство считает что у vi есть всего два режима. И всё же «порог вхождения» у emacs ниже чем у vi\vim =)
          • +3
            О. Вот про порог вхождения не соглашусь. Я в Emacs так и не вошёл, например. Хотя пытался раза три. Уж слишком там много магических последовательностей нужно запоминать. vim как-то в этом плане более интуитивно понятный.
            • 0
              Ну это для Вас. Для большинства новичков которых я видел\знаю vi сложнее. Нажать Ctrl-a же проще и понятнее, чем Esc затем, Shift-a
              • 0
                Ну… Я ж — не уникальная в этом личность. Для многих vim оказывается проще, поэтому я и упомянул про vi-режим readline. Да и потом, я же тоже пытался в Emacs войти с уровня новичка. Но вот почему-то проще оказалось войти в Vim. Хотя, вроде как, формально, действительно проще нажимать ctrl-a, а не esc, shift-a… Но вот почему-то Emacs не пошёл у меня.
                • 0
                  Мы с Вами просто относимся к тем, кому удобнее vi, но, как показывает статистика, нас меньшинство :)
                  • 0
                    Да почему? Вот статистика использования пакетов в Arch Linux

                    www.archlinux.de/?page=FunStatistics

                    Нужно учитывать, что nano и vi там ставятся по умолчанию при инсталляции системы, а вот Vim, Gedit, Emacs уже надо устанавливать руками. Ну… Как бы… Arch, конечно, не mainstream дистрибутив, но всё же.
                    • 0
                      Вот именно что не мейнстрим. Есть куча новичков в *NIX системах, для которых vi не так лёгок в освоении :)
    • 0
      хм. А как пользоваться? Вот я башу сказал set -o vi, а дальше? ниче не поменялось вроде в поведении readline.
      • 0
        Esc для выхода из режима вставки попробуйте
        • 0
          Спасибо!
      • +1
        Ну. Надо же ещё документацию почитать. Возможностей, по идее, не больше, просто пользоваться может быть удобнее. На любителя всё конечно.

        Но, например, вот бывает такое удобство… Допустим, хотим поискать нечто (find) с некими экзотическими ключиками, которые вспоминать лень. Для этого…

        1. Жмём Esc — вошли в командный режим
        2. Пишем /find — это поиск в истории. Жмём enter. Жмём n или N пока не находим нужное вхождение:

        find 'a b c d' -type f -a --newer…

        3. Жмём 0 — попадаем в начало строки. Жмём f' — переходим на первую кавычку, жмём c; — замена всего до следующей кавычки (; — повтор предыдушей команды перемещения, и заменяем путь для поиска:

        find 'some path' -type f -a --newer…

        Самое удобное в vi режиме — это как раз навигация по символам в командной строке. Можно ещё куски копировать. Например, можно было бы жмахнуть y; — и получить путь в 'буфере обмена'. По моим личным ощущениям — это удобнее, чем emacs.
    • 0
      Это просто невообразимо круто! Спасибо тебе добрый человек)
  • +2
    Кстати странно, что всё это отсутствует почти во всех руководствах по баш и учебников по линукс, так же как и большинство горячих клавиш. Я когда только начинал познавать линукс, то далеко не из первой книжки по этой системе узнал о существовании ctrl+alt+f(1-12), что весьма странно, вроде и основы, а в книжках для чайника про это нет.
  • +3
    Ctrl+R — поиск по истории. начинаешь печатать, а консолька сама подставляет подходящие команды.
    • +1
      чёрт опередиле. :(
      • +3
        Esc+. — подстановка в команду последнего аргумента предыдущей команды. Дьявольски удобно.
  • 0
    Спасибо, забрал в избранное
  • +5
    > Майка Лукидиса
    Уставшими глазами прочел «Майка Линуксоида» :)

    А за статью большое спасибо, в избранное!
  • +5
    alias-ы тоже полезны

    alias ..="cd .."
    alias ...="cd ../.."
    alias ....="cd ../../.."
    alias .....="cd ../../../.."
    alias psx="ps -auxw | grep $1"
    ...
    • 0
      А у меня вот такое лежит в алиасах.

      function kkill()
      {
      kill $(pgrep $1)
      }

      Если нужно прибить процесс, просто жму k+k+[Tab] и вписываю имя неугодного процесса.
      ps -A тоже на алиасе, для удобства.
      • 0
        killall
        • 0
          ой, не совсем точно описал! k+k+[Tab] и вписываю фрагмент из имени.
          Предположим, мы занимались до этого рукоблудием и играли в «Сапера». Для его умерщвления достаточно выполнить kkill mine.
          Мне так удобнее, да и проще клацнуть два «k» с табом, чем k+i+l+l+a+[Tab]… Но, это дело вкуса.
      • +3
        man pkill
    • +1
      shopt -s autocd

      :-)
  • +2
    ещё вспомнил в копилку: Ctrl+L очищает экран.
    • +1
      Предпочитаю использовать команду 'reset' (это не перезагрузка, просто сброс консоли). Помогает, когда шеллу сносит крышу от кривых esc-последовательностей. Заодно сбрасывает весь буфер, в то время как после Ctrl+L можно тупо проскроллить вверх и увидеть всё выше. (И зачем тогда чистить экран?)
      • +1
        Ну, очистить экран чтобы вся выведенная на нём до этого информация не отвлекала от работы.
  • +13
    А вот фича, которую я люблю даже больше CTRL-R:

    $ cat .inputrc
    "\e[A": history-search-backward
    "\e[B": history-search-forward


    А теперь наберите в консоли:

    $ cat

    И курсором вверх-вниз для показа последних комманд, начинающихся на cat(или что угодно другое).
    • 0
      согласен, это куда полезнее зачастую :)
  • +2
    'man bash' вам в помощь!

    в главе Readline Command Names приведен полный список команд.

    мой хит-парад — C-u, C-w, C-y, M-#
  • +8
    zsh попробуйте — оч. много интерактивных приятностей
    • +1
      И отсутствие привычного readline. Поначалу напрягает.
    • +2
      Я удаленно администрирую больше 10 юниксовых серверов, мне в принципе будет неудобно метаться между разными шеллами, запоминать кучу комбинаций клавиш и т.д. На всех моих серверах по умолчанию идет bash, поэтому все описанное мной здесь работает куда бы я не залогинился (ну кроме одной машиной с AIX, там Korn shell).
      А zsh это, конечно, очень хорошо, но дальше домашней машины и ноута он не выходит.
      • +1
        Согласен полностью. Но ещё более согласен если не только вы их администрите. На серверах и вообще шаредных компах в руте используем bash почти в голом виде, с минимумом алиасов. И вим гол как сокол. В таких вещах чем стандартнее тем лучше (про судо знаю, но у нас всё равно рут для админов — причины есть). А в скриптах, конечно, первой строкой — банг-баш.
  • –3
    man bash
  • +15
    Еще к удобствам можно отнести работу с хистори и настройку окружения:
    1. Ведение лога истории с datestamp'ом:
    export HISTTIMEFORMAT='%F %T '
    2. Занесение команды в .bash_history сразу же, после нажатия enter (а не после завершения сеанса), что весьма удобно при одновременной работе в нескольких сессиях:
    PROMPT_COMMAND='history -a;history -n'
    3. Удобная настройка PS1 (чтобы было видно и юзера/хост и желательно дату и время [у меня некоторые сессии висят неделями])
    export PS1='\033[00;32m\][`date +%d" "%h" "%Y" "%T`] \u@\h \w\n \$\[\033[00m\] '
    4. Увеличение размера хистори (при активной работе 500 — это очень мало)
    export HISTSIZE=100500
    5. Говорим башу не заносить в хистори повторяющиеся друг за другом команды:
    export HISTCONTROL=ignoredups
    6. Отключаем занесение «бесполезных» с точки зрения истории команд:
    export HISTIGNORE="&:ls:[bf]g:exit:[ ]*:ssh:history"
    7. Не забываем про bash_completition (который предварительно надо не забыть подключить):
    if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
    fi
    — 8. $ ls some-file
    $ cp !$ !$.back
    ( !$ — заменяется на последний аргумент [в данном случае some-file] )
    9. фича только для bash 4 и выше (в 3, емнип, не работает)
    shopt -s globstar
    и echo ** будет практически равносилен find.
    Вроде все, что вспомнил (:
    • 0
      Еще нравится:
      cp /etc/very/long/path/{filename.txt,newname.txt}

      • 0
        Эх, заранее отправилось. Продолжу:

        cp /etc/very/long/path/filename.txt{,.bak} # равносильно cp /etc/very/long/path/filename.txt /etc/very/long/path/filename.txt.bak
        mv /etc/very/long/path/filename.txt{,.bak} # равносильно mv /etc/very/long/path/filename.txt /etc/very/long/path/filename.txt.bak
  • 0
    Хоть по сути к bash'у это относится лишь косвенно, но я бы ещё упомянул о каких-нибудь сторонних утилитах, упрощающих работу в консоли. К примеру screen. Очень удобно держать в консоли несколько подписанных вкладок и перемещаться по ним по хоткеям (Ctrl + RightArrow/LeftArrow, например). У меня всегда открыто 5 вкладок, которыми активно пользуюсь.
  • +4
    такие элементарные вещи.
    очень часто забываешь про них, и половину из всего этого не знал. спасибо что научили и освежили память.
    выполнение предыдущец команды из под рута: sudo!!!
    поиск файла в система: locate file.name (предварительно совершив updatedb)
  • +1
    А как же божественные Ctrl-p\n? Это куда удобнее чем тянуться к стрелочкам.

  • +1
    Как Ctrl-A мнемонически соотносится со словом Home?
    • 0
      это комбинации клавиш из емакса. Мнемоника там не причем
      • 0
        круто, а запоминать как?
        • +1
          буква А — начало алфавита — начало строки.
          • +3
            буква E в Ctrl+E, — видимо, конец алфавита? ;) Всё-таки неинтуитивные шорткаты.
        • НЛО прилетело и опубликовало эту надпись здесь
  • –2
    alias pingy=ping ya.ru
    alias tracy=traceroute ya.ru

    Если провайдеру не доверяете.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    То, что работает во всех шеллах, а не только в bash, для временного захода в какой-то каталог и возврата обратно: запустить ещё один экземпляр оболочки и там сделать всё необходимое.
    Ниженаписанное делалось в FreeBSD в csh.
    [/usr/local/etc/rc.d] 23:53 kibab@kibab-nb%csh
    [/usr/local/etc/rc.d] 23:53 kibab@kibab-nb%cd /etc/
    [/etc] 23:54 kibab@kibab-nb%grep -r someCrappyJob rc.conf
    [/etc] 23:54 kibab@kibab-nb%exit
    [/usr/local/etc/rc.d] 23:54 kibab@kibab-nb%


    Кстати, в данном случае я не набирал «exit», а просто нажал Ctrl-D: конец потока стандартного ввода, что завершает шелл.

    Мой пример можно было бы сделать ещё и вот так:
    [/usr/local/etc/rc.d] 23:57 kibab@kibab-nb%(cd /etc/ && grep someCrappyJob rc.conf)
    [/usr/local/etc/rc.d] 23:57 kibab@kibab-nb%

    … но это уже другая история :-) Собсна, скобки — это шорткат для запуска дочернего шелла и команды в нём.
    • +1
      Вот с переменными только проблемы у незнающих возникнут при использовании подшеллов. Что-то типа
      $ (A=1); echo $A
      может вызвать как минимум удивление (:

      Да далеко не всегда нужны подшеллы. Команды можно группировать фигурными скобками {}:
      $ [ $(($RANDOM%2)) -eq 0 ] && { echo 'Even'; echo 'It works!'; } || { echo 'Odd'; echo 'It doesnt work!'; }
  • +1
    ничего нового, всё уже есть на хабре, и даже не особо не разбросано по отдельным постам.
  • +12
    Оформил в виде памятки:
    1. CTRL+R — вводишь слово, с которым надо найти команду в истории. Повторные CTRL+R перебирают все команды в истории с этим словом.
    2. CTRL+L — очистка экрана. Я обычно писал набирал clear [enter]> для этого.
    3. CTRL+A — замена HOME, CTRL+E — end
    4. CTRL+U — удаление текста от курсора до начала строки, CTRL+K — удаление от курсора до конца строки, CTRL+Y — вставить удаленный предыдущими примерами кусок текста, CTRL+C — удаление всей строки (обычно работает как отмена команды).
    5. CTRL+T — меняет местами символ под курсором и предыдущий набранный (при опечатке вида /dev/dsa вместо /dev/sda)
    6. ^^ — нет это не смайлик. После попытки выполнить команду, набранную с ошибкой, строка вида ^ошибка^правильно запустит на выполнение исправленную команду.
    7. # — если вместо набранной команды надо сначала выполнить другую, можно закомментировать строку и нажать [enter], впоследствии вернуться к команде в истории, раскомментировать и выполнить.
    8. ALT+. — подставляет к текущей команде аргумент предыдущей. Например, чтобы после команды ls [длинный путь] не набирать этот путь для перехода в директорию, можно набрать cd + «Alt+.» + «ENTER»
    9. Добавляем в ~/.inputrc строчки:
      "\e[A": history-search-backward
      "\e[B": history-search-forward

      Теперь для поиска команды в истории достаточно ввести первые буквы и перебирать варианты стрелками вверх/вниз.
    10. sudo !! — выполнить предыдущую команду через sudo.


    Работу с хистори и настройка окружения (для постоянного использования добавить в .bashrc)

    1. Ведение лога истории с datestamp'ом:
    export HISTTIMEFORMAT='%F %T '

    2. Занесение команды в .bash_history сразу же, после нажатия enter (а не после завершения сеанса), что весьма удобно при одновременной работе в нескольких сессиях:
    PROMPT_COMMAND='history -a;history -n'

    3. Удобная настройка PS1 (чтобы было видно и юзера/хост и желательно дату и время [у меня некоторые сессии висят неделями])
    export PS1='\033[00;32m\][`date +%d" "%h" "%Y" "%T`] \u@\h \w\n \$\[\033[00m\] '

    4. Увеличение размера хистори (при активной работе 500 — это очень мало)
    export HISTSIZE=100500

    5. Говорим башу не заносить в хистори повторяющиеся друг за другом команды:
    export HISTCONTROL=ignoredups

    6. Отключаем занесение «бесполезных» с точки зрения истории команд:
    export HISTIGNORE="&:ls:[bf]g:exit:[ ]*:ssh:history"

    7. Используем «сокращения» для популярных комманд:
    alias u='sudo pacman -Syu'
    alias extmonitor='xrandr --output VGA1 --auto --primary && xrandr --rate 72 && xrandr --output LVDS1 --off'
    alias intmonitor='xrandr --output LVDS1 --auto --primary && xrandr --output VGA1 --off'
  • +2
    А подскажите, для виндовых «мигрантов», как из консоли открыть файл в ассоциированной программе. В винде было удобно, набираешь file.pdf и все. А тут как?

    Ubuntu 10.04 + Gnome, если это важно.
    • +1
      $ xdg-open filename
      • +3
        Можно дописать в .bashrc
        alias x=«xdg-open»

        Получаем
        $ x %f
        чтобы вызвать файл под курсором в mc
        $ x.
        чтобы открыть папку, в которой находишься
        • +1
          Спасибо, так и сделал. Только в .bashrc в комментах советуют алиасы кидать в .bash_aliases, добавил туда.
  • +1
    Топик добавления комментариев в избранное [x]
  • +1
    Делал pdf-шпаргалку с клавиатурными сочетаниями bash. Страница на github'e.
    • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Вот если бы еще все трюки из комментариев (допустим, из заплюсованных) скопировать в тело статьи…
  • 0
    многие сочетания клавиш, например Ctrl+A и Ctrl+E не работают в screen по умолчанию, т.к. перекрываются дефолтные сочетаниями вроде Ctrl+A+A.
    Возможно ли включить стандартные сочетания в screen?
    • 0
      man screen: C-a a.
      Т.е. Ctrl-a,a пошлет в консоль Ctrl-a.

      по опции -e можно указать иную управляющую escape последовательность.

      Ctrl-e у меня в screen работает.
  • 0
    Странно что не указали Alt-f и Alt-b — движение курсора вправо/влево по словам.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.