Як швидко видалити команди?


168

Я використовую термінал майже для всіх завдань. Скажімо, я ввів величезну команду на зразок цієї:

sudo a-huge-command

Який найпростіший спосіб видалити всю команду одним ярликом, а не продовжувати натискання backspaceклавіші?

Я новачок Ubuntu, який прагне використовувати Ubuntu професійно.


13
Також варто відзначити , що ви можете встановити bash(і кілька інших оболонок) , щоб зрозуміти ключі VI: set -o vi. Ви могли б зробити esc, dd(або іншим чином змінити / замінити , як ви могли б зробити в VI [м]).
Вейн Вернер

6
Головна, '#', Enter
Алістер Бакстон

5
це дешевий злом, але для чого це варто, я зазвичай просто натискаю стрілку вгору, поки не дістанусь до дійсно короткої команди (наприклад, ls), а потім назад - це зазвичай лише пара ключових ударів, так що це не так вже й великий 'угода.
KennyPeanuts

CTRL <- постукав пару разів, як правило, дозволяє мені повернутися до початку мого запиту .. це ти маєш на увазі?
marc-andre benoit

Відповіді:


177

Використовуйте Ctrl+, Uщоб вирізати текст з позиції курсору до початку командного рядка. Пізніше, якщо ви хочете, використовуйте Ctrl+, Yщоб вставити вирізаний текст.

Якщо ви просто хочете скасувати поточний командний рядок і отримати новий чистий підказки, натисніть Ctrl+ C.

Для отримання додаткової інформації перегляньте документацію Ubuntu щодо використання терміналу


Ця відповідь працює як для bash (Ubuntu за замовчуванням), так і tsch.
Нік

Я думав, тире за замовчуванням Ubuntu?
Кріс

15
dashє інтерпретатором за замовчуванням для /bin/shкоманд. bashє типовим входом та оболонкою TTY.
darvids0n

9
Я вважаю Ctrl + Cсебе поганою звичкою, оскільки я часто випадково надсилаю сигнали програмам із власним підказом, вбиваючи їх і втрачаючи прогрес та / або імпульс.
користувач606723

111

Ctrl+ Uповинен вам допомогти.

Нижче наведено решта доступних варіантів. Схопив звідси

UNIX розуміє кілька команд керуючої клавіші, команди, які ви вводите, утримуючи клавішу керування (ctrl), натискаючи другу клавішу

CTRL+ S- заморожує екран і зупиняє продовження будь-якого відображення на екрані (еквівалентно клавіші без прокрутки) (іноді потрібна хвилина для роботи)

CTRL+ Q- розблоковує екран і дозволяє продовжувати показ екрана

CTRL+ C- перериває запущену програму

CTRL+ \- те саме, що CTRL - C, але сильніше (використовується, коли термінал не відповідає)

CTRL+ Z- призупиняє запущену програму (використовуйте команду fg для продовження програми, див. s $

CTRL+ H- видаляє останній набраний символ

CTRL+ W- видаляє останнє введене слово

CTRL+ U- видаляє останній набраний рядок

CTRL+ R- шукає текст з історії

CTRL+ D- завершує введення тексту для багатьох програм UNIX, включаючи пошту та запис.

Примітка:

Коли ми видаляємо за допомогою CTRL+ Wабо CTRL+ U, ми також виконуємо операцію (редагування) "вирізати" (вимкнути) (видалити та зберігати в буфері / буфері обміну). Щоб вставити (витягнути) рядок у буфер / буфер обміну, використовуйте CTRL+ Y.


7
Насправді ctrl-r шукає текст з історії.
Ерік Карвальо

@EricCarvalho Ви праві. Видалення цього варіанту з відповіді.
devav2

2
Це загальні коди управління UNIX. Термінал ubuntu за замовчуванням базується на bash, що відрізняється.
OrangeDog

Ctrl-U видаляє курсор до початку рядка. Я часто використовую його, розміщуючи курсор безпосередньо перед аргументами команди з історії. Таким чином, я можу ввести нову команду за допомогою тих же аргументів - як зміна меншого файлу на файл kate, щоб я міг редагувати файл після того, як я переглянув його, щоб побачити, чи потрібні зміни.
Джо

1
@OrangeDog - Це добре - я використовую все це в моєму терміновому терміналі Ubuntu, за винятком CTR- \.
belacqua

61

Я зазвичай використовую Alt+ Backspace. Якщо ви використовуєте bash, це дозволить вам видалити недо попередній спеціальний символ ( /, ;, і т.д.). Якщо ви використовуєте zsh, це також видалить косої риски та крапки з комою. Це набагато швидше, ніж просто удари Backspace.

У bash, це відрізняється від Ctrl+ wу тому сенсі, що Ctrl+ wвидаляє попереднє слово wheres Alt+ Backspaceвидаляє, поки не буде знайдено попередній спеціальний символ. В zshобох комбінаціях клавіш робиться те саме


8
Ctrl + W робить те саме.
hytromo

Не буде працювати для терміналів, таких як rxvt.
sqram

1
@lyrae Для мене він прекрасно працює в rxvt, хоча не в xterm. І він працює лише за умови set -o emacsвстановлення.
Марко

Я використовую ALT+Backspace, а також CTRL+C. Це працює на будь-якому Linux. :)
tftd

@hakermania: Ні, інакше. Ctrl + W видаляє слово і Alt + Backspace видаляє до попереднього спеціального символу ( /, ;``, і т.д.).
jobin

35

Ось перелік комбінацій клавіш, які можна використовувати разом із bashоболонкою.

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L    Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Lets you search through previously used commands
Ctrl + C    Kill whatever you are running or start a new prompt
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab         Auto-complete files and folder names

Те, що ви хочете зробити, досягається або Ctrl+, Cабо Ctrl+ Uв кінці рядка.


Це найповніший список. Хоча найкраща відповідь - Ctrl+Cабо ( Ctrl+E Ctrl+U)
Нова Олександрія

Скільки в списку застосовні до tcsh, який мене цікавить?
TCSGrad

@ shan23 Прочитайте розділ "Команди редактора" man tcshабо використовуйте bindkey -l. Схоже, це зовсім інакше.
OrangeDog

Зауважте, що деякі з них вийдуть з ладу, якщо ви використовуєте прив'язки vi для читання bash (або іншої оболонки) Readline. Вони в основному стосуються і tcsh; ці заздалегідь датовані баш. bash також включив багато приємних ярликів історії з csh / tcsh.
belacqua

25

Alt+ #(тобто Alt+ Shift+ 3) прокоментує поточну команду та продовжить наступний рядок.

Наприклад, якщо ви друкуєте t, e, s, t, Alt+ #, ви отримаєте:

you@computer$ #test
you@computer$ 

Якщо ви хочете , щоб ваша стару команду назад, ви можете натиснути стрілку вгору і видалити хеш - символ ( Up, Home, Deleteабо Up, Ctrl+ A, Delete).

Я думаю, що це особливість GNU Readline , оскільки вона працює в Bash, Python та MySQL.


22

Ctrl+ C- окрім переривання запущених команд, його можна використовувати і для "переривання" введення вашого командного рядка.

На відміну від Ctrl+ U, ви все одно побачите, що ви ввели, але ваш курсор перейде до нового рядка, і ви отримаєте порожній командний рядок.


4
Я віддаю перевагу цьому просто через м’язову пам’ять, і ви все ще можете скопіювати / вставити все важливе, тому що перерваний командний рядок залишається там.
Останній

8

readlineЯрлик Bash Ctrl+ X+ Eдуже корисний, коли ви працюєте в командному рядку. Якщо ви вводите довгу команду і вирішите, що хочете замість цього відкрити її у текстовому редакторі за замовчуванням, все, що вам потрібно зробити, - це використовувати ярлик.

Він використовує readlineбібліотеку Баша, і саме цей ярлик називається edit-and-execute-command. Ви можете встановити редактор за замовчуванням, розмістивши export EDITOR="/usr/bin/vi"в ньому ~/.bashrcабо ~/.bash_aliases.

Увійдіть, bind -Pщоб побачити ваші поточні readlineприв'язки, і для отримання додаткової інформації зверніться до веб man readline- сторінок Ubuntu або Інтернету .


7

Я також використовую Esc+, Backspaceщоб видалити всі попередні символи до отримання спеціального символу. Це ж є Alt+ Backspace. Зручно, якщо ви просто видаляєте кілька слів за один раз.


3

Для viключів

Коли нно viключ карту як в bashс set -o viабо zshз bindkey -v:

Режим вставки

Це точно такий же натискання клавіші, що і в режимі default / emacs:

Ctrl+U

видалення форми поточної позиції до початку рядка. Таким чином, він видаляє весь рядок, якщо курсор знаходиться в кінці.

Нормальний режим

Існує кілька способів видалити рядок двома натисканнями клавіш:

Видалити по рядку dd, за замовчуванням один рядок:

dd

що є найпростішим з точки зору торкання клавіш.

Ще один спосіб: перейдіть до початку рядка ^і видаліть до кінця рядка за допомогою D:

^D

Вони обидва видаляють весь рядок, а не лише зліва, як Ctrl+ Uу режимі вставки, або варіант відбілювання.

Якщо ви зараз в кінці рядка, тому вам не потрібно нічого видаляти праворуч, це також зробить:

Видаліть звідси d, щоб почати рядок ^:

d^

Ви можете використовувати ці всі в режимі вставки, для переходу до звичайного режиму спочатку потрібна звичайна втеча. Наприклад, щоб видалити весь рядок із режиму вставки, використовуйте:

Escdd

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