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


Tôi sử dụng thiết bị đầu cuối cho hầu như tất cả các nhiệm vụ. Giả sử 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 backspace Chìa khóa?

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


163
2017-09-04 11:56


gốc


Cũng đáng lưu ý rằng bạn có thể đặt bash (và một số shell khác) để hiểu các khóa vi: set -o vi. Sau đó bạn có thể làm esc, dd (hoặc sửa đổi / thay thế như bạn có thể làm trong vi [m]). - Wayne Werner
Trang chủ, '#', Enter - Alistair Buxton
đây là một hack giá rẻ nhưng đối với những gì nó có giá trị, tôi thường chỉ cần nhấn mũi tên lên cho đến khi tôi nhận được một lệnh thực sự ngắn (ví dụ, ls) và sau đó backspace - điều này thường chỉ là một vài nét chính vì vậy nó không phải là một thỏa thuận lớn. - KennyPeanuts
CTRL <- khai thác một vài lần thường cho phép tôi quay trở lại đầu của truy vấn của tôi .. là những gì bạn có nghĩa là gì? - marc-andre benoit


Các câu trả lời:


Sử dụng Ctrl+U để cắt văn bản từ vị trí con trỏ sang đầu dòng lệnh. Sau đó, nếu bạn muốn, hãy 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 được một dấu nhắc sạch mới Ctrl+C.

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


176
2017-09-04 12:03



Câu trả lời này hoạt động cho cả bash (mặc định của Ubuntu) và tsch. - Nick
Tôi nghĩ rằng dấu gạch ngang là Ubuntu mặc định? - Chris
dash là trình thông dịch mặc định cho /bin/sh lệnh. bash là đăng nhập mặc định và vỏ TTY. - darvids0n
Tôi tìm thấy Ctrl + C là 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 với dấu nhắc của riêng mình, giết chết chúng và mất đi sự tiến bộ và / hoặc động lượng của tôi. - user606723


Ctrl +  U sẽ 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 điều khiển khóa, 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ừng hiển thị bất kỳ màn hình nào trên màn hình (tương đương với phím không cuộn) (đôi khi mất một chút thời gian để làm việc)

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

CTRL + C - ngắt một 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 - đình chỉ một 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 nhập

CTRL + W - xóa từ cuối cùng đã nhập

CTRL + U - xóa dòng cuối cùng đã nhập

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 cả thư và viết.

Chú thích:

Khi chúng tôi xóa sử dụng CTRL + W hoặc là CTRL + U, chúng tôi cũng đang thực hiện thao tác "chỉnh sửa" (yank in) (xóa và lưu trữ trong bộ đệm / clipboard). Để dán (yank out) chuỗi trong bộ đệm / clipboard, sử dụng CTRL + Y.


109
2017-09-04 12:04



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. Xóa tùy chọn đó khỏi câu trả lời. - devav2
Đây là các mã kiểm soát UNIX chung. Các thiết bị đầu cuối ubuntu mặc định là bash-based, đó là 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 đối số cho một lệnh từ lịch sử. Bằng cách đó, tôi có thể gõ 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 hay không. - Joe
@OrangeDog - Đây là tiền phạt - tôi sử dụng tất cả những thứ này trong thiết bị đầu cuối bash-bash của Ubuntu, ngoại trừ CTR-\. - belacqua


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 đó (/, ;, , v.v.) Nếu bạn đang sử dụng zsh, nó sẽ loại bỏ các dấu gạch chéo và dấu chấm phẩy là tốt. Nó nhanh hơn rất nhiều so với việc chỉ đánh Backspace.

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


61
2017-09-04 12:00



Ctrl + W cũng làm như vậy. - hytromo
Sẽ không làm việc cho các thiết bị đầu cuối như rxvt. - sqram
@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 đặt. - Marco
tôi sử dụng ALT+Backspace cũng như CTRL+C. Điều này làm việc trên bất kỳ linux. :) - tftd
@hakermania: Không, khác biệt của nó. Ctrl + w xóa một từ và Alt + Backspace xóa cho đến khi ký tự đặc biệt trước đó (/, ;, ``, v.v.). - jobin


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

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 một trong hai Ctrl+C hoặc là Ctrl+U ở cuối dòng.


33
2017-09-04 18:42



Đây là danh sách đầy đủ nhất, Mặc dù câu trả lời tốt nhất là Ctrl+C hoặc là (Ctrl+E  Ctrl+U) - New Alexandria
Có bao nhiêu trong danh sách được áp dụng cho tcsh, mà tôi quan tâm? - TCSGrad
@ shan23 Đọc phần "Lệnh biên tập" của man tcsh, hoặc 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 các ràng buộc vi cho Readline của bash (hoặc một shell khác). Những chủ yếu này cũng áp dụng cho tcsh; những bash trước đây. bash cũng kết hợp rất nhiều phím tắt lịch sử đẹp từ csh / tcsh. - belacqua


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

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

you@computer$ #test
you@computer$ 

Nếu bạn muốn nhận lại lệnh cũ, bạn có thể nhấn mũi tên lên và xóa ký tự băm (Lên, Nhà, Xóa bỏ hoặc là Lên, Ctrl+A, Xóa bỏ).

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


24
2017-09-04 17:21





 Ctrl + C - ngoài việc gián đoạn các lệnh đang chạy, nó 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  Ctrl + U, bạn sẽ vẫn thấy những gì bạn đã gõ 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.


22
2017-09-04 12:16



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


Cú đánh readline đường tắt Ctrl+X+E 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 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, tất cả những gì bạn phải làm là sử dụng phím tắt.

Nó sử dụng Bash readline thư viện và phím tắt đặc biệt 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" trong ~/.bashrc hoặc là ~/.bash_aliases.

Đi vào bind -P để xem hiện tại của bạn readline ràng buộc và tham khảo man readline hoặc là Ubuntu manpages trực tuyến để biết thêm thông tin.


8
2017-11-14 21:06





Tôi cũng 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 cũng tương tự Alt+Backspace. Tiện dụng nếu bạn chỉ xóa một vài từ cùng một lúc.


7
2017-09-06 15:53





Dành cho vi tổ hợp phím

Khi sử dụng vi bản đồ chính như trong bash với set -o vi hoặc trong zsh với bindkey -v:

Chế độ chèn

Nó chỉ là phím tắt tương tự như trong chế độ mặc định / emacs:

Ctrl+U

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

Chế độ thông thường

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

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

dd

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

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

^D

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

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ả các từ chế độ inset, bạn cần thoát bình thường đầu tiên để đi đến chế độ bình thường. Ví dụ để xóa toàn bộ dòng từ chế độ chèn, hãy sử dụng:

Escdd


3
2017-09-15 03:48