「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
触ってみるということで、各種 基礎。
コマンド †
基本的なコマンド †
sudoコマンド †
- ユーザーが別のユーザーの権限レベルでプログラムを実行するためのコマンド。
- 一般的に、スーパーユーザー(superuser、≒root)の特権レベルを要求する。
aptコマンド †
Debian系のパッケージ管理システム
- update
sudo apt-get update
- install
sudo apt install パッケージ名
yumコマンド †
Red Hat系のパッケージ管理システム
- install
yum install パッケージ名
sudo vi ファイル・パス
参考 †
ありがちなオプション †
-y, --yes, --assume-yes †
処理中に現れるプロンプトに対して常に"yes"と解答
パイプ †
テキスト・ベースのシェルで、テキストをパイプできる。
ちなみに、PowerShellはオブジェクト・ベースのシェル。
パイプの裏側 †
は、ストリーム。
ファイルの削除の例 †
find したファイルをxargs で消す。
find /XXXX/XXXX/*.txt -type f | xargs rm -rf
...の例 †
参考 †
ファイル †
ファイルの種類 †
普通のファイル †
regular file
directory
- 他のファイル(広義のファイル)を
複数入れることができるファイル
シンボリックリンク †
symbolic link
- 他のファイルの名前を格納したファイル
- Microsoft Windows - ショートカット
- Mac OS - エイリアス
名前付きパイプ †
named pipe
UNIXドメインソケット †
UNIX domain socket
- プロセス間通信で使うファイル
- 現在ではTCPソケットで代替できる
デバイスファイル †
device file
- デバイス(ハードウェア)をファイルとして表現したもの
Linuxでは、
ファイルシステムのマウントにより、
一本の巨大なディレクトリツリーになる。
ストリーム †
バイトストリーム(byte stream)
- ファイルにつながったストリーム
- 通常、プロセスに対する入力と出力の2つのストリーム
- パイプすると、
- プロセスAの出力ストリームが、
- プロセスBの入力ストリームとなる。
- 「Linuxにおいては全てがファイル」
...と言うのはシステムコールのI/Fが
バイトストリームであることに起因するらしい。
ディレクトリ †
→ ファイルシステムとマウント
rootディレクトリ †
rootディレクトリでlsすると、以下が表示される。
- bin
基本コマンド
- sbin
システム管理用コマンドなど
- boot
起動に必要なファイル
- dev
デバイスファイル
- etc
設定ファイル
- home
ホームディレクトリ
- lib
bin、sbinの共有ライブラリ
- lib64
共有ライブラリ(64bit)
- media
リムーバブル媒体のマウントポイント
- mnt
一時的なマウントポイント
- opt
追加アプリケーション
- proc
プロセス情報など
- root
root用ホームディレクトリ
- run
実行時の可変データ群
- snap
snapアプリケーションのインストール先
- srv
システムによって提供されたサイト固有のデータ群。
- sys
ドライバ関連のプロセス情報群。
- tmp
一時的なファイル
usr †
全ユーザー向け、各種プログラムやライブラリ、ドキュメント
- bin
基本コマンドなど(ユーザ版)
- sbin
システム管理用コマンドなど(ユーザ版)
- lib
bin、sbinの共有ライブラリ(ユーザ版)
- lib64
共有ライブラリ(64bit)
- libexec
その他、補助コマンド
- etc
あまり利用されない。
- share
アーキテクチャに依存しない共有データ
- include
ヘッダファイル
- src
ソースコードとそのヘッダファイル
- local
ホスト固有のローカルデータを格納する第三階層
(ソースコンパイルするとココに入る)
- tmp
一時的なファイル(ユーザ版)
※ 個別ユーザ向け
var †
ログやキャッシュなど可変ファイル群。
- cache
各種キャッシュ保存先
- crash
クラッシュダンプ保存先
- db
各ソフトで利用するデータベース情報。
- empty
SSHで利用される。
- local
/usr/local用のログファイル保存場所。
- lock
使用中リソースをロックするファイル
- log
各種システム・ログファイル
- mail
ユーザーのメールボックス
- opt
/opt用の動的ファイル保存場所。
- run
ブート以降の走行中システムに関する情報
- spool
処理待ち状態のタスクのスプール
- tmp
一時ファイル置場 (マルチユーザーモードの推奨)
ユーザ・ディレクトリ †
ログインした際、ユーザ・ディレクトリがカレント・ディレクトリになる。
/home/ユーザー名
パス指定方法 †
/xxxx †
rootディレクトリ以下
~/xxxx †
ユーザ・ディレクトリ以下
./xxxx †
カレント・ディレクトリ以下
権限 †
setuid/setgid †
- それぞれ、set user ID と set group ID の略。
- 実行ファイルを実行する際にその実行ファイルの
所有者(ユーザー識別子やグループ識別子)の権限で実行できるようにする。
- 一般ユーザーが高い特権レベルでしか実行できないタスクを一時的に実行できるようにする
- ユーザー識別子やグループ識別子が指定されるが、必ず特権レベルが高くなるわけではない。
- setuid/setgidが設定されているプログラムは
- 所有者/グループの権限で動作する。
- 従って、所有者/グループがrootだと危険。
- setuid/setgidが設定されているプログラム
- /bin/password
- /bin/ping
- /bin/su
ファイル属性 †
ファイル属性の読み方 †
ファイルの種別とパーミッションが設定されている。
- x文字目
- 1(1):ファイル種別
- 2-4(3):ファイル所有者に対する権限
- 5-7(3):ファイル所有グループに対する権限
- 8-10(3):その他に対する権限
- ファイル
- 種別
種別 | 意味 |
- | ファイル |
d | ディレクトリ |
l | シンボリックリンク |
- 権限
モード(数字) | モード(アルファベット) | 権限 |
4 | r | 読み取り |
2 | w | 書き込み |
1 | x | 実行 |
パーミッション設定(chmodコマンド) †
chmod モード 対象ファイル名
- パーミッションを数字(権限の合計値)で指定する。
chmod nnn 対象ファイル名
- 変更方法
変更方法 | 意味 |
= | 指定した権限にする |
+ | 指定した権限を付与する |
- | 指定した権限を除去する |
- 変更内容
変更内容 | 意味 |
r | 読み取り |
w | 書き込み |
x | 実行 |
s | set user ID(SUID)、set group ID(SGID) |
t | スティッキービット(sticky bit) |
パーミッション設定例 †
※ 600は、所有者に読み書き権限を付与。
数値 | 権限 |
0 | --- |
1 | --x |
2 | -w- |
3 | -wx |
4 | r-- |
5 | r-x |
6 | rw- |
7 | rwx |
Advanced †
Advanced Windowsに習い。
スレッド同期 †