---
# System prepended metadata

title: ファイルとプロセスの管理

---

# ファイルとプロセスの管理

### パーミッションの設定
1. 所有者
    * ファイルやディレクトを作成すると、作成したユーザーが所有者として設定される
    * ex) linuxグループでlinuxユーザー
2. アクセス権
    * パーミッションとも言う
    * どのユーザーに対してどういった操作を許可するか
    * 所有者、所有グループに属するユーザー、その他のユーザーの３種類がある
    * 読み取り、書き込み、実行の３種類がある（r、w，x）（4、2、1）
3. アクセス権の変更
    * chmodコマンド
        * `chmod go+w samlefile`
        * `chmod 644 samlefile`
4. デフォルトのアクセス権
    * umask値で決定される
    * `umask`で自身のumask値を見れる
    * ファイルは666、ディレクトは777からumask値を引いたものがデフォルト値
5. 所有者の変更
    * chownコマンド
    * 変更できるのrootユーザーだけ
        * `chown lpic testfile`
        * `chown lpic:lpic testfile`
6. グループの変更
    * chgrpコマンドは一般ユーザーでも使用可能


---

### ハードリンクとシンボリックリンク
1. ハードリンク
    * ファイルをディスクに保存するとiノード番号が割り当てられる
    * iノードにはいくつかの属性情報が格納されている（アクセス権とか、保存場所とか）
        * リンクの数を確認するには`ls -li`
        * iノード番号を表示する
2. シンボリックリンク
    * リンク元の場所を指します
    * シンボリックリンクを残したままリンク元のファイルを削除することも可能
    * ハードリンクを異なり別のファイルへもリンクを作成可能
    * アクセス権表示は`lrwxrwxrwx`であるが実際はリンク元のアクセス権に依存する
        * `ln file.original file.link_hard`
        * `ln -s file.original file.link_sym`
        * `ls -l`
        * `ls -li`


---

### プロセスの管理
1. プロセスの監視
    * 動作中のシステムの単位
    * 現在実行中のプロセスは`ps`コマンドで表示
3. プロセスの終了
    * killコマンドでプロセスを終了させる
        * プロセスに対してシグナルを送信する
        * シグナルとはプロセスに対するメッセージ
        * `kill -KILL PID値`で強制終了





---
ファイルの圧縮、解凍

```=
下のコマンドほど圧縮効率がよいが処理が遅い
-d 展開
-c 出力
-r ディレクトリ内すべて

gzip
gzip file.gz
bzip2
bzip2 file.bz2
xz
xz file.xz
```


---
ファイルやディレクトリを１つのアーカイブファイルにまとめたり、展開する
`tar op ファイル名ディレクト名`
```=
ディレクトを作成してファイルを２つ作成
mkdir file
file1 file2

アーカイブファイルを作成
tar -cf file.tar file1 file2

一覧表示
tar -tf file.tar

展開
tar -xf file.tar

圧縮も追加
tar -czf filennn.tar.gz file1 file2
```
---


アクセス権の変更
```
chmod op 対象 操作 許可 ファイル名
```
```
chmod ugo+w file1
```

所有者の変更
```
chown op ユーザー:グループ file or dir

chown root:root file1 
root.
```

ディレクトを一式まるごともってきたいとき
    git管理してないと本番サーバー上のディレクトリとってくる
    wordpress、、git管理したことないかも。。
zvf
zvfx
cvf


---
ln -s {リンクの参照先} {シンボリックリンク名}

```=
どこでもいいけどあまりそうさしないところに作る
mkdir yahoo
cd yahoo
touch file1 file2

よく使うところに作る
ln -s /var/yahoo refyahoo
ls -l
cd refyahoo
ls

シンボリックリンクのみのコピーの方法
cp -d refyahoo cpfile
```

```=
ps -e
ps ax
topkill

kill -KILL 560
```