はじめに
Linuxはカーネルやシステムの動作設定含め、全てがファイルとして表現されている。
このためLinuxでは、ファイルを整理する入れ物であるディレクトリが用意されている。
Linuxのディレクトリ構造
・パス
各ディレクトリを/で区切り「/user/bin/perl」のように、あるファイルへの道筋を示すもの。
・カレントディレクトリ
現在位置しているディレクトリのこと。
pwdコマンドで確認することができる。
○/
ルートディレクトリ。
Linuxはこれを頂点とした階層構造になっている。
○/bin
ユーザーが利用するコマンドの実行ファイルを置くためのもの。
Linuxの動作に最低限必要な重要なコマンドを格納している。
○/dev
デバイスファイルを格納しているもの。
デバイスファイルとはディスクやキーボードなどのハードウェアを、ファイルとして扱えるように用意されたもの。
○/etc
設定ファイルを置くためのもの。
Linux自体やアプリケーションの設定には用意された設定ファイルを使用するため、それらが格納される。
○/home
ユーザー毎に割り当てられる、ホームディレクトリが配置されるもの。
○/sbin
/binと似ていて、実行ファイルを置くためのもの。
こちらは管理者ユーザー向けのコマンドが格納されている。
○/tmp
一時的なファイル(テンポラリファイル)を置くためのもの。
作業途中の結果などを保存する際にここに作成される。
○/user
各種アプリケーションと、それに付随するファイルを置くためのもの。
○/var
変化する(variable)データを置くためのもの。
アプリケーションを動作する上で作成されたデータやログ、電子メールなどが格納される。
絶対パスと相対パス
・絶対パス
ルートディレクトリを起点としてパスを示すこと。
・相対パス
カレントディレクトリを起点としてパスを示すこと。
○「.」
はカレントディレクトリを示す。
cd ./file-1 #同義
cd /home/hile-1 #同義
○「..」
は親ディレクトリを示す。
cd .. #一つ上のディレクトリへ
cd ../.. #二つ上のディレクトリへ
ディレクトリの移動
カレントディレクトリを移動するには、cdコマンドを使う。
後ろに指定したディレクトリ**(コマンドライン引数)**に移動する。
cd -p /user/local
# オプション #コマンドライン引数
○引数を付けずにcdコマンドを実行すると、ホームディレクトリへ移動する。
○チルダ展開
~(チルダ)はホームディレクトリへのパスに置き換えられる。
これを利用すると、ホームディレクトリ配下へのディレクトリの移動が楽にできる。
cd ~/report
# home/kogetsu/report
lsコマンド
lsコマンドはファイルやディレクトリを一覧表示するもの。
○パス名展開
ファイル名の一部を指定し、複数のファイルを指定する機能。
・「*」
任意の文字列で指定。拡張子で指定するときにも使用する。
% ls ba*
base64 basename bash
・「?」
任意の一文字だけ指定。ba??なら「baではじまり4文字のもの」を指定する。
% ls ba??
bash
○オプション指定
・-lオプション
ファイル属性などの詳細情報を表示する。
% ls -l
drwx------@ 3 kogetsu staff 96 6 12 16:02 Applications
・-aオプション
隠しファイルを含め、全てのファイルを表示する。
% ls -a
. .DS_Store .docker .vscode .zshrc Documents Movies Public
.. .Trash .gem .zsh_history Applications Downloads Music VirtualBox VMs
・-Fオプション
後ろにファイルの種類を表す記号を表示する。
「/」ディレクトリ
「*」実行可能ファイル
「@」シンボリックファイル
% ls -F
bin@ dev/ home/ lib64@