[ブックマーク]初心者向けの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スクリプトに関する一連の出版物も読んでください。






All Articles