Як пригадати конкретну команду з історії команд, не виконуючи її


13

Наприклад, в bash я можу набрати, !xyzяка буде виконувати останню команду, яку я набрав, починаючи з xyz.

Як я можу створити останню команду, яку я набрав, починаючи, xyzале не виконуючи її?
наприклад, щоб я міг змінити параметри перед виконанням ....

Відповіді:


20

Це можна зробити так: у командному рядку натисніть Ctrl+, rа потім введіть команду, яку ви хочете відкликати, у вашому випадку xyz. Це покаже вам повну команду, не виконуючи її.


1
Більш корисно, ніж !позначення, тому що ви можете натиснути Ctrl-r кілька разів, щоб перейти далі до історії відповідності. Коли ви приїдете в потрібне місце, ви можете спробувати виконати не Enter, а Ctrl-o для отримання великого прибутку.
kubanczyk

12

Спробуйте !xyz:p; вона буде нагадувати команду вгорі історії, не виконуючи її, тому, наприклад, стрілка вгору може негайно отримати доступ до неї для інтерактивного редагування.

Як і в стороні, я роблю практику робити це при виклику команди з регулярним виразом , що цілком може викопати що - то ушкодження, з тих пір , поспішний !r, мав намір згадати саму недавню rsync ...команду, відсторонилися і стративrm * , що було відкинуто в стек останнім часом, ніж rsync.


Дякую, це хороша практика. Я робив те ж саме з rm -rf ./*ніколи не був таким вдячним протягом певного періоду. FYI !xyz:pПрацював, дякую, але вимагав декількох додаткових натискань клавіш, ніж рішення ctrl-r.
Мтл Дев

@MtlDev так; Я вважаю, що рішення R найкраще EMACSпідходить для людей, тоді як!-Шлях найкраще працює для viоляторів, як я.
MadHatter

1
  1. Виконайте таку команду. Це відлучить останню виконану команду. Ви можете скопіювати та відредагувати команду. Ця команда перевірена на debian.

    історія | хвіст -2 | grep -v історія | вирізати -d '' -f4-

  2. Або натисніть і утримуйте ctrl + R і введіть початкову літеру останньої команди. Він перелічить команди, які ви виконували раніше, виходячи з ваших даних. Після того, як він показує потрібну команду, просто натисніть стрілку праворуч, щоб вибрати цю команду.


1
Перша команда така гладка !! Я думаю, що швидше просто доглядати за командою в історії, ніж писати все це ^ __ ^
Grajdeanu Alex.

1

Якщо пошук зворотної історії не вдалося, зробіть що-небудь із:

$ history | grep WHAT_YOU_LOOK_FOR

Або:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.