Kabuk yerleşiği komutları ve anahtar kelimeleri için 'adam' çalışması nasıl yapılır?

51

Belirli bir komut hakkında bilgi almak istediğimde man komutunu her zaman kullanıyorum. Fakat bu belirli bir komut bir kabuk yerleşik olduğunda çok fazla bana yardımcı olmaz. Örneğin:

man cd

döner:

No manual entry for cd

Sorum şu: man öğesinin de tüm kabuk yerleşik komutları için ( cd , alias , history , vb. gibi) ve anahtar kelimelerde ( if ,% co_de gibi) çalışması mümkündür %, while , [[ , vb.)?

    
sordu Radu Rădeanu 26.03.2014 11:30

4 cevap

60

help seçeneği ile kullanıldığında -m komutu, yapay manpage formatında yerleşik komutlar hakkında bilgi görüntüleyebilir. Örneğin:

help -m cd | less

cd komutuyla ilgili bilgileri, manuel sayfada olduğu gibi bir biçimde gösterir.

Bu komuttan başlayarak, man komutunu .bashrc dosyanızdaki bir işlev olarak aşağıdaki gibi kopyalayabilirsiniz:

man () {
    case "$(type -t -- "")" in
    builtin|keyword)
        help -m "" | sensible-pager
        ;;
    *)
        command man "[email protected]"
        ;;
    esac
}

Bundan sonra man , tüm kabuk yerleşik komutları ve anahtar kelimeler için de çalışacaktır. Örneğin:

man :

gösterilecek:

NAME
    : - Null command.

SYNOPSIS
    :

DESCRIPTION
    Null command.

    No effect; the command does nothing.

    Exit Status:
    Always succeeds.

SEE ALSO
    bash(1)

IMPLEMENTATION
    GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2011 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    
verilen cevap Radu Rădeanu 26.03.2014 11:30
26
man bash-builtins

Bu, yerleşik komutlar için, help eşdeğerinden biraz daha yoğun bir biçimde de olsa, yardım snippet'lerini içerir.

    
verilen cevap Oli 26.03.2014 11:31
12

Geliştirme için POSIX sistemi kullanma hakkında manuel sayfalar yükleyebilirsiniz.

sudo apt-get install manpages-posix-dev

Kabuk yerleşikleri için kullanıcı sayfaları sağlayacaktır.

$ type cd
cd is a shell builtin

Şimdi dene

$ man cd
CD(P)                      POSIX Programmer's Manual                      CD(P)

NAME
   cd - change the working directory

SYNOPSIS
   cd [-L | -P] [directory]


...
    
verilen cevap souravc 27.03.2014 05:05
2

Bu çözüm gayet iyi çalışıyor ama biraz da şaka gibi çünkü soruyu okuduğumda ilk düşündüğüm şey 'Kim hala komut satırından adamı kullanıyor? Herkes istediği adam sayfası değil (sınırsız kaydırma gibi süslü şeyler elde eder)? Daha sonra, Google’ın genellikle sitelerin her iki tipinde de komutları olduğunu fark ettim. Bu nedenle, tüm komutlarda sadece tek tip bir adam sayfası arayüzü sağlamak için bunları kullanmıyoruz. Bu yüzden, bu eğlence doğdu.

Bu, en az bir kez daha bakmadığınız tüm girişler için İnternet bağlantısı gerektirir. Ayrıca, Ubuntu'nun varsayılan yüklemesinde eksik olan bu iki küçük uygulamaya da gereksinim duyar:

 sudo apt-get install tidy html2text

Bunlar kesinlikle gerekli değil ama biraz daha güzel görünmesine yardımcı oluyorlar. Düzenli, HTML'yi temizler ve html2text, html'yi biçimlendirilmiş metin olarak biçimlendirir (genellikle bu sitelerin çoğu zaten metin biçimlendirilmiş ve & lt; pre & gt; etiketlerine sarılmış olduğundan oldukça önemsizdir.

Şimdi yapmanız gereken tek şey bunu ~/.profile 'nin sonuna eklemektir:

function iman() {
    if [ ! -d "/usr/share/iman" ]; then
        sudo mkdir -m a=rwx /usr/share/iman
    fi
    if [ ! -f "/usr/share/iman/.html" ]; then
        curl "http://unixhelp.ed.ac.uk/CGI/man-cgi?"| tidy -n -asxml 2>/dev/null| html2text > "/usr/share/iman/.html"; 
    fi
    if [ -f "/usr/share/iman/.html" ]; then
        cat "/usr/share/iman/.html";
    else
        echo "Entry not found."
    fi
}

Oturumu kapattıktan sonra tekrar yazdıktan sonra şunu yazabilmelisiniz:

iman cd

ve bu cd için man sayfasını görüntüler.

Bu, ağ gereksinimlerimizi en aza indirgemek için bir veri dizini (/ usr / share / iman) kullanır (bu nedenle bağlantıdan önce bile daha önce bulduğunuz girişler için çalışır, ayrıca bu rasgele linux üzerindeki yükü en aza indirmek için de kullanılır) adam sayfaları site ben de içinde istediğimiz sistem girişleri ile buldum). Bunu artık kullanmıyorsanız, disk alanını kurtarmak için bunu kaldırmak isteyeceksiniz.

Umarım, geri kalanlar oldukça ileridir.

    
verilen cevap krowe 26.03.2014 15:05

Etiketlerdeki diğer soruları oku