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

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

mkdir thisismyfolder912 

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

 cd thisismyfolder912 

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

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 перемещаются по списку истории, вставляя последний аргумент каждой строки по очереди.

  • Как удалить все подкаталоги из каталога?
  • Пожалуйста, помогите объяснить это перенаправление вывода bash
  • Что делает «set -f» в Korn Shell?
  • Является ли автозаполнение приложениями, выполненными оболочкой?
  • Что означает тире «-» в конце команды?
  • Как запустить команду со скрытым паролем
  • Обработка имен файлов, содержащих дефис, внутри скрипта
  • Удалите определенное расширение из всех файлов в каталоге
  • $ BASHPID И $$ отличаются в некоторых случаях
  • Как напечатать строки, содержащие 3 слова
  • Насколько сложна программа, написанная в чистом Bash?
  • Что означает вариант -9 для killall?
  • Interesting Posts

    Linux Mint 13 Xfce оконная кнопка исчезла и нет курсора мыши в текстовом режиме

    Найти все файлы, которые были в последний раз изменены в определенный день – например, в понедельник?

    Показать использование ядра ЦП для родительского процесса и его дочерних процессов

    npm проблемы с uglify-js

    Статистика трафика на сетевой порт

    Какие udev-атрибуты действительно доступны во время горячего / холодного подключения?

    Как бороться с неуверенностью `eval` оценки внешнего ввода в скрипте?

    Заполнение вкладки не работает в клиенте командной строки MySQL

    Безопасное удаление файлов в файловой системе btrfs

    Почему установка Debian с DVD загружает множество пакетов?

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

    Сохранение копий файла журнала X в Debian

    Почему моя новая интерактивная проверка cygwin .bashrc не работает?

    Почему Ubuntu 16.04 исполняет ограниченное изображение C # после 90 секунд, а другие – 24X7?

    Используйте rsync для зеркалирования источника для развертывания веб-сайта, но не для удаления выбранных файлов в месте назначения

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