09-Linux & Virtual Box

Virtual Box & Linux(Part.4)| Linuxの概要と基本コマンド(ディレクトリ操作)| 現役エンジニア&プログラミングスクール講師

目標

「Linux」の概要について理解する。
「Linux」OSの基本操作(ディレクトリ操作)について理解して行える。

Linux の概要

Linux の概要

Linux とは

Linux はオペレーティングシステム

Linuxはオペレーティングシステムのひとつです。オペレーティングシステムはOSと略されます。有名なOSには「Windows」や「MacOS」があります。

OSは何をするものなのか

OSは次のようなお仕事をしてくれます。

  1. ハードディスクを抽象化します。…アーキテクチャの違いを感じさせずにPCを利用できます。CPUの種類や基盤に違いによって操作が変わるといったことがありません。
  2. リソースを管理します。…メモリやプロセッサタイムを効率的に利用できるように資源の取り合いを制御してくれます。ユーザーからのアクセスに対して、優先度によるスケジューリングを行ってくれます。
  3. 操作支援…ユーザーがコンピュータを容易に便利に利用できるよう組み立てられています。
Linuxを利用して「Windows」や「Mac」と同様な処理が可能

「Linux」もOSの一種なので「Windows」や「Mac」と行える操作や処理は同じです。但し、一般的な用途の違いは「Linux」はサーバーや組み込み機器などのOSとしてとして利用されることが多いことがあげられます。

OSはグラフィカルな操作を行うとき、その操作の処理のための多くのパッケージ(プログラムなど)が必要になります。このためOS自体の容量が大きくなります。

同じ操作を行うにしてもグラフィカルな部分を利用しない場合、(ソフトウェアの設定ファイルを編集するなどコマンド操作のみ行える場合)グラフィカルな処理が必要ないためパッケージも必要なくなり、OSの構成は軽くなります。

このことから必要以上の資源を持つ必要がないため、コストを抑えたコンピュータを利用してサービスを提供できます。(安くサーバーを構築できます。)このことから「Linux」はサーバー構築で多く利用されています。

「Linux」を含め「Windows」や「Mac」などの OS を人が利用する目的

OSを利用するということは、それはコンピュータを利用することだと言えます。コンピュータ(PC)は普段どの様な用途で利用しているかを考えると、その大半が「資料の作成(ファイルの作成・編集)」というのが一般的な回答だと思います。

資料作成の例:議事録の作成、売上表の作成、従業員データベースの作成など

人はコンピュータを利用してファイルの作成や編集、メールの送受信、ネット検索などを行っています。ここではその中で最も重要な「ディレクトリの操作(今回の記事)」「ファイルの操作(次の記事)」を扱っていきたいと思います。

Linux OS の基本操作

Linux OS の「ディレクトリの操作」と「ファイルの操作」の概要

OSの代表的な基本操作としては、「ディレクトリの操作」や「ファイルの操作」があげられます。Linuxの「コマンド」の学習として、この記事では、「ディレクトリの操作(今回の記事)」と「ファイルの操作(次の記事)」から始めたいと思います。

「フォルダ(ディレクトリ)の操作(移動や作成・削除)」は、Windowsでは「エクスプローラー」、Macでは「Finder」を利用して行います。

ディレクトリに関するキーワード

ディレクトリ…「ファイル」をまとめる「ファイル」のことで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:オプションのことです。
コマンドの参考資料はこちら

中身が空でないディレクトリの削除はrmdirコマンドでは行えません。再帰的に中身も併せて削除する場合はファイルの削除を行う「rmコマンド」を利用します。(ディレクトリも特別なファイルなのでファイルに対してのコマンドが利用できます。)

ディレクトリの実際の操作

ここからは実際の操作を行ってみたいと思います。まず、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 ←カレントディレクトリを表示します。

今は「rocky001ディレクトリを操作中」という意味です。一般ユーザーにはそれぞれ自分専用のディレクトリが準備されています。それは、homeディレクトリ内に準備され、ユーザー名が付けられています。

③lsコマンド…指定したディレクトリ内のディレクトリやファイルを確認するコマンドです。

続けて「lsコマンド」を入力します。

[rocky001@rockylinux001 ~]$ ls
←何も表示されません。

何も表示されないということは通常のディレクトリやファイルが存在しないことを意味しています。続けてオプションにの「-a」をつけて入力してみます。「-a」は隠しファイルを表示するオプションです。

[rocky001@rockylinux001 ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .zshrc

「.」が付いたディレクトリやファイルが表示されます。「.」が付いたディレクトリやファイルは隠しファイルといって普段は表示されないファイルとなっています。Windowsにも「隠しファイル」があります。Windowsの隠しファイルについては次を参考にしてください。

VBScript、Windows10のエクスプローラーの学習とタスクスケジューラを使った自動化ツールの作成(4)| 現役エンジニア&プログラミングスクール講師VBScript、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」はファイルの種類を確認できるオプションです。記号には次のものがあります。

  1. /…ディレクトリを意味します。
  2. *…実行ファイルを意味します。
  3. @…シンボリックリンクを意味します。

[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コマンド」に続けて「ディレクトリ」を指定します。ディレクトリ部分には

  1. 「ひとつ上に戻る指定をする方法」
  2. 「ディレクトリを指定せずに自分のホームディレクトリに戻る方法」
  3. 「サブディレクトリ以下を指定する方法」
  4. 「ルートディレクトリからのフルパスを指定する方法」

があります。

clearコマンド

cdコマンドを入力する前に画面がいっぱいで見づらくなった場合には「clearコマンド」を入力して画面をまっさらな状態の戻します。

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ディレクトリを確認できます。

ユーザーはLinuxにログインした直後はルートディレクトリをカレントディレクトリとして開いてはいません。ログイン直後はルートディレクトリのサブディレクトリにある「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 ~]$

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
09-Linux & Virtual Box

Virtual Box & Linux(Part.14)| Linux ユーザー管理(2)| 現役エンジニア&プログラミングスクール講師

2023年5月2日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.23)| Linux USBメモリ内でのパーティショ作成とファイルシステム作成 | 現役エンジニア&プログラミングスクール講師

2023年5月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.19)| Linux プロセスの管理(1)| 現役エンジニア&プログラミングスクール講師

2023年5月17日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.20)| Linux プロセスの管理(2)| 現役エンジニア&プログラミングスクール講師

2023年5月20日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.8)| Linux viエディタの利用方法(3)| 現役エンジニア&プログラミングスクール講師

2023年4月26日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.3)| Linux管理ツール「Cockpit」の有効化 | 現役エンジニア&プログラミングスクール講師

2023年4月21日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site