Linux ではすべてがファイル

Linuxでは、すべてがファイルとして表されます。

どんなファイル構成になっているのか確認してみます。

端末を開きます。(Ctrl+Alt+Tのショートカットキー※で開く。GNOME 端末が開く。)

※このショートカットキーについては、Lubuntuでは ~/.config/openbox/lubuntu-rc.xml

に設定されています。

cd / と入力します。(cdと/の間にはスペースを入れる。) Enterキー押下。

#########補足###################
<cd コマンド (change directryの略)> カレントディレクトリ(=ユーザーが現在位置しているディレクトリ(=フォルダ))を変更するコマンド。
cd  ディレクトリ
でディレクトリに移動します。
パラメータなしで単にcdと実行すると、ホームディレクトリ
(/home/ユーザー名)に移動します。
#########補足終わり################

すると以下のように

user@Dimension-2400C:~$ cd /
user@Dimension-2400C:/$

~$ のところが /$ に変わります。
この~(チルダ)がホームディレクトリ(/home/ユーザー名)を指しています。
そして、 / がルートディレクトリ(すべてのディレクトリ・ファイルがこの下にある) を表しています。

ちなみに、user@Dimension-2400C:/$ をプロンプトといいます。

ユーザー名@ホスト名:カレントディレクトリのパス名$

という形式になっています。

では、user@Dimension-2400C:/$の状態で ls コマンド(ファイルやディレクトリの一覧を表示)を打ってみます。

ルートファイル

以上のような実行結果が出ます。ファイルが色分けされているのがわかります。

色と意味は

表示 意味
赤文字 リンク先が存在しないシンボリックリンク※0
赤背景/白文字 setuid※1がついた通常ファイル
黄背景/黒文字 setgid※2がついた通常ファイル
緑文字(ボールド) 実行可能な通常ファイル
修飾無し 通常ファイル
緑背景/黒文字 Sticky bit ※3が立ち、 Otherのライトアクセス※4が可能なディレクトリ
緑背景/青文字 Other のライトアクセスが可能なディレクトリ
青背景/白文字 Sticky bit が立っているディレクトリ
青文字(ボールド) ディレクトリ
シアン文字(ボールド) シンボリックリンク※0
黄文字 名前付きパイプ※6
マゼンタ文字(ボールド) UNIX ソケット※7
黄文字(ボールド) キャラクターデバイス ※8 ブロックデバイス※9

以上のような意味があります。


※0シンボリックリンク・・・ソフトリンク (Soft Link)は、コンピュータのディスク上で扱うファイルやディレクトリを、本来の位置にファイルを残しつつそれとは別の場所に置いたり別名を付けてアクセスする手段である。複製とは違い、実体がないこと、ソフトリンクで開いたファイルへの操作が実物のファイルにも反映されること、ファイルサイズが小さいのが特徴。実際には、各種OSによって名称も異なっており、それぞれ、Microsoft Windows – ショートカット、Mac OS – エイリアス、UNIX – シンボリックリンク、NTFSを搭載したWindows(Windows XP等) – ジャンクション、と呼ばれるものがこれに相当する。

※1setuidは、UNIXにおけるアクセス権を表すフラグの名称であり、ユーザーが実行ファイルを実行する際にその実行ファイルの所有者やグループの権限で実行できるようにする。set user ID の略。一般ユーザーが高い特権レベルでしか実行できないタスクを一時的に実行できるようにする仕組み。

※2setgidは、UNIXにおけるアクセス権を表すフラグの名称であり、ユーザーが実行ファイルを実行する際にその実行ファイルの所有者やグループの権限で実行できるようにする。set group ID の略。一般ユーザーが高い特権レベルでしか実行できないタスクを一時的に実行できるようにする仕組み。

※3Sticky bit・・・  Linuxカーネルは、ファイルについてのスティッキービットを無視する。

※4Otherのライトアクセス・・・Unix系システムのパーミッションは3つの「クラス」に分けて管理される。そのクラスとは「ユーザー; user」、「グループ; group」、「その他; others」である。Unix系システムでは、いずれのクラスにも以下の3種類のパーミッションが存在する。

  • 「リード; read」パーミッション:ファイルを読むことが許可される。ディレクトリの場合、ディレクトリ内に存在するファイルの一覧を読むことが許可される。
  • 「ライト; write」パーミッション:ファイルの変更が許可される。ディレクトリの場合、ツリーの構造変更(ファイルの新規作成、作成したファイルのパーミッション設定、ファイルの削除など)が許可される。
  • 「実行; execute」パーミッション:ファイルを実行することが許可される。このパーミッションはバイナリファイル以外でも設定でき、設定されたファイルは実行される(少なくとも要求されれば実行しようと試みる)。ディレクトリに設定されると、そのディレクトリに移動することができ、中のファイルにアクセスすることができる。

※6名前付きパイプ パイプ(pipe)、もしくはパイプライン (pipeline) とは、複数のプログラムの入出力をつなぐための仕組み(プロセス間通信)の一つである。名前付きパイプ(英: named pipe)は、UNIXおよびUnix系の通常のパイプを拡張したもの。通常のパイプは「無名」であり、使用しているプロセスが動作中のみ存在する。名前付きパイプは永続的で、プロセスが消滅しても存在し続けるので、使わなくなったら削除する必要がある。名前付きパイプはファイルのように扱うことができ、プロセス間通信 (IPC) を行うためにプロセスがオープンして使用する。

※7UNIX ソケット・・・UNIX系OSでは従来のファイル・インタフェースを拡張した,「ソケット」(socket)というインタフェースを通信に利用しています。ソケットは「受け口」とか「ろうそく差し」を意味する言葉です。その言葉の通り,ユーザー・プロセスは,お互いのソケットをネットワークを通して接続し,その口を通して通信を実現します

※8キャラクターデバイス・・・キャラクタデバイス(またはキャラクタスペシャルファイル)は、システムが一文字ずつデータを転送する機器に対応している。キャラクタデバイスは、テレタイプ端末、モデム、仮想コンソール、擬似端末などのようなバイトストリーム型機器を扱い、データのランダムアクセスはサポートしていないのが普通である。

※9ブロックデバイス・・・ブロックデバイス(またはブロックスペシャルファイル)は、ブロック形式でデータをやり取りする機器に対応している。ブロックデバイスは、ハードディスクドライブ/CD-ROMドライブ/メモリ領域などのアドレス指定可能な機器を扱う。


となっています。

<rootディレクトリのファイルの内容>
bin・・・基本的なコマンド。

dev・・・デバイスファイル。

initrd.img・・・Linuxの起動時に、RAMの中に一時的に作られるファイルシステムのイメージを収めたファイル。

lost+found・・・障害によって所属を失ったファイル。
opt・・・アプリのインストール先

root・・・rootユーザのホームディレクトリ

snap・・・Snapパッケージとは、CanonicalがUbuntu 16.04より新たに導入した、より安定してセキュアなパッケージシステム

tmp・・・一時ファイルが保存される

vmlinuz・・・内部にLinuxカーネル本体を包含する静的リンクされた実行ファイル

boot・・・Linuxカーネルなど、ブートローダー関連のファイルが配置される

etc・・・システムの設定ファイルが配置される

media・・・リムーバブルメディアのアマウントポイント

proc・・・プロセスに関する情報にアクセスするための仮想ファイル

run・・・起動中のプロセスのPIDが保存される。シンボリックリンクが貼られている

srv・・・HTTP、FTPなどのサービス用のデータが入っているディレクトリ

usr ・・・X Window Systemなどの多くのブログラムがサブディレクトリに格納されている

vmlinuz.old・・・vmlinuxとは、内部にLinuxカーネル本体を包含する静的リンクされた実行ファイルである。

cdrom・・・(CD-ROM?)

home・・・各ユーザー専用のフォルダ

lib・・・システムを起動するのに必要なドライバモジュールやライブラリファイル用のディレクトリ

mnt・・・NautilusなどのGUIアプリケーションが、  HDDやCD-ROMなどのストレージをマウントするのに使用するフォルダー

puppy・・・(私が、puppy Linux をブート起動した時にできた)

sbin・・・システム管理に用いる基本的なモジュール

sys・・・ドライバに関する情報にアクセスするための仮想ファイル

var・・・ログやバイナリパッケージのバージョン情報など、可変データ


<lsコマンド(list segmentsの略)について>

非常に有用なコマンドなので

詳しくはlsコマンドの使い方と覚えたい15のオプションを参照してください。


ところで、上記の ls コマンドのオプション使い方などについては、

man コマンドで調べることができます。

$ man ls で

man_ls

上記のように表示されます。

最初の NAME はその名の通り 名前とコマンドの簡単な説明
ここでは、 ls 「ディレクトリの内容をリストアップする」 になっている。
次の SYNOPSIS は概要

次の DESCRIPTIONは 説明書き
ここでは、「FILE(デフォルトでは現在のディレクトリ)に関する情報を表示します。
-cftuvSUXも–sortも指定されていない場合は、エントリをアルファベット順にソートします。ロングオプションに対する必須の引数は、ショートオプションにも必須です。」 とあります。

以下にはオプションがいっぱい書かれています(全部読んでいられない)。

また、最低限の英語を読めないと難しい。私は、英語は得意でないので、google翻訳とweblio翻訳を使ってます。

さらに、コマンド名 –help で実行すれば、完全ではないのですが、日本語のヘルプが参照出来ます。

gnome端末の操作ですが、
shift + page up/down ページ単位スクロール
Ctrl + shift + 矢印↑↓ 1行単位でスクロール
のショートカットを覚えておくと便利です。

さて、前述したショートカットキーを調べてみます。

ここでは、cat※ コマンドを使用
(※catにはもともと「ファイルを連結して標準出力に出力する」というコマンド本来の意味合いがある。cat自体が、「連結する」を意味するconcatnateの略である。)

$ cat ~/.config/openbox/lubuntu-rc.xml
すると
ショートカット設定ファイル
こんな表示が、・・・XMLファイルで記述されています。
私は、XMLファイルの読み方がわかりません。
しかし、大丈夫。Shift+Ctr+F で「<keyboard>」のキーワードで検索してみましょう。この<keyboard>より以降にショートカットキーの定義があります。
例えば、
<!– Keybindings for desktop switching –>
<keybind key=”C-A-Left”>
<action name=”GoToDesktop”>
<to>left</to>
<wrap>no</wrap>
</action>
</keybind>
のところに書いてあるのは、”C-A-Left”→Ctrl+Alt+Leftを押すと何も起こらない?
いえ、画面左下の  ↓ここ
デスクトップ切り替え
左側のデスクトップ領域に移動のアクションがなされています。もともと左側を使っていると何も起こらなかったように見えます。
ちなみに、Ctrl+Alt+Rightを押すと、右側のデスクトップ領域に移動します。

以上のように、Linuxではファイルを調べていくと大抵のことがわかりそうです。

 

投稿者: linux32bit

2017/04よりlubuntuをDimension2400cにインストール。 Linuxの勉強を始める。覚書として学習記録をつづる。

コメントを残す