वैसे, यह मेरा बहुत ही निजी तरीका है मानदंड पढ़ने का:
मैनपावर
जब आप man
कमांड का उपयोग करते हुए एक मैनपेज खोलते हैं , तो आउटपुट less
या more
कमांड या किसी अन्य कमांड को प्रदर्शित / प्रस्तुत किया जाएगा जो आपके पेजर (मैनपेजर) के रूप में सेट किया जाएगा।
आप लिनक्स उपयोग कर रहे हैं तो आप शायद अपने आदमी के बुनियादी ढांचे पहले से ही उपयोग करने के लिए कॉन्फ़िगर साथ परोसा जाता है /usr/bin/less -is
के रूप में (जब तक आप कुछ न्यूनतम distro स्थापित) man(1)
, यह विकल्प खंड है पर व्याख्या करते हैं:
-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 और OpenBSD पर MANPAGER
पर्यावरण चर को संपादित करने का एक मामला है क्योंकि वे ज्यादातर उपयोग करेंगे more
, और खोज और पाठ हाइलाइट जैसी कुछ सुविधाएँ गायब हो सकती हैं।
वहाँ क्या मतभेद के सवाल पर एक अच्छा जवाब है more
, less
और most
है यहाँ (इस्तेमाल कभी नहीं most
)। मैन्पेजेस को ब्राउज़ करते समय बैकवर्ड और स्क्रॉल करने की क्षमता पेज के साथ Spaceया दोनों तरीकों से ( ↓या ↑, vi
बाइंडिंग का उपयोग करके jऔर k) आवश्यक है। उपलब्ध आदेशों का सारांश देखने के लिए hउपयोग करते समय दबाएँ less
।
और यही कारण है कि मैं आपको less
अपने आदमी पेजर के रूप में उपयोग करने का सुझाव देता हूं । less
कुछ आवश्यक विशेषताएं हैं जिनका उपयोग इस उत्तर के दौरान किया जाएगा।
एक कमांड को कैसे स्वरूपित किया जाता है?
यूटिलिटी कन्वेंशन : ओपन ग्रुप बेस स्पेसिफिकेशन्स इश्यू 7 - IEEE Std 1003.1, 2013 संस्करण। मैनपेज समझने की कोशिश करने से पहले आपको उस लिंक पर जाना चाहिए। यह ऑनलाइन संदर्भ मानक उपयोगिताओं के तर्क सिंटैक्स का वर्णन करता है और उपयोगिताओं द्वारा संसाधित तर्कों का वर्णन करने के लिए POSIX.1-2017 में उपयोग की जाने वाली शब्दावली का परिचय देता है। यह भी अप्रत्यक्ष रूप से आपको मापदंडों, तर्कों, तर्क विकल्प जैसे शब्दों के वास्तविक अर्थ के बारे में अद्यतन करेगा ...
उपयोगिता सम्मेलनों के अंकन को समझने के बाद किसी भी मेनपेज का प्रमुख आपको कम गूढ़ दिखाई देगा:
utility_name[-a][-b][-c option_argument]
[-d|-e][-f[option_argument]][operand...]
मन में है कि आप क्या करना चाहते हैं।
जब xargs
आप के बारे में अपने शोध कर रही है यह एक purpouse के लिए किया था, है ना? आपको एक विशिष्ट आवश्यकता थी जो मानक आउटपुट को पढ़ रही थी और उस आउटपुट के आधार पर कमांड निष्पादित कर रही थी।
लेकिन, जब मुझे नहीं पता कि मुझे कौन सी कमांड चाहिए?
उपयोग man -k
या apropos
(वे बराबर हैं)। अगर मुझे नहीं पता कि फाइल कैसे खोजना है man -k file | grep search
:। विवरण पढ़ें और एक को ढूंढें जो आपकी आवश्यकताओं को बेहतर ढंग से फिट करेगा। उदाहरण:
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
एप्रोपोस डिफ़ॉल्ट रूप से नियमित अभिव्यक्तियों के साथ काम करता है ( man apropos
,, विवरण पढ़ें और यह पता करें कि क्या -r
करता है), और इस उदाहरण पर मैं हर उस पृष्ठ की तलाश कर रहा हूं जहां विवरण "रिपोर्ट" से शुरू होता है।
मानक इनपुट / आउटपुट प्रोसेसिंग पढ़ने और xargs
संभावित विकल्प के रूप में पहुंचने से संबंधित जानकारी देखने के लिए :
man -k command| grep input
xargs (1) - build and execute command lines from standard input
हमेशा DESCRIPTION
शुरू करने से पहले पढ़ें
एक समय लें और विवरण पढ़ें। xargs
कमांड के वर्णन को पढ़ने से हम सीखेंगे कि:
xargs
STDIN से पढ़ता है और आवश्यक कमांड निष्पादित करता है। इसका मतलब यह भी है कि आपको कुछ ज्ञान होना चाहिए कि मानक इनपुट कैसे काम करता है, और इसे पाइप से चेन कमांड तक कैसे हेरफेर करना है
- डिफ़ॉल्ट व्यवहार की तरह कार्य करना है
/bin/echo
। यह आपको एक छोटी सी टिप देता है कि यदि आपको एक से अधिक श्रृंखला की आवश्यकता है xargs
, तो आपको प्रिंट करने के लिए इको का उपयोग करने की आवश्यकता नहीं है।
- हमें यह भी पता चला है कि यूनिक्स फाइलनाम में रिक्त और newlines शामिल हो सकते हैं, कि यह एक समस्या हो सकती है और तर्क
-0
अशक्त चरित्र विभाजकों का उपयोग करके चीजों को फटने से रोकने का एक तरीका है। विवरण आपको चेतावनी देता है कि इनपुट के रूप में उपयोग की जा रही कमांड को इस सुविधा का भी समर्थन करने की आवश्यकता है, और यह कि GNU find
इसका समर्थन करता है। महान। हम खोजने के लिए बहुत से उपयोग करते हैं xargs
।
xargs
यदि निकास स्थिति 255 पर पहुँच जाती है तो रुक जाएगी।
कुछ विवरण बहुत कम हैं और यह आमतौर पर है क्योंकि सॉफ्टवेयर बहुत सरल तरीके से काम करता है। इस पृष्ठ के भाग को लंघन के बारे में भी मत सोचो ;)
ध्यान देने के लिए अन्य बातें ...
आप जानते हैं कि आप फ़ाइलों का उपयोग करके खोज सकते हैं find
। विकल्पों में से एक टन है और यदि आप केवल देखते हैं SYNOPSIS
, तो आप उन पर हावी हो जाएंगे। यह सिर्फ हिमशैल का सिरा है। छोड़कर NAME
, SYNOPSIS
और DESCRIPTION
, आपके पास निम्न अनुभाग होंगे:
AUTHORS
: जिन लोगों ने कमांड के निर्माण में सहायता की या बनाई।
BUGS
: किसी ज्ञात दोष को सूचीबद्ध करता है। केवल कार्यान्वयन सीमाएँ हो सकती हैं।
ENVIRONMENT
: आपके शेल के पहलू जो कमांड, या चर जिसका उपयोग किया जा सकता है, से प्रभावित हो सकते हैं।
EXAMPLES
या NOTES
: स्व व्याख्यात्मक।
REPORTING BUGS
: यदि आपको इस उपकरण या इसके प्रलेखन में बग मिलते हैं तो आपको किससे संपर्क करना होगा।
COPYRIGHT
: व्यक्ति जिसने सॉफ्टवेयर के बारे में बनाया और उसे स्वीकार करता है। सभी सॉफ्टवेयर के लाइसेंस से संबंधित हैं।
SEE ALSO
: अन्य आदेश, उपकरण या काम करने वाले पहलू जो इस कमांड से संबंधित हैं, और किसी भी अन्य अनुभाग पर फिट नहीं हो सकते हैं।
आप शायद उदाहरणों / नोट्स अनुभाग पर एक टूल के इच्छित पहलुओं के बारे में दिलचस्प जानकारी प्राप्त करेंगे।
उदाहरण
निम्नलिखित कदमों पर मैं find
एक उदाहरण के रूप में लूंगा , क्योंकि यह अवधारणाएं xargs
समझाने की तुलना में "अधिक सरल" हैं (एक कमांड फाइलों को ढूंढती है और अन्य स्टैडेन और अन्य कमांड आउटपुट के पाइपलाइन किए गए निष्पादन के साथ संबंधित है)। आइए केवल यह दिखावा करें कि हम इस कमांड के बारे में कुछ नहीं (या बहुत कम) जानते हैं ।
मुझे एक विशिष्ट समस्या यह है कि: मुझे .jpg
एक्सटेंशन के साथ हर फाइल को देखना है , और 500KiB (KiB = 1024 बाइट, जिसे आमतौर पर kibibyte कहा जाता है), या एक FTP सर्वर फ़ोल्डर के आकार में अधिक।
सबसे पहले, मैनुअल खोलें man find
:। SYNOPSIS
स्लिम है। आइए मैनुअल के अंदर चीजों की खोज करें: टाइप /प्लस शब्द जो आप चाहते हैं ( size
)। यह बहुत सारी प्रविष्टियों को अनुक्रमित करेगा -size
जो विशिष्ट आकारों की गणना करेगा। फंस गया। किसी दिए गए आकार से "अधिक से अधिक" या "कम" के साथ कैसे पता करें, और आदमी मुझे यह नहीं दिखाता है।
आइए इसे आजमाएँ, और अगली प्रविष्टि को खोजकर देखें n। ठीक। मिले कुछ दिलचस्प: find
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)
। शायद यह उदाहरण हमें दिखा रहा है कि -size +100M
इसके साथ 100 एमबी या उससे अधिक की फाइलें मिलेंगी। मैं कैसे पुष्टि कर सकता हूं? मैनपेज के प्रमुख के पास जा रहे हैं और अन्य शब्दों की खोज कर रहे हैं।
फिर से, आइए शब्द का प्रयास करें greater
। दबाने gसे हम मेनपेज के प्रमुख तक पहुंच जाएंगे। /greater
, और पहली प्रविष्टि है:
Numeric arguments can be specified as
+n for **greater** than n,
-n for less than n,
n for exactly n.
बहुत अच्छा लगता है। ऐसा लगता है कि मैनुअल के इस ब्लॉक ने पुष्टि की कि हमें क्या संदेह है। हालाँकि, यह केवल फ़ाइल आकार पर लागू नहीं होगा। यह n
इस मैनपेज पर पाए जाने वाले किसी भी पर लागू होगा (जैसा कि वाक्यांश में कहा गया है: "संख्यात्मक तर्क को" के रूप में निर्दिष्ट किया जा सकता है)।
अच्छा। आइए हम नाम से फ़िल्टर करने का एक तरीका खोजें g /insensitive
:। क्यों? असंवेदनशील? WTF? हम एक काल्पनिक एफ़टीपी सर्वर, जहां "है कि अन्य ओएस" लोगों के रूप में विस्तार के साथ एक फ़ाइल नाम दे सकता है .jpg
, .JPG
, .JpG
। यह हमें ले जाएगा:
-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.
हालाँकि, आप खोज करने के बाद lname
देखेंगे कि यह केवल प्रतीकात्मक लिंक की खोज करेगा। हम असली फाइलें चाहते हैं। अगली प्रविष्टि:
-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.
महान। मैं भी के बारे में पढ़ा की जरूरत नहीं है -name
यह देखने के लिए कि -iname
इस तर्क के मामले असंवेदनशील संस्करण है। कमांड को इकट्ठा करें:
कमान: find /ftp/dir/ -size +500k -iname "*.jpg"
यहां क्या निहित है: वह ज्ञान जो वाइल्डकार्ड ?
"किसी भी स्थिति *
में किसी भी चरित्र का प्रतिनिधित्व करता है" और "किसी भी चरित्र के शून्य या अधिक " का प्रतिनिधित्व करता है। -name
पैरामीटर आप इस ज्ञान का एक सारांश दे देंगे।
युक्तियाँ जो सभी आदेशों पर लागू होती हैं
कुछ विकल्प, शब्दार्थ और "वाक्यविन्यास शैली" सभी आदेशों के माध्यम से यात्रा करते हैं जो आपको कुछ समय के लिए मैनपेज खोलने के लिए नहीं खरीदते हैं। जिन्हें अभ्यास द्वारा सीखा जाता है और सबसे आम हैं:
- सामान्यतः,
-v
क्रिया का अर्थ है। -vvv
कुछ सॉफ्टवेयर पर एक भिन्नता है "बहुत बहुत क्रिया"।
- POSIX मानक के बाद, आम तौर पर एक डैश तर्क को स्टैक किया जा सकता है। उदाहरण:
tar -xzvf
, cp -Rv
।
- आम तौर पर
-R
और / या -r
मतलब पुनरावर्ती।
- लगभग सभी कमांड में
--help
विकल्प के साथ एक संक्षिप्त मदद है ।
--version
एक सॉफ्टवेयर का संस्करण दिखाता है।
-p
, उपयोगिताओं को कॉपी या स्थानांतरित करने का अर्थ है "अनुमतियाँ संरक्षित करें"।
-y
ज्यादातर मामलों में हाँ, या "पुष्टि के बिना आगे बढ़ें"।
ध्यान दें कि उपरोक्त हमेशा सत्य नहीं होते हैं। उदाहरण के लिए, -r
स्विच अलग सॉफ्टवेयर के लिए बहुत अलग चीजों का मतलब हो सकता है । यह हमेशा एक अच्छा विचार है कि जाँच करें और सुनिश्चित करें कि जब कोई आदेश खतरनाक हो सकता है, लेकिन ये सामान्य चूक हैं।
आदेशों के डिफ़ॉल्ट मान।
इस उत्तर के पेजर भाग पर, हमने देखा कि less -is
पेजर का है man
। आदेशों का डिफ़ॉल्ट व्यवहार हमेशा अलग-अलग खंडों में मैनपेज़ पर, या उस अनुभाग पर नहीं दिखाया जाता है जो सबसे ऊपर रखा जाता है।
आपको डिफॉल्ट्स का पता लगाने के लिए विकल्पों को पढ़ना होगा, या यदि आप भाग्यशाली हैं, तो टाइपिंग /pager
आपको उस जानकारी तक ले जाएगी। इसके लिए आपको पेजर की अवधारणा (मैनपेज को स्क्रॉल करने वाले सॉफ्टवेयर) को भी जानना होगा, और यह एक ऐसी चीज है जिसे आप बहुत सारे मैनपेज पढ़ने के बाद ही हासिल करेंगे।
वह महत्वपूर्ण क्यों है? उदाहरण के लिए, man(1)
लिनक्स ( less -is
पेजर) या फ्रीबीएसडी पर पढ़ते समय स्क्रॉल और रंग के व्यवहार में अंतर पाए जाने पर यह आपकी धारणा को खोल देगा man(1)
।
और SYNOPSIS
वाक्य रचना के बारे में क्या ?
कमांड को निष्पादित करने के लिए आवश्यक सभी जानकारी प्राप्त करने के बाद, आप अपना काम करने के लिए विकल्प, विकल्प-तर्क और ऑपरेंड इनलाइन को जोड़ सकते हैं। अवधारणाओं का अवलोकन:
- विकल्प वे स्विच होते हैं जो एक कमांड व्यवहार को निर्धारित करते हैं। " यह करो " " ऐसा मत करो " या " इस तरह से कार्य करो "। अक्सर स्विच कहा जाता है।
- विकल्प-दलीलें ज्यादातर मामलों पर उपयोग की जाती हैं जब एक विकल्प
-t
माउंट पर बाइनरी (ऑन / ऑफ) की तरह होता है, जो एक फाइलसिस्टम ( -t iso9660
, -t ext2
) के प्रकार को निर्दिष्ट करता है । " इसे बंद आँखों से करो " या " जानवरों को खिलाओ, लेकिन केवल शेरों को "। जिसे तर्कों भी कहा जाता है।
- ऑपरेंड वे चीजें हैं जो आप चाहते हैं कि कमांड पर कार्य किया जाए। यदि आप उपयोग करते हैं
cat file.txt
, तो ऑपरेंड आपकी वर्तमान निर्देशिका के अंदर एक फ़ाइल है, और यह सामग्री दिखाई जाएगी STDOUT
। ls
एक कमांड है जहां एक ऑपरेंड वैकल्पिक है। ऑपरेंड के बाद के तीन बिंदु स्पष्ट रूप से आपको बताते हैं कि cat
एक ही समय में कई ऑपरेंड (फाइल) पर कार्य कर सकते हैं। आप देख सकते हैं कि कुछ कमांड ने यह निर्धारित किया है कि यह किस प्रकार के ऑपरेंड का उपयोग करेगा। उदाहरण:cat [OPTION] [FILE]...
संबंधित सारांश सामग्री:
यह तरीका कब काम नहीं करेगा?
- ऐसे उदाहरण जिनका कोई उदाहरण नहीं है
- जहाँ विकल्प की संक्षिप्त व्याख्या की जाती है, उन्हें प्रबंधित करता है
- आप की तरह सामान्य कीवर्ड का उपयोग करते
and
, to
, for
manpages अंदर
- स्थापित नहीं किए गए मानदंड। यह स्पष्ट प्रतीत होता है लेकिन, यदि आपके पास
lftp
(और इसके मैनपेज़) स्थापित नहीं हैं, तो आप यह नहीं जान सकते हैं कि चलने से अधिक परिष्कृत ftp क्लाइंट के रूप में एक उपयुक्त विकल्प हैman -k ftp
कुछ मामलों में उदाहरण बहुत सरल होंगे, और आपको परीक्षण करने के लिए या सबसे खराब स्थिति में, Google को अपनी कमांड के कुछ निष्पादन करने होंगे।
अन्य: प्रोग्रामिंग भाषाओं और यह मॉड्यूल है:
यदि आप प्रोग्रामिंग कर रहे हैं या केवल स्क्रिप्ट्स बना रहे हैं, तो ध्यान रखें कि कुछ भाषाओं की अपनी स्वयं की मैनपेज प्रणालियां हैं, जैसे perl
( perldocs
), अजगर ( pydocs
), आदि, विधियों / कवक, चर, व्यवहार और मॉड्यूल के बारे में अन्य महत्वपूर्ण जानकारी के बारे में विशेष जानकारी रखते हुए। आप उपयोग करने और सीखने की कोशिश कर रहे हैं। यह मेरे लिए उपयोगी था जब मैं perl Mail::IMAPClient
मॉड्यूल का उपयोग करके अपठित IMAP ईमेल डाउनलोड करने के लिए एक स्क्रिप्ट बना रहा था ।
आपको man -k
ऑनलाइन उपयोग करके या खोजकर उन विशिष्ट मैनपावर का पता लगाना होगा । उदाहरण:
[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,
);
... यहाँ अन्य सामानों के टन, एक नियमित मैनपेज जैसे अनुभागों के साथ ...
अजगर के साथ:
[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...
या, help()
यदि आप किसी वस्तु का अधिक विवरण पढ़ना चाहते हैं तो अजगर खोल के अंदर का कवक:
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.
बोनस:wtf
आदेश के संक्षिप्त रूप के साथ मदद कर सकता है और यह रूप में काम करता whatis
डेटाबेस पाया जाता है कि अगर उस पर कोई परिवर्णी शब्द है, लेकिन क्या आप खोज रहे हैं आदमी डेटाबेस का हिस्सा है। डेबियन पर यह कमांड bsdgames
पैकेज का हिस्सा है । उदाहरण:
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