はじめに
こんにちは!ミドリガメです🐢
今回は実務でもよく使うLinuxの基礎コマンドについて記載していきます。
本記事の読者の頭に残りやすくするため、コマンドやオプションの由来等も含め記載しています!
また、以下の前編でも実務で欠かせないコマンドについて記載していますので是非合わせて御覧ください。詳細は以下の記事をどうぞ!
調べる系のコマンド
- ヘルプメッセージを表示してオプションの一覧を見る。
⇒ –help
※多くのコマンドでは「–help」オプションを指定すればヘルプメッセージを見ることができる。ヘルプメッセージでは①コマンドの概要②使用方法③オプションなどの意味を確認できる。
# lsコマンドのヘルプメッセージを表示する。
ls --help
- コマンドのマニュアルを表示する。
⇒man
※マニュアルでは「–help」よりも詳細な情報を見ることができる。
manコマンドを使うとlessコマンドを使ってマニュアルがスクロール表示される。
# catコマンドのマニュアルを表示する。
man cat
- コマンドの履歴を表示する。
⇒history
historyコマンドを実行すると過去に実行したコマンドが「3 ls」というように番号とともに表示される。
「!番号」と入力するとhistoryコマンドを実行したときに書いてある番号のコマンドを実行できる。
探す系のコマンド
- カレントディレクトリ以下のファイルから検索する。
検索に使用するコマンドは大きく2つある。1つめはfindコマンド。
⇒find
※記述方法は以下の通り。アクションはデフォルトで「-print」であり、
省略可能。ファイル名を検索するときには「-name」を検索条件に指定し、続けてファイル名を書く。
find 検索開始ディレクトリ 検索条件 アクション
# カレントディレクトリ以下のファイルから拡張子が「.txt」のファイルを検索する。
# '*.txt' は「パス名展開」ではなく、「ワイルドカード」を用いた指定である。
# シングルコーテーションで囲まないと、シェルに「パス名展開」と解釈されてしまう。
find . -name '*.txt' -print
# カレントディレクトリ以下の全てのディレクトリを表示する。
find . -type d -print
- 検索に使用するコマンド、2つめはlocateコマンド。
⇒locate
※findコマンドはディレクトリツリーを下ってファイルを探すため、深い場所にあったり、大量のファイルがあると検索に時間がかかる。
一方、locateコマンドは事前にファイルパスのデータベースが作られていて、そこから検索するので高速な検索が可能である。デフォルトではファイルをデータベースへの登録を1日1回行う(変更可能)。
また、locateは初期状態のLinuxではインストールされていないこともある。その場合はインストールする必要がある。
# sampleとtextという2つの文字列のどちらも含むパスを検索する。
# -Aは「and」を表す。
locate -A sample text
# sampleとtextという2つの文字列のどちらかを含むパスを検索する。
# OR検索の場合、-Aを付けない。
locate sample text
- パターンに一致する行を出力する。
⇒grep (grep regular expression printの略)
※ファイル全体のうち、正規表現に一致する行を出力するという意味
# カレントディレクトリの「sample」というファイルから「test」という文字列を含む行を検索する。
grep test sample
# 「dir」ディレクトリにある、「sample」という文字列を含むファイルやディレクトリを表示する。
# パイプライン(|)を使うことで「lsコマンド」などの結果を入力にして、文字列を検索することができる。
ls /dir | grep sample
パイプラインについて
パイプライン「|」とは、コマンドの出力を別のコマンドの入力につなぐための機能のことです。具体的な例を見たほうが分かりやすいので早速、例を紹介します。
# 「/」のファイルとディレクトリを一覧表示した結果を、行番号付きで表示する。
ls / | cat -n
テキスト処理系のコマンド
- 行数をカウントする。
⇒wc (word countの略)
# カレントディレクトリにあるfileの行数を表示する。
# ※「-l」はlinesの略。「-w」は「words」の略で単語数を表す。
wc -l file
# ディレクトリの直下のファイルとディレクトリの数をカウントして表示する。
# lsとパイプラインを組み合わせることでファイルやディレクトリの数をカウントできる。
ls / | wc -l
- 並び替えを行う。
⇒sort
# カレントディレクトリにあるsampleというファイルの内容をアルファベット順に並び替える。
# -n は数値順に並び替える。-r デフォルトの逆順(降順)に並び替える。
sort sample
- 重複を取り除く。
⇒uniq (uniqueの略)
このコマンドは同じ内容の行が連続している場合のみ重複を取り除く仕様になっているため、「uniq sample」とするだけでは、離れた行にある重複を取り除けない。uniqは常にsortとセットで使う意識を持つと良い。
# カレントディレクトリにあるsampleというファイルの内容を重複行を取り除いて表示する。
# ただし重複数が多い順に表示する。
# -cはcountの略で行数をカウントする。
sort sample | uniq -c | sort -rn
- 先頭の行数を指定して取り出す。
⇒head
# カレントディレクトリのsampleというファイルの先頭5行を表示する。
head -n 5 sample
- 末尾の行数を指定して取り出す。
⇒tail
# カレントディレクトリのsampleというファイルの末尾5行を表示する。
tail -n 5 sample
終わりに
ご覧いただきありがとうございました。ご指摘等がございましたら頂けますと嬉しいです。
引き続き、プログラミング学習について定期的に発信していきますのでよろしくお願いします!
また、もしよろしければtwitterもフォローしていただけると嬉しいです!🐢
コメント