Bagaimana cara menjalankan perintah Linux saat menggunakan perintah yang kurang atau di dalam halaman manual?

9

Saya biasanya mem-pipe perintah lsdengan lessdan ingin mengeksekusi perintah ketika paging misalnya saya menemukan file yang ingin saya hapus jadi saya ingin mengeksekusi perintah rm {filename}sementara masih paging. Saya juga ingin berharap saya dapat menggunakan metode yang sama sambil membaca halaman manual. Jika tidak, bagaimana bedanya?

Kacang Kacang Tanah
sumber

Jawaban:

8

Anda dapat mengakses baris perintah menggunakan bang ( !) dalam waktu kurang.

Jadi misalnya, jika Anda mengetik:

touch temp.txt
ls | less
!rm temp.txt

Dan temp.txt harus hilang.

Sunting: Secara default sepertinya man sekarang menggunakan lebih sedikit untuk halaman (untuk beberapa alasan saya pikir itu digunakan more, mungkin di masa lalu itu lakukan). Anda dapat menggunakan trik yang sama, tetapi membutuhkan path lengkap (mis. / Home / user / ...) untuk membuatnya berfungsi.

Ini karena memohon manusia mengubah direktori kerja saat ini. Di komputer saya (xubuntu, menggunakan xfce-terminal) ia pergi ke /usr/share/man. Jika konsol Anda menampilkan CWD Anda dapat melihatnya berubah, atau Anda dapat melihatnya dari dalam mandengan memasukkan:

!pwd
Abu
sumber
man benar-benar mengubah CWD, jadi Anda harus menggunakan path lengkap.
Rob
@Rob - Apa maksudmu itu man actually changes CWD?
PeanutsMonkey
Saya telah mengatur tmux untuk menampilkan CWD saya di bilah status saya. Melakukan man man(atau apa pun) akan mengubah CWD saya saat pria terbuka. Mesin linux saya tidak tersedia saat ini, dan saya tidak yakin ada cara lain untuk memeriksa CWD, tetapi bagi saya sepertinya itulah yang dilakukannya.
Rob
@Rob - Jadi maksud Anda mengatakan bahwa hanya karena Anda menggunakan tmux, itu mengubah direktori kerja saat ini ketika Anda menjalankan perintah man {command}dari say /home/{user}ke lokasi perintah man?
PeanutsMonkey
Itu akan menjelaskan perilaku yang saya lihat. Sekarang, mengapa itu mengubah CWD, itu pertanyaan lain ...
Ash
4

Cara umum untuk melakukan ini adalah dengan menangguhkan pekerjaan saat ini, menjalankan perintah dan melanjutkan pekerjaan lama.

ls | less (baca teks, perhatikan nama file)
Control-zuntuk menangguhkan perintah aktif saat ini

Anda harus mendapatkan garis yang serupa dengan ini: [1]+ Stopped ls | less
([1] adalah nomor pekerjaan.)

rm testfile

fgatau fg %1 (1 adalah nomor pekerjaan)

Anda dapat menangguhkan beberapa proses sekaligus. Misalnya
ls | less
Control-z (output: [1]+ Stopped ls | less)
man rm
Control-z (output: [2]+ Stopped man rm)
rm -i testfile*

fg %1untuk melanjutkan pekerjaan 1 (membiarkan halaman manual terbuka di latar belakang), atau
fg %2untuk melanjutkan pekerjaan 2 (man rm)

Jika Anda memiliki beberapa proses yang ditangguhkan, Anda dapat mencantumkannya jobs.

Hennes
sumber