Linux man sayfalarındaki linkleri nasıl takip edebilirim?


92

Man sayfasında belirtilen bağlantıları takip etmenin bir yolu var mı? Örneğin, işte man sayfası ps; kırmızı ile işaretlenmiş bağlantıya nasıl erişirim?

Ps man sayfasının ekran görüntüsü


1
Ayrıca, man is an interface to the on-line reference manuals(yanlış değilsem) internetteki tüm bilgileri web sitesindeki tüm bilgileri çekmek gerektiği anlamına geldiğini görüyorum , değil mi? Öyleyse, http: // bağlantısının ne olduğuna dair bir ipucu olan var mı?
its_me

10
Burada “çevrimiçi”, “İnternette” değil “bilgisayarda” anlamına gelir (“kağıt üzerinde” yerine).
Gilles,

1
"On-Line": "On-Line" isimli bir şirketin (daha sonra) çıkardığı PC için "Adventure" Quest oyunlarını hatırlayabilirsiniz. man sayfaları: Man sayfalarına göz atmanın en iyi yolu editörünüzü kullanmaktır. Bu şekilde, metin gezinmek, arama yapmak (vb.), Her kısayol kas hafızanızda bulunduğunuzdan beri çok yumuşak olacaktır. Ayrıca, bir programlama projesi üzerinde çalıştığınızı söyleyin - man sayfalarından kodunuza kopyalayabilirsiniz. Kesintisiz etkileşimden daha az bir şey yok. Bunu kontrol edin ve @Gilles'in cevabına yorumum .
Emanuel Berg

Yanıtlar:


52

Man sayfaları, Unix First Edition'a kadar uzanıyor . Hipermetin icat edilmiş olmasına rağmen, hala bebeklik döneminde; web yirmi yıl uzaktaydı ve bu kitapçık basılan bir kitaptı, eğer uygunsa sık sık sayfa başına bir komut veriyordu (bu yüzden sayfalar deniyorlardı).

Manuel sayfalar için kullanılan biçim o zamandan beri biraz gelişti, ancak çoğu sayfa köprü metni için gerçekten tasarlanmadı ve varsayılan manprogram bunu desteklemiyor (yalnızca basit bir metin görüntüleyici, bazı temel biçimlendirmeleri destekleyen bilgisayar destekli). Bazı köprüler yeniden adam sayfa görüntüleme programları, geleneksel olarak formda yazılır Diğer adam sayfalarına ağırlıklı bağlantılar Vardır ancak adam sayfanın adıdır ve bir bölüm numarası :man(1)man1

  • tkman , köprüleri olan GUI man sayfa görüntüleyicisi
  • WoMan ( wiki , adam comparsion , eskiden ), Emacs için bir adam sayfası tarayıcı, köprüler destek
  • man2html , HTML dönüştürücü olan bir adam (ayrıca sonucu okumak için bir web tarayıcısı)

man2htmlÇevrimiçi olarak bazı sitelerde HTML'ye veya benzer araçlarla HTML'ye dönüştürülen çeşitli işletim sistemlerinin el ile sayfalarına göz atabilirsiniz, örneğin:

Man sayfalarının unix'te oluşturulan dokümantasyon formatı haline gelmesinden bir süre sonra ve web keşfedilmeden bir süre önce, GNU projesi metin terminalleri için tasarlanan basit işaretlemeye sadık kalarak, insandan daha gelişmiş bilgi dokümantasyon formatını sundu . Bilgiye kıyasla insandaki en büyük yenilik, diğer sayfalara köprüler içeren çok sayfalı belgelere sahip olmaktı. Bilgi hala GNU projeleri için tercih edilen dokümantasyon formatıdır, ancak çoğu Bilgi sayfası da HTML oluşturabilen bir Texinfo kaynağından (veya bazen başka formatlardan) oluşturulmuştur. Bir programın bilgi dokümantasyonu mevcut olduğunda, çoğu zaman ana kılavuz olur, man sayfaları sadece komut satırı argümanları hakkında temel bilgiler içerir.


5
Mükemmel cevap! Söz Ayrıca değer Emacs adam sayfaları için başka mod olmasıdır, bir (en azından ben) Sadece idare M-x man(ve C-h v mode-nameolduğu Man): en az bir yönüyle, bu daha üstündür WoMano tablolar (görüntülediğinden ekran görüntüsü ). Tabii ki, aynı zamanda köprü.
Emanuel Berg

1
Bilgi programı kullanıcı arayüzü sadece yanlış ve sezgisel hissediyor. Bunu kullanan birini görmedim.
Pavel Šimerda

@ PavelŠimerda> Bilgi programı kullanıcı arayüzü sadece yanlış ve sezgisel hissediyor. <EMM, neye kıyasla? Daha azına (1) (bu, GNU’daki adam için varsayılan çağrı cihazıdır (1)) - <backspace> bağlı olmadığından (ve <pgup> hiç çalışmayabilir) çünkü geriye nasıl kaydırılacağını hatırlamanız gereken şey ? Birincil anahtar, bbu arada. Hangi arayüz paradigmasını kullanan bir kullanıcı için bu sezgisel olabilir?
Dmitry Alexandrov

@ PavelŠimerda> Bunu kullanan birini görmedim. Kesin nedene bir metin terminalde kilitli aldığımda <daima, okuma man sayfalarını (1) bilgisi kullanmasını az (1) aksine yok dilsiz dönüştürmek page(N)köprüler içine bağlantıları. Gilles'un cevabında bu kalitede söz edilmemiş olması oldukça şaşırdı.
Dmitry Alexandrov

37

Her şeyden önce, bu bir bağlantı değil. Bu sadece bir alt çizgi. Kılavuz sayfaları, bir terminalin işleyebileceği, biraz basit biçimlendirmeye sahip metin belgeleridir. Alt çizgi sadece bir vurgudur, konuyla ilgili bir "bağlantı" yoktur.

Normal mankomut sadece bir metin formatlayıcıdır. Aslında mankomut metni bile görüntülemiyor, mansadece man sayfa dosyasında [1] kayıtlı bilgileri formatlıyor lessve formatlanmış çıktıyı, ekrana formatlanmış çıktıyı gösteren başka bir programa (genellikle ) gönderiyor . Bu ekran programlarında bağlantı kavramı yoktur.

Bu şekilde biçimlendirmeye bakabilecek ve böyle bir vurgunun, çekilip bağlantı oluşturabilecek ilgili bir sayfa olduğunu gösterebileceği konusunda eğitimli bir tahminde bulunabilecek bazı özel dokümantasyon okuyucuları var, ama bilmiyorum hangileri yapar. Belki de pinfo?

Web’i köprülerle biçimlendirmek gibi isterseniz, bağlantıların eklendiği neredeyse tüm UNIX kullanıcı sayfalarını çevrimiçi olarak bulabilirsiniz. man [anything]Google’a yazmayı deneyin ve ilk birkaç vuruşta neredeyse bir tane alacaksınız.

Örneğinizde, görsel vurgulama, kolayca açabileceğiniz kendi sayfa sayfasına sahip olan başka bir program adı olduğuna dair bir ipucudur. Dene man 1 top. 1, bakılacak sayfaların bölümünü gösterir. Bölümlerin açıklaması için bu soruya bakın: Bir sayfadaki sayılar ne anlama geliyor?


[1] açarsanız manbir metin editörü sayfa dosyası, ham göreceksiniz mankolay okunması için biçimlendirilmemiş sayfa. Ham mansayfa denilen bir biçimlendirme dilinde yazılmıştır troff. troffBir mansayfanın nasıl yazılacağı ve nasıl yazılacağı hakkında daha fazla bilgi için : https://liw.fi/manpages/ .


Neden olduğu hakkında bir fikrin var mı man 1 top? Bunun gibi bir şey olmalı ps 1 topçünkü bağlantıyı man sayfasında buldum ps. "erkek 1 top" bana mantıklı gelmiyor. Lütfen açıkla.
its_me

Man sayfalarını internette erişilebilir kılan, href'ler tarafından değiştirilebilen referanslarla değiştirilen bazı kaynaklar da vardır.
gabe.

1
Eğer top(1)"link" takip etmek istiyorsanız , topmanüel sayfayı 1. bölümden açmalısınız . Bölümler hakkında daha fazla bilgi için, bakınız erkek (1). ps 1 topBir anlam ifade etmiyor, çünkü sadece psonun için garip olan bazı komutları çalıştıracaksınız .
rvs

2
@Aahan bu adam 1 en iyi çünkü çevrimiçi elkitap sayfalarının 1. bölümünde üst komutun el kitabını görmek istiyorsun. Referans üstü (1), manüel sayfaların 1. bölümünde üstte olduğu anlamına gelir. Bunu görmek için, istemde "man 1 top" yazın. Bakınız "Adam Adam"
gabe.

1
@Aaran: El kitabının bölümleri farklı konuları kapsar. Bölüm 1 kullanıcı komutlarıdır (istemde yazdığınız şeyler) bölüm 2 sistem çağrılarıdır vb. Bazı dizeler birden fazla bölümde görünür Şu anda readlink1. bölüm ve bölüm 2'nin ve görünen printfbölümler 1 ve 3 sadece yazarsanız içinde man command, adam sayısal sırayla bölümleri trys ve bulduğu veya birlikte spesifik olabilir ilk görüntüler man # commandsize belgeleri almak için yapmak zorunda olan readlinksistem çağrısı için
dmckee

12

Bu çok geç cevaptır, ancak w3mman kullanın. w3mman, sistemin manuel çağrı cihazıdır, w3m'dir.

https://linux.die.net/man/1/w3mman

W3m paketini kurarak deneyebilirsiniz. Bu paketin çoğu Linux / UNIX dağıtımının ve Cygwin'in yazılım depolarında kayıtlı olduğuna inanıyorum.


1
Henüz belirtilmeyen soruya biraz cevap ekleyen geç cevap, hiç sorun değil! Unix ve Linux StackExchange'e Hoş Geldiniz!
Bernhard

w3mmanayrıca varsayılan Macports w3mkurulumu ile sağlanır. Harika :) Teşekkürler!
sampablokuper 08:14

8

Sorunuzu, iş akışınızı takip etmeye çalıştığım anlamda biraz daha yorumlamaya çalışmama izin verin. Muhtemelen sahip olmak manistediğiniz, sizi doğrudan okuduğunuz altı çizili komutlara yönlendiren bir sayfadaki anahtar kombinasyondur . Yani, başka bir şey kurmak zorunda kalmamak, başka bir konsolu açmak ve örneğin sözdizimini tam olarak unutmamak.

Bu en basit çözüm ünlem işaretidir ( lessadam sayfalarını görüntülemek için kullanıyorsanız ) ve altı çizili çizgiye gitmek istiyorsanız top:

!man top

Veya

!man 1 top

Hepsini qbirden çok kez basarak kapatmak zorunda kalacaksınız . Bunun güvenli modda LESSSECURE=1çalışmasını lesssağlayacak ve kullanmanıza izin vermeyecek çevresel değişken olarak ayarlanması durumunda bunun işe yaramayacağını da unutmayın !. Size "Komut mevcut değil" gibi bir şey söyleyecektir.


1

W3mman linkleri takip etmek için bir çözüm olmakla birlikte , tüm ekranı kullanmaz (en azından ubuntu 12.10'da)

Kullanmayı tercih ederim:

$ sudo su -
# apt-get install w3m man2html
# exit
$ alias man=' hman -P w3m'

her oturuma ulaşmak için ~ / .bash_aliases veya benzeri bir başlangıç ​​betiğine en son komutu ekleyin .

-P w3m HMAN ilk tarayıcı çünkü vaşak veya mantıklı tarayıcı ama tercih w3m

hman , html2man'da paketlenmiş bir araçtır. Bkz bu

Beni kullanmaktır olarak ise onayı ile exit size can sıkıcı bu


Benim hatam, paket html2man olmalı
albfan

1

Özellikle Ubuntu için Yelp var. Varsayılan olarak yüklenir ve varsayılan olarak manuel sayfaları görüntüleyebilir, buna rağmen çalıştırma komutunkiyle aynı değildir man; bir takma ad veya bir kabuk işlevi, ikinci noktanın etrafında çalışabilir (kabuğunuza bağlıdır).

yelp 'man:exit'

Bir bölüme bilmediğim bir şekilde varsayılan olacaktır. Hatırlatma: Manuel bir konu için bölümler listesini almak için whatis, içinde olduğu gibi kullanın whatis exit.

Yelp'in belirli bir bölümden el ile bir sayfa görüntülemesini istemek için, örneğin 2:

yelp 'man:exit(2)'

Sorunlar: yelp'in hataları var ve komut satırından çağırırken çıktıyı almak için hazır olun. Ayrıca, bir takma ad veya özel bir kabuk işlevi, tüm hataların yönlendirilmesine yardımcı olabilir./dev/null


1

Dedikleri gibi, bunun için tasarlanmadı.

Kullanabilir info manve daha sonra enter tuşuna basıp , ürününüzde SEE ALSO bölümüne girilir .

info - Bilgi belgelerini okuyun


1

Ben bir kaç tane hack var.

kesmek 1

Bunu ~ / .bashrc veya ~ / .zshrc'nize koyun.

function man(){
    for arg in "$@"; do
        vim -c 'execute "normal! :let no_man_maps = 1\<cr>:runtime ftplugin/man.vim\<cr>:Man '"${arg}"'\<cr>:wincmd o\<cr>"'
    done
}

Ekran Görüntüsü ..

el vim ekran görüntüsü

Asciinema ..

https://asciinema.org/a/130131

Şimdi ..

  1. yazarken man vim, örneğin, bu adam sayfa açılacaktır vim

    • yazarsanız man man vim, örneğin, ilk açılacak man'ın manuel ve vim çıkmak sonra, açılacak vim' ın kitabını
  2. K(başkentte k) tuşuna bastığınızda , altta başka bir adam sayfasındayken (ayrıca bkz. bölüm), bu kılavuza atlayacaksınız (maalesef daha az çağrı cihazının içinde - bunun nedeni biz let no_man_maps = 1; Bunu yapın, sonra vim qolmaya zorlar :qve bir makroyu kolayca kaydedemezsiniz ve vim başka şekillerde sinsice davranır).

    • girdiğiniz bu ikinci kılavuzdan çıkmanız, görüntülediğiniz önceki kılavuza geri dönmenizi sağlar
  3. ftplugin / man.vim yüklediğiniz ve ft (otomatik olarak) ayarlandığı için çok güzel sözdizimi vurgulama elde edersiniz man.

  4. kopyalayıp yapıştırabilir, kolayca vim içinde gezinebilir ve hatta arabelleği değiştirebilir ve hatta değiştirebilirsiniz :w ~/usefulfile. Kayıt makroları, yank - panoya "+y(varsa +clipboard), vb. Dahil olmak üzere normalde yapacağınız her şeyi yapabilirsiniz .

Daha az çok daha güzel buluyorum .

Bulduğum tek küçük gerileme (çağrı cihazınız kadar az kullanıyorsanız hala var olan) bir vim oturumunda birden fazla el kitabının açık olmasını istiyorsanız. Bunu yapmanın bir yolunu görmüyorum.

Birkaç not:

  1. tamponu kaydetmeye çalışırsanız, E382: Cannot write, 'buftype' option is set

    • Yanlışlıkla kaydetmeyi önlediği için tasarruf edememeyi sevdim
  2. yine de kurtarabilirsin :w /tmp/man.man

    • bir .manuzantıyla kaydederseniz, manaçmanız filetipi sizin için ayarlayacaktır.
    • bir .manuzantıyla kaydetmezseniz , ft komutunu mançalıştırarak ayarlayabilirsiniz.:set ft=man
  3. autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'Örneğin, man sayfalarını açarken bir şeyler yapmanız gerekiyorsa , örneğin kullanabilirsiniz .

  4. Vimrc'de aşağıdakileri koydum, böylece Kel kitabını açmayı denemek için ve sonra Gönceki el kitabına geri dönmek için düğmesine basın :


augroup man
    autocmd!
    autocmd VimEnter *.~ nnoremap B :execute "normal! `Z"<cr>
    autocmd VimEnter *.~ nnoremap <buffer> K :execute "normal! mZyiw:Man \<lt>c-r>\"\<lt>cr>"<cr>
augroup END

hack 2

Bunu ~ / .bashrc veya ~ / .zshrc dizinine koyun.

function man(){
    declare -a args
    for arg in "$@"; do
        command man "$arg" > "/tmp/${arg}.man"
        args+=("/tmp/${arg}.man")
    done
    vim "${args[@]}"
}

Ekran Görüntüsü ..

vim'deki çoklu kılavuzlar

Asciinema ..

https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv

Bu, 1 ve daha az yüzü kesen bir sorunu çözer (şimdi birden fazla kılavuzu bir tamponda görüntüleyebilirsiniz), ancak daha az zarif.

Notlar:

  1. ÖNEMLİ hack2'nin çalışmasını istiyorsanız , o zaman kendi anahtarınızı koymak :let no_man_maps = 1zorundasınız ~/.vimrc. Bunun nedeni, vim'in kaynak yapması .../vim80/man.vimve qzorla yeniden ele geçirilmesidir :q.

  2. Daha fazla temizlik işi var (artık her el kitabını /tmp/*.man dizininde saklıyorsunuz )

  3. Bununla birlikte, şimdi, yukarıda belirtildiği gibi, bir oturumda birden fazla man sayfasını görüntüleyebilirsiniz.

  4. Eğer basarsanız K, yine de yeni bir vim oturumu açacaksınız.

    • İsterseniz bir benzeri ( autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"veya benzeri olmayan) bir şey yapmak için bir otomatik cmd'yi (yukarıdaki gibi bir autocmd kullanarak) bağlayabilirsiniz ( denenmemiş )

kötü renklendirilmiş asinema için özür diler. Terminalimdeki renkler çok daha güzel görünüyor.
Dylan,

0

--htmlArgümanı man$ BROWSER ortam değişkeni tarafından tanımlanan tarayıcıda açmak için kullanabildim , bu yüzden:

BROWSER=google-chrome man ps --help

Fedora kullanıyorum. Bunun sizin dağıtımınız için uygun olup olmadığından emin değilsiniz, lütfen yorumlarınızı test edin ve bildirin.


Seçenek Ubuntu 12.04'te tanınmış görünüyor, ancak başarısız oluyor.
Hibou57

Tamam, paketin groffyüklenmesi gerekiyor. groffAynı adı taşıyan paket değilken komut olabilir (komut ile geliyor groff-basedeğil tam, groffpaketin). Yaparım man --html="surf file%c//%s" <command>ve sorun değil. Çok hyper çok sınırlı köprü var olsa da: -.
Hibou57
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.