はじめに
パーソナルコンピュータ(PC)を使用するには最初にオペレーティングシステム(OS)というソフトウェアをインストールする必要があります。市販のPCにはWindowsというOSが付属していますがWindowsではなくUnix系のOS(FreeBSDやLinux)を使用することもできます。ここではUnixを使用するにあたって知っておきたい事柄を紹介します。
ディストリビューション
さまざまなディストリビューション(配布形態)が存在しますが大きな違いはありません。多くのディストリビューションが無料で提供されています。
ユーザインターフェイス
コマンドを直接入力するキーボード操作中心のインターフェイス(キャラクタユーザインターフェイス)ですが、Windowsのようなデスクトップ環境(グラフィカルユーザインターフェイス)でも操作できます。
ユーザとグループ
rootという名前のユーザがシステムの全権を掌握します。その他のユーザは一般ユーザとして扱われます。ユーザは複数のグループに所属できます。コマンドuseraddでユーザを追加します。コマンドsuでユーザを変更します。
ランレベルとデーモン
0~6のランレベル(動作モード)を指定できます。ランレベルの一般的な定義は次のとおり。
| 0 | 停止 | システムを停止もしくはシャットダウンする。 |
| 1 | シングルユーザモード | rootユーザのみが作業できるシステムを起動する。ネットワークには接続せずデーモンも起動しない。 |
| 2~5 | マルチユーザモード | デフォルトのシステムを起動する。 |
| 6 | 再起動 | システムを再起動する。 |
ランレベル1がWindowsのセーフモードに相当します。デーモンはWindowsのサービスプログラムに相当します。
ブートローダ
ブートローダはシステムを起動するプログラムです。ブートローダにはsystemd-bootやGRUB(GRand Unified Bootloader)などが使用されます。GRUBはWindowsや他のOSとのマルチブートにも対応していますが、同じシステムを立ち上げるだけならsystemd-bootで十分です。
ファイルシステム
ファイルシステムにはext(Extended File System)やXFS(eXtents File System)などが使用されます。これらのファイルシステムは断片化しにくい設計になっているので、ディスクの内容が断片化することはほとんどありません。FATやNTFSにもアクセスできるので、Windowsとファイルをやり取りすることもできます。オプション-Tを指定してコマンドdfを入力すると使用中のファイルシステムが表示されます。ファイルシステムの種類やそれぞれの違いについては用語集:ファイルシステム: UNIX/Linuxの部屋を参照してください。
ファイル
Windowsとは異なりファイル名の大文字と小文字は区別されます。Windowsのようにスペースを含むファイル名を扱うことはありません。1ファイル名の頭にピリオドをつけたファイル(通称ドットファイル)は隠しファイルとして扱われます。Unixでは拡張子のことをサフィクス(suffix)といいます。サフィクスはユーザがファイルの種類を判別するために使用されますが、サフィクスに基づいて動作するコマンドやアプリケーションもあります。コマンドtouchで空ファイルを作成します。コマンドchownでファイルの所有者・所有グループを変更します。ファイル名やファイルサイズの制約については用語集:ファイル制限まとめ: UNIX/Linuxの部屋を参照してください。
ディレクトリ
ディレクトリはWindowsのフォルダに相当します。コマンドlsでディレクトリの内容を表示します。コマンドmkdirでディレクトリを作成します。
シンボリックリンク
シンボリックリンクはWindowsのショートカットに相当します。コマンドlnでシンボリックリンクを作成します。
パーミッション
ファイルには[読み出し/書き込み/実行]の基本属性があります。実行属性が付与されていないプログラムやスクリプトは実行できません。ディレクトリもファイルと同じ属性を持ちますがその意味は次のようになります。
- ディレクトリの読み出し属性: ディレクトリのファイルを一覧できる
- ディレクトリの書き込み属性: ディレクトリにファイルを作成できるまたはディレクトリのファイルを削除できる
- ディレクトリの実行属性: ディレクトリのファイルを読み書きできる
上記の基本属性に加えて[SUID/SGID/スティッキー]という特殊な属性があります。意味は次のとおり。
- 実行ファイルのSUID属性: 実行ファイルの所有者が実行したと見なされる
- 実行ファイルのSGID属性: 実行ファイルの所有グループ(に属するユーザ)が実行したと見なされる
- ディレクトリのSGID属性: ディレクトリに作成したファイルがそのディレクトリと同じ所有グループになる
- ディレクトリのスティッキー属性: ディレクトリに作成したファイルを所有者のみが削除できる
-lオプションをつけてコマンドlsを入力するとファイルのパーミッション(アクセス権限)が表示されます。コマンドumaskでデフォルトのパーミッションを設定します。コマンドchmodでパーミッションを変更します。
ディレクトリ構造
FHS(Filesystem Hierarchy Standard: ファイルシステム階層標準)で規定されたルートディレクトリを頂点とするディレクトリ構造を持ちます。そのためシステムがインストールされるパーティションはルートパーティションと呼ばれます。Windowsのようなドライブレターはなく他のドライブやパーティションは/devに収められたデバイスファイルとして参照されます。パスの区切り文字には"\"(バックスラッシュ)ではなく"/"(スラッシュ)を使用します。詳細についてはMan page of HIERを参照してください。
ホームディレクトリ
/homeに各ユーザのホームディレクトリが配置されます。ユーザを追加すると/etc/skelの内容が新しいユーザのホームディレクトリにコピーされます。コマンド入力時にはホームディレクトリのパスを~(チルダ)で置き換えることができます。
設定ファイル
システムやアプリケーションの設定はテキストファイルに保存されます。Windowsのレジストリのようなものは存在しません。設定を変更する場合はテキストエディタで設定ファイルを書き換えます。ユーザの設定はホームディレクトリにドットファイルとして保存されます。ファイル名のサフィクスとしてよく使用されるrcは"Run Command"の略です。
アーカイブファイル
ファイルを圧縮するにはgzip(*.gz)というコマンドを使用します。gzipよりも圧縮率の高いbzip2(*.bz2)というコマンドも使用できます。複数のファイルをアーカイブする場合はtar(*.tar)というプログラムで1つのファイルにまとめてからgzipやbzip2で圧縮します。tarを使って圧縮されたファイル(*.tar.gz, *.tar.bz2)をターボール(tarball)ということがあります。アーカイブファイルはコマンドtarで作成します。紛らわしいですがWindowsのアーカイブフォーマット(*.zip)とは関係ありません。
デバイスファイル
ハードディスクドライブや光学ドライブなどのデバイスはファイルとして扱われます。Windowsのようにドライブレターで区別することはしません。デバイスファイルは/devに収められています。デバイスにアクセスする場合はデバイスファイルを任意のディレクトリにマウントします。デバイスをディレクトリにマウントすると、マウントしたデバイスの内容をそのディレクトリから参照したり操作したりできます。コマンドmountおよびumountでデバイスをマウント・アンマウントします。/etc/fstabを書き換えて起動時に自動でマウントさせるようにすることもできます。fstabはFile System Tableの略です。
パッケージマネージャ
利用できるアプリケーションはパッケージという形でリポジトリというサーバに置かれています。パッケージの形式はディストリビューションによって異なります。パッケージはパッケージマネージャを使用してインストール・アップデート・アンインストールします。インストール済みのパッケージをまとめてアップデートすることもできます。
ディスプレイサーバ
システムを起動するとディスプレイマネージャがログイン画面を表示します。ログインと同時にディスプレイサーバが起動します。ディスプレイサーバはユーザからの入力を受け付けて、ウィンドウを開いたり画面を描画したりします。ログイン後はウィンドウマネージャがウィンドウを制御します。ウィンドウシステムにはXやWaylandを採用しています。Xではディスプレイサーバとウィンドウシステムの役割が分離しているので、ウィンドウマネージャを選択できます。
サウンドサーバ
オーディオデバイスを制御するサウンドサーバはPipeWireです。
プリントサーバ
プリンタを制御するプリントサーバはCUPS(Common Unix Printing System)です。
日本語入力
日本語入力の際は入力メソッドが入力を受け付けて変換エンジンが漢字に変換します。Fcitx(入力メソッド)とMozc(変換エンジン)の組み合わせが一般的です。
デスクトップ環境
Windowsのようなデスクトップ環境も使用できます。代表的なデスクトップ環境はGNOMEとKDEです。より軽量なデスクトップ環境としてはXfceやLXQtなどがあります。
-
名前にスペースを含むファイルを参照するには、スペースをエスケープするか、ファイル名を’(クォート)で括る必要があります。 ↩︎