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

Например, если я

mkdir thisismyfolder912 

Я помню, что есть несколько более простой способ переключиться на thisismyfolder912 чем делать

 cd thisismyfolder912 

Каким образом и как это работает? Кроме того, каковы другие способы использования этого?

  • Непонятно о поведении моего скрипта при записи в файл журнала
  • Как перенаправить вывод в файл при создании tar в Solaris?
  • «Dpkg -l» получает символ подстановки оболочки?
  • Переименовать файл (префикс) с полным путем?
  • Изменение моего каталога по умолчанию в passwd меняет мое приглашение
  • sh AND и OR в одной команде
  • Четыре задачи параллельно ... как это сделать?
  • Могу ли я поставить более одного условия, если?
  • 8 Solutions collect form web for “Как получить доступ к истории на лету в Unix?”

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

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

     history 

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

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

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

    Это так же просто, как Alt + .

     $ mkdir lasdfjalsdkjf $ cd 

    Alt + .

     $ cd lasdfjalsdkjf 

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

     mkdir thisismyfolder cd $_ 

    Подбирая подсказку из другого потока, если вы положили:

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

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

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

    Если вы используете bash, я предлагаю 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:~$ 

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

     shopt -s histverify 

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

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

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

    Но для решения вашего конкретного вопроса:

    Создание каталога и 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

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

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

    yank-last-arg (M- или M-_)

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

    Interesting Posts

    Физически переопределить учетные данные linux

    Недопустимая ссылка между устройствами в режиме Hardlinking в той же файловой системе

    Linux в основном среде Windows dev

    wc -l файл переменной

    Сканирование ядра Linux * не * для использования определенных процессоров

    Установка принтера Epson Stylus SX115 на Archlinux

    Fedora 17 Xorg не запускается при загрузке

    Aptitude – удаление автоматически установленных пакетов, рекомендованных другими пакетами

    Совпадение шаблонов находит равным или меньше, чем использование регулярного выражения в awk

    Передатчик-daemon "settings.json" не работает

    Помогите мне найти UUID моего SSD, который уже разбит на разделы? Я хочу установить его под домашним режком

    Как перечислять файлы с именем XXXmmyy.dat в естественном хронологическом порядке?

    Отображать временную метку в dd / mm / yyyy_hh: mm: ss: ms в Unix или Linux

    Как отключить опцию Switch User из Fedora 15

    Удалить файлы на 10 дней старше от hdfs

    Linux и Unix - лучшая ОС в мире.