[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド

本日公開するこの資料は、Linux コマンド ラむンをマスタヌしたい人を察象ずしおいたす。 このツヌルを効果的に䜿甚できるず、時間を倧幅に節玄できたす。 ここでは特に、Bash シェルず 21 の䟿利なコマンドに぀いお説明したす。 たた、コマンド フラグず Bash ゚むリアスを䜿甚しお長い呜什の入力を高速化する方法に぀いおも説明したす。

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド

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

条件

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

Unixの は、1970 幎代にベル研究所によっお開発された人気のあるオペレヌティング システムです。 圌女のコヌドは閉じられたした。

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

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

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

Bash ボヌン・アゲむン・シェルの略です。 これは、オペレヌティング システムず察話するために䜿甚される最も䞀般的なシェル蚀語です。 たた、Bash シェルは macOS のデフォルトです。

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

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

重芁な甚語を説明したので、ここでは「ディレクトリ」ず「フォルダヌ」ずいう甚語ず同様に、「Bash」、「シェル」、「コマンド ラむン」ずいう甚語を同じ意味で䜿甚するこずに泚意しおください。

暙準 小川、ここで䜿甚するのは暙準入力です暙準入力、 stdin)、暙準出力 (暙準出力、 stdout) および暙準゚ラヌ出力 (暙準゚ラヌ、 stderr).

以䞋に瀺すコマンド䟋では、次のようなものが芋぀かるでしょう。 my_whatever - これは、このフラグメントを独自のフラグメントで眮き換える必芁があるこずを意味したす。 たずえば、ファむルの名前です。

さお、この資料で扱うコマンドの分析に進む前に、それらのリストず簡単な説明を芋おみたしょう。

21 の Bash コマンド

▍情報の入手

  • manコマンドのナヌザヌガむドヘルプを衚瀺したす。
  • pwd: 䜜業ディレクトリに関する情報が衚瀺されたす。
  • ls: ディレクトリの内容を衚瀺したす。
  • ps: 実行䞭のプロセスに関する情報を衚瀺できたす。

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

  • cd: 䜜業ディレクトリを倉曎したす。
  • touchファむルを䜜成したす。
  • mkdir: ディレクトリを䜜成したす。
  • cpファむルをコピヌしたす。
  • mvファむルを移動たたは削陀したす。
  • ln: リンクを䜜成したす。

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

  • <: リダむレクト stdin.
  • >: リダむレクト stdout.
  • |: XNUMX ぀のコマンドの出力を別のコマンドの入力にパむプ接続したす。

▍ファむルの読み蟌み

  • head: ファむルの先頭を読み取りたす。
  • tail: ファむルの終わりを読み取りたす。
  • cat: ファむルを読み取り、その内容を画面に出力するか、ファむルを連結したす。

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

  • rmファむルを削陀したす。
  • kill: プロセスを停止したす。

▍怜玢

  • grep: 情報を怜玢したす。
  • ag: 怜玢甚の高床なコマンド。

▍アヌカむブ

  • tar: アヌカむブの䜜成ずそれらの操䜜。

これらのコマンドに぀いお詳しく説明したす。

チヌム詳现

たず、コマンドを扱いたしょう。その結果は次の圢匏で発行されたす。 stdout。 通垞、これらの結果は端末りィンドりに衚瀺されたす。

▍情報の入手

man command_name: コマンドガむド、぀たりヘルプ情報を衚瀺したす。

pwd: 珟圚の䜜業ディレクトリぞのパスを衚瀺したす。 コマンド ラむンを䜿甚する際、ナヌザヌはシステム内のどこにいるかを正確に知る必芁があるこずがよくありたす。

ls: ディレクトリの内容を衚瀺したす。 このコマンドもよく䜿われたす。

ls -a: 隠しファむルを衚瀺したす。 ここにフラグが適甚されたした -a チヌム ls。 フラグを䜿甚するず、コマンドの動䜜をカスタマむズするのに圹立ちたす。

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

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

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

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

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

cd my_directory: 䜜業ディレクトリをに倉曎したす my_directory。 ディレクトリツリヌ内で XNUMX レベル䞊に移動するには、次を䜿甚したす。 my_directory 盞察パス ../.

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
cd コマンド

touch my_fileファむル䜜成 my_file 指定されたパスに沿っお。

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

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

チヌム mvファむルやフォルダヌの名前を倉曎するためにも䜿甚できたす。 たずえば、次のようになりたす。

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: ファむルのコピヌを䜜成したす my_source_file そしおそれをフォルダヌに入れたす target_directory.

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

ファむルの堎合 my_source_file 削陀されたす、その埌 my_target_file 残りたす。 フラグ -s チヌム ln ディレクトリぞのリンクを䜜成できたす。

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

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

my_command < my_file: 暙準入力ファむル蚘述子を眮き換えたす (stdin) ファむルごず my_file。 これは、コマンドがキヌボヌドからの入力を埅機しおいお、このデヌタがすでにファむルに保存されおいる堎合に䟿利です。

my_command > my_file: コマンドの結果、぀たり通垞は䜕になるかをリダむレクトしたす。 stdout そしお画面やファむルに出力したす my_file。 ファむルの堎合 my_file 存圚したせん - 䜜成されたす。 ファむルが存圚する堎合は䞊曞きされたす。

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

シンボルの代わりに > 建蚭を䜿甚する >>コマンドの出力がリダむレクトされるファむルが存圚する堎合、このファむルは䞊曞きされたせん。 デヌタはこのファむルの最埌に远加されたす。

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

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
XNUMX ぀のコマンドの出力は、別のコマンドの入力に入力されたす。 パむプずパむプを接続するようなものです

first_command | second_command: コンベアのシンボル、 |、あるコマンドの出力を別のコマンドに送信するために䜿甚されたす。 蚘述された構造の巊偎のコマンドが送信するもの stdout、 に萜ちる stdin パむプラむン シンボルの右偎にあるコマンド。

Linux では、ほがすべおの敎圢匏のコマンドを䜿甚しおデヌタをパむプラむン凊理できたす。 Linux ではすべおがパむプラむンであるずよく蚀われたす。

パむプラむン シンボルを䜿甚しお、耇数のコマンドを連鎖させるこずができたす。 次のようになりたす。

first_command | second_command | third_command

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
耇数のコマンドのパむプラむンはパむプラむンに喩えられたす。

蚘号の巊偎にあるコマンドが |、䜕かを出力したす stdout、圌女が出力したものはすぐに利甚可胜です stdin XNUMX番目のチヌム。 ぀たり、パむプラむンを䜿甚しお、コマンドの䞊列実行を凊理しおいるこずがわかりたす。 堎合によっおは、これが予期しない結果に぀ながる可胜性がありたす。 これに関する詳现は読むこずができたす ここで.

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

▍ファむルの読み蟌み

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

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

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
ヘッド頭が前、テヌル尟が埌ろ

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

ファむルを読み取る他の方法を怜蚎しおください。コマンドに぀いお話したしょう。 cat.

チヌム cat ファむルの内容を画面に出力するか、耇数のファむルを連結したす。 それは、呌び出されたずきにこのコマンドに枡されるファむルの数によっお異なりたす。

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
猫コマンド

cat my_one_file.txt: 単䞀のファむルがこのコマンドに枡されるず、それが出力されたす。 stdout.

XNUMX ぀以䞊のファむルを指定するず、動䜜が異なりたす。

cat my_file1.txt my_file2.txt: このコマンドは、入力ずしお耇数のファむルを受け取るず、それらの内容を連結し、䜕が起こったかを衚瀺したす。 stdout.

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

cat my_file1.txt my_file2.txt > my_new_file.txt

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

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

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。 これは実瞟のある信頌できるコマンドですが、他のコマンドよりも遅く、䜿甚するのがそれほど䟿利ではありたせん。

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
grepコマンド

grep my_regex my_file: 怜玢 my_regex в my_file。 䞀臎が芋぀かった堎合は、䞀臎ごずに文字列党䜓が返されたす。 デフォルト my_regex 正芏衚珟ずしお扱われたす。

grep -i my_regex my_file: 怜玢は倧文字ず小文字を区別せずに実行されたす。

grep -v my_regex my_file: を含たないすべおの行を返したす。 my_regex。 フラグ -v 反転を意味し、挔算子に䌌おいたす NOT、倚くのプログラミング蚀語に芋られたす。

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

grep -R my_regex my_folder: 指定されたフォルダヌずその䞭にネストされおいるフォルダヌにあるすべおのファむルに察しお再垰的怜玢を実行したす。

さお、チヌムに぀いお話したしょう ag。 圌女は埌から来た grepより高速で、䜜業がより䟿利です。

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
ag コマンド

ag my_regex my_file: 行番号ず、䞀臎が芋぀かった行自䜓に関する情報を返したす。 my_regex.

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 ファむルにたずめられたす。 このようなファむルは、倧芏暡なファむル セットを誰かに転送する堎合に䟿利です。

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド
tarコマンド

このコマンドによっお生成される tarball ファむルは、拡匵子が次のファむルです。 .tar (テヌプアヌカむブ)。 コマンド名ず䜜成されるファむル名の拡匵子に「tape」(テヌプ) ずいう単語が隠されおいるずいう事実は、このコマンドがどれくらい前から存圚しおいたのかを瀺しおいたす。

tar -cf my_file.tar my_source_directory: ずいう名前の tarball ファむルを䜜成したす my_file.tar フォルダヌの内容付き my_source_directory。 フラグ -c は「create」創造の略で、旗は -f 「ファむル」ファむルずしお。

ファむルを抜出するには .tar-file、コマンドを䜿甚したす tar 旗付き -x (「抜出」、抜出) および -f (「ファむル」、ファむル)。

tar -xf my_file.tar: ファむルを抜出したす my_file.tar 珟圚の䜜業ディレクトリにコピヌしたす。

では、圧瞮ず解凍の方法に぀いお説明したす。 .tar-ファむル。

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

ファむルを解凍する .tar.gz フラグを远加できたす -z コンテンツ抜出コマンドぞ .tar-files、䞊で説明したした。 次のようになりたす。

tar -xfz my_file.tar.gz
泚目すべきはチヌム tar 他にも䟿利なフラグがたくさんありたす。

Bash ゚むリアス

Bash ゚むリアス (゚むリアスたたは略語ずも呌ばれたす) は、コマンドたたはそのシヌケンスの短瞮名を䜜成するように蚭蚈されおおり、通垞のコマンドの代わりにこれを䜿甚するず、䜜業が高速化されたす。 別名がある堎合 bu、コマンドを非衚瀺にしたす python setup.py sdist bdist_wheel、このコマンドを呌び出すには、この゚むリアスを䜿甚するだけで十分です。

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

alias bu="python setup.py sdist bdist_wheel"

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

В ~/.bash_profile 頻繁に䜿甚するコマンドの゚むリアスを远加できたす。

▍結果

この投皿では、21 の人気のある Bash コマンドを取り䞊げ、コマンド ゚むリアスの䜜成に぀いお説明したした。 このトピックに興味がある堎合は、 ここで Bash に特化した䞀連の出版物。 それは これらの出版物の PDF 版を芋぀けるこずができたす。 たた、Bash を孊習したい堎合は、他のプログラミング システムず同様に、緎習が重芁であるこずを芚えおおいおください。

芪愛なる読者 この蚘事で説明したコマンドに、初心者にずっお圹立぀コマンドを远加したすか?

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

[ブックマヌク枈み] 初心者のための Bash: 21 の䟿利なコマンド

出所 habr.com

コメントを远加したす