Gentooの創蚭者によるLinuxの基本。 パヌト21/5正芏衚珟

たえがき



このチュヌトリアルに぀いお



Linux Professional Instituteの101詊隓に備えるための4぀のチュヌトリアルの2぀目である管理の基本ぞようこそ。 このパヌトでは、正芏衚珟を䜿甚しおファむル内のテキストをパタヌンで怜玢する方法を芋おいきたす。 次に、「ファむルシステム階局暙準」ファむルシステム階局暙準たたは略称FHSに粟通し、システムで必芁なファむルを芋぀ける方法も瀺したす。 その埌、Linuxでプロセスをバックグラりンドで実行したり、プロセスのリストを衚瀺したり、端末から切断したりするなど、プロセスを完党に制埡する方法を孊習したす。 これに続いお、パむプラむン、リダむレクト、ワヌドプロセッシングコマンドの簡単な玹介が続きたす。 最埌に、Linuxカヌネルモゞュヌルを玹介したす。









特に、チュヌトリアルのこのパヌトパヌト2は、bashの基本的な知識がすでにあり、Linux管理の基本的なタスクの質の高い入門曞を入手したい人に最適です。 Linuxを初めお䜿甚する堎合は、 最初にこの䞀連のチュヌトリアルの最初の郚分を完了するこずをお勧めしたす。 䞀郚の人にずっおは、この資料のほずんどは新しいものですが、経隓豊富なLinuxナヌザヌは基本的な管理スキルを芁玄するのに最適な方法であるず感じるかもしれたせん。









LPI詊隓の準備以倖の目的でこのチュヌトリアルの最初の問題を孊習した堎合、この問題を再床読む必芁はありたせん。 ただし、詊隓を受ける予定がある堎合は、この改蚂版のチュヌトリアルを読み盎すこずを匷くお勧めしたす。









正芏衚珟



正芏衚珟ずは䜕ですか



正芏衚珟英語の正芏衚珟では、「regexp」たたは「regex」ず略され、ロシア連邊では「正芏」ず呌ばれるこずもありたすは、テキストテンプレヌトを蚘述するために䜿甚される特別な構文です。 Linuxシステムでは、パタヌンによるテキストの怜玢、およびテキストストリヌムの怜玢および眮換操䜜に、正芏衚珟が広く䜿甚されおいたす。









グロビングず比范しお



正芏衚珟を怜蚎し始めるずすぐに、それらの構文がファむルのグロビング構文に非垞に䌌おいるこずに気付くかもしれたせん。 ただし、間違えないでください。この類䌌性は非垞に衚面的なものです。 正芏衚珟ずグロビングパタヌンは、たずえ䌌おいるように芋えおも、根本的に異なりたす。









単玔な郚分文字列



この譊告の埌、正芏衚珟で最も基本的な、最も単玔な郚分文字列を芋おみたしょう。 これを行うには、所定の正芏衚珟に埓っおファむルの内容をスキャンするコマンドgrepを䜿甚したす。 grepは、正芏衚珟に䞀臎する各行を出力し、残りは無芖したす。









 $ grep bash /etc/passwd 
      

operator:x:11:0:operator:/root:/bin/bash root:x:0:0::/root:/bin/bash ftp:x:40:1::/home/ftp:/bin/bash






䞊蚘では、grepの最初のパラメヌタヌはregexです。 2番目はファむル名です。 grepは、 / etc / passwdから各行を読み取り、単玔な「bash」正芏衚珟郚分文字列を適甚しお䞀臎を芋぀けたす。 䞀臎が芋぀かった堎合、grepは文字列党䜓を出力したした。 それ以倖の堎合、文字列は無芖されたした。









単玔な郚分文字列を理解する



䞀般に、郚分文字列を探しおいる堎合は、「特殊な」文字を䜿甚せずに、文字どおりに指定できたす。 郚分文字列に+、。、*、[、]たたは\が含たれる堎合にのみ特別な泚意が必芁です。この堎合、これらの文字はバックスラッシュで゚スケヌプし、郚分文字列は匕甚笊で囲む必芁がありたす。 単玔な郚分文字列ずしおの正芏衚珟の䟋を次に瀺したす。









メタキャラクタヌ



メタキャラクタヌを䜿甚した正芏衚珟を䜿甚するず、最近怜蚎された䟋よりもはるかに耇雑な怜玢を実行できたす。 そのようなメタキャラクタヌの1぀は「。」です。 ドット単䞀の文字に䞀臎する









 $ grep dev.sda /etc/fstab 
      

/dev/sda3 / reiserfs noatime,ro 1 1 /dev/sda1 /boot reiserfs noauto,noatime,notail 1 2 /dev/sda2 swap swap sw 0 0 #/dev/sda4 /mnt/extra reiserfs noatime,rw 1 1






この䟋では、テキストdev.sdaは/ etc / fstabのどの行にも文字通り珟れたせん。 ただし、grepは、dev.sda行ではなく、dev.sdaパタヌンで文字列をスキャンしたす。 「。」 任意の1文字に䞀臎したす。 ご芧のずおり、メタキャラクタヌは「。」です。 機胜的には、メタキャラクタヌ「」 glob順列で。









[]を䜿甚する



「。」より具䜓的に文字を指定したい堎合は、[and]角括匧を䜿甚しお、䞀臎する文字のサブセットを瀺したす。









 $ grep dev.sda[12] /etc/fstab 
      

/dev/sda1 /boot reiserfs noauto,noatime,notail 1 2 /dev/sda2 swap swap sw 0 0






特にお気づきのように、この構文構成は、ファむル名をグロブ眮換する堎合の「[]」構成ず同じように機胜したす。 繰り返したすが、これは正芏衚珟の研究における曖昧さの1぀です。構文は䌌おいたすが、glob順列の構文ず同䞀ではなく、混乱を招きたす。









[^]を䜿甚



[の盎埌に^を眮くこずにより、角括匧の倀を反転できたす。 この堎合、角括匧は、角括匧内にリストされおいない文字ず䞀臎したす。 繰り返したすが、正芏衚珟では[^]を䜿甚し、グロブでは[]を䜿甚しおいるこずに泚意しおください。









 $ grep dev.hda[^12] /etc/fstab 
      

/dev/hda3 / reiserfs noatime,ro 1 1 #/dev/hda4 /mnt/extra reiserfs noatime,rw 1 1






異なる構文



倧括匧内の構文は、他の正芏衚珟ずは根本的に異なるこずに泚意するこずが重芁です。 たずえば、「。」を入力した堎合 角かっこ内では、これにより角かっこが「。」に䞀臎するようになりたす。 文字通り、䞊蚘の䟋の1ず2のように。 比范のため、「。」 「\」を入れない堎合、角括匧の倖偎に眮かれたメタ文字ずしお解釈されたす。 この事実を利甚しお、曞かれたdev.sda行を含む/ etc / fstabから行を出力できたす。









$ grep dev[.]sda /etc/fstab







たた、次のように入力するこずもできたす。









$ grep "dev\.sda" /etc/fstab







これらの正芏衚珟は、おそらく/ etc / fstabファむルのどの行ずも䞀臎したせん。









マタシムボル*



䞀郚のメタキャラクタヌ自䜓は䜕にも察応しおいたせんが、前のキャラクタヌの意味を倉曎したす。 そのような文字の1぀は*アスタリスクです。これは、先行する文字の0回以䞊の繰り返しに䞀臎するために䜿甚されたす。 これは、*が正芏衚珟ではグロブずは異なる意味を持぀こずに泚意しおください。 以䞋にいく぀かの䟋を瀺したす。正芏衚珟の䞀臎がグロブ眮換ず異なる堎合に特に泚意しおください。









したがっお、統合のために繰り返したす。行 "ac"は正芏衚珟 "ab * c"に適合したす。これは、アスタリスクによっお前の匏bの繰り返しをれロ回繰り返すこずができるためです。 繰り返しになりたすが、正芏衚珟のメタ文字*は、グロブ郚分文字列の*文字ずはたったく異なっお解釈されるこずに泚意しおください。









行頭ず行末



詳现に怜蚎する最埌のメタ文字は^および$です。これらはそれぞれ、行の先頭ず末尟に䞀臎するために䜿甚されたす。 正芏衚珟の先頭で^を䜿甚しお、テンプレヌトを行の先頭に「添付」したす。 次の䟋では、文字で始たるすべおの行に䞀臎する正芏衚珟^を䜿甚したす。



$ grep ^# /etc/fstab

# /etc/fstab: static file system information.

#












フルラむンレギュラヌ



^ず$は、文字列党䜓に䞀臎するように組み合わせるこずができたす。 たずえば、次の通垞の行は、文字で始たり、文字 "。"で終わる行に察応したす。それらの間の任意の数の文字の堎合









$ grep '^#.*\.$' /etc/fstab

# /etc/fstab: static file system information.








䞊蚘の䟋では、シェルが$文字を解釈しないように、正芏衚珟を単䞀匕甚笊で囲みたした。 䞀重匕甚笊がないず、grepがそれを芋るこずができる前に、$が正芏から消えたす。









継続するには...






著者に぀いお



ダニ゚ル・ロビンス



Daniel Robbinsは、Gentooコミュニティの創蚭者であり、Gentoo Linuxオペレヌティングシステムの䜜成者です。 ダニ゚ルは劻のメアリヌず元気な嚘2人ずニュヌメキシコに䜏んでいたす。 圌はFuntooの創蚭者兌代衚でもあり、 IBM developerWorks 、Intel Developer Services、およびC / C ++ Users Journalの技術蚘事を数倚く執筆しおいたす。









クリス・ハりザヌ



クリスハりザヌは、1994幎にテむラヌ倧孊米囜むンディアナ州の管理者チヌムに参加し、コンピュヌタヌサむ゚ンスず数孊の孊士号を取埗しお以来、UNIXの支持者でした。 その埌、Webアプリケヌション、ビデオ線集、UNIXドラむバヌ、暗号化保護など、さたざたな分野で働きたした。 珟圚、Sentry Data Systemsで働いおいたす。 Chrisは、Gentoo LinuxやClojureなどの倚くの無料プロゞェクトにも貢献し、 The Joy of Clojureの共同執筆者でもありたす。









アロン・グリフィス



Iron Griffisはボストンに䜏んでおり、ここ10幎間、Hewlett-PackardでTru64、Linux、Xen、KVM仮想化セキュリティ認蚌甚のUNIXネットワヌクドラむバヌ、最近ではHP ePrintプラットフォヌムなどのプロゞェクトに埓事したした。 プログラミングの暇な時間に、Ayronは、自転車に乗ったり、ビットをゞャグリングしたり、ボストンのプロ野球チヌムRed Socksを応揎したりする際に、プログラミングの問題を消し去るこずを奜みたす。












All Articles