ターミナルとシェルの基本|ディレクトリ移動とファイル操作、パイプの考え方
mkdir・cp・mv・rmでファイルを扱う
練習用テキストを作る
先ほど作った空の練習ディレクトリで pwd と ls を確認します。ここで新たに作る memo.txt が存在しないことも見てください。次の > は結果をファイルへ保存する記号で、同じ名前があると中身を上書きする可能性があります。既存の資料に向けて実行しないでください。
printf '%s\n' 'apple' 'orange' 'apple tea' > memo.txt
ls
cat memo.txt
printf は指定した形式で文字を出すコマンドです。この例の %s は文字列、\n は改行を表し、三つの語句を別々の行に出します。ここでは英数字だけを使い、日本語の文字コードの違いをいったん避けています。cat の表示が三行になれば、練習に使う内容を確認できます。
mkdir はディレクトリを作ります。次の copies が未使用の名前であることを確認したうえで、コピーを作ります。途中でエラーが出たら後の行へ進まず、現在地と名前を見直します。
mkdir copies
cp -i memo.txt copies/memo-copy.txt
ls copies
cat copies/memo-copy.txt
cp は元のファイルを残してコピーします。ここでの -i は、上書きする場合に確認するための指定です。確認が出ること自体、想定より前に同名ファイルがあるという手がかりなので、迷う場合は中止します。確認付きでも、自動的に内容の正しさや保存先を保証するわけではありません。
名前変更と移動は同じコマンド
mv は、ファイルを別の場所へ移すほか、同じ場所で名前を変える用途にも使います。次の例は練習用のコピーだけを名前変更します。変更先が既存の大切なファイルになっていないかを先に確認します。
mv -i copies/memo-copy.txt copies/memo-reviewed.txt
ls copies
cat copies/memo-reviewed.txt
一般にコピーでは元と先の両方が残り、移動では元の名前や場所から対象がなくなります。移動先がディレクトリとして存在するかどうかでも結果の解釈が変わるため、「最後の名前は保存先のファイル名か、入れ物か」を読む習慣を付けます。ディレクトリ全体の操作は、ファイル一個の扱いが分かってから進めます。
削除は取り消せない前提で考える
Unix系の一般的な rm は、ごみ箱へ移さずファイルを削除します。通常の画面操作のような「元に戻す」は期待できません。GNUのファイル操作マニュアルでも、コピー・移動・削除はそれぞれ別の操作として説明されています。
削除の練習は必須ではありません。行う場合は
pwdと一覧で対象を確認し、自分で作った不要なコピー一個だけを指定してください。rm -rfのように範囲を広げ、確認を抑える指定や、*などで対象を広げた削除は、入門の練習では使いません。
試す場合の対象は、上で作った copies/memo-reviewed.txt だけです。たとえば rm -i copies/memo-reviewed.txt では確認を挟めますが、削除すればコピーは戻りません。迷ったら確認に同意せず中止し、残したまま次へ進めてください。元の memo.txt は後の例でも使うため削除しません。
cat・less・head・tailで内容を見る
全体を出すか、必要な部分を見るか
cat memo.txt は、短いテキストの内容を画面へ出すときに便利です。長いファイルをそのまま表示すると画面が大量に流れ、先頭を見失うことがあります。ファイルの大きさが分からないときは、必要な範囲だけを見る道具や、閲覧用の画面を使い分けます。
less memo.txt は、対応する環境なら内容をページ単位で確認できます。よくある操作では上下の移動や検索ができ、q で終了します。閲覧画面から戻れず止まったように見えた場合も、コマンドが失敗したとは限りません。プロンプトが出ているか、閲覧画面なのかをまず見ます。
head は先頭側、tail は末尾側を取り出します。行数を指定する例として、次の二つは練習テキストの最初と最後の二行を表示します。同じファイルでも見る場所によって結果が違い、内容を変更する操作ではありません。
head -n 2 memo.txt
tail -n 2 memo.txt
長い記録ファイルなら、先頭で項目名や形式を見て、末尾で最近の記録を確認する、といった使い分けができます。ただし、末尾だから必ず最新の時刻とは限りません。記録の並び方を確認してから解釈します。ログの継続表示などは便利ですが、まず一度表示して終わる操作を理解してから試す方が見通しを持てます。
表示が読めないときに上書きしない
これらのコマンドは、主にテキストを見るために使います。画像や文書アプリ独自の形式、圧縮ファイルなどをそのまま cat へ渡しても、人が読める文章になるとは限りません。拡張子だけを変更しても中身は変わらないため、元の形式に合うアプリを使います。
日本語が文字化けした場合は、保存された文字コードと表示側の解釈が合っていない可能性があります。読めないからといって、すぐ変換して原本へ上書きしません。コピーを作り、作成元のアプリや保存形式を確認します。CSVなら、文字コードのほか、区切り文字や改行にも注意が必要です。
CSVの文字化けの直し方|Excelで安全に読み込む手順と確認点では、原本を残して読み込む考え方を整理しています。ターミナルで表示できたことだけで、表として正しく扱えるとも限りません。目的に合わせて、文字の確認とデータ形式の確認を分けます。
画面で二行に折り返されていても、ファイル内では一行の場合があります。表示や検索はファイル内の行区切りを基準にするため、見た目と行数を区別します。
grepで必要な行を探す
まず普通の文字列を検索する
grep は、指定した条件に合う行を探して表示するコマンドです。練習テキストから apple を含む行を探すなら、次のように指定できます。-F は検索語を正規表現として解釈せず、固定の文字列として探すための指定です。最初は普通の文字列で、どの行が出るかを確かめます。
grep -F 'apple' memo.txt
grep -nF 'apple' memo.txt
この例では apple と apple tea の行が対象になり、orange の行は出ません。二行目の例の -n は行番号も表示します。検索語に一致した部分だけを抜き取るのではなく、一致を含む行が表示される、という基本を押さえます。
検索結果が空の場合と、読み込みのエラーが出た場合を分けます。前者では検索語の大文字小文字やスペース、後者では対象の名前や権限を確認します。
記号を含む検索は意味を確認する
通常の grep では、検索語の一部が正規表現の記号として解釈されます。たとえばドットは、設定や使い方によって一文字を表す働きを持ちます。ファイル名やエラーメッセージをそのまま探したいなら、まず -F を使い、文字どおりの検索として結果を見る方が理解しやすくなります。
引用符で囲むことと、固定文字列として扱うことは別です。引用符はシェルが空白や記号をどう渡すかに関わり、-F は渡された語を grep がどう解釈するかに関わります。引用符で囲んだだけで、検索側の正規表現の意味まで消えるわけではありません。
条件を少し広げたくなったら、正規表現の基本|よく使う記号の意味と、検索・置換で失敗しない書き方を参考に、短いサンプルで試します。対象外の行が混ざっていないか、拾いたい行が落ちていないかの両方を確認すると、検索結果を過信せずに済みます。
検索範囲は、自分が読める必要なディレクトリへ絞ります。全体を一度に探すと、権限エラーや大量の結果に埋もれやすくなります。











