Linux & IT ノート

ターミナルの基本:シェルを使いこなす第一歩

管理人 約7分で読めます

Linux を使い始めると、最初に立ちはだかるのが「黒い画面」――ターミナルです。 GUI に慣れていると戸惑いますが、一度コツを掴めばマウスよりもずっと素早く操作できるようになります。 この記事では、日常的に使う基本コマンドとシェルの仕組みを押さえていきましょう。

シェルとは何か

ターミナルエミュレータ(GNOME Terminal・iTerm2 など)を開くと、内部で シェル というプログラムが動いています。 シェルはあなたが打ち込んだコマンドを解釈してカーネルに伝える橋渡し役です。 Ubuntu/Debian では bash(Bourne Again SHell)がデフォルトで使われていることが多く、本連載も bash を前提にします。

現在使っているシェルは次のコマンドで確認できます。

echo $SHELL
# /bin/bash など

ファイルとディレクトリを操作する

現在地を確認する:pwd

pwd
# /home/youhei

pwd(Print Working Directory)は今いる場所を絶対パスで表示します。 迷子になったらまずこれを叩く癖をつけましょう。

一覧表示:ls

ls          # 基本
ls -l       # 詳細(権限・サイズ・タイムスタンプ)
ls -la      # 隠しファイルも含めて詳細表示
ls -lh      # サイズを人が読みやすい単位で表示

-l オプションで表示される drwxr-xr-x という文字列は パーミッション です。 詳しくは連載第3回で説明します。

移動:cd

cd /var/log       # 絶対パスで移動
cd Documents      # 相対パスで移動(カレントディレクトリ基準)
cd ~              # ホームディレクトリへ
cd ..             # ひとつ上のディレクトリへ
cd -              # 直前のディレクトリへ戻る

ファイル・ディレクトリの作成と削除

mkdir mydir           # ディレクトリを作成
mkdir -p a/b/c        # 親ディレクトリも含めて一括作成

touch myfile.txt      # 空ファイルを作成(タイムスタンプ更新にも使う)

rm myfile.txt         # ファイルを削除
rm -r mydir           # ディレクトリを中身ごと削除(注意!)
rm -i myfile.txt      # 確認プロンプトあり(安全)

注意: rm -r は取り消せません。特に rm -rf / のような操作は絶対に実行しないでください。

コピーと移動・名前変更

cp source.txt dest.txt      # ファイルをコピー
cp -r srcdir/ destdir/      # ディレクトリをコピー

mv old.txt new.txt          # 名前を変更
mv file.txt /tmp/           # 別の場所へ移動

テキストを扱う

ファイルの中身を見る

cat file.txt           # 全体を標準出力に表示
less file.txt          # スクロールして閲覧(q で終了)
head -n 20 file.txt    # 先頭20行
tail -n 20 file.txt    # 末尾20行
tail -f /var/log/syslog  # リアルタイム追尾(ログ監視に便利)

grep でパターン検索

grep "error" /var/log/syslog          # "error" を含む行を表示
grep -i "warning" access.log          # 大文字小文字を無視
grep -r "TODO" ~/projects/            # ディレクトリを再帰的に検索
grep -n "function" script.sh          # 行番号付きで表示

リダイレクトとパイプ

リダイレクト(出力先の変更)

ls -l > filelist.txt        # 標準出力をファイルに書き込む(上書き)
ls -l >> filelist.txt       # 追記
ls /nonexistent 2> err.txt  # 標準エラー出力をファイルへ
command > out.txt 2>&1      # 標準出力と標準エラーを同じファイルへ

パイプ(コマンドを繋げる)

パイプ | を使うと、あるコマンドの出力を次のコマンドの入力として渡せます。 これが Linux の「小さなツールを組み合わせる」哲学の核心です。

# ログから "error" を含む行だけ抽出して件数を数える
grep -i "error" /var/log/syslog | wc -l

# プロセス一覧から特定の名前で絞り込む
ps aux | grep nginx

# ファイル一覧を less で閲覧する
ls -lh /usr/local/bin | less

エイリアスと履歴

よく使うコマンドを短縮する

# ~/.bashrc に追記
alias ll='ls -lah'
alias la='ls -A'
alias gs='git status'

# 追記後は再読み込みが必要
source ~/.bashrc

コマンド履歴の活用

history          # 過去のコマンドを一覧表示
history | tail -20   # 直近20件
!!               # 直前のコマンドを再実行
!grep            # 最後に実行した grep で始まるコマンドを再実行
Ctrl + R         # インクリメンタルサーチ(非常に便利)

タブ補完を使いこなす

シェルでは Tab キーを押すとコマンド名やパスを自動補完してくれます。 曖昧な場合は2回押すと候補一覧が出ます。毎回フルタイプせずにこれを活用しましょう。

まとめ

操作コマンド
現在地確認pwd
一覧表示ls -lh
移動cd <パス>
ファイル作成touch
ディレクトリ作成mkdir -p
コピーcp
移動/リネームmv
削除rm-r で再帰)
パターン検索grep
出力の繋ぎ合わせ`

次回は systemd を使ってシステムサービスを管理する方法を解説します。 ターミナルの基本が固まったら、ぜひそちらも読んでみてください。