İnsanı daha az olmadan nasıl kullanabilirim?


21

Varsayılan olarak, metin çıkışı için mankullanır less. Sadece stdout'a çıktı vermesini nasıl söyleyebilirim? Terminal emülatörümün kaydırma çubuğu ve arama işlevi var ve ok tuşları yerine bunları kullanmak istiyorum.

Yanıtlar:


31

Aslında MANPAGERveya PAGERortam değişkeninde belirtilenleri kullanır .

manUygulamanıza ve sürümünüze bağlı olarak , çağrı cihazını belirtmek için bir komut satırı düğmesi de olabilir.

İle insan-db uygulaması ben tüm yolları işin altında kullanın:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

Kalıcı olarak ayarlamak için, sadece ~/.bashrc(veya kabuğunuz tarafından kullanılan diğer başlatma dosyalarına) ekleyin:

export MANPAGER=cat

Bu, bazı eski manuygulamalarla da işe MANOPTyarar, man-db ise özeldir:

export MANOPT='-P cat'

(Daha iyi PAGERbu şekilde ayarlamayın . Bu da birçok diğer uygulamalar tarafından kullanılır.)

Global bir yapılandırma dosyası da olabilir. man-db /etc/man_db.confya da var /etc/manpath.config. Orada ayarlayabilirsiniz:

DEFINE    pager    cat

Ancak ne yazık ki bu, ne ayarlanmadı ne MANPAGERde PAGERayarlanmadıysa dikkate alınır .


2
İyi cevap. Re:, ~/.bashrcAyrıca dışa aktarımı koşullu olarak da sarabilirsiniz, böylece çağrı cihazı yalnızca uygun terminal / emülatör ise ayarlanır if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi:; Açıkçası xtermuygun emülatör ile değiştirin .
Kevin,

1
Aslında, iyi ve tasarım gereği daha sonra manpath.config hesaba katılır. Hem PAGER hem MANPAGER, config dosyasının sistem seviyesinde olduğu kullanıcı seviyesidir. Sistem seviyesi öncelikli olsaydı, kullanıcılar hiçbir şekilde geçersiz kılmazdı.
Paul de Vrieze

@ PauldeVrieze, haklısın MANPAGER. “Maalesef” kelimesini, davranışın da geçerli olduğu PAGER, yani genel bir ayar (birçok araç tarafından kullanılan) olduğu için kullandım ve belirli bir ayarı (sadece bir araç tarafından kullanılan) geçersiz kılmamasını tercih ederim . Biri sistem seviyesidir.
Manatwork

Tek bir araç için belirli bir ayarı geçersiz kılmak istiyorsanız, bunu her zaman bir diğer ad, bir kabuk işlevi veya bir sarmalayıcı komut dosyası oluşturarak yapabilirsiniz. Bunlardan herhangi biri PAGER=cat manalias man='PAGER=cat MANPAGER=cat man'
şunlara değinecektir

6

Basitçe çıkış maniçin boru cat?

man ls | cat   # useful use of cat

6
manUygulamaya bağlı olarak, 1) 'in hatayı artırdığını, 2) terminalde troff format kodlarını gösterdiğini, 3) tüm formatları kaldırdığını, 4) beklendiği gibi çalıştığını unutmayın.
Manatwork

2
Daha önce 4'ten farklı olduğunu görmedim
Keith Thompson

@KeithThompson macOS'lar çıkış bir dosya veya boru olsa bile manayarlanmış çağrı cihazını kullanıyor gibi görünüyor MANPAGER. Eğer çağrı cihazı uygunsa less, o zaman her şey lessyolunda çünkü catçıktı bir boru olduğunda olduğu gibi davranıyor ... Ama başka bir şey kullanırsanız (kullandığım Vim gibi), o zaman o kadar iyi değil.
muru,

1

Çağrı cihazı olmadan insan çıktısı oluşturmak için bu komutları deneyin.

  • man ls | cat (oluşturulan sabit genişlik)

  • man -P cat ls (oluşturulan değişken genişlik)

GNU linux sistemindeydim


1

Başka bir açı: Tony'nin cevabına benzer.

Ayrıca man çıktısını bir dosyaya yönlendirebilir ve en sevdiğiniz metin düzenleyicinizle görüntüleyebilir veya hatta yer imleri, yorumlar vb. Ekleyebilirsiniz.

man bash  > bashman.txt

Ben bash man sayfasının bir kopyasının yanı sıra bin akış dizininde metin dosyaları olarak kaydedilmiş bash akış kontrolü ve bash testi bayraklarının bölümleri de var; böylece bunları referans olarak almak için metin editörüme (kate) yükleyebilirim. bash scriptleri yazma.


Uyarı: sisteminize ve kılavuz sayfasına bağlı olarak, yukarıdaki komut dosyadaki bilgilerin biçimlendirilmesine ve kontrol karakterlerine neden olabilir.

Bunu önlemek için, önerildiği şekilde yapın 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

1
@Wildcard - Teşekkürler. Bunu bilmiyordum.
Joe,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.