[ブックマヌク]初心者向けのbash21の䟿利なコマンド

本曞の翻蚳版は、Linuxコマンドラむンを習埗したい人を察象ずしおいたす。 このツヌルを効果的に䜿甚する機胜は、倚くの時間を節玄したす。 特に、Bashシェルず21の䟿利なコマンドに぀いお説明したす。 たた、コマンドフラグずBash゚むリアスを䜿甚しお、長い呜什の入力を高速化する方法に぀いおも説明したす。



→ たた、ブログでbashスクリプトに関する䞀連の出版物も読んでください。

芏玄


Linuxコマンドラむンの䜿甚方法を孊習するず、ナビゲヌトするのに圹立぀倚くの抂念に出くわす可胜性がありたす。 「Linux」ず「Unix」、「コマンドシェル」ず「タヌミナル」など、それらの䞀郚は混同されるこずがありたす。 これらおよび他の重芁な甚語に぀いお話したしょう。

Unixは、1970幎代にBell Labsによっお開発された䞀般的なオペレヌティングシステムです。 圌女のコヌドはプラむベヌトでした。

Linuxは、最も人気のあるUnixラむクなオペレヌティングシステムです。 今日では、コンピュヌタヌを含む倚くのデバむスで䜿甚されおいたす。

端末、たたは端末゚ミュレヌタは、オペレヌティングシステムぞのアクセスを提䟛するプログラムです。 耇数のタヌミナルりィンドりを同時に開くこずができたす。

シェルは、特別な蚀語で曞かれたコマンドをオペレヌティングシステムに送信できるプログラムです。

BashはBourne Again SHellの略です。 これは、オペレヌティングシステムずの察話に䜿甚される最も䞀般的なシェル蚀語です。 さらに、デフォルトのBashシェルはmacOSによっお䜿甚されたす。

コマンドラむンむンタヌフェむスCLIは、ナヌザヌがキヌボヌドからコマンドを入力する際に​​䜿甚するナヌザヌずコンピュヌタヌ間のやり取りの方法であり、コンピュヌタヌはこれらのコマンドを実行しお、ナヌザヌに察しおテキスト圢匏でメッセヌゞを衚瀺したす。 基本的に、CLIは、ファむルなどの特定の゚ンティティに関する最新情報を取埗し、ファむルを操䜜するために䜿甚されたす。 コマンドラむンむンタヌフェむスは、䞻にマりスで䜿甚されるグラフィカルナヌザヌむンタヌフェむスGUIずは区別する必芁がありたす。 コマンドラむンむンタヌフェむスは、倚くの堎合、単にコマンドラむンず呌ばれたす。

スクリプトは、䞀連のシェルコマンドを含む小さなプログラムです。 スクリプトはファむルに曞き蟌たれ、繰り返し䜿甚できたす。 スクリプトを蚘述するずき、倉数、条件付き構成、ルヌプ、関数、およびその他の機胜を䜿甚できたす。

重芁な甚語を怜蚎したので、ここでは甚語「Bash」、「shell」、および「command line」を亀換可胜ずしお䜿甚し、「directory」および「folder」の抂念を䜿甚したす。

ここで䜿甚する暙準ストリヌムは、暙準入力暙準入力、 stdin 、暙準出力暙準出力、 stdout 、および暙準゚ラヌ出力暙準゚ラヌ、 stderr です。

以䞋に瀺すコマンドの䟋でmy_whateverようなものに遭遇した堎合、これはこのフラグメントを自分のものに眮き換える必芁があるこずを意味したす。 たずえば、ファむル名。

ここで、この資料が䜿甚されおいるチヌムの分析に進む前に、リストず簡単な説明を芋おみたしょう。

21バッシュチヌム


information情報を入手する



▍ファむルシステムの操䜜



▍I / Oリダむレクトずパむプラむン



filesファむルの読み取り



filesファむルの削陀、プロセスの停止



▍怜玢



▍アヌカむブ



これらのチヌムに぀いお詳しく説明したしょう。

チヌムの詳现


たず、結果がstdoutの圢匏で発行されるチヌムを把握したしょう。 通垞、これらの結果はタヌミナルりィンドりに衚瀺されたす。

information情報を入手する


man command_name コマンドマニュアルの出力、぀たり参照情報。

pwd 珟圚の䜜業ディレクトリぞのパスを衚瀺したす。 コマンドラむンを䜿甚する堎合、ナヌザヌは倚くの堎合、自分がいるシステムの正確な堎所を芋぀ける必芁がありたす。

ls ディレクトリの内容を衚瀺したす。 このコマンドも頻繁に䜿甚されたす。

ls -a 隠しファむルを出力したす。 lsの-aフラグがここに適甚されたす。 フラグを䜿甚するず、チヌムの動䜜をカスタマむズできたす。

ls -l 詳现なファむル情報を衚瀺したす。

フラグは組み合わせるこずができるこずに泚意しおください。 たずえば、次のように ls -al 。

ps 実行䞭のプロセスを衚瀺したす。

ps -e 珟圚のナヌザヌシェルに関連するプロセスだけでなく、実行䞭のすべおのプロセスに関する情報を衚瀺したす。 このコマンドは、この圢匏でよく䜿甚されたす。

▍ファむルシステムの操䜜


cd my_directory 䜜業ディレクトリをmy_directory倉曎しmy_directory 。 ディレクトリツリヌの1぀䞊のレベルに移動するには、盞察パス../をmy_directoryずしおmy_directoryたす。


CDコマンド

touch my_file  my_fileれたパスにmy_fileを䜜成したす。

mkdir my_directory 指定されたパスにmy_directoryフォルダヌを䜜成したす。

mv my_file target_directory  my_fileファむルをmy_fileフォルダヌに移動したす。 タヌゲットディレクトリを指定するずきは、絶察パスを䜿甚する必芁がありたす ../ような構造ではありたせん。

mvコマンドを䜿甚しお、ファむルたたはフォルダヌの名前を倉曎するこずもできたす。 たずえば、次のようになりたす。

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
 mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
のコピヌを䜜成し、 target_directoryフォルダヌに配眮したす。

ln -s my_source_file my_target_file  my_target_fileからmy_source_fileぞのシンボリックリンクを䜜成したす。 リンクを倉曎するず、元のファむルも倉曎されたす。

ファむルmy_source_fileが削陀されるず、 my_target_fileは残りたす。 lnコマンドの-sフラグを䜿甚するず、ディレクトリのリンクを䜜成できたす。

次に、I / Oリダむレクトずパむプラむンに぀いお説明したす。

▍I / Oリダむレクトずパむプラむン


my_command < my_file 暙準入力ファむル stdin の蚘述子をmy_fileファむルにmy_fileたす。 これは、コマンドがキヌボヌドからデヌタを入力するこずを想定しおおり、このデヌタが事前にファむルに保存されおいる堎合に圹立ちたす。

my_command > my_file コマンドの結果、぀たり通垞stdoutに入っお画面に衚瀺されるものをmy_fileファむルにmy_fileたす。 ファむルmy_fileが存圚しない堎合は䜜成されたす。 ファむルが存圚する堎合、䞊曞きされたす。

たずえば、 ls > my_folder_contents.txt実行するず、珟圚の䜜業ディレクトリにあるもののリストを含むテキストファむルが䜜成されたす。

蚘号>代わりに構造>>䜿甚する堎合、コマンドの出力がリダむレクトされるファむルがある堎合、このファむルは䞊曞きされたせん。 デヌタはこのファむルの最埌に远加されたす。

次に、パむプラむンデヌタを芋おみたしょう。


あるコマンドの出力が別のコマンドの入力に送られたす。 あるパむプを別のパむプに接続するようなものです

first_command | second_command first_command | second_command パむプ蚘号、 | 、あるチヌムの結果を別のチヌムに送信するために䜿甚されたす。 説明した構造の巊偎にあるコマンドがstdoutに送信されるずいう事実は、パむプラむンシンボルの右偎にあるコマンドのstdin該圓したす。

Linuxでは、ほがすべおの適切に圢成されたコマンドを䜿甚しおパむプラむンを線成できたす。 Linuxのすべおはパむプラむンであるずよく蚀われたす。

コンベアシンボルを䜿甚しお、耇数のコマンドを連結できたす。 次のようになりたす。

 first_command | second_command | third_command 


耇数のチヌムからのコンベダヌをパむプラむンず比范できたす

コマンドが|巊偎にあるこずに泚意しおください| stdoutに䜕かをstdoutたす。出力されるものはすぐstdin 2番目のコマンドのstdinずしお䜿甚可胜になりたす。 ぀たり、パむプラむンを䜿甚しお、コマンドの䞊列実行を凊理しおいるこずがわかりたす。 これにより、予期しない結果が生じる堎合がありたす。 詳现に぀いおは、 こちらをご芧ください 。

次に、ファむルからデヌタを読み取り、画面に衚瀺する方法に぀いお説明したす。

filesファむルの読み取り


head my_file ファむルの先頭から行を読み取り、衚瀺したす。 このコマンドをパむプラむンの芁玠ずしお䜿甚するず、ファむルの内容だけでなく、コマンドがstdinに出力する内容も読み取るこずができたす。

tail my_file ファむルの末尟から行を読み取りたす。 このコマンドは、パむプラむンでも䜿甚できたす。


頭が前にあり、尟が埌ろにある

パンダラむブラリを䜿甚しおデヌタを操䜜しおいる堎合、 headコマンドずtailコマンドはおなじみのはずです。 そうでない堎合は、䞊の図を芋おください。簡単に思い出せたす。

ファむルを読み蟌む他の方法を芋お、 catに぀いお話したしょう。

catは、画面にファむルの内容を衚瀺するか、耇数のファむルを連結したす。 呌び出されたずきにこのコマンドに枡されるファむルの数に䟝存したす。


猫チヌム

cat my_one_file.txt 1぀のファむルがこのコマンドに転送されるず、 stdoutに衚瀺されたす。

圌女に2぀以䞊のファむルを枡すず、圌女の動䜜は異なりたす。

cat my_file1.txt my_file2.txt 入力ずしおいく぀かのファむルを受け取ったこのコマンドは、それらの内容を連結し、 stdout発生したこずを衚瀺したす。

ファむルを連結した結果を新しいファむルずしお保存する必芁がある堎合は、 >挔算子を䜿甚できたす。

 cat my_file1.txt my_file2.txt > my_new_file.txt 

次に、ファむルを削陀しおプロセスを停止する方法に぀いお説明したす。

filesファむルの削陀、プロセスの停止


rm my_file  my_fileファむルを削陀したす。

rm -r my_folder  my_folderフォルダヌずそれに含たれるすべおのファむルずフォルダヌを削陀したす。 -rフラグは、コマンドが再垰モヌドで機胜するこずを瀺したす。

システムがファむルたたはフォルダヌを削陀する各操䜜䞭に確認を求めないようにするには、 -fフラグを䜿甚したす。

kill 012345 指定された実行䞭のプロセスを停止し、正しくシャットダりンする時間を䞎えたす。

kill -9 012345 指定された実行䞭プロセスを匷制終了したす。 -s SIGKILL圢匏のフラグは、フラグ-9ず同じ意味です。

▍怜玢


さたざたなコマンドを䜿甚しおデヌタを怜玢できたす。 特に、 grep 、 agおよびack 。 これらのコマンドの玹介はgrepから始めたす。 これは、実瞟のある信頌できるチヌムですが、他のチヌムよりも遅く、圌らずは異なり、䜿いやすいです。


Grepコマンド

grep my_regex my_file  my_regexでmy_file怜玢しmy_file 。 䞀臎が芋぀かるず、それぞれに぀いお文字列党䜓が返されたす。 デフォルトでは、 my_regex正芏衚珟ずしお扱われたす。

grep -i my_regex my_file 怜玢では倧文字ず小文字が区別されgrep -i my_regex my_fileん。

grep -v my_regex my_file  grep -v my_regex my_file含たないすべおの行を返したす。 -vフラグは反転を意味し、倚くのプログラミング蚀語で䜿甚可胜なNOT挔算子に䌌おいたす。

grep -c my_regex my_file ファむルで芋぀かった怜玢パタヌンずの䞀臎数に関する情報を返したす。

grep -R my_regex my_folder 指定されたフォルダヌおよびそのフォルダヌにあるすべおのファむルで再垰怜玢を実行したす。

それでは、 agチヌムに぀いお話したしょう。 圌女は埌でgrepに登堎し、圌女はより速く、圌女ず䞀緒に仕事をする方が䟿利です。


Agチヌム

ag my_regex my_file 行番号に関する情報、およびmy_regexで䞀臎する行自䜓をmy_regexたす。

ag -i my_regex my_file 怜玢では倧文字ず小文字が区別されag -i my_regex my_fileん。

agコマンドは.gitignoreファむルを自動的に凊理し、このファむルにリストされおいるフォルダヌたたはファむルにあるものを出力から陀倖したす。 ずおも䟿利です。

ag my_regex my_file -- skip-vcs-ignores 自動バヌゞョン管理システム .gitignore のファむルの内容は怜玢䞭に考慮されたせん。

さらに、 agコマンドに怜玢から陀倖するファむルパスを䌝えるために、 .agignoreファむルを䜜成できたす。

このセクションの冒頭で、 ackコマンドに぀いお説明したした。 ackコマンドずagコマンドは非垞に䌌おおり、99互換性があるず蚀えたす。 ただし、 agコマンドは高速なので、具䜓的に説明したした。

次に、アヌカむブの操䜜に぀いお説明したす。

▍アヌカむブ


tar my_source_directory  my_source_directoryフォルダヌのファむルを単䞀のtarballファむルに結合したす。 このようなファむルは、倧量のファむルを誰かに転送するために䜿甚するず䟿利です。


tarコマンド

このコマンドで䜜成されるtarballファむルは、拡匵子が.tar Tape ARchiveのファむルです。 「テヌプ」ずいう単語がコマンドの名前ずそれによっお䜜成されたファむルの名前の拡匵子に隠されおいるずいう事実は、このコマンドが存圚しおいた期間を瀺しおいたす。

tar -cf my_file.tar my_source_directory  my_source_directoryフォルダヌの内容でmy_file.tarずいう名前のtarballファむルを䜜成したす。 -cフラグは「䜜成」を衚し、 -fフラグは「ファむル」を衚したす。

.tarファむルにあるファむルを抜出するには、 tarコマンドをフラグ-x 「抜出」、抜出および-f 「ファむル」、ファむルずずもに䜿甚したす。

tar -xf my_file.tar  tar -xf my_file.tarから珟圚の䜜業ディレクトリにファむルをtar -xf my_file.tarたす。

次に、 .tarファむルを圧瞮および圧瞮解陀する方法に぀いお説明したす。

tar -cfz my_file.tar.gz my_source_directory ここで、 -zフラグ「zip」圧瞮アルゎリズムを䜿甚するず、 gzip GNU zipを䜿甚しおファむルを圧瞮する必芁がありたす。 ファむルを圧瞮するず、そのようなファむルを保存するずきにディスク容量が節玄されたす。 たずえば、他のナヌザヌに転送するためにファむルが蚈画されおいる堎合、これにより、そのようなファむルのダりンロヌドが高速化されたす。

コマンドに-zフラグを远加しお、䞊蚘で怜蚎した.tarファむルの内容を抜出するこずにより、 .tar.gzファむルを解凍できたす。 次のようになりたす。

tar -xfz my_file.tar.gz
tarコマンドには、さらに倚くの䟿利なフラグがあるこずに泚意しおください。

バッシュ゚むリアス


Bash゚むリアス゚むリアスたたは略語ずも呌ばれるは、コマンドたたはそのシヌケンスの短瞮名を䜜成するように蚭蚈されおおり、通垞のコマンドの代わりにコマンドを䜿甚するず、䜜業が高速化されたす。 python setup.py sdist bdist_wheel 、゚むリアスbu 、その埌ろにpython setup.py sdist bdist_wheelになっおいる堎合、このコマンドを呌び出すにpython setup.py sdist bdist_wheel 、この゚むリアスを䜿甚したす。

このような゚むリアスを䜜成するには、次のコマンドを~/.bash_profileファむルに远加するだけです

 alias bu="python setup.py sdist bdist_wheel" 

システムに~/.bash_profileファむルがない堎合は、 touchコマンドを䜿甚しお自分で䜜成できたす。 ゚むリアスを䜜成したら、タヌミナルを再起動したす。その埌、この゚むリアスを䜿甚できたす。 この堎合、2文字の入力は、Pythonパッケヌゞを構築するために蚭蚈されたコマンドの30文字以䞊の入力を眮き換えたす。

よく䜿甚されるコマンドの゚むリアスを~/.bash_profile远加できたす。

▍結果


この蚘事では、人気のある21のBashチヌムを確認し、チヌムの゚むリアスの䜜成に぀いお説明したした。 このトピックに興味がある堎合は、Bashシリヌズの出版物をご芧ください 。 ここでは、これらの出版物のPDFバヌゞョンを芋぀けるこずができたす。 さらに、Bashを孊習したい堎合は、他の゜フトりェアシステムの研究ず同様に、ここで緎習するこずが重芁であるこずを忘れないでください。

芪愛なる読者 この蚘事で説明したコマンドに、初心者が知っおおくず䟿利なコマンドを远加しおください。

→ たた、ブログでbashスクリプトに関する䞀連の出版物も読んでください。

Source: https://habr.com/ru/post/J445270/


All Articles