
→ また、ブログで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情報を入手する
-
man
:コマンドのユーザーマニュアル(ヘルプ)を表示します。 -
pwd
:作業ディレクトリに関する情報を表示します。 -
ls
:ディレクトリの内容を表示します。 -
ps
:実行中のプロセスに関する情報を表示できます。
▍ファイルシステムの操作
-
cd
:作業ディレクトリを変更します。 -
touch
:ファイルを作成します。 -
mkdir
:ディレクトリを作成します。 -
cp
:ファイルをコピーします。 -
mv
:ファイルを移動または削除します。 -
ln
:リンク作成。
▍I / Oリダイレクトとパイプライン
-
<
:stdin
リダイレクト。 -
>
:stdout
リダイレクト。 -
|
:パイプラインを使用して、あるコマンドの出力を別のコマンドの入力にリダイレクトします。
filesファイルの読み取り
-
head
:ファイルの先頭を読み取ります。 -
tail
:ファイルの終わりを読み取ります。 -
cat
:ファイルを読み取り、その内容を画面に表示するか、ファイルを連結します。
filesファイルの削除、プロセスの停止
-
rm
:ファイルを削除します。 -
kill
:プロセスを停止します。
▍検索
-
grep
:情報を検索します。 -
ag
:高度な検索チーム。
▍アーカイブ
-
tar
:アーカイブを作成して操作します。
これらのチームについて詳しく説明しましょう。
チームの詳細
まず、結果が
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スクリプトに関する一連の出版物も読んでください。
