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

    Все привыкли редактировать текст в текстовых редакторах, блокнотах, веб-формах и т.д. В процессе набора текста мы пользуемся привычными стрелками, кнопками «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, и сколько я ее читаю — всегда нахожу что-то новое для себя.
    Успехов!
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 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 для выхода из режима вставки попробуйте
                      • +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 — движение курсора вправо/влево по словам.

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