Linuxを勉強し始めた初心者の方向けに、Linuxの基本的なコマンド操作をまとめてみました。私はAWS(EC2)のubuntuで実行しています。環境がある方はぜひ手を動かしながらコマンド操作を学んでみてください!
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1012-aws x86_64)
【初心者向け】Linuxの基本的なコマンド操作!
これからLinuxの基本的なコマンド操作を説明していきます。その前にどんなコマンドがあるのか。ちょっと一覧で確認してみましょう!
Linuxコマンド一覧
ディレクトリ・ファイル操作
コマンド | 用途 | コマンドオプション |
pwd | 現在のディレクトリを表示 | – |
cd | 指定したディレクトリに移動 | – |
ls | ディレクトリの中身を表示 | ・-l:ファイルの詳細情報を表示 ・-R:ディレクトリ内のサブディレクトリも含めて、その中身をすべて表示 |
touch | ファイルの新規作成 | – |
mkdir | ディレクトリ作成 | – |
rm | ファイル・ディレクトリの削除 | ・-f:確認メッセージを表示せずに削除 ・-i:削除実行時に確認メッセージを表示 ・-r:ディレクトリを削除 |
rmdir | 空のディレクトリを削除 | – |
cp | ファイル・ディレクトリのコピー | ・-p:更新日付を保ったままコピー ・-r:ディレクトリをコピー |
find | ファイル検索 | ・-empty:空ファイルも検索対象 ・-type f:ファイル検索 ・-type d:ディレクトリ検索 ・-size [サイズ]:サイズ検索 |
mv | ファイル・ディレクトリの移動 (名称変更) | – |
テキスト操作
コマンド | 用途 | コマンドオプション |
vi (vim) | テキストエディタを起動 (ファイル修正) | – |
cat | ファイルの中身を表示 | ・-n:行番号をつけて表示 |
grep | 指定したファイルに特定の文字検索 | ・-i:大文字小文字を区別しない ・-l:検索結果としてファイル名のみ表示 |
ざっと見た感じどうでしょうか?コマンドオプションまで覚えると大変なので、コマンドから覚えて余裕があれば覚えてみてください。では、早速よく使うものから順に説明していきます。
Linuxコマンドを使ってみよう(ディレクトリ・ファイル操作)
ではLinuxコマンドを使っていきましょう!
ここから説明していきます。混乱しないように補足ですが、 ディレクトリ = フォルダ です。
pwd – 現在のディレクトリを表示
まずは、現在のディレクトリを pwd で表示していきます。
ubuntu@ip-172-31-45-163:~/sample2$ pwd
/home/ubuntu/sample2
sample2 ディレクトリにいることがわかりました!
cd – 指定したディレクトリに移動
次は1番使う ディレクトリ移動です!まずは、今いるsample2ディレクトリから一つ上のubuntuディレクトリに移動したいと思います。一つ上のディレクトリに移動するには cd .. または cd ~/ で移動することができます。
ubuntu@ip-172-31-45-163:~/sample2$ cd ..
ubuntu@ip-172-31-45-163:~$ pwd
/home/ubuntu
ubuntuにいる状態で sample1に移動したいと思います。 cd ディレクトリ名 で移動できるので移動してみましょう!
ubuntu@ip-172-31-45-163:~$ cd sample1
ubuntu@ip-172-31-45-163:~/sample1$ pwd
/home/ubuntu/sample1
cd ディレクトリ名で移動できました。一つ一つ移動することもできますが、 / で繋いで移動することも可能です。
homeディレクトリにいる時にsample2ディレクトリに移動する場合… cd ubuntu 、cd sample2と移動してもいいのですが一気に移動したいですよね?
ubuntu@ip-172-31-45-163:/home$ cd ubuntu/sample2
ubuntu@ip-172-31-45-163:~/sample2$ pwd
/home/ubuntu/sample2
ls – ディレクトリの中身を表示
次はディレクトリの中身を ls で確認してみます。
ubuntu@ip-172-31-45-163:~/sample2$ ls
sample.txt
sample1の中身も確認してみたいと思います。
ubuntu@ip-172-31-45-163:~/sample1$ ls
ubuntu@ip-172-31-45-163:~/sample1$
… 何も表示されませんでした。そう、sample1ディレクトリの中身は空なので何も表示されませんでした。
mkdir – ディレクトリの作成
sample1ディレクトリの中身は空なことがわかりました。そこで!ディレクトリを作成してみたいと思います。ディレクトリの作成するには、 mkdir ディレクトリ名 です。
ubuntu@ip-172-31-45-163:~/sample1$ mkdir sample3
ubuntu@ip-172-31-45-163:~/sample1$ ls
sample3
sample1ディレクトリの中にsample3ディレクトリを作成しました。
touch – ファイルの作成
ファイルを作成には、 touch ファイル名 です!
ubuntu@ip-172-31-45-163:~/sample1$ touch test.txt
ubuntu@ip-172-31-45-163:~/sample1$ ls
sample3 test.txt
cp – ファイル・ディレクトリのコピー
cpでファイルやディレクトリをコピーしていきます。cpの使い方は cpコピー元 コピー先 になります。
ubuntu@ip-172-31-45-163:~/sample1$ cp test.txt cpTest.txt
ubuntu@ip-172-31-45-163:~/sample1$ ls
cpTest.txt sample3 test.txt
ディレクトリも同じようにコピーできます。ディレクトリのコピーはコマンドオプションを使用します。「cpコピー元 -r コピー先」ぜひ試してみてください。次はファイル・ディレクトリの削除についてです。
rm – ファイル・ディレクトリの削除
ファイルを削除するには rm ファイル名、ディレクトリを削除するには rm -r ディレクトリ名 になります。
ubuntu@ip-172-31-45-163:~/sample2$ rm sample.txt
ubuntu@ip-172-31-45-163:~/sample2$ ls
ubuntu@ip-172-31-45-163:~/sample2$ rm -r sample2
rm: cannot remove 'sample2': No such file or directory
ubuntu@ip-172-31-45-163:~/sample2$ cd ..
ubuntu@ip-172-31-45-163:~$ ls
sample1 sample2
ubuntu@ip-172-31-45-163:~$ rm -r sample2
ubuntu@ip-172-31-45-163:~$ ls
sample1
削除することができました!ディレクトリを削除するには1つ上のディレクトリに移動しておきましょう。
※注意点
rm -r ディレクトリ名でディレクトリは削除できますが、中身を確認せず削除します。ディレクトリに必要なディレクトリ・フォルダがあったとしても消せてしまうため、ディレクトリを削除する場合は気をつけましょう。
rmdir – 空のディレクトリを削除
空のディレクトリを削除するためだけのコマンドが rmdir になります。rmdir ディレクトリ名 でsample3を削除してみましょう!
ubuntu@ip-172-31-45-163:~$ rmdir sample1
rmdir: failed to remove 'sample1': Directory not empty
ubuntu@ip-172-31-45-163:~$ cd sample1
ubuntu@ip-172-31-45-163:~/sample1$ ls
cpTest.txt sample3 test.txt
ubuntu@ip-172-31-45-163:~/sample1$ rmdir sample3
ubuntu@ip-172-31-45-163:~/sample1$ ls
cpTest.txt test.txt
sample1を削除しようとしたところ、Directory not empty と怒られました。空のディレクトリだけしか削除できないことをしっかり覚えておきましょう!
find – ファイル検索
ファイルやディレクトリの検索ができる find について説明していきます!
※フォルダ構成を変更してみました。同じように上記で説明したコマンドを使用して下記のようなフォルダ構成にしてみてください
findの使い方は、find 検索する場所 検索ファイル名 です。
まずは、testディレクトリにどんなものがあるか検索してみます。
ubuntu@ip-172-31-45-163:~$ ls
test
ubuntu@ip-172-31-45-163:~$ find test
test
test/test1.txt
test/find-test1.txt
test/test0
test/find-test0
test/find-test2.txt
test/find-test0.txt
test/test2.txt
test/test0.txt
では、testディレクトリに移動してfind-test1.txtがあるか確認してみましょう。
ubuntu@ip-172-31-45-163:~/test$ find find-test1.txt
find-test1.txt
見つかりました。複数のディレクトリやファイルを検索するには、ワイルドカード(*)を使いましょう。
試しにtestとつく全てのファイルやディレクトリを * 検索してみます!
ubuntu@ip-172-31-45-163:~/test$ find test*
test0
test0.txt
test1.txt
test2.txt
ちゃんと検索できましたね。次はディレクトリ・フォルダの移動や名称変更について説明します。
mv – ファイル・ディレクトリの移動(名称変更)
まずはファイル・ディレクトリの移動について説明します。test0ディレクトリにファイルを(test0.txt~)を移動します。移動するには、mv [移動元(移動したいファイルorディレクトリ)] [移動先(ディレクトリ)] になります。
ubuntu@ip-172-31-45-163:~$ mv test0.txt test1.txt test2.txt test0/
ubuntu@ip-172-31-45-163:~$ ls
find-test0 find-test0.txt find-test1.txt find-test2.txt test0
ubuntu@ip-172-31-45-163:~$ cd test0
ubuntu@ip-172-31-45-163:~/test0$ ls
test0.txt test1.txt test2.txt
移動できました!これもfindと同じようにワイルドカード(*)を使った移動も可能です。test0に移動したファイルをtestディレクトリに戻してみます。test0ファイルは拡張子がtxtなので mv *.txt ../で移動させます。
ubuntu@ip-172-31-45-163:~/test0$ ls
test0.txt test1.txt test2.txt
ubuntu@ip-172-31-45-163:~/test0$ mv *.txt ../
ubuntu@ip-172-31-45-163:~/test0$ ls
ubuntu@ip-172-31-45-163:~/test0$ cd ../
ubuntu@ip-172-31-45-163:~$ ls
find-test0 find-test0.txt find-test1.txt find-test2.txt test0 test0.txt test1.txt test2.txt
最初の状態に戻りました!
今回は、ファイルを移動しましたがフォルダの移動もできるので、ぜひ試してみてください。
また、名称変更についてですが、mv [変更前の名称(ファイルorディレクトリ)] [変更後の名称(ファイルorディレクトリ)]で変更することができます。
test0ディレクトリの名称がわかりにくいのでtest_Folderに変更してみましょう!
ubuntu@ip-172-31-45-163:~$ ls
find-test0 find-test0.txt find-test1.txt find-test2.txt test0 test0.txt test1.txt test2.txt
ubuntu@ip-172-31-45-163:~$ mv test0 test_Folder
ubuntu@ip-172-31-45-163:~$ ls
find-test0 find-test0.txt find-test1.txt find-test2.txt test0.txt test1.txt test2.txt test_Folder
フォルダ名を変更することができました。
Linuxコマンドを使ってみよう(テキスト操作)
ディレクトリ・ファイル操作はざっくりとですが説明しました。次はテキスト操作について説明していきます!
cat – ファイルの中身を表示
cat はファイルの中身を表示してくれるコマンドです。
test.txtというファイルを用意しました。ファイルの中身は…
Hello
vi command!!
です。では中身を catコマンドでファイルの中身を見ていきましょう!
ubuntu@ip-172-31-45-163:~/test$ ls
test.txt
ubuntu@ip-172-31-45-163:~/test$ cat test.txt
Hello
vi command!!
ファイルの中身が確認できました。次はファイルのテキストをviコマンドで編集していきましょう!
vi(vim) – テキストエディタを起動
vi(vim)と書いていますが、viでもvimでもテキストエディタの起動が可能です。
※vimはviの上位互換でviを元に拡張されたバージョンです。
コマンド | 用途 | 説明 |
vi filename vim filename | テキストエディタの起動 | ファイルがない場合はファイルを作成し起動 |
i | モード変更(編集モード) | テキストが編集できるモード |
ESC | モード変更(ノーマルモード) | どのモードからでもノーマルモードに戻す |
: | モード変更(保存) | 保存できるモード |
:q! | 終了 | 編集結果を破棄して強制終了 |
:w | ファイル保存 | 編集結果を保存 |
:wq | ファイル保存終了 | 現在編集中の内容を元のファイルに書き込んで終了 |
test.txt の中身の編集をやってみましょう! vi(vim) ファイル名でテキストエディタを表示します。
ubuntu@ip-172-31-45-163:~/test$ ls
test.txt
ubuntu@ip-172-31-45-163:~/test$ vi test.txt
起動後に i を押すことで編集モード(INSERT)になります。
3行目にHoge Hoge … と入力し ESCで編集モードから抜けます。
編集内容を保存して終了するためには :wq を入力します。
編集が終了したので、編集内容が反映されているか確認してみましょう!ファイルの中身を確認する時は cat ファイル名 と説明しましたが、 今回はコマンドオプションまでつけて行番号まで確認します。
ubuntu@ip-172-31-45-163:~/test$ cat -n test.txt
1 Hello
2 vi command!!
3 Hoge Hoge ...
3行目に Hoge Hoge … が追加されていました。
grep – 指定したファイルに特定の文字検索
最後にファイル内の文字検索について説明します。ファイル内の文字を検索するには、grep 検索パターン ファイル名 です。
ubuntu@ip-172-31-45-163:~/test$ grep hoge test.txt
ubuntu@ip-172-31-45-163:~/test$ grep Hoge test.txt
Hoge Hoge ...
ubuntu@ip-172-31-45-163:~/test$ grep -i hoge test.txt
Hoge Hoge ...
ファイル内に hoge という文字があるか確認してみましたが、確認ができませんでした。完全一致なので、Hogeで検索したら文字が確認できました。大文字小文字を区別しないコマンドオプション -i をつけることで、hogeで検索してもHogeが確認できました。-i は便利なのでこのコマンドオプションもできるだけ覚えておきましょう!
Linuxの便利なショートカット
作業効率を上げるためにも、覚えておくと便利なLinuxのショートカットも一覧にしてみました。
Linuxのショートカット一覧
ショートカットキー | 説明 |
Tabキー | コマンドやパスの保管をする |
Ctrl+A | 行の先頭にカーソル移動 |
Ctrl+E | 行の最後にカーソル移動 |
Ctrl+F | 1文字右方向へ移動(矢印キー→と同じ) |
Ctrl+B | 1文字左方向へ移動(矢印キー←と同じ) |
Ctrl+H | カーソルの左を1文字削除する |
Ctrl+D | カーソル部分を1文字削除する |
Ctrl+W | カーソル位置の単語を削除 |
Ctrl+U | カーソルの位置から行頭まで削除 |
Ctrl+K | カーソルの位置から行末まで削除 |
Ctrl+Y | 直前に削除した文字列を貼り付け |
Ctrl+C | 実行中のコマンドを強制終了 |
Ctrl+L | 画面をクリアにする |
↑, ↓, Ctrl+R | コマンド履歴の参照 |
まとめ
いかがでしたか?今回紹介した、ディレクトリ・ファイル操作・テキスト操作を覚えれば、脱初心者できたと言っても過言ではない!と思っています。ここで紹介していないコマンドもたくさんあるので、興味のある方はぜひ調べてみてください。
コメント