はじめに
生成AIを使ってプログラミングやアプリ開発に挑戦している人が増えています。
v0やReplit Agent、Cursorなどアプリ開発に役立つサービスの登場でプログラミング未経験でもアプリをローンチする猛者も登場しています。
しかし、全くのゼロ知識で生成AIを使ってアプリ開発を進めるのは正直しんどいです。
例えばインフラやセキュリティが分からなくて脆弱なアプリになってしまうのは容易に起こり得ます。
今回の記事では、生成AIでアプリ開発を始めたプログラミング初心者や、開発の知識を深めたい人向けにコマンドラインでよく使用するLinuxコマンドに絞って用語と使い方を解説します。
「これだけ知っておけばとりあえず大丈夫!」というものを整理し、具体的な実行例まで付けて解説しているので手元でいつでも見返せるようにしておくと良いと思います。
対象読者
- 生成AIを使ってアプリ開発に取り組んでいる人
- Linuxコマンドの使い方を学びたい人
- 意外と忘れがちなコマンドを確認し直したい人
先に今回の記事で紹介するコマンド一覧を一覧で紹介します。気になるところから見るスタイルでも問題ないです。
記事の構成
本記事では下記のコマンドについて紹介と使用方法について具体例を交えながら解説しています。
コマンド名 | 使用用途 |
---|---|
ls | ディレクトリ内容を一覧表示する |
pwd | 現在のディレクトリ位置を確認する |
cd | ディレクトリを移動する |
cp | ファイルやディレクトリをコピーする |
mv | ファイルやディレクトリを移動/名前変更する |
rm | ファイルやディレクトリを削除する |
mkdir | 新しいディレクトリを作成する |
rmdir | 空のディレクトリを削除する |
touch | 空ファイルを作成/更新日付を変更する |
cat | ファイル内容を一度に表示する |
more/less | ファイル内容をスクロールしながら表示する |
head/tail | ファイルの先頭/末尾の行を表示する |
find | 条件を指定してファイルを検索する |
locate | データベースから高速にファイルを検索する |
chmod | ファイルやディレクトリのアクセス権限を変更する |
chown | ファイルやディレクトリの所有者やグループを変更する |
Xアカウントではビジネスマンが生成AIを使いこなすヒントを発信しています。AIを使いこなせるようになりたい方はフォローをお願いします!
また、マンツーマンの生成AIコーチングを行っているので、専門家の直接学習サポートに興味がある方はDMお待ちしています。
それでは順番にそれぞれ解説していきます!
Linux基本コマンド解説
使用するサンプルディレクトリ
今回は、以下のようなサンプルディレクトリを用いて、各コマンドの使用例も併せて紹介しています。
/sample_dir
├── file1.txt (内容: "Hello World")
├── file2.txt (内容: "Linux Command")
├── hidden_file (隠しファイル)
├── sub_dir
│ └── nested_file.txt
それでは各種コマンドを解説していきます。
lsコマンド
説明
カレントディレクトリにある通常のファイルとサブディレクトリを表示する。
使い方
ls [ディレクトリ]
使用例
$ ls
file1.txt file2.txt sub_dir
カレントディレクトリにあるファイルとサブディレクトリが表示されます。
補足
ls
コマンドをはじめ多くのlinuxコマンドは、-で始まる追加の引数を指定することができ、これをオプションといいます。
各コマンドの代表的なオプションを補足として紹介します。
-
-a
隠しファイルも含めてすべて表示されます。
$ ls -a
. .. file1.txt file2.txt hidden_file sub_dir
.
と..
はそれぞれカレントディレクトリと親ディレクトリを指します。
-
-l
詳細情報も併せて表示します。
$ ls -l
total 8
-rw-r--r-- 1 user user 1234 Jan 1 10:00 file1.txt
-rw-r--r-- 1 user user 5678 Jan 1 11:00 file2.txt
drwxr-xr-x 2 user user 4096 Jan 1 09:00 sub_dir
total
はブロック数を表します。
各列の情報
- ファイルタイプとパーミッション
- ハードリンクの数
- 所有者
- グループ
- サイズ(バイト単位)
- 最終更新日時
- ファイル名
pwdコマンド
説明
カレントディレクトリのパスを表示する。
使い方
pwd
使用例
$ pwd
/home/user/sample_dir
cdコマンド
説明
ディレクトリを移動する。
使い方
cd [移動先ディレクトリ]
使用例
$ cd sub_dir
$ pwd
/home/user/sample_dir/sub_dir
補足
- 特殊な使用法
-
cd ..
:親ディレクトリに移動 -
cd ~
:ホームディレクトリに移動 -
cd -
:直前のディレクトリの戻る
# 現在の作業ディレクトリを確認
$ pwd
/home/user/sample_dir
# sub_dirディレクトリに移動
$ cd sub_dir
# 現在の作業ディレクトリを確認
$ pwd
/home/user/sample_dir/sub_dir
# 親ディレクトリに戻る
$ cd ..
# 現在の作業ディレクトリを確認
$ pwd
/home/user/sample_dir
# ホームディレクトリに移動
$ cd ~
# 現在の作業ディレクトリを確認
$ pwd
/home/user
cpコマンド
説明
ファイルやディレクトリをコピーする。
使い方
cp [コピー元] [コピー先]
使用例
$ cp file1.txt copy_of_file1.txt
$ ls
copy_of_file1.txt file1.txt file2.txt sub_dir
補足
-
-r
ディレクトリを再帰的にコピー
$ ls
copy_of_file1.txt file1.txt file2.txt sub_dir
$ cp -r sub_dir new_sub_dir
$ ls
copy_of_file1.txt file1.txt file2.txt sub_dir new_sub_dir
# ディレクトリの中身も保持されていることを確認
$ ls new_sub_dir
nested_file.txt
mvコマンド
説明
ファイルを移動または名前を変更する。(cpとは異なり、元のファイルは削除される)
使い方
mv [移動元] [移動先]
使用例
# ファイルを移動
$ mv file1.txt sub_dir/
$ ls
file2.txt sub_dir
$ ls sub_dir
file1.txt nested_file.txt
# ファイル名を変更
$ mv file2.txt renamed_file.txt
$ ls
renamed_file.txt sub_dir
# ディレクトリ名を変更
$ mv sub_dir new_dir
$ ls
new_dir renamed_file.txt
rmコマンド
説明
ファイルやディレクトリを削除する。
使い方
rm [削除対象]
使用例
# 単一ファイルの削除
$ rm file1.txt
$ ls
file2.txt sub_dir
# 複数ファイルの削除
$ rm file2.txt sub_dir/nested_file.txt
$ ls sub_dir
補足
-
-r
ディレクトリを再帰的に削除
$ ls
sub_dir
$ rm -r sub_dir
$ ls
-
-i
削除時に確認を求める
$ rm -i file2.txt
rm: remove regular file 'file2.txt'? y
mkdirコマンド
説明
新しいディレクトリを作成する。
使い方
mkdir [ディレクトリ名]
使用例
$ mkdir new_dir
$ ls
file1.txt file2.txt sub_dir new_dir
補足
-
-p
階層ディレクトリを一括作成
$ mkdir -p parent_dir/child_dir
$ tree
.
├── file1.txt
├── file2.txt
├── sub_dir
│ └── nested_file.txt
├── new_dir
└── parent_dir
└── child_dir
parent_dir
が存在しない場合でも、-p
オプションをつけることで親ディレクトリも一緒に作成されます。
rmdirコマンド
説明
空のディレクトリを削除する。
使い方
rmdir [ディレクトリ名]
使用例
# ディレクトリが空でない場合、削除は失敗
$ rmdir sub_dir
rmdir: failed to remove 'sub_dir': Directory not empty
# ディレクトリの中身を空にする
$ rm sub_dir/nested_file.txt
# 空になったディレクトリを削除
$ rmdir sub_dir
$ ls
file1.txt file2.txt
補足
-
-p
親ディレクトリも一緒に削除
$ mkdir -p parent_dir/child_dir
$ rmdir -p parent_dir/child_dir
$ ls
file1.txt file2.txt sub_dir
touchコマンド
説明
新しい空のファイルを作成または既存ファイルのタイムスタンプを更新する。
使い方
touch [ファイル名]
使用例
# 新しい空のファイルを作成
$ touch new_file.txt
$ ls
file1.txt file2.txt sub_dir new_file.txt
# 既存ファイルのタイムスタンプを変更
$ touch file1.txt
$ ls -l
total 10
-rw-r--r-- 1 user user 1234 Jan 14 10:00 file1.txt
-rw-r--r-- 1 user user 5678 Jan 1 11:00 file2.txt
drwxr-xr-x 2 user user 4096 Jan 1 09:00 sub_dir
-rw-r--r-- 1 user user 0 Jan 14 10:00 new_file.txt
補足
-
-t
タイムスタンプを特定の日時に設定
$ touch -t 202401020800 file1.txt
$ ls -l
total 10
-rw-r--r-- 1 user user 1234 Jan 2 08:00 file1.txt
-rw-r--r-- 1 user user 5678 Jan 1 11:00 file2.txt
drwxr-xr-x 2 user user 4096 Jan 1 09:00 sub_dir
-rw-r--r-- 1 user user 0 Jan 14 10:00 new_file.txt
catコマンド
説明
ファイルの内容を表示する。また、新しいファイルを作成したり、複数のファイルを結合したりすることにも用いられる。
使い方
cat [ファイル名]
使用例
# 単一ファイルの内容を表示
$ cat file1.txt
Hello World
# 複数ファイルを結合して表示
$ cat file1.txt file2.txt
Hello World
Linux Command
補足
- ファイルを新規作成/上書き
$ cat > new_file.txt
This is a new file.
Ctrl+D
$ cat new_file.txt
This is a new file.
cat >
を使用すると標準入力からファイルを作成または上書きできます。入力を終了するにはCtrl+D
を押します。
- 複数ファイルを結合
$ cat file1.txt file2.txt > combined.txt
$ cat combined.txt
Hello World
Linux Command
moreコマンド/lessコマンド
説明
-
more
テキストファイルをページ単位で表示する。ファイルの一方向のみ移動可能。 -
less
more
コマンドの機能を拡張したもので、上下自由にスクロールできる。
使い方
more [ファイル名]
/less[ファイル名]
使用例
$ cat > new_file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
Ctrl+D
$ more new_file.txt
Line 1
Line 2
...
--More--(続行するにはスペースキーを押してください)
# 内容が画面に収まりきらない場合、--More--が表示される
# スペースキーを押すごとに次のページが表示される
$ less file1.txt
Line 1
Line 2
...
# 上下矢印キーでスクロール可能
補足
-
less
コマンドの検索機能
less
コマンド実行後に、以下のコマンドを実行することで検索キーワードに一致する箇所がハイライトされます。
/[検索キーワード]
- 比較
特徴 | more |
less |
---|---|---|
スクロール | 順方向のみ | 両方向可能 |
検索機能 | なし | あり |
大きなファイルの対応 | 比較的遅い | 高速で効率的 |
headコマンド/tailコマンド
説明
-
head
ファイルの先頭部分(デフォルトでは最初の10行)を表示する。 -
tail
ファイルの末尾部分(デフォルトでは最後の10行)を表示する。
使い方
head [ファイル名]
/tail [ファイル名]
使用例
$ cat > new_file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 12
Line 13
Line 14
Line 15
Ctrl+D
$ head new_file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
$ tail new_file.txt
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 12
Line 13
Line 14
Line 15
補足
-
-n
行数を指定
$ head -n 5 new_file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
$ tail -n 5 new_file.txt
Line 11
Line 12
Line 13
Line 14
Line 15
findコマンド
説明
ディレクトリツリー内のファイルやディレクトリを検索する。
使い方
find [検索開始ディレクトリ] [検索条件]
使用例
# 名前で検索
$ find . -name "file1.txt"
./file1.txt
# 特定の種類を検索
$ find . -type d
.
./sub_dir
# 特定の拡張子で検索
$ find . -name "*.txt"
./file1.txt
./file2.txt
補足
-
主な検索条件
-
-name
:ファイル名を指定 -
-type
:ファイルの種類を指定-
f
:通常のファイル -
d
:ディレクトリ
-
-
-size
:ファイルサイズを指定-
+
で以上、-
で以下を表す
-
-
-mtime
:最終更新日時を指定-
+n
でn日前より古い、-n
でn日以内を表す
-
-
-user
:指定したユーザーが所有するファイル
-
-
条件に一致したファイルにコマンドを実行
$ find . -name "file.txt" -exec cat {} \;
Hello World
This is nested file content.
locateコマンド
説明
インデックスデータベースを利用して、より高速にファイルを検索する。
使い方
locate [検索文字列]
使用例
$ locate file1.txt
/home/user/sample_dir/file1.txt
$ locate file
/home/user/sample_dir/file1.txt
/home/user/sample_dir/file2.txt
/home/user/sample_dir/sub_dir/nested_file.txt
補足
-
-i
大文字小文字を無視して検索
$ locate -i FILE1.TXT
/home/user/sample_dir/file1.txt
-
-c
マッチ件数の表示
$ locate -c file
3
- 注意点
locate
コマンドはデフォルトでインデックスデータベースを使用するため、最近作成したファイルが検索結果に含まれない場合があります。その際は以下のコマンドでデータベースを更新してください(管理者権限が必要)。
$ sudo updatedb
chmodコマンド
説明
ファイルやディレクトリのアクセス権を変更する。
使い方
chmod [モード] [ファイル名]
- モードの指定方法
- シンボリックモード
-
u
:所有者 -
g
:グループ -
o
:その他 -
a
:全体
-
- 数値モード
- 8進数の数値で指定(
r
:読み取り、w
:書込み、x
:実行)- 7:
rwx
- 6:
rw-
- 5:
r-x
- 4:
r--
- 3:
-wx
- 2:
-w-
- 1:
--x
- 0:
---
- 7:
- 8進数の数値で指定(
- シンボリックモード
使用例
# 数値モード
$ chmod 644 file1.txt
$ ls -l file1.txt
-rw-r--r-- 1 user user 1234 Jan 14 10:00 file1.txt
# シンボリックモード
# 所有者に実行権限を追加
$ chmod u+x file1.txt
$ ls -l file1.txt
-rwxr--r-- 1 user user 1234 Jan 14 10:00 file1.txt
補足
-
-R
ディレクトリ内すべてのファイルの権限を変更
$ chmod -R 755 /sample_dir
$ ls -l
total 8
-rwxr-xr-x 1 user user 1234 Jan 1 10:00 file1.txt
-rwxr-xr-x 1 user user 5678 Jan 1 11:00 file2.txt
-rwxr-xr-x 2 user user 4096 Jan 1 09:00 sub_dir
chownコマンド
説明
ファイルやディレクトリの所有者やグループを変更する。
使い方
chown [新しい所有者]:[新しいグループ] [ファイル名]
使用例
# 所有者とグループを変更
$ sudo chown user2:group2 file1.txt
$ ls -l file2.txt
-rw-r--r-- 1 user2 group2 1234 Jan 14 10:00 file2.txt
# 所有者のみ変更
$ sudo chown user1 file1.txt
$ ls -l file1.txt
-rw-r--r-- 1 user1 group1 1234 Jan 14 10:00 file1.txt
補足
-
-R
ディレクトリ全体を変更
$ sudo chown -R user2:group2 sub_dir
$ ls -lR sub_dir
sub_dir:
-rw-r--r-- 1 user2 group2 1234 Jan 14 10:00 nested_file.txt
おわりに
いかがだったでしょうか?
生成AIを使ってアプリ開発にチャレンジする方など初めてLinuxコマンドを経験する人もいたのではないでしょうか。
基本的なLinuxコマンドを中心にまとめたので、それぞれ何ができるのか?は知っておいてほしいです。
どれもエンジニアなら知っておかなければいけないものばかりです。
AI時代でも基礎部分の理解は重要なので、これを気に是非マスターしましょう!
Xアカウントではビジネスマンが生成AIを使いこなすヒントを発信しています。AIを使いこなせるようになりたい方はフォローをお願いします!
また、マンツーマンの生成AIコーチングを行っているので、専門家の直接学習サポートに興味がある方はDMお待ちしています。
※ 記事中に誤表記等あればご教示いただけますと幸いです。