Окрім історії i-search з ^ r / ^:
alt.вставляє на курсор останнє "слово" попередньої команди. Повторіть це, щоб отримати останнє слово зі старих команд. (Але зауважте, що &
останнє слово для фонових команд вважається проривом).
Це дуже зручно для mkdir foo
, cd
альт-крапка. Навіть швидше, ніж стрілка вгору, ^ a, alt-d (видалити слово вперед) cd
,.
Для отримання другого до останнього слова використовуйте esc
-
2
alt+.
(тобто використовуйте числовий аргумент у стилі emacs alt+.
. Від’ємне число рахується з кінця, позитивне враховується від початку.) Але це зазвичай більше клопоту, ніж варто; в якийсь момент швидше дотягнутись до миші та скопіювати / вставити, або стрілку вгору та ^ w / ^ y її частину (див. нижче).
Якщо ваш термінал налаштований добре / належним чином, ctrl-ліворуч і ctrl-праворуч перейдуть назад / вперед словами. Якщо ні, то, сподіваємось, принаймні alt-b і alt-f зроблять те саме.
ctrl- / - це скасування. Ви можете використовувати автоматичне повторення для видалення слів набагато ефективніше, якщо ви можете скасувати їх, коли трохи перевернете їх.
Більш потужне змішування / узгодження команд відбувається від використання kill-ring, яке працює так само, як і в Emacs. ctrl-y, щоб вставити останній ctrl-w / ctrl-u / ctrl-backspace / alt-d. alt-y, щоб перейти через старіший вбитий текст.
Кілька ctrl-w або що завгодно підряд вносять запис у програму kill-ring. Використовуйте стрілку вліво і вправо або щось, щоб розділити запис, якщо ви хочете видалити дві речі та вставити лише одну пізніше.
Поєднавши все це разом, ви можете
- почніть вводити команду
- ctrl-r, щоб повернутися до старої команди та захопити її частину за допомогою control-w або подібного.
- esc-r або
alt+r
відновити його таким, яким він був до того, як ви видалили його частину.
- alt
>
- повернутися до кінця історії (тобто стрілка вниз до кінця), щоб повернутися до тієї команди, в якій ви опинилися в середині.
Інші поради щодо інтерактивного використання:
Увімкнути shopt -s globstar
, так що ви можете зробити **/*.c
(рекурсивна, включаючи поточний dir). Іноді зручно для інтерактивного використання, але зазвичай find -name '*.c' -exec foo {} +
краще.
Якщо ви пишете bash-скрипти, вам буде зручно, щоб вони також були shopt -s extglob
включені у ваші інтерактивні оболонки. Ви іноді знаходите застосування для таких речей , як , *.!(c|h)
щоб відповідати файлам , які не закінчуються на .c або .h.
Знайти псевдоніми ви любите для ls -l
, less
і все , що ви робите багато. ( cp -i
, mv -i
і rm -I
є приємними. Не звичайте залежно від них робити вибіркові rm. GNU rm's - я прошу один раз для всіх аргументів.)
Мені подобається alias m=less
(м для «більше»). Я less
створив ,і .прив’язаний до попереднього / наступного файлу ( lesskey
). За замовчуванням - це послідовність натискання декількох клавіш, яку не можна використовувати з автоматичним повторенням.
Мені подобається робити все на екрані GNU. Мені легше відслідковувати пронумеровані вікна, ніж навантаження вкладок у Konsole (або будь-який інший емулятор терміналу, який я пробував). Якщо ви ще не знаєте screen
, вивчіть tmux, тому що він новіший і менш вибагливий.
Щоб отримати щось подібне до функціональності відкриття нової оболонки з тим же cwd, що й інша оболонка, я використовую спеціальний гак для cd / pushd / popd, який дозволяє мені робити cds 8
диск на будь-який dir, який використовує моя оболонка у вікні 8 екрану. Це працює навіть для оболонок поза сеансом екрана, якщо існує лише один екранний сеанс.
fish
;)