Linuxコマンド#2

Linuxコマンドの基礎2。

#findコマンド
ファイルを探す

```shell
[wataru@localhost testgo]$ find . -name work.08.txt -print
#find <検索開始位置> <検索条件> <アクション>の書式
#-printはパス名を表示するアクション（アクションを省略した場合は-printを指定したと見なされる）
./work.08.txt
```

```shell
[wataru@localhost testgo]$ find . -name 'work.0*' -print
#-nameでワイルドカードを使用する場合は、''(シングルクォーテーション)で囲む
#""(ダブルクォーテーション)でも可
./work.02.txt
./work.05.txt
./work.06.txt
./work.07.txt
./work.08.txt
./work.09.txt
```

```shell
[wataru@localhost testgo]$ find . -name "work.0*"
#""(ダブルクォーテーション)でも問題なく検索されている
#-printを省略すると、自動的に-printを指定したと見なされる
./work.02.txt
./work.05.txt
./work.06.txt
./work.07.txt
./work.08.txt
./2020dir/work.09.txt
```

```shell
[wataru@localhost testgo]$ find . -type d
#-type dを使用すると、ディレクトリを検索する
.
./2020dir
```

```shell
[wataru@localhost testgo]$ find . -type f
#-type fを使用すると、ファイルを検索する
./work.02.txt
./work.05.txt
./work.06.txt
./work.07.txt
./work.08.txt
./testtest.txt
./2020dir/work.09.txt
```

```shell

[wataru@localhost testgo]$ ls
2020dir       work.02.txt  work.04.xls  work.06.txt  work.07.xls  work.09.xls
testtest.txt  work.02.xls  work.05.txt  work.06.xls  work.08.txt  work.10.xls
work.01.xls   work.03.xls  work.05.xls  work.07.txt  work.08.xls

wataru@localhost testgo]$ find . -type f -name '*xls'
#-type f と-nameは一緒に使用することができる
./work.01.xls
./work.02.xls
./work.03.xls
./work.04.xls
./work.05.xls
./work.06.xls
./work.07.xls
./work.08.xls
./work.09.xls
./work.10.xls
```

#viコマンド
テキストエディタ

###基本コマンド
| コマンド       |       内容 |
|:-----------------|:------------------|
| :q            |              viを終了する |
| :w           |            ファイルを上書き保存する |
| :w <ファイル名>             |              名前を付けて保存する |
| :q!               |                ファイルを保存せずにviを終了する |

###移動コマンド
| コマンド       |       内容 |
|:-----------------|:------------------|
| gg            |              1行目に移動する |
| G           |            最後の行に移動する |
| <数字>G           |            <数字>行目に移動する |


```shell
[wataru@localhost testgo]$ vi work.05.txt 
```

```shell
ABCDEFG
HIJKLMN
OPQRSTUWwaq
abcdef

123456
345678
7890                                                              
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                                                                                             
~                                                                           
~                                                                               
-- INSERT --  
#インサートモードにするには、iまたはaを入力する
#インサートモードをやめる際は、Escキーを入力する
```

##カット、コピー、ペースト

###デリートコマンド
| コマンド       |       内容 |
|:-----------------|:------------------|
| d$            |              行末まで削除する |
| dgg           |            最初の行まで削除する |
| dG             |              最後の行まで削除する |
※コピーはdの代わりにyを使用する。
そのため、上記表のdをyに読み替えて実施すると、コピー可能。

```shell
ABCDEFG
HIJKLMN
OPQRSTUWwaq
abcdef

123456
345678
#d$を入力して、行末まで削除した(7890削除)
~                                                                               
~                                                                               
~                                                                               
"work.05.txt" 9L, 56C     
```

```shell
ABCDEFG
HIJKLMN
OPQRSTUWwaq
abcdef

1234562345623456
#d$で削除した文字列はpを利用して、張り付けることが出来る
345678
```
##検索
ノーマルモードで/(スラッシュ)入力すると検索可能。


```shell
HIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMN
HIJKLMN
OPQOPQOPQ

OPQOPQOPQ

HIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMN
HIJKLMN

HIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMN
HIJKLMN


HIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMNHIJKLMN
# /の後に検索したい文字を入力する
/HI     
```

#chmodコマンド
ファイルモードを変更する

```shell
wataru@localhost testgo]$ ls -l 
total 0
drwxrwxr-x. 2 wataru wataru 25 Jul  7 16:25 2020dir
-rw-rw-r--. 1 wataru wataru  0 Jul  5 04:26 testtest.txt

[wataru@localhost testgo]$ chmod u+x testtest.txt
#chmod [ugoa][+-=][rwx] <ファイル名>でパーミッションの設定が出来る
#今回では、testtest.txtファイルのオーナーに実行権限を追加した
[wataru@localhost testgo]$ ls -l
total 0
drwxrwxr-x. 2 wataru wataru 25 Jul  7 16:25 2020dir
-rwxrw-r--. 1 wataru wataru  0 Jul  5 04:26 testtest.txt
```
###chmodのユーザー指定
| 記号       |       意味 |
|:-----------------|:------------------|
| u            |              オーナー |
| g           |            グループ |
| o             |              その他ユーザー |
| a             |              ugoすべて |

```shell
[wataru@localhost testgo]$ chmod u-rx testtest.txt
#testtest.txtファイルのオーナーに読み取りと書き込み権限を禁止した
[wataru@localhost testgo]$ ls -l
total 0
drwxrwxr-x. 2 wataru wataru 25 Jul  7 16:25 2020dir
--w-rw-r--. 1 wataru wataru  0 Jul  5 04:26 testtest.txt
```

```shell
[wataru@localhost testgo]$ chmod a+rwx testtest.txt
#すべてのユーザーに読み取り、書き込み、実行の権限を設定
[wataru@localhost testgo]$ ls -l
total 0
drwxrwxr-x. 2 wataru wataru 25 Jul  7 16:25 2020dir
-rwxrwxrwx. 1 wataru wataru  0 Jul  5 04:26 testtest.txt
-rw-rw-r--. 1 wataru wataru  0 Jul 11 01:55 work.txt
```

```shell
[wataru@localhost testgo]$ chmod 444 testtest.txt
#数値でもパーミッションの設定が可能
#今回では、読み取りだけ設定
[wataru@localhost testgo]$ ls -l
total 0
drwxrwxr-x. 2 wataru wataru 25 Jul  7 16:25 2020dir
-r--r--r--. 1 wataru wataru  0 Jul  5 04:26 testtest.txt
-rw-rw-r--. 1 wataru wataru  0 Jul 11 01:55 work.txt
```
###数値モードでのパーミッション数値
| 数値       |       意味 |
|:-----------------|:------------------|
| 4            |              読み取り |
| 2           |            書き込み |
| 1             |              実行 |

```shell
[wataru@localhost testgo]$ chmod 660 testtest.txt
#オーナーとグループに読み取りと書き込み権限を設定
[wataru@localhost testgo]$ ls -l
total 0
drwxrwxr-x. 2 wataru wataru 25 Jul  7 16:25 2020dir
-rw-rw----. 1 wataru wataru  0 Jul  5 04:26 testtest.txt
-rw-rw-r--. 1 wataru wataru  0 Jul 11 01:55 work.txt
```