Linux コマンドラインをはじめる
Linux シェルの基礎をカバーした実践的な用語集:ナビゲーション、ファイル操作、パーミッション、そしてそれらを素早く使いこなすための習慣。
コマンドラインはオペレーティングシステムと直接対話するためのテキストインターフェースです。アイコンをクリックする代わりに、シェルに指示を入力すると、シェルがそれを実行します。ほとんどの Linux ディストリビューションではそのシェルは bash ですが、zsh も一般的になってきました。特に macOS のデフォルトになり、Linux でも人気が高まっています。コマンドラインを学ぶことは、何百ものコマンドを暗記することではありません。小さなツールのセットを内在化し、それらをうまく組み合わせることです。
シェルが実際にすること
ターミナルを開くと、ターミナルエミュレータが実行され、その中でシェルプロセスが入力を待っています。コマンドを入力して Enter キーを押すと、シェルはそれを解析し、指定したプログラムを見つけ、与えた引数で実行します。出力はテキストで返ってきます。これが全体のループです。ターミナル(ウィンドウ)とシェル(テキストを解釈するプログラム)の分離を理解することで、初期の混乱の多くが解消されます。
移動と確認
初期のナビゲーションはこれら 4 つのコマンドでほとんどカバーできます:
pwd # print working directory
ls -la # list files, including hidden ones, with details
cd projects # change into a directory
cd .. # go up one level
ls -la は最初はエイリアスに頼らず完全に入力する価値があります。そうすることで出力のパーミッション、所有権、ファイルサイズに慣れることができます。パーミッション文字列の先頭の d または - は、それがディレクトリなのか通常ファイルなのかを示しており、これは初心者を戸惑わせることがよくあります。
ファイルの読み取りと操作
cat somefile.txt はファイル全体を画面に出力します。もっと長いファイルの場合、less somefile.txt で /pattern を使ってスクロールと検索ができます。head -n 20 file.log と tail -n 20 file.log は最初の行または最後の行を表示し、tail -f file.log はファイルをフォローしており、新しい行が追加されると表示されます。これはデバッグ中にログをリアルタイムで監視する方法です。
コピー、移動、削除には cp、mv、rm を使います:
cp report.txt report.bak
mv report.bak archive/
rm archive/report.bak
rm はファイルをごみ箱に移動しません。削除します。-i を加えると確認を求めるようになります。筋肉記憶を構築している段階では、これは妥当な習慣です。
パーミッション、謎なし
ファイルに対して ls -l を実行すると、-rwxr-xr-- のような出力が表示されます。これを 3 つの 3 文字グループに分割します:所有者、グループ、その他。各グループは読み取り、書き込み、実行を持っています。chmod 755 script.sh は所有者を読み取り/書き込み/実行(7)、グループ/その他を読み取り/実行(5)に設定します。chmod +x script.sh はファイルを実行可能にするショートカットで、数値を再計算する必要がありません。chown はファイルの所有者を変更し、通常はそれが既に自分のファイルでない限り sudo が必要です。
パイプとリダイレクション
ここはコマンドラインがファイルブラウザであることをやめ、実際のツールになり始めるところです。パイプ | はあるコマンドの出力を別のコマンドに送ります:
ps aux | grep nginx
ls -la | wc -l
cat access.log | grep 404 | sort | uniq -c | sort -rn
その最後のコマンドは、ログ内で 404 を生成する各行が何回出現するかをカウントし、頻度でソートします。すべて小さなコマンドを一緒に繋いで構成されています。> と >> を使ったリダイレクションは出力を画面ではなくファイルに送ります:> は上書きし、>> は追加します。2> はエラー出力を特別にリダイレクトします。これは正常な出力とエラーを分離する必要があるスクリプトを書き始めると重要になります。
ものを見つける
find は名前、タイプ、または変更時刻で検索します:
find /var/log -nameこの記事は AI の支援を受けて執筆し、Korra Studio の Michal Pilch(CISSP)が確認のうえ公開しました。
これは Korra Studio ナレッジベースの 1 つのノートです。プラットフォームはすべてのトピックと 1 対 1 メンタリングをペアで提供します。
無料で始めるarrow_forward