Làm thế nào để tôi xóa các lệnh của tôi một cách nhanh chóng?


168

Tôi sử dụng thiết bị đầu cuối cho hầu hết các nhiệm vụ. Hãy nói rằng tôi đã nhập một lệnh lớn như thế này:

sudo a-huge-command

Cách dễ nhất để xóa toàn bộ lệnh bằng một phím tắt duy nhất, thay vì tiếp tục nhấn backspacephím là gì?

Tôi là một người mới sử dụng Ubuntu đang tìm cách sử dụng Ubuntu một cách chuyên nghiệp.


13
Cũng đáng lưu ý rằng bạn có thể đặt bash(và một số shell khác) để hiểu các phím vi : set -o vi. Sau đó esc, bạn có thể làm , dd(hoặc nếu không chỉnh sửa / thay thế như bạn có thể làm trong vi [m]).
Wayne Werner

6
Trang chủ, '#', Enter
Alistair Buxton

5
Đây là một bản hack giá rẻ nhưng với giá trị của nó, tôi thường chỉ nhấn mũi tên cho đến khi tôi nhận được một lệnh thực sự ngắn (ví dụ ls) và sau đó là backspace - đây thường chỉ là một vài nét chính để nó không lớn ' thỏa thuận.
KennyPeanuts

CTRL <- gõ một vài lần thường cho phép tôi quay lại từ đầu truy vấn của mình .. đây có phải ý bạn không?
marc-andre benoit

Câu trả lời:


177

Sử dụng Ctrl+ Uđể cắt văn bản từ vị trí con trỏ đến đầu dòng lệnh. Sau đó, nếu bạn muốn, sử dụng Ctrl+ Yđể dán văn bản cắt.

Nếu bạn chỉ muốn loại bỏ dòng lệnh hiện tại và nhận một dấu nhắc sạch mới nhấn Ctrl+ C.

Để tham khảo thêm, vui lòng kiểm tra tài liệu Ubuntu để sử dụng Terminal


Câu trả lời này hoạt động cho cả bash (Ubuntu mặc định) và tsch.
Nick

Tôi nghĩ dash là mặc định Ubuntu?
Chris

15
dashlà trình thông dịch mặc định cho /bin/shcác lệnh. bashlà đăng nhập mặc định và vỏ TTY.
darvids0n

9
Tôi thấy đó Ctrl + Clà một thói quen xấu, vì tôi thường vô tình gửi tín hiệu đến các chương trình bằng chính lời nhắc của họ, giết chết chúng và làm mất tiến trình và / hoặc động lực của tôi.
dùng606723

111

Ctrl+ Unên giúp bạn.

Dưới đây là phần còn lại của các tùy chọn có sẵn. Lấy từ đây

UNIX hiểu một số lệnh của phím điều khiển, các lệnh bạn nhập bằng cách giữ phím điều khiển (ctrl) trong khi nhấn phím thứ hai

CTRL+ S- đóng băng màn hình và ngăn không cho bất kỳ màn hình nào trên màn hình tiếp tục (tương đương với phím không cuộn) (đôi khi mất một chút thời gian để hoạt động)

CTRL+ Q- bỏ đóng băng màn hình và tiếp tục hiển thị màn hình

CTRL+ C- làm gián đoạn chương trình đang chạy

CTRL+ \- giống như CTRL - C nhưng mạnh hơn (được sử dụng khi thiết bị đầu cuối không phản hồi)

CTRL+ Z- tạm dừng chương trình đang chạy (sử dụng lệnh fg để tiếp tục chương trình, xem s $

CTRL+ H- xóa ký tự cuối cùng được gõ

CTRL+ W- xóa từ cuối cùng được gõ

CTRL+ U- xóa dòng cuối cùng được gõ

CTRL+ R- tìm kiếm văn bản từ lịch sử

CTRL+ D- kết thúc nhập văn bản cho nhiều chương trình UNIX, bao gồm thư và viết.

Ghi chú:

Khi chúng tôi xóa bằng CTRL+ Whoặc CTRL+ U, chúng tôi cũng đang thực hiện thao tác (cắt) "cắt" (yank in) (xóa và lưu trữ trong bộ đệm / bảng tạm). Để dán (kéo ra) chuỗi trong bộ đệm / bảng tạm, sử dụng CTRL+ Y.


7
Trên thực tế ctrl-r tìm kiếm văn bản từ lịch sử.
Eric Carvalho

@EricCarvalho Bạn nói đúng. Loại bỏ tùy chọn đó khỏi câu trả lời.
devav2

2
Đây là các mã điều khiển UNIX chung. Thiết bị đầu cuối ubfox mặc định là dựa trên bash, khác nhau.
OrangeDog

Ctrl-U xóa từ con trỏ đến đầu dòng. Tôi thường sử dụng nó bằng cách đặt con trỏ ngay trước các đối số cho một lệnh từ lịch sử. Bằng cách đó, tôi có thể nhập một lệnh mới bằng cách sử dụng cùng một đối số - như thay đổi ít tệp hơn thành tệp kate để tôi có thể chỉnh sửa tệp sau khi tôi xem nó để xem có cần chỉnh sửa gì không.
Joe

1
@OrangeDog - Đây là tốt - Tôi sử dụng tất cả những thứ này trong thiết bị đầu cuối bash-bash Ubuntu của tôi, ngoại trừ TLB- \ one.
belacqua

61

Tôi thường sử dụng Alt+ Backspace. Nếu bạn đang sử dụng bash, điều này sẽ cho phép bạn xóa cho đến khi ký tự đặc biệt trước đó ( /, ;, , vv). Nếu bạn đang sử dụng zsh, nó cũng sẽ loại bỏ dấu gạch chéo và dấu chấm phẩy. Nó nhanh hơn rất nhiều so với chỉ đánh Backspace.

Trong bash, điều này khác với Ctrl+ wtheo nghĩa là Ctrl+ wxóa từ trước đó trong đó Alt+ Backspacexóa cho đến khi tìm thấy ký tự đặc biệt trước đó. Trong zsh, cả hai tổ hợp phím làm cùng một việc


8
Ctrl + W làm điều tương tự.
hytromo

Mặc dù không hoạt động cho các thiết bị đầu cuối như rxvt.
sqram

1
@lyrae Đối với tôi nó hoạt động hoàn hảo trong rxvt, mặc dù không phải trong xterm. Và nó chỉ hoạt động nếu set -o emacsđược thiết lập.
Marco

Tôi sử dụng ALT+Backspacelà tốt CTRL+C. Điều này hoạt động trên bất kỳ linux. :)
tftd

@hakermania: Không, nó khác. Ctrl + w xóa một từ và Alt + Backspace xóa cho đến khi ký tự đặc biệt trước đó ( /, ;, ``, vv).
việc

35

Dưới đây là danh sách các phím tắt có thể được sử dụng với bashvỏ.

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

Những gì bạn muốn làm là đạt được bằng cách Ctrl+ Choặc Ctrl+ Uở cuối dòng.


Đây là danh sách đầy đủ nhất, Mặc dù câu trả lời hay nhất là Ctrl+Choặc ( Ctrl+E Ctrl+U)
New Alexandria

Có bao nhiêu trong danh sách được áp dụng cho tcsh, điều mà tôi quan tâm?
TCSGrad

@ shan23 Đọc phần "Lệnh biên tập" man tcshhoặc sử dụng bindkey -l. Có vẻ như nó rất khác.
OrangeDog

Lưu ý rằng một số trong số này sẽ thất bại nếu bạn đang sử dụng vi liên kết cho Readline của bash (hoặc shell khác). Những điều này chủ yếu nên áp dụng cho tcsh là tốt; những bash trước ngày. bash cũng kết hợp rất nhiều các phím tắt lịch sử tốt đẹp từ csh / tcsh.
belacqua

25

Alt+ #(tức là Alt+ Shift+ 3) sẽ nhận xét lệnh hiện tại và tiếp tục trên dòng tiếp theo.

Ví dụ, nếu bạn gõ t, e, s, t, Alt+ #, bạn sẽ nhận được:

you@computer$ #test
you@computer$ 

Nếu bạn muốn nhận được lệnh cũ của bạn trở lại, bạn có thể nhấn vào mũi tên lên và xóa các nhân vật băm ( Up, Home, Deletehoặc Up, Ctrl+ A, Delete).

Tôi nghĩ đó là một tính năng của GNU Readline , vì nó hoạt động trong Bash, Python và MySQL.


22

Ctrl+ C- ngoài việc làm gián đoạn các lệnh đang chạy, nó cũng có thể được sử dụng để "ngắt" đầu vào dòng lệnh của bạn.

Ngược lại với dấu Ctrl+ U, bạn vẫn sẽ thấy những gì bạn đã nhập nhưng con trỏ của bạn sẽ nhảy đến dòng mới và bạn sẽ nhận được một dấu nhắc dòng lệnh trống.


4
Tôi thích điều này đơn giản vì bộ nhớ cơ và bạn vẫn có thể sao chép / dán bất cứ thứ gì quan trọng vì dòng lệnh bị hủy bỏ vẫn ở đó.
ish

8

readlinePhím tắt Bash Ctrl+ X+ Ethực sự rất hữu ích khi bạn đang làm việc trên dòng lệnh. Nếu bạn đang trong quá trình nhập một lệnh dài và quyết định rằng bạn muốn mở nó trong trình soạn thảo văn bản mặc định của mình, tất cả những gì bạn phải làm là sử dụng phím tắt.

Nó sử dụng readlinethư viện của Bash và lối tắt cụ thể này được gọi là edit-and-execute-command. Bạn có thể đặt trình chỉnh sửa mặc định của mình bằng cách đặt export EDITOR="/usr/bin/vi"vào ~/.bashrchoặc ~/.bash_aliases.

Nhập bind -Pđể xem các readlineràng buộc hiện tại của bạn và tham khảo man readlinehoặc các trang web Ubuntu trực tuyến để biết thêm thông tin.


7

Tôi cũng sử dụng Esc+ Backspaceđể xóa tất cả các ký tự trước đó cho đến khi một ký tự đặc biệt. Điều này giống nhau là Alt+ Backspace. Tiện dụng nếu bạn chỉ xóa một vài từ một lúc.


3

Đối với vicác ràng buộc quan trọng

Khi usin một vibản đồ chính thích ở bashvới set -o vihoặc zshvới bindkey -v:

Chế độ chèn

Nó chỉ là tổ hợp phím giống như trong chế độ mặc định / emacs:

Ctrl+U

xóa mẫu vị trí hiện tại đến đầu dòng. Vì vậy, nó xóa toàn bộ dòng nếu con trỏ ở cuối.

Chế độ bình thường

Có nhiều cách để xóa dòng trong hai lần nhấn phím:

Xóa theo dòng dd, với số lượng mặc định của một dòng:

dd

đó là đơn giản nhất về các phím được chạm.

Một cách khác là: Đi đến đầu dòng ^và xóa đến cuối dòng bằng D:

^D

Cả hai đều xóa toàn bộ dòng, không chỉ ở bên trái, như Ctrl+ Utrong chế độ chèn hoặc dòng chảy biến thể.

Nếu bạn đang ở cuối dòng, vì vậy bạn không cần phải xóa bất cứ điều gì ở bên phải, điều này cũng sẽ làm:

Xóa từ đây d, để bắt đầu dòng ^:

d^

Bạn có thể sử dụng tất cả những thứ này từ chế độ chèn, trước tiên bạn cần thoát thông thường để chuyển sang chế độ bình thường. Ví dụ: để xóa toàn bộ dòng khỏi chế độ chèn, hãy sử dụng:

Escdd

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.