目標
「Linux」の概要について理解する。
「Linux」OSの基本操作(ディレクトリ操作)について理解して行える。
Linux の概要
Linux の概要
Linux とは
Linux はオペレーティングシステム
Linuxはオペレーティングシステムのひとつです。オペレーティングシステムはOSと略されます。有名なOSには「Windows」や「MacOS」があります。
OSは何をするものなのか
OSは次のようなお仕事をしてくれます。
- ハードディスクを抽象化します。…アーキテクチャの違いを感じさせずにPCを利用できます。CPUの種類や基盤に違いによって操作が変わるといったことがありません。
- リソースを管理します。…メモリやプロセッサタイムを効率的に利用できるように資源の取り合いを制御してくれます。ユーザーからのアクセスに対して、優先度によるスケジューリングを行ってくれます。
- 操作支援…ユーザーがコンピュータを容易に便利に利用できるよう組み立てられています。
Linuxを利用して「Windows」や「Mac」と同様な処理が可能
「Linux」もOSの一種なので「Windows」や「Mac」と行える操作や処理は同じです。但し、一般的な用途の違いは「Linux」はサーバーや組み込み機器などのOSとしてとして利用されることが多いことがあげられます。
「Linux」を含め「Windows」や「Mac」などの OS を人が利用する目的
OSを利用するということは、それはコンピュータを利用することだと言えます。コンピュータ(PC)は普段どの様な用途で利用しているかを考えると、その大半が「資料の作成(ファイルの作成・編集)」というのが一般的な回答だと思います。
人はコンピュータを利用してファイルの作成や編集、メールの送受信、ネット検索などを行っています。ここではその中で最も重要な「ディレクトリの操作(今回の記事)」「ファイルの操作(次の記事)」を扱っていきたいと思います。
Linux OS の基本操作
Linux OS の「ディレクトリの操作」と「ファイルの操作」の概要
OSの代表的な基本操作としては、「ディレクトリの操作」や「ファイルの操作」があげられます。Linuxの「コマンド」の学習として、この記事では、「ディレクトリの操作(今回の記事)」と「ファイルの操作(次の記事)」から始めたいと思います。
ディレクトリに関するキーワード
ディレクトリ…「ファイル」をまとめる「ファイル」のことでWindowsでは「フォルダ」と呼んだりします。「ファイル」をまとめる「ファイル」という表現ですが、ディレクトリは文書を書くなどはしませんが、ファイルをまとめておくことのできる「特別なファイル」となります。
ルートディレクトリ…PC内のディレクトリは木の構造をもっています。(ファイルシステムが木構造として扱っている)その中ですべてを含んでいるディレクトリ(先頭のディレクトリ)をルートディレクトリと呼びます。
サブディレクトリ…あるディレクトリの内部にあるディレクトリのことをサブディレクトリと呼びます。
カレントディレクトリ…ユーザーが開いている(操作中の)ディレクトリをカレントディレクトリと呼びます。
ホームディレクトリ…ユーザーがログインした時にワーキングディレクトリ(カレントディレクトリ)とするディレクトリです。
あLinux OS の基本コマンドと操作(ディレクトリ操作)
Linux OS の基本コマンド(ディレクトリ操作)
OSの基本操作としてまずは「ディレクトリの操作」を行ってみようと思います。Windowsでは「エクスプローラー」、Macでは「Finder」を利用してフォルダの行き来をしたり、開いているフォルダ(ディレクトリ)の位置を把握したする操作と同じものとなります。
treeコマンド
ディレクトリの階層構造を表示するコマンドです。
文法:
tree [省略できるOP][(OPによって)階層の数の指定][ディレクトの指定]
※OP:オプションのことです。
コマンド参考資料はこちら
pwdコマンド
操作中のディレクトリ(カレントディレクトリ)を表示するコマンドです。
文法:
pwd [省略できるOP]
※OP:オプションのことです。
コマンドの参考資料はこちら
lsコマンド
指定したディレクトリ内のディレクトリやファイルを確認するコマンドです。
文法:
ls [省略できるOP][ディレクトの指定(省略可能)]
※OP:オプションのことです。
コマンドの参考資料はこちら
cdコマンド
カレントディレクトリを変更(移動)するコマンドです。
文法:
cd [省略できるOP][ディレクトの指定(省略可能)]
※OP:オプションのことです。
コマンドの参考資料はこちら
mkdirコマンド
新規のディレクトリを作成するコマンドです。
文法:
mkdir [省略できるOP][ディレクトの指定]
※OP:オプションのことです。
コマンドの参考資料はこちら
rmdirコマンド
ディレクトリを削除するコマンドです。
文法:
rmdir [省略できるOP][ディレクトの指定]
※OP:オプションのことです。
コマンドの参考資料はこちら
ディレクトリの実際の操作
ここからは実際の操作を行ってみたいと思います。まず、Virtual Boxの仮想マシンを立ち上げてから、ブラウザでCockpitにアクセスします。Cockpitの端末を立ち上げたら次の操作を行います。
①treeコマンド…ディレクトリの階層構造を表示するコマンドです。
[ユーザー名@ホスト名 ~]$ su –
password: ←パスワードを入力します。
[root@ホスト名]# dnf install tree (treeコマンドをインストールします。)
※treeコマンドはRocky Linux では既にインストールされている内容が表示されます。
[root@ホスト名]# tree -L 1 /
上のコマンドは次のことを意味しています。
→ treeコマンド
→ オプションに「-L」(表示ディレクトの深さを指定できます。)
→ 階層の深さに「1」(サブディレクトリのみ指定します。)
※「2」とするとサブディレクトリのサブディレクトリまで表示
→ ディレクトリに「/」(ルートディレクトリを指定しています。)
次は実際の操作と表示結果です。
スーパーユーザーから抜けて一般ユーザーに戻ります。
[root@ホスト名]# exit
一般ユーザーに戻ったらその他のコマンドの練習をしてみます。
pwdコマンド、lsコマンド、cdコマンド、mkdirコマンド、rmdirコマンド
②pwdコマンド…操作中のディレクトリ(カレントディレクトリ)を表示するコマンドです。
[rocky001@rockylinux001 ~]$ pwd
/home/rocky001 ←カレントディレクトリを表示します。
③lsコマンド…指定したディレクトリ内のディレクトリやファイルを確認するコマンドです。
続けて「lsコマンド」を入力します。
[rocky001@rockylinux001 ~]$ ls
←何も表示されません。
何も表示されないということは通常のディレクトリやファイルが存在しないことを意味しています。続けてオプションにの「-a」をつけて入力してみます。「-a」は隠しファイルを表示するオプションです。
[rocky001@rockylinux001 ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .zshrc
「.」が付いたディレクトリやファイルが表示されます。「.」が付いたディレクトリやファイルは隠しファイルといって普段は表示されないファイルとなっています。Windowsにも「隠しファイル」があります。Windowsの隠しファイルについては次を参考にしてください。
次は「-i」を付けてみます。「-i」はディレクトリやファイルの「内部番号(i-node)」を併せて表示します。内部番号はOSがファイルを管理するための番号でユーザーが操作に利用することはありません。
[rocky001@rockylinux001 ~]$ ls -ai
51426332 . 143 .. 51426354 .bash_history 51426333 .bash_logout 51426334 .bash_profile 51426335 .bashrc 51426336 .zshrc
次は「-l」を付けてみます。「-l」はディレクトリやファイルの「操作権限」や「更新日時」などの詳細を表示します。下のふたつのコマンドはオプションの順番を変更したものです。オプションは順番を変更しても動作に変化はありません。
[rocky001@rockylinux001 ~]$ ls -la ←laの順番
total 20
drwx——. 2 rocky001 rocky001 97 Apr 21 13:19 .
drwxr-xr-x. 3 root root 22 Apr 21 12:16 ..
-rw——-. 1 rocky001 rocky001 28 Apr 21 15:58 .bash_history
-rw-r–r–. 1 rocky001 rocky001 18 Nov 2 01:47 .bash_logout
-rw-r–r–. 1 rocky001 rocky001 141 Nov 2 01:47 .bash_profile
-rw-r–r–. 1 rocky001 rocky001 492 Nov 2 01:47 .bashrc
-rw-r–r–. 1 rocky001 rocky001 658 May 15 2022 .zshrc
[rocky001@rockylinux001 ~]$ ls -al ←alの順番
total 20
drwx——. 2 rocky001 rocky001 97 Apr 21 13:19 .
drwxr-xr-x. 3 root root 22 Apr 21 12:16 ..
-rw——-. 1 rocky001 rocky001 28 Apr 21 15:58 .bash_history
-rw-r–r–. 1 rocky001 rocky001 18 Nov 2 01:47 .bash_logout
-rw-r–r–. 1 rocky001 rocky001 141 Nov 2 01:47 .bash_profile
-rw-r–r–. 1 rocky001 rocky001 492 Nov 2 01:47 .bashrc
-rw-r–r–. 1 rocky001 rocky001 658 May 15 2022 .zshrc
lsコマンドはカレントディレクトリだけでなく別のディレクトリを指定して実行することもできます。下のコマンドは/usr/binディレクトリの中身を確認しています。
オプション「F」はファイルの種類を確認できるオプションです。記号には次のものがあります。
- /…ディレクトリを意味します。
- *…実行ファイルを意味します。
- @…シンボリックリンクを意味します。
[rocky001@rockylinux001 ~]$ ls -F /usr/bin
‘[‘* git-shell* osinfo-query* systemd-cryptenroll*
a2x@ git-upload-archive@ p11-kit* systemd-delta*
a2x.py* git-upload-pack@ pacat* systemd-detect-virt*
ac* gitdiff* pack200@ systemd-dissect*
④cdコマンド…カレントディレクトリを変更(移動)するコマンドです。
移動には「cdコマンド」に続けて「ディレクトリ」を指定します。ディレクトリ部分には
- 「ひとつ上に戻る指定をする方法」
- 「ディレクトリを指定せずに自分のホームディレクトリに戻る方法」
- 「サブディレクトリ以下を指定する方法」
- 「ルートディレクトリからのフルパスを指定する方法」
があります。
clearコマンドを入力すると画面が次のようにまっさらになります。
「ひとつ上に戻る指定をする方法」
ディレクトリをひとつ上の階層に移動するときは「../」を入力します。(cdコマンドと../の間は半角スペースがあります。)
[rocky001@rockylinux001 ~]$ cd ../
[rocky001@rockylinux001 home]$ pwd(現在のカレントディレクトリを確認)
/home ←カレントディレクトリは/homeです。
[rocky001@rockylinux001 home]$ ls(サブディレクトリの確認)
rocky001 ←rocky001ディレクトリを確認できます。
[rocky001@rockylinux001 home]$ cd ../
[rocky001@rockylinux001 /]$ pwd(現在のカレントディレクトリを確認)
/ ←カレントディレクトリは/(ルート)です。
[rocky001@rockylinux001 /]$ ls(サブディレクトリの確認)
afs bin boot dev etc home lib lib64 …←homeディレクトリを確認できます。
「ディレクトリを指定せずに自分のホームディレクトリに戻る方法」
自分のホームディレクトリに戻る場合はディレクトリを指定せずに「cd」のみ入力します。
[rocky001@rockylinux001 /]$ cd
[rocky001@rockylinux001 ~]$ pwd(現在のカレントディレクトリを確認)
/home/rocky001 ←rocky001ディレクトリがカレントディレクトリであることが確認できます。
「サブディレクトリ以下を指定する方法」
サブディレクトリを指定するとカレントディレクトリをサブディレクトリに変更することができます。
[rocky001@rockylinux001 ~]$ cd ../(ひとつ上の階層へ移動)
[rocky001@rockylinux001 home]$ pwd(現在のカレントディレクトリを確認)
/home
[rocky001@rockylinux001 home]$ cd rocky001/(サブディレクトリを指定)
[rocky001@rockylinux001 ~]$ pwd
/home/rocky001 ←カレントディレクトリをサブディレクトリに移動したのが確認できます。
「ルートディレクトリからのフルパスを指定する方法」
[rocky001@rockylinux001 ~]$ cd /usr/bin
[rocky001@rockylinux001 bin]$ pwd
/usr/bin ←カレントディレクトリが/usr/binに移動したのが確認できます。
⑤mkdirコマンド…新規のディレクトリを作成するコマンドです。
mkdirコマンドを利用するとカレントディレクトリとしているディレクトリに新しいディレクトリを作成することができます。
作業の前にホームディレクトリをカレントディレクトリに切り替えておきます。
[rocky001@rockylinux001 bin]$ cd
[rocky001@rockylinux001 ~]$
カレントディレクトリに「sample1ディレクトリ」を作成してみます。
[rocky001@rockylinux001 ~]$ mkdir sample1
[rocky001@rockylinux001 ~]$ ls(カレントディレクトリの中身を確認)
sample1 ←sample1ディレクトリが作成されています。
続けてサブディレクトリにサブディレクトリを指定して作成してみます。サブディレクトリにサブディレクトリを指定する場合はオプション「p」が必要になります。オプションを付けないと作成はできません。
[rocky001@rockylinux001 ~]$ mkdir sample2/sample2_1(オプションなし)
mkdir: cannot create directory ‘sample2/sample2_1’: No such file or directory
↑サブディレクトリが存在しないのでサブディレクトリ内にサブディレクトリを指定して作成できないメッセージが表示されます。
続けて「p」オプションを付けて実行してみます。
[rocky001@rockylinux001 ~]$ mkdir -p sample2/sample2_1(オプションあり)
[rocky001@rockylinux001 ~]$ ls
sample1 sample2
↑sample2が作成されています。
[rocky001@rockylinux001 ~]$ ls sample2
sample2_1
↑sample2の中にsample2_1も作成されています。
今度はパーミッション(権限)を同時に付与しながら作成してみます。(パーミッションについては別の記事で紹介)パーミッションはオプション「m」をつけて付与することができます。下は「sample3ディレクトリ」に755のパーミッションを付けて作成しています。
[rocky001@rockylinux001 ~]$ mkdir -m 755 sample3
[rocky001@rockylinux001 ~]$ ls -l(lsコマンドにオプション「l」を付けて詳細情報を表示します。)
total 0
drwxrwxr-x. 2 rocky001 rocky001 6 Apr 23 12:01 sample1
drwxrwxr-x. 3 rocky001 rocky001 23 Apr 23 12:02 sample2
drwxr-xr-x. 2 rocky001 rocky001 6 Apr 23 12:03 sample3
↑通常に作成したディレクトリと権限が違うことが確認できます。
⑥rmdirコマンド…ディレクトリを削除するコマンドです。
rmdirコマンドを利用するとカレントディレクトリを削除することができます。オプション「p」を利用すると親ディレクトリを同時に削除することも可能です。
[rocky001@rockylinux001 ~]$ ls(カレントディレクトリの中身を確認)
sample1 sample2 sample3
[rocky001@rockylinux001 ~]$ rmdir sample1(sample1ディレクトリを削除)
[rocky001@rockylinux001 ~]$ ls(カレントディレクトリの中身を確認)
sample2 sample3 ←sample1ディレクトリが削除されています。
[rocky001@rockylinux001 ~]$ rmdir sample2(sample2ディレクトリを削除)
rmdir: failed to remove ‘sample2’: Directory not empty
↑sample2には中身があるので削除できないメッセージが表示されます。
続けてオプション「p」を付けて実行してみます。「p」を付けると指定したディレクトリの親ディレクトリを含めて削除を行います。
[rocky001@rockylinux001 ~]$ rmdir -p sample2/sample2_1/
[rocky001@rockylinux001 ~]$ ls
sample3 ←sample2ディレクトリが削除されています。
sample3ディレクトリも削除をしておきます。
[rocky001@rockylinux001 ~]$ rmdir sample3
[rocky001@rockylinux001 ~]$
今回は以上になります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。