黒い画面でファイル操作をしましょう。
Windowsではエクスプローラーがあって、Linuxのどのディストリビューションでも何かしらのファイル操作ツール(「ファイラー」とか呼ばれています)があって、ファイルの作成・コピー・削除・移動の作業は GUIでやってきたと思います。
それを GUIのない黒い画面でどうやるかのお話です。
Linuxには以下のコマンドがありますので、それを使います。
touch | 0バイトのファイル作成 |
mv | ファイルの移動・ファイル名の変更 |
rm | ファイル削除 |
mkdir | ディレクトリ作成 |
rmdir | ディレクトリ削除 |
1つずつやってみます。
環境は Lubuntu Server 22.04.3ですが、他の Linuxでも同じでしょう。
ちょっとその前に treeコマンドがインストールされていると便利なのでご紹介します。
Linuxのファイルとディレクトリが、木構造で管理されているのは Windowsと同じなので皆さんご存知と思います。
treeコマンドは、それを文字で綺麗に表示してくれます。
確か Ubuntuのデフォルトインストールでは入っていなかったと思うので、入れておくと良いでしょう。
snap/aptともにパッケージがありましたが、2023年10月15日時点では、aptの方が若干バージョンが高いので、aptのパッケージにしました。
subro@UubuntuServer2204-1:~$ sudo apt install -y tree
特筆することもなく普通にインストールできました。
実際に実行してみるとこんな感じです。
subro@UubuntuServer2204-1:~$ tree
.
├── jdk-21_linux-x64_bin.deb
├── selenium-server-4.13.0.jar
├── snap
│ └── firefox
│ ├── 3206
│ │ ├── ダウンロード
│ │ ├── テンプレート
│ │ ├── デスクトップ
│ │ ├── ドキュメント
│ │ ├── ビデオ
│ │ ├── ピクチャ
│ │ ├── ミュージック
│ │ └── 公開
│ ├── common
│ └── current -> 3206
└── tmp
14 directories, 2 files
デフォルト動作(オプションなし)では、ファイルはカレントディレクトリのものだけ(但しファイル名が [.] で始まるものは除く)を、サブディレクトリは全部を表示って動作になっているようです。
[-a]オプションをつけてやると、サブディレクトリの全ファイル表示になりますが、すごい行数になってしまうのでここでは割愛しますが、自分の環境では是非やってみて下さい。
mkdirコマンドで [work]サブディレクトリを作ります。
subro@UubuntuServer2204-1:~$ mkdir work
subro@UubuntuServer2204-1:~$ tree
.
├── jdk-21_linux-x64_bin.deb
├── selenium-server-4.13.0.jar
├── snap
│ └── firefox
│ ├── 3206
│ │ ├── ダウンロード
│ │ ├── テンプレート
│ │ ├── デスクトップ
│ │ ├── ドキュメント
│ │ ├── ビデオ
│ │ ├── ピクチャ
│ │ ├── ミュージック
│ │ └── 公開
│ ├── common
│ └── current -> 3206
├── tmp
└── work
できました。
以降の作業のため、カレントディレクトリ(ワーキングディレクトリ)を [work]ディレクトリにします。
作業場所を移動するというイメージですね。
subro@UubuntuServer2204-1:~$ cd work
subro@UubuntuServer2204-1:~/work$
移りました。
touchコマンドで 0バイトのファイルを作ります。
でも「0バイトのファイルを作る」という作業自体は余り発生はしませんね。
何か新規ファイルを作るシチュエーションでは、他のツールからのアウトプットであることがほとんどだからです。
subro@UubuntuServer2204-1:~/work$ touch aaa.txt
subro@UubuntuServer2204-1:~/work$ ls -l
合計 0
-rw-rw-r-- 1 subro subro 0 10月 15 09:23 aaa.txt
できました。
①ファイル有無のチェック
②ファイルが 0バイトかのチェック
シェルスクリプトにはこの 2つのチェック機能があるので、テストデータ(ファイル)を作るのに使えるんですね。
mvコマンドで [aaa.txt]ファイルを [bbb.txt]ファイルにリネームします。
subro@UubuntuServer2204-1:~/work$ mv aaa.txt bbb.txt
subro@UubuntuServer2204-1:~/work$ ls -l
合計 0
-rw-rw-r-- 1 subro subro 0 10月 15 09:23 bbb.txt
リネームできました。
ファイルの移動のテストをするため、[test]サブディレクトリを作りました。
subro@UubuntuServer2204-1:~/work$ mkdir test
subro@UubuntuServer2204-1:~/work$ tree
.
├── bbb.txt
└── test
1 directory, 1 file
mvコマンドで [bbb.txt]ファイルを [test]ディレクトリの下に移動します。
コピー先の指定に相対パスを使っています。
subro@UubuntuServer2204-1:~/work$ mv bbb.txt ./test
subro@UubuntuServer2204-1:~/work$ tree
.
└── test
└── bbb.txt
1 directory, 1 file
移動できました。
rmコマンドで [bbb.txt]ファイルを削除します。
削除対象ファイル名の指定に相対パスを使っています。
subro@UubuntuServer2204-1:~/work$ rm ./test/bbb.txt
subro@UubuntuServer2204-1:~/work$ tree
.
└── test
1 directory, 0 files
削除できました。
rmdirコマンドで [test]ディレクトリを削除します。
削除対象ディレクトリ名の指定に相対パスを使っています。
subro@UubuntuServer2204-1:~/work$ rmdir ./test
subro@UubuntuServer2204-1:~/work$ tree
.
0 directories, 0 files
削除できました。
これで上で挙げたコマンドを一通り使ってみました。
==========
「GUIのファイラーに比べてなんて手間がかかるのか」って思いますよね。
だけど、そう思うのは最初だけです。
片手で数えるくらいの数を操作しているだけなら GUIの方が分かりやすくて楽なんですが、サーバー運用業務となると 1,000個とか普通にありますから GUIじゃやっれおれません。
逆に「何で黒い画面のコマンドだとやっておれるのか?」と言えば、コマンドでは「正規表現」と呼ばれる強力で強烈な機能を使えるからです。
正規表現についてはそれだけでオライリーの本が 1冊出てしまう程のものですし、とてもこのホームページで説明し切れるものではありません。
正規表現を扱っている特定サイトへのリンクは貼りませんけど、検索しれみればいくらでも出てくるはずです。
非常に乱暴に例を挙げますと、ワイルドカードと呼ばれている「*」(1文字以上の文字列)という書き方なんかはその一部です。
書籍は一杯出ていますので、UNIX/Linuxを使う人は 1冊は手元に置いておきたいものです。
そんなに変わるものではないのですが、まぁ新し目のものを入手しておくのが良いでしょう