Как получить доступ к истории на лету в Unix?

Ubuntu является большой, серьезно.

У них есть все пакеты, актуальные и легкие устанавливать. Используйте конфигурацию по умолчанию (= Gnome), и Вы проведете большую часть своего времени, программируя и не настраивая.

Устанавливая gcc пакет компилятора, сделайте, autoconf и т.д. занимает 5 минут с достойным интернет-соединением. У еще тридцати минут и Вас есть Ruby, Python, JVM Sun и готовый-к-управляемому Eclipse.

Править: Ubuntu обеспечивает дополнительные пакеты с отладочными символами для большого количества библиотек. Хороший, чтобы иметь для разработчиков C/C++.

12
23.09.2016, 17:41
8 ответов

Вы говорите о классическом расширении истории или обработке Readline? cd !$ на следующем входе строка займет место в последнем аргументе предыдущей строки, или M-. или M-_ будут дергать его использование Readline.

10
27.01.2020, 19:54
  • 1
    Сообщение по другому вопросу, который обсуждает Alt +. –  Michael Mrozek♦ 25.08.2010, 18:36
  • 2
    я искал cd !$. "Классическое расширение истории или обработка Readline" я точно не понимаю то, что Вы имеете в виду... –  Lazer 25.08.2010, 18:37
  • 3
    @Lazer !$ расширение истории; оболочка обрабатывает его, поскольку это анализирует Вашу команду. M-. является нажатием клавиши readline; readline является библиотекой, которая обрабатывает каждую клавишу, которую Вы нажимаете, и это видит нажатие M-. и типов в последнем аргументе последней команды для Вас автоматически –  Michael Mrozek♦ 25.08.2010, 20:00

Если Ваш вопрос о доступе к истории команд, то попробуйте эту хорошо названную команду

history 

Можно также попробовать Ctrl + r и начать вводить команду, Вы пытаетесь помнить, что Вы недавно ввели.

(reverse-i-search)`cd ': cd mydir/data/

Поразите ESC для выбора команды или выхода. Это работает на меня на SuSE, по крайней мере; не уверенный в других дистрибутивах.

9
27.01.2020, 19:54

Это столь же просто как Высокий звук +.

$ mkdir lasdfjalsdkjf
$ cd 

Высокий звук +.

$ cd lasdfjalsdkjf
7
27.01.2020, 19:54
  • 1
    , Как Вы получали необычное поле вокруг Высокого звука? Я не видел его в руководстве справки. номер –  Banjer 25.08.2010, 19:51
  • 2
    @Banjer: использовать <kbd></kbd> теги для окружения ключа. –  Lazer 25.08.2010, 20:28
  • 3
    @Banjer <kbd> –  Michael Mrozek♦ 25.08.2010, 20:30
  • 4
    Кроме того, это совпадает с ответом jmb –  Michael Mrozek♦ 25.08.2010, 20:34

это всегда работало на меня:

mkdir thisismyfolder
cd $_
2
27.01.2020, 19:54
  • 1
    Не упускают это, хотя: $! расширяется до последнего слова, которое Вы на самом деле ввели, $_ расширяется до последнего слова после расширения - таким образом, Вы могли бы echo /tmp/tmpfile* и посмотрите набор файлов, которые Вы хотите удалить, но затем rm $_ только удалит одного из них. –  jmb 13.03.2014, 14:40

Взятие подсказки от другого потока, если Вы помещаете:

bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward

в Вашем .bashrc затем, можно начать вводить что-то из истории и затем нажать стрелку вверх, и затем вместо того, чтобы пройти историю по пунктам, это пропустит право на предыдущие записи, которые начинаются с того, что Вы уже ввели.

Я предполагаю, что это не помогает многому с конкретным примером, данным в вопросе, но это - одна вещь, которая помогает мне история доступа на лету.

1
27.01.2020, 19:54

Если Вы используете удар, я предлагаю pushd и popd. Можно создать стопку каталога и просмотреть его быстро. Посмотрите этот пример:

PWD:~$ pushd /opt/google/chrome/resources/
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ pushd /etc/cron.daily/
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ pushd /opt/pac/lib/method/
/opt/pac/lib/method /etc/cron.daily /opt/google/chrome/resources ~
PWD:/opt/pac/lib/method$ popd
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ popd
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ popd
~
PWD:~$
1
27.01.2020, 19:54
  • 1
    При использовании сокращенной подсказки, она делает сообщения более читаемыми. (Я обращаюсь к удалению пользователя и имен хостов. Я понимаю что, показывая PWD вместо просто $ полезно при демонстрации pushd, и т.д.) –  Paused until further notice. 26.08.2010, 01:49

На связанной ноте я рекомендую использовать histverify в ударе. Поместите это в свой ~/.bashrc:

shopt -s histverify

Это заставит удар распечатывать команду после расширения! $ или другие функции истории, и дают Вам шанс посмотреть на него, прежде чем удар войдет снова для фактического выполнения его. Для меня проверка работоспособности стоит случайного дополнительного нажатия клавиши. Хочу удостовериться, что я работаю cd foo команда, не rm -rf foo один...

Я часто использую подход Ctrl-R, а также Высокий звук-. (который является подходящим вариантом для сценария, который Вы описываете). Я буду использовать! $ при случае.

Это очень полезные методы общего назначения.

Но рассматривать Ваш конкретный вопрос:

Создание каталога и cd'ing непосредственно в него является такой общей комбинацией, что полезно иметь функцию для оборачивания его..

function mcd {
  local newdir='_mcd_command_failed_'
  if [ -d "$1" ]; then   # Dir exists, mention that
    echo "$1 exists..."
    newdir="$1"
  else
    if [ -n "$2" ]; then   # We've specified a mode
        command mkdir -p -m $2 "$1" && newdir = "$1"
    else                   # Plain old mkdir
        command mkdir -p "$1" && newdir="$1"
    fi
  fi
  builtin cd "$newdir"   # No matter what, cd into it
}

Использование: mcd thisismyfolder

1
27.01.2020, 19:54

Если Ваша оболочка использует readline (который имеет место для bash) можно сделать что-то как нажатие ATL +. вместе?

Из документации Readline GNU:

последний аргумент рывка (M-. или M-_)

Вставьте последний аргумент предыдущей команде (последнее слово предыдущей записи истории). С аргументом ведите себя точно как энный аргумент рывка. Последовательные вызовы к последнему аргументу рывка пятятся через список предыстории, вставляя последний аргумент каждой строки в свою очередь.

1
27.01.2020, 19:54

Теги

Похожие вопросы