Під час виконання команд іноді, можливо, вам потрібно запустити команду з аргументом з останньої команди. Як ви можете це зробити?
Звичайно, за винятком використання клавіш зі стрілками і Delклавішами: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Під час виконання команд іноді, можливо, вам потрібно запустити команду з аргументом з останньої команди. Як ви можете це зробити?
Звичайно, за винятком використання клавіш зі стрілками і Delклавішами: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Відповіді:
Наприклад, якщо запустити цю команду:
mkdir long_path_here/new_dir
швидше за все, ви хочете зайти в нещодавно створений каталог. Це можна зробити за допомогою наступних "ярликів":
cd
Esc.- тип cd
і після натискання, Escза яким слідує .(не одночасно). Якщо в попередній команді немає аргументів, ви отримаєте саму попередню команду.cd !*
- у цьому випадку ви отримаєте всі аргументи з команди previuos. Якщо в попередній команді немає аргументів, ви нічого не отримаєте.cd
Alt+ .- введіть cd
і після натискання Altі .(одночасно). Насправді, використовуючи цей спосіб і продовжуючи натискати .(без випуску Alt), ви отримаєте останній аргумент для кожної команди з історії. Якщо у команди немає аргументів, ви отримаєте саму команду.Загалом: <command>
Esc.або <command> !*
або <command>
Alt+ ..
Існує кілька ярликів, якщо ви хочете, щоб усі аргументи з попередньої команди або тільки останній аргумент.
<command> !*
<command> !$
Приклади:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Якщо ви хочете отримати один аргумент зі списку аргументів попередньої команди, ви можете використовувати <command> !!:<argNumber>
Приклад:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
!
в одного версії ARG, наприклад, !:2
. Припустимо, що за замовчуванням баш.
!^
замість !:1
.
Згадування !*
і !$
це хороша річ, але коли вам потрібно трохи відредагувати ярлики для читання рядків, приходять на допомогу!
Наприклад, замість безлічі ↑←←←... ←→→DelDelDel... Delви можете просто натиснути ↑ Ctrl-a(перейти до початку рядка) Alt+d(видалити до кінця слова)
Для отримання додаткової інформації man readline
та пошуку Default key bindings
.
Щоб взяти n
аргумент із попередньої команди, введіть Alt+ n
+ Alt_. Наприклад, після:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
набравши echo
після чого Alt2Alt_дасть вам це на наступному рядку:
$ echo 2
"Скріншот" після потрапляння Alt2:
(arg: 2) echo
Ви можете повторити Alt_кілька разів, щоб отримати n
аргумент попередніх команд послідовно.
Ще одна корисна ідея - визначити псевдонім r="fc -s"
. Потім ви можете робити підстановки команд:
$ echo 1
1
$ r echo=history
history 1
27755 history 1