Bagaimana saya bisa menggunakan manusia tanpa kurang?

21

Secara default, manmenggunakan lessoutput teks. Bagaimana saya bisa tahu itu hanya output ke stdout? Emulator terminal saya memiliki bilah gulir dan fungsi pencarian dan saya ingin menggunakannya bukan tombol panah.

sayap kanan
sumber

Jawaban:

31

Sebenarnya ia menggunakan apapun yang ditentukan dalam variabel lingkungan MANPAGERatau PAGER.

Bergantung pada manimplementasi dan versi Anda, bisa juga ada saklar baris perintah untuk menentukan pager.

Dengan implementasi man-db saya menggunakan semua cara di bawah ini untuk bekerja:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

Untuk mengaturnya secara permanen, cukup tambahkan ke ~/.bashrc(atau file inisialisasi lainnya yang digunakan oleh shell Anda):

export MANPAGER=cat

Itu bekerja dengan beberapa manimplementasi yang lebih tua juga, sedangkan MANOPTman-db spesifik:

export MANOPT='-P cat'

(Lebih baik jangan mengatur PAGERseperti itu. Yang itu digunakan oleh banyak aplikasi lain juga.)

Mungkin ada juga file konfigurasi global. man-db memiliki /etc/man_db.confatau /etc/manpath.config. Di sana Anda dapat mengatur:

DEFINE    pager    cat

Tapi sayangnya itu dipertimbangkan hanya jika keduanya MANPAGERtidak PAGERdiatur.

manatwork
sumber
2
Jawaban yang bagus. Re: ~/.bashrc, Anda juga bisa membungkus ekspor dalam bersyarat sehingga hanya menetapkan pager jika itu yang sesuai terminal / emulator: if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi; jelas ganti xtermdengan emulator yang sesuai.
Kevin
1
Sebenarnya, itu bagus dan secara desain manpath.config diperhitungkan nanti. Baik PAGER dan MANPAGER adalah level pengguna, di mana file config adalah level sistem. Jika tingkat sistem akan diutamakan maka pengguna tidak bisa menimpa sama sekali.
Paul de Vrieze
@ PauldeVrieze, Anda benar MANPAGER. Saya menggunakan kata "sayangnya" untuk fakta bahwa perilaku juga berlaku untuk PAGER, yang merupakan pengaturan umum (digunakan oleh banyak alat) dan saya lebih suka untuk tidak mengesampingkan pengaturan tertentu (digunakan oleh hanya satu alat), bahkan jika itu satu adalah tingkat sistem.
manatwork
Jika Anda ingin mengganti pengaturan tertentu untuk satu alat, Anda selalu dapat melakukannya dengan membuat alias, fungsi shell atau skrip wrapper. Salah satu dari mereka akan berjumlah PAGER=cat manalias man='PAGER=cat MANPAGER=cat man'
:,
6

Cukup menyalurkan output manke cat?

man ls | cat   # useful use of cat
tony
sumber
6
Perhatikan bahwa tergantung pada manimplementasinya, bahwa 1) menimbulkan kesalahan, 2) menampilkan kode format troff di terminal, 3) menghapus semua pemformatan, 4) berfungsi seperti yang diharapkan.
manatwork
2
Saya belum pernah melihatnya selain 4.
Keith Thompson
@KeithThompson macOS's mantampaknya menggunakan pager yang diatur MANPAGERbahkan ketika output adalah file atau pipa. Dan jika pager itu less, maka itu semua baik karena lessberperilaku seperti catketika output adalah pipa ... Tetapi jika Anda menggunakan sesuatu yang lain (seperti Vim, yang saya gunakan), maka itu tidak begitu baik.
muru
1

Coba perintah ini untuk menghasilkan output man tanpa pager.

  • man ls | cat (lebar tetap yang dihasilkan)

  • man -P cat ls (lebar variabel yang dihasilkan)

Saya menggunakan sistem linux GNU

Duncan
sumber
1

Sudut lain: Mirip dengan jawaban Tony.

Anda juga dapat mengarahkan output manusia ke file dan melihatnya dengan editor teks favorit Anda atau bahkan menambahkan bookmark, komentar, dll.

man bash  > bashman.txt

Saya memiliki salinan halaman bash man dan juga hanya bagian-bagian pada bash flow control dan bash flag test yang disimpan sebagai file teks di direktori bin saya sehingga saya dapat memuatnya langsung ke editor teks (kate) untuk referensi sementara saya menulis skrip bash.


Peringatan: tergantung pada sistem Anda dan halaman manual, perintah di atas dapat menghasilkan informasi format dan kontrol karakter dalam file.

Untuk menghindari ini, lakukan seperti yang disarankan dalam LESS='+/^TIPS' man man:

To  get a  plain  text  version  of a man page, without backspaces and
underscores, try

  # man foo | col -b > foo.mantxt
Joe
sumber
1
@ Kartu Memori - Terima kasih. Saya tidak tahu tentang itu.
Joe