Pertanyaan Baris perintah bash kosong


Saya mencari cara untuk menghapus baris perintah yang saat ini dimasukkan tanpa membuang detik pada Menghapus kunci.

Misalnya saya menggulir riwayat bash dan memiliki baris perintah panjang yang akan dijalankan ketika saya menekan Memasukkan:

~$ aptitude search openssl | grep dev

Tetapi sekarang saya memutuskan bahwa saya tidak ingin menjalankan perintah ini. Bisakah saya mendapatkan prompt cepat kosong tanpa menghapus seluruh baris dengan Menghapus? Di Windows cmd Anda cukup tekan Melarikan diri dan itu hilang. Perilaku ini akan menjadi apa yang saya inginkan.


4
2017-09-28 08:24


asal




Jawaban:


Mendesak Ctrl+U akan mengosongkan saluran saat ini.

Ini standarnya membunuh karakter pada sebagian besar terminal dan menghapus baris saat ini (dari kursor ke permulaannya). Itu stty perintah dapat digunakan untuk mendapatkan atau mengatur nilainya.

[dave@hal9000 ~]$ stty -a
speed 38400 baud; rows 23; columns 75; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?;
eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
...
[dave@hal9000 ~]$ stty kill ^T # Set it to Ctrl-T

Jadilah jalannya, werase singkatan dari kata menghapus, jadi Ctrl+W hapus kata di sebelah kiri kursor.


7
2017-09-28 08:34



Terima kasih, itu berhasil. Ctrl-u menghapus semua karakter sebelum posisi kursor. - vobject
@ vobject: Jika kursor Anda dalam garis, Ctrl-u maka Ctrl-k (atau sebaliknya) akan mendapatkan semuanya. - Dennis Williamson


tekan Ctrl+C untuk membatalkan perintah yang Anda masukkan dan kembali ke prompt yang telanjang.

Ini adalah kunci umum dalam aplikasi mode teks unix:

  • dalam program non-interaktif, Ctrl+C biasanya menghentikan program sama sekali dan kembali ke prompt shell;
  • dalam program interaktif yang menjalankan satu perintah dalam satu waktu (seperti shell), Ctrl+C biasanya kembali ke prompt perintah utama.

2
2017-09-28 22:27