ファイルの管理
グループの種類
- 1 次グループ:必須。ログイン直後の作業グループ。ファイルやディレクトリを新規作成した際に所有グループとなる
- 2 次グループ:任意。複数割り当て可能
groups コマンド
ユーザーが所属するグループの一覧を表示する。
id コマンド
どのユーザーでログインしているのか、どのグループに所属しているかを表示する。
id [オプション] [ユーザー名]
ファイルパーミッションの表記
-rwxrwxrwx. user group inodes date filename
- ファイル種類
- -:ファイル
- d:ディレクトリ
- l:シンボリックリンク
- パーミッション
- r:読み取り許可
- ファイルの内容を読むことができる
- ディレクトリの内容を表示することができる
- w:書き込み許可
- ファイルの内容を編集することができる
- ディレクトリ内のファイルやディレクトリを作成、削除することができる
- x:実行許可
- 実行ファイルとして実行できる
- ディレクトリへ移動することができる
- r:読み取り許可
- .:セキュリティコンテキスト、SELinux の管理下にある
パーミッションは左から順に、所有ユーザー、所有グループ、その他のユーザーに対するパーミッションを表す。
chmod コマンド
既存ファイルやディレクトリに設定されているパーミッションを変更する。
- -R:サブディレクトリを含め、再帰的にパーミッションが変更される
シンボリックモード
chmod [オプション] 対象範囲 操作 パーミッション ファイル名
- ユーザー
- u:所有者
- g:グループ
- o:その他
- a:すべて
- 操作
- +:許可を与える
- -:許可を削除する
- =:許可を設定する
- パーミッション
- r:読み取り
- w:書き込み
- x:実行
オクタルモード
chmod [オプション] オクタル表記 ファイル名
- r:4
- w:2
- x:1
- 無:0
umask コマンド
umask 値の確認と設定を行う。
umask [値]
デフォルトパーミッション
- ディレクトリ:775
- ファイル:664
chown コマンド
指定されたファイルの所有者とグループを変更する。 root ユーザーのみ実行できる。
chown [オプション] ユーザー名[.グループ名] ファイル名|ディレクトリ名
- -R:ディレクトリにのみ指定可能。サブディレクトリ含め再帰的に変更する
chgrp コマンド
所有グループの変更を行う。
chgrp [オプション] グループ名 ファイル名 | ディレクトリ名
- -R:ディレクトリにのみ指定可能。サブディレクトリ含め再帰的に変更する
SUID
プログラム実行時、ファイル所有者の実行権限を付与する。
- 4000 パーミッションを付与する
- 所有者パーミッションに S を付与する
SGID
ファイルのグループ ID を実効グループ ID とする。 SGID ディレクトリでファイルを作成するとそのグループが所有グループになる。
- 2000 パーミッションを付与する
- グループパーミッションに S を付与する
スティッキービット
特定のディレクトリに対し、アクセスできてもファイルの削除をできないようにする。 root ユーザーのみ設定できる。 /tmp ディレクトリに設定されている。
- 1000 パーミッションを付与する
- その他ユーザーパーミッションに t を付与する
ln コマンド
ファイルのリンクを作成する。
ハードリンク
- リンクファイルが使用する i ノード番号はオリジンファイルと同じ番号
- ディレクトリをもとにリンクファイルを作成できない
- i ノード番号は同一ファイルシステム内でユニークなあので、異なるパーティション間では不可
- 作成するとリンク数が変更される
- 同じディスク領域を参照するため容量と時間を節約できる
ln オリジンファイル名 リンク名
シンボリックリンク
- オリジナルファイルの位置情報を保管する別ファイルを作成する
- リンクが使用する i ノードはオリジナルとは異なる
- ディレクトリをもとにリンクファイルを作成可能
- オリジナルと別パーティションに作成可能
- -l オプションでシンボリックリンクを表す
ln -s オリジンファイル名 リンク名
find コマンド
指定した検索条件に合致するファイルを検索する。
find [オプション] [path] [式]
- -name:指定したファイル名で検索する
- -type:ファイルのタイプで検索する (d=ディレクトリ、f=ファイル、l=シンボリックリンク)
- -size:指定したブロックサイズで検索する
- -atime:指定した日時をもとに、最終アクセスがあったファイルを検索する
- -utime:指定した日時をもとに、最終更新されたファイルを検索する
- +:指定日以上前
- -:指定日未満
- 無:指定日当日
- -uid:ファイルの所有者のユーザー ID を指定する
- -user:ファイルの所有者のユーザー名またはユーザー ID を指定する
- -perm:ファイルのパーミッションを指定する (完全一致のみ)
- -print:検索結果を標準出力する
- -exec command ;:検索後コマンドを実行する
- -maxdepth:検索階層を指定する
locale コマンド
ファイル名、ディレクトリ名の一覧をデータベースを使用してインデックス検索する。
locale [オプション] パターン
updatedb コマンド
インデックスデータベースを更新する。
updatedb [オプション]
- -e:データベースのファイル一覧に取り込まれないディレクトリパスを指定する
- -o:更新対象データベース名を指定する
/etc/updatedb.conf
更新対象と対象外のファイルシステムを指定する。
- PRUNEFS:対象外ファイルシステム
- PRUNEPATHS:対象外パス
which コマンド
PATH 環境変数で指定されたディレクトリをもとに探す。
which [オプション] コマンド名
whereis コマンド
指定されたバイナリ、ソース、マニュアルの場所を示す。
- -b:バイナリの場所を表示する
- -m:マニュアルの場所を表示する
- -s:ソースファイルの場所を表示する
ソフトウェア管理
ライブラリ
ライブラリにあらかじめプログラムで複数回行う処理をまとめておく。
- 静的ライブラリ:ライブラリの内容を実行ファイルに埋め込む
- 静的リンク
- 動的ライブラリ:実行時にライブラリをメモリに読み込む
- 動的リンク
- 動的ロード
ライブラリ作成の手順
- ライブラリを作成 (ld コマンド)
- シンボリックリンクを作成 (ln -l コマンド)
- 参照ファイルを更新 (ldconfig コマンド)
ld コマンド
共有ライブラリの作成をする。
種類 | 命名規則 | ファイル名例 | シンボリックリンク先 |
---|---|---|---|
real name | lib〇〇〇.so.[Major].[Minor] | libprt.so.1.0 | ファイル本体 |
soname | lib〇〇〇.so.[Major] | libprt.so.1 | libprt.so.1.0 |
linker name | lib〇〇〇.so | libprt.so | libprt.so.1 |
ld -shared -soname <soname> -o <real name> -lc <際配置可能ファイル>
ldconfig コマンド
必要なリンクの作成、ライブラリのきゃしゅを行う。 /etc/ld.so.conf を参照してシンボリックリンクを作成し、/etc/ld.so.cache に書き込む。 実行プログラムは ld.so.cache を参照してアクセスする。
/etc/ld.so.conf は /etc/ld.so.conf.d 以下をインクルードする。
ldd コマンド
共有ライブラリへの依存関係を表示する。
ldd [オプション] ファイル名
パッケージ管理システム
パッケージは実行形式バイナリ、ライブラリ、マニュアル、設定ファイルを含む。
- RPM:RedHat EL, Fedora, CentOS 系
- Debian:Debian, Ubuntu 系
Red Hat 系 | Ubuntu 系 | |
---|---|---|
パッケージ形式 | rpm 形式 | deb 形式 |
パッケージ管理コマンド | rpm コマンド | dpkg コマンド |
リポジトリコマンド | yum コマンド | apt コマンド |
パッケージ表記
- RPM 形式:[パッケージ名]-[バージョン]-[リリース番号].[アーキテクチャ].rpm
- Debian 形式:[パッケージ名]_[バージョン]_[リリース番号]_[アーキテクチャ].deb
rpm コマンド
表示系のオプション
- -q, –query:指定したパッケージがインストールされていればバージョン表示
- -a, –all:インストール済みの rpm パッケージ情報を一覧表示
- -i, –info:指定したパッケージの詳細情報を表示
- -f, –file:指定したファイルを含む rpm パッケージを表示
- -c, –configgiles:指定したパッケージ内の設定ファイルのみ表示
- -d, –docfiles:指定したパッケージ内のドキュメントのみを表示
- -K, –checksig:完全性を確認するとき、指定したパッケージに含まれるダイジェスト値と署名をチェック
- -R, –requires:指定したパッケージが依存している rpm パッケージ名を表示
- -p, –package:指定したパッケージファイルの情報を表示
- 無し, –changelog:パッケージ更新情報を表示
インストール系のオプション
- -i, –install:パッケージをインストールし、アップデートはしない
- -U, –upgrade:パッケージをアップグレードする。インストールされていなければインストールする
- -F, –freshen:パッケージをアップグレードする。インストールされていなければ何もしない
- -v, –verbose:詳細な情報を表示する
- -h, –hash:進行状況を # 記号で表示する
- –force:指定したパッケージがインストール図にでも上書きインストール
- –oldpackage:古いパッケージに置き換えることを許可する
- –test:パッケージをインストールせずに衝突などのチェックを行う
- -e, –erase:パッケージを削除する
- –nodeps:依存関係を無視してパッケージを削除する
- –allmatches:一致するすべてのパッケージバージョンを削除する
rpm2cpio コマンド
rpm パッケージを cpio アーカイブ形式に変換して出力する。
- -t:一覧表示
- -id:解凍
yum コマンド
- list:利用可能な全 rpm パッケージ情報を表示
- list installed:インストール済みの rpm パッケージを表示
- info:指定した rpm パッケージの詳細情報を表示
- search:指定したキーワードで rpm パッケージを検索し、結果を表示
- deplist:指定した rpm パッケージの依存関係を表示
- list updates:インストール済みの rpm パッケージで更新可能なものを表示
- check-update:インストール済みの rpm パッケージで更新可能なものを表示
- remove:インストール済みの rpm パッケージを削除する
- erase:インストール済みの rpm パッケージを削除する
- install:指定した rpm パッケージを依存関係も解決したうえでインストールする
- update:インストール済みの rpm パッケージで更新可能なものをすべてアップデートする
- upgrade:システム全体のリリースバージョンアップを行う
- grouplist:パッケージグループの一覧を表示
- group info:パッケージグループの詳細情報を表示
- groupinstall:パッケージグループをインストールする
- /etc/yum.conf:基本設定ファイル
- /etc/yum.repos.d:リポジトリの設定ファイル
パッケージグループ
システムツールや特定のアプリケーションなどの集合。
yumdownloader コマンド
rpm パッケージのダウンロードのみ行う。
yumdownloader パッケージ名
zyppper コマンド
openSUSE で使われるパッケージ管理システム。
zypper [グローバルオプション] コマンド [コマンドオプション] [パラメータ]
- update:パッケージの更新
- search パッケージ名:パッケージの検索
- install パッケージ名:パッケージのインストール
- remove パッケージ名:パッケージの削除
- info パッケージ名:パッケージの情報を調べる
- repos:リポジトリの一覧表示
dpkg コマンド
表示系のオプション
- -l, –list:インストール済みの全 deb パッケージの情報を表示
- -s, –status:指定したパッケージの情報を依存関係も含めて表示
- -L, –listfiles:指定したパッケージに含まれるすべてのファイルを表示
- -S, –search:インストール済みのパッケージから、指定したファイルを検索
- -I, –info:指定したパッケージの詳細情報を表示
- -C, –audit:インストールが完了していないパッケージを検索
- -c, –contents:指定した deb パッケージに含まれるファイルの一覧を表示
- -r, –remobe:パッケージは削除するが、設定ファイルは残す
- -P, –purge:設定ファイルを含め、パッケージを完全に削除する
インストール系のオプション
- -i, –install:パッケージをインストールする
- -E, –skip-same-version:同じバージョンがインストールされていれば何もしない
- -G, –refuse-downgrade:新しいバージョンがインストールされている場合は何もしない
dselect コマンド
パッケージ管理用の UI を起動する。
dpkg-reconfigure コマンド
インストール時の設定を再度実行する。
apt-get コマンド
- install:依存関係をチェックし、パッケージをインストールする
- upgrade:アップグレード可能な deb パッケージをすべて更新する。パッケージの削除はしない
- dist-upgrade:古いパッケージの削除を含め、現在インストールされている全パッケージを更新する
- update:パッケージデータベースを更新する
- remove:deb パッケージをアンインストールする
apt-cache コマンド
- pkgnames:すべての deb パッケージを一覧表示
- search:指定s他キーワードを含むパッケージを表示。複数キーワードや正規表現を用いたキーワード指定が可能
- show:指定したキーワードの詳細情報と依存関係を表示
- depends:指定したパッケージの依存関係とその関係にあるパッケージを表示
apt のリポジトリ記載場所
/etc/apt/sources.list
コメント