Komutları kullanmayı öğrenmek için man sayfalarını nasıl kullanırım?


92

Başka bir sorun üzerinde araştırma yaparken, bir komutla karşılaştım ,

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

hakkında daha fazla şey öğrenmek istedim. Bu yüzden koştum man xargsve aşağıdaki çıktıyı alıyorum :

XARGS(1)                    General Commands Manual                   XARGS(1)

NAME
       xargs - build and execute command lines from standard input

SYNOPSIS
       xargs  [-0prtx]  [-E  eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null]
       [-d delimiter] [--delimiter delimiter]  [-I  replace-str]  [-i[replace-
       str]]    [--replace[=replace-str]]   [-l[max-lines]]   [-L   max-lines]
       [--max-lines[=max-lines]] [-n max-args] [--max-args=max-args] [-s  max-
       chars]  [--max-chars=max-chars]  [-P max-procs] [--max-procs=max-procs]
       [--interactive]      [--verbose]      [--exit]      [--no-run-if-empty]
       [--arg-file=file]   [--show-limits]   [--version]   [--help]   [command
       [initial-arguments]]

DESCRIPTION
       This manual page documents the GNU version of xargs...

Linux programları hakkında bilgi edinmek için dokümantasyon kullanma konusunda daha iyi olmaya çalışıyorum, ancak bu "Özet" bölümü yeni kullanıcıları korkutuyor. Kelimenin tam anlamıyla man locateveya ile karşılaştırıldığında anlamsız gibi görünüyor man free.

Şimdiye kadar, köşeli parantezlerin isteğe bağlı ve yuvalanmış parantezlerin isteğe bağlı seçenekler anlamına geldiğini anlıyorum. Fakat bununla nasıl geçerli bir emir vermem gerekiyor?

Burada xargs ile ilgili yardım istemiyorum. Karmaşık komutları anlamak için bir man sayfasını yorumlama konusunda yardım arıyorum. Linux komutları öğrenmeye yönelik ilk yaklaşımım olan Google dizinli web bloglarını ve diğerlerinden kişisel yardım almayı durdurmak istiyorum.


17
Man sayfasını okumaya devam edin. "SEÇENEKLER" bölümü, "SYNOPSIS" bölümündeki tüm seçenekleri açıklar.
John,

7
ile başlaman man
mikeserv

14
Sık sık, doğrudan aşağıya inip bir örnek bölümü arayın.
teppic

9
Ve sadece man sayfasını anahtar kelimeler için taramayın. Gerçekten oku! Sözde garip davranışlar genellikle iyi açıklanmıştır.
FloHimself

6
man manokuduktan sonra man intro.
mikeserv

Yanıtlar:


102

Bu, man sayfalarını okumak için çok kişisel bir yolum:

İşveren

manKomutu kullanarak bir manpage açtığınızda , çıktı lessveya morekomutları veya çağrı cihazınız (yönetici) olarak ayarlanacak diğer herhangi bir komut tarafından gösterilecek / gösterilecektir .

Eğer Linux kullanıyorsanız, muhtemelen kullanmak için önceden yapılandırılmış olan insan altyapınızla birlikte /usr/bin/less -is(bazı minimal dağıtımlar yapmadıysanız ) man(1), Seçenekler bölümünde açıklayın:

-P pager
Specify which pager to use. This option overrides the MANPAGER environment variable, 
which in turn overrides the PAGER variable. By default, man uses /usr/bin/less -is.

FreeBSD ve OpenBSD'de, MANPAGERçoğunlukla kullanacağından ortam değişkenini düzenleme meselesidir moreve arama ve metin vurgulama gibi bazı özellikler eksik olabilir.

Hangi farklılıkların moreolduğu lessve buradamost sahip olmadığı (hiç kullanılmamış ) sorusuna iyi bir cevap var . Geriye gidin ve sayfanın öne kaydırmak yeteneği ya doğrultusunda her iki yönden veya (ayrıca, kullanan bağlamaları ve klavuz sayfalarını gezinirken) esastır. Kullanılabilir komutların özetini görmek için kullanırken tuşuna basın .mostSpacevijkhless

İşte bu yüzden lesssize erkek çağrı cihazı olarak kullanmanızı tavsiye ediyorum . lessbu cevapta kullanılacak bazı temel özelliklere sahip olacak.

Bir komut nasıl formatlanır?

Yardımcı Program Kuralları : Açık Grup Tabanı Spesifikasyonları Sayı 7 - IEEE Std 1003.1, 2013 Sürümü. Bir manpage anlamaya çalışmadan önce bu bağlantıyı ziyaret etmelisiniz. Bu çevrimiçi referans, standart uygulamaların argüman sözdizimini açıklar ve yardımcı programlar tarafından işlenen argümanları tanımlamak için POSIX.1-2017 boyunca kullanılan terminolojiyi tanıtır. Bu aynı zamanda dolaylı olarak, parametreler, argümanlar, argüman seçeneği gibi kelimelerin gerçek anlamı hakkında sizi bilgilendirecektir.

Herhangi bir sayfanın başı, hizmet sözleşmelerinin gösterimini anladıktan sonra size daha az şifreli görünecektir:

utility_name[-a][-b][-c option_argument]
    [-d|-e][-f[option_argument]][operand...]

Ne yapmak istediğinizi aklınızda bulundurun.

xargsHakkınızdaki araştırmanızı yaparken bir amaç için yaptınız, değil mi? Standart çıktı okumak ve o çıktıya dayalı komut çalıştırmak için özel bir gereksiniminiz vardı.

Ama hangi komutu istediğimi bilmediğimde?

man -kVeya kullanın apropos(eşdeğerdir). Bir dosyayı bulmak için nasıl bilmiyorsanız: man -k file | grep search. Açıklamaları okuyun ve ihtiyaçlarınızı daha iyi karşılayacak birini bulun. Örnek:

apropos -r '^report'
bashbug (1)          - report a bug in bash
df (1)               - report file system disk space usage
e2freefrag (8)       - report free space fragmentation information
filefrag (8)         - report on file fragmentation
iwgetid (8)          - Report ESSID, NWID or AP/Cell Address of wireless network
kbd_mode (1)         - report or set the keyboard mode
lastlog (8)          - reports the most recent login of all users or of a given user
pmap (1)             - report memory map of a process
ps (1)               - report a snapshot of the current processes.
pwdx (1)             - report current working directory of a process
uniq (1)             - report or omit repeated lines
vmstat (8)           - Report virtual memory statistics

Apropos, varsayılan olarak düzenli ifadelerle çalışır ( man aproposaçıklamayı okuyun ve ne yaptığını öğrenin -r) ve bu örnekte açıklamanın "rapor" ile başladığı her bir manpage arıyorum.

Standart giriş / çıkış işlemlerini okuma ve xargsolası bir seçenek olarak ulaşma ile ilgili bilgileri aramak için :

man -k command| grep input
xargs (1)            - build and execute command lines from standard input

Her zaman DESCRIPTIONbaşlamadan önce okuyun

Biraz zaman ayırın ve açıklamayı okuyun. Sadece xargskomutun açıklamasını okuyarak şunu öğreneceğiz:

  • xargsSTDIN'den okur ve gerekli komutu yerine getirir. Bu aynı zamanda standart girdilerin nasıl çalıştığı ve bunun borulardan zincir komutlarına nasıl geçirileceği hakkında biraz bilgi sahibi olmanız gerektiği anlamına gelir.
  • Varsayılan davranış gibi davranmaktır /bin/echo. Bu size küçük bir ipucu verir xargs, birden fazla zincir gerekiyorsa, yazdırmak için yankı kullanmanıza gerek kalmaz.
  • Ayrıca unix dosya adlarının boş ve yeni satırlar içerebileceğini, bunun bir problem olabileceğini ve argümanın -0boş karakter ayraçları kullanarak nesnelerin patlamasını önlemenin bir yolu olduğunu da öğrendik . Açıklama, girdi olarak kullanılan komutun da bu özelliği finddesteklemesi gerektiği ve GNU'nun bunu desteklediği konusunda sizi uyarır . Harika. Birlikte çok buluyoruz xargs.
  • xargs 255 çıkış durumuna ulaşılırsa duracaktır.

Bazı açıklamalar çok kısadır ve bunun nedeni genellikle yazılımın çok basit bir şekilde çalışmasıdır. Manpage'in bu bölümünü atlamayı bile düşünme ;)

Dikkat edilecek diğer şeyler ...

Dosyaları kullanarak arama yapabileceğinizi biliyorsunuz find. Bir sürü seçenek var ve eğer sadece bakarsanız, SYNOPSISonlar tarafından boğulacaksınız. Bu sadece buzdağının görünen kısmı. Dışında NAME, SYNOPSISve DESCRIPTION, aşağıdaki bölümlere sahip olacaksınız:

  • AUTHORS: emrin oluşturulmasında yaratan veya yardımda bulunan insanlar.

  • BUGS: bilinen tüm hataları listeler. Sadece uygulama kısıtlamaları olabilir.

  • ENVIRONMENT: Kabuğunuzun komuttan etkilenebileceği yönler veya kullanılacak değişkenler.

  • EXAMPLESveya NOTES: Açıklayıcı.

  • REPORTING BUGS: Bu araçta ya da belgelerinde hata bulursanız kiminle iletişim kurmanız gerekecek.

  • COPYRIGHT: Yazılımı oluşturan ve yazılımdan feragat eden kişi. Tüm yazılım lisansı ile ilgili.

  • SEE ALSO: Bu komutla ilgili olan ve diğer bölümlerin hiçbirine uymayan diğer komutlar, araçlar veya çalışma yönleri.

Muhtemelen örnekler / notlar bölümünde bir aracın istediğiniz yönleri hakkında ilginç bilgiler bulacaksınız.

Örnek

Aşağıdaki adımlarda findbir örnek olarak ele alacağım , çünkü kavramları xargsaçıklamaktan “basit” . Sadece bu komut hakkında hiçbir şey (veya çok az) bilmediğimizi iddia edelim .

Belirli bir sorun var: .jpgUzantılı ve her dosya için 500KiB (KiB = 1024 bayt, genellikle kibibyte denir) veya daha fazla bir ftp sunucusu klasörü içinde arama yapmak zorundayım.

İlk olarak, kılavuzu açmak: man find. SYNOPSISİncedir. Kılavuzun içindeki şeyleri arayalım: /İstediğiniz sözcüğü yazın ( size). -sizeBelirli boyutları sayan birçok girişi dizine ekler. Takılmak. Belirli bir boyutta "daha" veya "daha az" ile nasıl arama yapılacağını bilmiyorum ve adam bana bunu göstermiyor.

Bir deneyelim ve bir sonraki girişi tıklayarak bulalım n. TAMAM. İlginç bir şey buldum: find \( -size +100M -fprintf /root/big.txt %-10s %p\n \). Belki bu örnek bize -size +100Monunla birlikte 100 MB veya daha fazla dosya bulacağını gösteriyor . Nasıl onaylayabilirim? Manpage'in başına gidip başka kelimeler arayarak.

Yine, kelimeyi deneyelim greater. Basılması gbizi mankenin başına getirecektir. /greater, ve ilk giriş:

 Numeric arguments can be specified as

    +n     for **greater** than n,

    -n     for less than n,

     n      for exactly n.

Kulağa harika geliyor. Kılavuzun bu bloğunda şüpheli olduğumuzu doğruladık gibi görünüyor. Ancak, bu yalnızca dosya boyutları için geçerli değildir. nBu sayfada bulunabilecek olanlara uygulanacaktır (cümlenin söylediği gibi: "Sayısal argümanlar" olarak belirtilebilir).

İyi. Bize adına göre filtreleme için bir yol bulmak edelim: g /insensitive. Neden? Duyarsız? O ne lan? Biz, "bu diğer işletim" insanlar olarak uzantılı bir dosya adı verebilir varsayımsal ftp sunucusu, sahip .jpg, .JPG, .JpG. Bu bizi yönlendirecek:

-ilname pattern
              Like  -lname,  but  the  match  is  case insensitive.  If the -L
              option or the -follow option is in  effect,  this  test  returns
              false unless the symbolic link is broken.

Ancak, aradıktan sonra lnamebunun sadece sembolik linkleri arayacağını göreceksiniz. Gerçek dosyalar istiyoruz. Bir sonraki giriş:

   -iname pattern
          Like -name, but the match is case insensitive.  For example, the
          patterns `fo*' and `F??' match  the  file  names  `Foo',  `FOO',
          `foo',  `fOo',  etc.   In these patterns, unlike filename expan‐
          sion by the shell, an initial '.' can be matched by  `*'.   That
          is, find -name *bar will match the file `.foobar'.   Please note
          that you should quote patterns as a matter of course,  otherwise
          the shell will expand any wildcard characters in them.

Harika. Bu argümanın büyük / küçük harf duyarsız versiyonunu -namegörmek için okumaya bile ihtiyacım yok -iname. Komutu birleştirelim:

Komut: find /ftp/dir/ -size +500k -iname "*.jpg"

Burada örtük olan: Jokerin ?"tek bir pozisyondaki herhangi bir karakteri" ve *"sıfır veya daha fazla herhangi bir karakteri" temsil ettiği bilgisi. -nameParametresi bu bilginin bir özetini verecektir.

Tüm komutlar için geçerli ipuçları

Bazı seçenekler, anımsatıcılar ve "sözdizimi tarzı", tüm komutlar arasında dolaşarak man sayfasını hiç açmak zorunda kalmadan, biraz zaman kazanmanızı sağlar. Bunlar pratik tarafından öğrenilir ve en yaygın olanları şunlardır:

  • Genellikle, -vayrıntılı anlamına gelir. -vvvbazı yazılımlarda "çok çok ayrıntılı" bir varyasyondur.
  • POSIX standardını takiben, genellikle bir tire argümanı istiflenebilir. Örnek: tar -xzvf, cp -Rv.
  • Genellikle -Rve / veya -rözyinelemeli anlamına gelir.
  • Neredeyse tüm komutlar seçenekle ilgili kısa bir yardım alır --help.
  • --version Yazılımın sürümünü gösterir.
  • -p, kopyalamak veya taşımak yardımcı programları "izinleri korumak" anlamına gelir.
  • -y EVET veya çoğu durumda "onay almadan devam et" anlamına gelir.

Yukarıdakilerin de her zaman doğru olmadığını unutmayın. Örneğin, -ranahtar, farklı yazılımlar için çok farklı anlamlara gelebilir . Bir komutun ne zaman tehlikeli olabileceğini kontrol etmek ve emin olmak her zaman iyi bir fikirdir, ancak bunlar genel varsayılanlardır.

Varsayılan komut değerleri.

Bu cevabın çağrı cihazı yığın olarak biz gördük less -isait çağrı cihazı olduğunu man. Komutların varsayılan davranışı her zaman man sayfalarındaki ayrı bir bölümde veya en üstte bulunan bölümde gösterilmez.

Varsayılanları bulmak için seçenekleri okumak zorunda kalacaksınız veya şanslıysanız, yazmak /pagersizi bu bilgilere yönlendirecektir. Bu aynı zamanda çağrı cihazı kavramını bilmenizi gerektirir (manpage'i kaydıran yazılım) ve bu sadece çok sayıda man sayfası okuduktan sonra edineceğiniz bir şeydir.

Bu neden önemli? Örneğin man(1), Linux ( less -isçağrı cihazı) veya FreeBSD'de okurken kaydırma ve renk davranışında farklılıklar bulursanız, algınızı açacaktır man(1).

Peki ya SYNOPSISsözdizimi?

Komutu yürütmek için gereken tüm bilgileri aldıktan sonra, işinizi yapmak için seçenekleri, seçenek argümanlarını ve işlenenleri satır içi olarak birleştirebilirsiniz. Kavramlara genel bakış:

  • Seçenekler, komut davranışını belirleyen anahtarlardır. " Bunu yap " " bunu yapma " ya da " böyle davran ". Genellikle anahtarları denir.
  • Seçenek argümanları çoğu durumda -t, bir dosya sisteminin ( -t iso9660, -t ext2) tipini belirten mount gibi bir seçenek ikili (açık / kapalı) olmadığında kullanılır . " Bunu kapalı gözlerle yap " ya da " hayvanları besle, sadece aslanları besle ". Ayrıca argümanlar da denir.
  • İşlenenler, bu komutun yerine getirilmesini istediğiniz şeylerdir. Eğer kullanırsanız cat file.txt, işlenen geçerli dizinde içinde bir dosya olduğunu ve İt's içerikleri gösterilecektir STDOUT. lsBir işlenenin isteğe bağlı olduğu bir komuttur. İşlenenden sonraki üç nokta cat, aynı anda birden fazla işlenen (dosya) üzerinde etkili olabileceğinizi söyler . Bazı komutların hangi tür işleneni kullanacağını belirlediğini fark edebilirsiniz. Örnek:cat [OPTION] [FILE]...

İlgili özet bilgileri:

Bu yöntem ne zaman işe yaramaz?

  • Örneği olmayan man sayfaları
  • Seçeneklerin kısa bir açıklaması olan manpages
  • Eğer gibi genel anahtar kelimeler kullandığınızda and, to, forman sayfalarını içeride
  • Yüklenmemiş man sayfaları. Belli gözüküyor ama eğer lftp(ve onun manpages) kurulu değilse, çalıştırarak daha karmaşık bir ftp istemcisi olarak bunun uygun bir seçenek olduğunu bilemezsiniz.man -k ftp

Bazı durumlarda, örnekler oldukça basit olacak ve Google’ı test etmek için ya da en kötü durum senaryosunda bazı komutları yerine getirmeniz gerekecek.

Diğer: Programlama dilleri ve modülleri:

Eğer programlama ya da sadece komut dosyaları oluşturuyorsanız, bazı diller gibi, o kendi Elyordamsayfalarının sistemlerine sahip olduğunu akılda tutmak perl( perldocs,) piton ( pydocsmodülü hakkında yöntemler / funcions, değişkenler, davranış ve diğer önemli bilgiler hakkında özel bilgiler olan, vb), kullanmaya ve öğrenmeye çalışıyorsun. perl Mail::IMAPClientModül kullanılarak okunmamış IMAP e-postalarını indirmek için bir komut dosyası oluştururken bu benim için yararlı oldu .

Bu belirli man sayfalarını man -kçevrimiçi kullanarak veya arayarak çözmeniz gerekecektir . Örnekler:

[root@host ~]# man -k doc | grep perl
perldoc              (1)  - Look up Perl documentation in Pod format


[root@host ~]# perldoc Mail::IMAPClient
IMAPCLIENT(1)         User Contributed Perl Documentation        IMAPCLIENT(1)

NAME
       Mail::IMAPClient - An IMAP Client API

SYNOPSIS
         use Mail::IMAPClient;

         my $imap = Mail::IMAPClient->new(
           Server   => ’localhost’,
           User     => ’username’,
           Password => ’password’,
           Ssl      => 1,
           Uid      => 1,
         );

... tonlarca başka şey var, normal bir sayfa gibi bölümlerle ...

Python ile:

[root@host ~]# pydoc sys
Help on built-in module sys:

NAME
    sys

FILE
    (built-in)

MODULE DOCS
    http://www.python.org/doc/current/lib/module-sys.html

DESCRIPTION
    This module provides access to some objects used or maintained by the
    interpreter and to functions that interact strongly with the interpreter.
...again, another full-featured manpage with interesting info...

Veya, help()bazı nesnelerin daha fazla ayrıntısını okumak istiyorsanız python kabuğunun içindeki işlev:

nwildner@host:~$ python3.6
Python 3.6.7 (default, Oct 21 2018, 08:08:16)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help(round)

Help on built-in function round in module builtins:

round(...)
    round(number[, ndigits]) -> number

    Round a number to a given precision in decimal digits (default 0 digits).
    This returns an int when called with one argument, otherwise the
    same type as the number. ndigits may be negative.

Bonus:wtf Komut kısaltmalar size yardımcı olabilir ve onu olarak çalışıyor whatisÜstünde kısaltma veritabanı bulunursa, ama ne arıyorsunuz adam veritabanının parçası ise. Debian'da bu komut bsdgamespaketin bir parçasıdır . Örnekler:

nwildner@host:~$ wtf rtfm
RTFM: read the fine/fucking manual
nwildner@host:~$ wtf afaik
AFAIK: as far as I know
nwildner@host:~$ wtf afak
Gee...  I don't know what afak means...
nwildner@host:~$ wtf tcp
tcp: tcp (7)              - TCP protocol.
nwildner@host:~$ wtf systemd
systemd: systemd (1)          - systemd system and service manager

Ayrıca yapabilirsin man find | grep .... Benman command | sed -n '/^[[:space:]]*-/,/^$/p'
mikeserv

6
Evet. Yapabilirsin. Ben sadece operatörün "noob" olduğunu ve

3
Bu cevabın "Etkili şekilde nasıl kullanırım man?" İçin en iyi sonuç olması gerekir. Teşekkür ederim ve aferin.
user1717828

8
@wwnerner, bu kadar büyük ve iyi biçimlendirilmiş bir cevaptan sonra bir şekeri hakediyorsunuz. Aferin!
Willian Paixao

6
Bunun Linux'a eklenmesi gerektiğini düşünüyorum. manElbette bir sayfa olarak.
myaut

38

Bu oldukça güzel açıklanmıştır man man:

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.

   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.

Bundan nasıl geçerli bir emir yazman gerekiyorsa, peki, değilsin. Özet, bir komutun nasıl çalıştığını bildiğiniz zaman kullanışlıdır. Hafızanızı yenilemenize yardımcı olabilir. Komutun nasıl çalıştığını anlamak için man sayfasını okumalısınız. Özellikle seçeneklerin açıklamaları ve örnekler bölümü.

Bazen özet yeterli olur. Örneğin, içinde man ls:

SYNOPSIS
       ls [OPTION]... [FILE]...

Diğer zamanlarda, söz konusu komutu nasıl kullanacağınızı zaten bilmiyorsanız, faydasızdır. Örneğin, man dd:

   dd [OPERAND]...
   dd OPTION

Yani, sonuç olarak, eğer özeti alamazsanız endişelenmeyin. Bu normal. Man sayfasını oku.


Tavsiye için teşekkür ederim, özellikle “Nasıl…” paragrafı.
user1717828

21

Sinopsis anlamak için bazı temel bilgiler

  • her biri [foo]isteğe bağlı argümanı veya parametreyi temsil eder.
  • zaman [foo [ bar ] ]sözdizimi kullanılır, sen foo kullanabilir ve bar ekleyebilir.
  • zorunlu seçenek parametresi, [ -S size ]-S argümanının zorunlu bir boyut beklediğini söyleyen bu şekilde kullanılır .

Örneğin : foo [-S size ] filename ...

anlamına geliyor

  • komut foo
  • isteğe bağlı paramter -Skullanmak olabilir, söylemelisiniz size(isim size bir ipucu verir)
  • zorunlu argüman filename(bu da size bir ipucu verir, bkz. man mkdir)
  • elips ..., size birden fazla dosya kullanabileceğinizi söylüyor.

Seçeneği anlamak için hâlâ man sayfasının derinliğine gitmeniz gerekiyor (yukarıdaki örnek durumumda ne -S sizehakkında?)


14

manlessgünümüzde normalde sayfalar görüntülenir . Bu, aralarında arama yapmayı mümkün kılar. Özetle rahatsız etmem, özellikle de anlamak istediğiniz belirli bir komut satırına sahip olduğunuz için.

Tuşuna basın /ve yazmaya başlayın -Ive sonra Enter. İlk hit özetinde olacak, ikincisi (bir nsonraki kullanım için) size ayrıntılı bir açıklama getirecek -I.


11

Hatırlanması gereken en önemli şey, diğer komutları çalıştıran komutlar durumunda sadece bir komut için kılavuza bakamamanızdır.

Örnek komutunuz için

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

Sadece xargsdeğil, aynı zamanda bashve [(bu testsayfadaki olabilir) hakkında bilgiye ihtiyacınız var. Komutunuzda karmaşık bir alıntı dizesi içerdiğinden, alıntı kuralları için kabuğunuz hakkında (muhtemelen bash da) bilgi almanız gerekebilir. Alıntı yaptığım argümanın yanlış olduğunu zaten söyleyebilirim (ve yalnızca adında boşluk bulunan bir dosyayla karşılaştığınızda ortaya çıkacak şekilde yanlış); iç "{}"muhtemelen olmalı '{}'.

Bu yüzden ilk önce xargs manpage sayfasına bakacak ve [-I replace-str]ne -I {}anlama geldiğini ve bundan sonra [command [initial-arguments]]ne bashve ne için olacağını göreceksiniz . Öyleyse bash, ne -cyaptığı, vs.


6

Zaten verilen harika cevaplara ekleyerek:

1) Özellikle olanlar gibi, bir gnu fayda ilgileniyorsanız sedve grepbazen kullanarak infokomutu komut bir bilgi ölçüde genişletilmiş versiyonu getirecektir. sedÖrneğin, düzenli ifadelerin nasıl yazılacağına dair ayrıntılı bir bölüm ve çok karmaşık kullanım örnekleriyle birlikte başka bir bölüm vardır.

2) Bu bir "manuel". Bir el kitabı öncelikle zaten anladığınız bir şeyin ayrıntılarını hatırlamanıza yardımcı olmak için tasarlanmıştır. İhtiyacınız olan ayrıntıları hızla alabilmeniz ve çıkabilmeniz için tasarlanmıştır. (Ve çok fazla kişinin kullanım örnekleri yok ya da sadece önemsiz örnekleri var.)

Ben yeni bir şey, bana belli değil bir komut hatta küçük özelliğini öğrenmek ihtiyacım olduğunda, web gidin ve ben (örn düşünebildiğim en iyi anahtar kelimeleri kullanarak arama Linux xargs) ve kelime eklemek howto, examplesya da tutorial. Bu çok sıklıkla oldukça üretkendir.

Genellikle duckduckgo kullanıyorum, çünkü gizliliğimi koruyor, ancak aramalarımı daha fazla kontrol etmem gerekiyorsa, Google'ı sadece bir web sitesi içinde arama yapmayı ya da yalnızca son yılın sonuçlarını döndürmesini söyleyebildiğim için kullanıyorum. (Diğer birçok Gelişmiş Arama seçeneğine sahiptir. Google’ı kullanabilirsiniz.;))

Başka bir ipucu:

Sıklıkla başvurduğum komutlar için man sayfasını bir metin dosyasına kaydederim.

man bash > bashman.txt

ve bu dosyayı metin editörümdeki başka bir pencereye yükleyin, böylece ileri geri çevirip, kopyalayıp yapıştırabilirim, vb. kişisel kopya, istediğim şekilde düzenleyebilir, etiket ekleyerek daha kolay bir bölüm bulabilirim, hatta kendi notlarımı veya örnekleri ekleyebilirim.

Bunun tek dezavantajı, orijinal man sayfasının güncellenmesi ve kopyamın statik olması.


4

Özel komutunuzla ilgili hızlı bir yardım almak için Açıklayan Kabuğu kullanabilirsiniz . Örneğin komut . Bunun nasıl çalıştığını ilk üst düzeyde anladıktan sonra, diğer cevapların önerdiği şekilde manpages ile devam etmelisiniz.


2

Linux komutları hakkında daha fazla bilgi edinmek için oldukça kullanışlı araçlar vardır:

  1. cheatkomut satırı için sık kullanılan seçeneği görüntüleyecektir. Ayrıca , belirli bir komut için command + optiongörüntülenecek olanı da ekleyebilirsiniz cheat.
  2. bropagesaracı bir komut satırı için bazı örnekler sunar, doğrulama kodunu aldıktan sonra size kendi örneğinizi ekleyebilir veya verilen örneği aşağı yukarı / aşağı oylamanız mümkündür bro thanks. Oy kullanma zorunluluğu komutu brosayfanın üstünde görünecektir .

1

tldrKapsamlı bir erkek benzeri araç için öneriyorum . Basitleştirilmiş ve topluluk odaklı adam sayfaları. Ubuntu'da bunu snap aracılığıyla yükleyebilirsiniz, ancak diğer dağıtımlar için de sürümleri vardır. Aynı zamanda birçok yaygın örnek kullanım sağlar. % 100 önerilir.


0

> Karmaşık komutları anlamak için bir man sayfasını yorumlamak için yardım arıyorum.

Bence buradaki yanlış anlama. Linux / UNIX'i bu kadar güçlü kılan, bir komutun locatestdout'unu (burada xargs) bir borudan ( |) başka birinin std'üne (burada ) yeniden yönlendirerek çok uzun ve etkili komutlar oluşturabilmenizdir . Bu nedenle, Random832'nin doğru bir şekilde söylediği gibi, örnek komutunuzun ne yaptığını açıklayan tek bir manpage bulamazsınız.

Bir Linux kabuk komut dosyası kılavuzunu okumanızı öneririm; Gelişmiş Bash-Komut Dosyası Kılavuzu mükemmel bir belgedir. Lütfen bundan korkmayın; Linux'ta ustalaşmak yıllar gerektirir ve hiç bitmeyen bir süreçtir, ancak temelleri makul bir sürede öğrenebilirsiniz.

Ardından, belirli bir komutun ayrıntılarını bilmeniz gerektiğinde man sayfalarına bakın.

Bunu anladıktan sonra Commandlinefu ve Bash One-Liners iyi örnekler almak için okumaya değer.


-1

Bir man sayfasındaki komutlarda belirli bir şeyi aramak için kullanabilirsiniz:

man echo | grep output.

Ancak anahtarları aramak için (örneğin -n), bu şekilde kullanmanız gerekir:

man echo | grep -- -n
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.