UNIX コマンド入門、具体的コマンドのUNIXをまとめます

今回の目的はUNIXコマンド具体を習得できるように、書いております。UNIXコマンドを勉強していきましょう。

例　フォダルを作ってみましょう。

```
cd unix
mkdir app{1..3}
```
コマンドを実行してあげると、app1,app2,app3というフォダルを作成されました。

### UNIXとは？
下記のようなですが、UNIXはWindowsとかMacOS同じくになります。UNIXはオープンソースです。色々配布形式があるけど、特にLinuxへの乗換えが最適な選択になります。
<img width="810" alt="Screen Shot 2019-05-19 at 1.06.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/e99c3e0c-95c3-cd0f-ed5d-a1615e3d9617.png">

### 実行環境
さて、続きをやっていきましょう。今回はレッスンですが、ドットインストールのローカル環境開発構築したCentOS上で勉強していきましょう。下記のようなになれば、OKです。

```
# vagrant 起動
vagrant up

# vagrantアクセス
vagrant ssh
```
![Screen Shot 2019-05-19 at 1.21.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/9939a6a4-4acd-33dd-4439-187507f61376.png)

### 具体的コマンド
次は、下記のコマンドでフォダルレッスンを作りましょう。

```
＃unix_lessons作成
mkdir unix_lessons

＃上記のフォルダに移動
cd unix_lessons
```
下記のようなになれば問題がないです。
![Screen Shot 2019-05-19 at 1.26.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/83de032a-c782-7191-c034-62be5669c0b1.png)

さて前回、練習用のデイレクトリを作ったので、必要な場所に移動していきましょう。ログイン直後なので、vagrantユーザーのhomeデイレクトリにいます。

```
＃unix_lessonsに移動
cd /home/vagrant/unix_lessons

＃現在のリンク
pwd
```
![Screen Shot 2019-05-19 at 1.49.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/7572d4e0-dcb5-96fc-b111-a0c51c06b0e2.png)

続きいきましょう。cpのコマンドでファイルとかデイレクトリをコピーします。

```
mkdir app
cd app
ls
＃app1からappの中に移動
cp -r app app1
ls
```
次ですね、app1からappの中に移動していきましょう。移動にはmvを使ってあげてapp1をappの中に入れると書いてあげます。

```
# app1からappの中に移動
mv app1 app
```
次はデイレクトリを削除していきましょう。

```
#デイレクトリを削除
rmdir app/app1
```

実行した後はちゃんと確認いきましょう。

```
cd app/app1
```

ファイルの操作についてみていきましょう。具体的は下記５つよく使い纏めます。

```
# ファイルを読み込み
cat

# 一つつページ　
less

＃　ファイルをコピー
cp

＃　ファイル移動
mv

＃　ファイル削除
rm
```
さて、!を使ってコマンドの履歴を活用する方法について見ていきましょう。

```
history
!番号
!!
!-2
!$
!検索語
```
コマンドの詳しく調べたい場合はどうしますか。この場合はhelpオプションやhelpを使ってあがます。

```
help
```
![Screen Shot 2019-05-25 at 16.57.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/a0f9f8c4-57d5-a496-1775-bb9824b10bfc.png)

manを利用する場合に、こちらのよう。
```
man
```
![Screen Shot 2019-05-25 at 16.58.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/e16cfd66-7fc7-3fd4-b3b1-ac5e0b5e187b.png)

ファイルを編集できるvimエディタについて説明していきます。

```
# ファイルを開く
vim ファイル名
```

よく使うファイルやディレクトリに別名をつけることができるシンボリックリンクについて見ていきます。

```
ln -s
unlink
```
さて、ここまでファイルの扱い扱いにもなれてきたユーザ、グループを確認するため、行きましょう。

```
# ユーザー一覧
cat /etc/passwd

# グループ一覧
cat /etc/group

# 自身のグループ確認
groups
```

パーミッションの仕組みの理解しよう。
<img width="737" alt="Screen Shot 2019-05-25 at 17.31.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/7217167d-34ac-bbbc-dd23-9d63b10891ce.png">


また、パーミッションを数値で表現する方法もあります。
<img width="715" alt="Screen Shot 2019-05-25 at 17.35.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/60c7303d-ce2f-161e-a9ca-5295397d9a7a.png">

存在しないコマンーどをつくりましょう。

```
# ファイル作成
vi hello

# 内容追加
#!/bin/bash
echo "hello"

# 保存
:wq

# 実行権限
chmod u+x hello

＃コマンド実行
./hello
hello!
```
さて、PATHを通してみよう。
![Screen Shot 2019-05-25 at 17.49.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/4da07ead-3b45-d097-1411-c3192077f192.png)

管理ユーザーになってみよう

```
# logを確認するとき必ず管理ユーザーで実行
sudo cat /var/log/messages
```
chownを使ってみよう。写真を見ると、最初helloファイルはchownがrootです。実行した後、vagrantになっておりますね。
![Screen Shot 2019-05-25 at 17.57.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/dff8a498-8e22-4fea-c4d9-b5a739c3a88b.png)

テキスト処理をするためのコマンドをいくつか紹介していきます。

```
wc (word count)
head
tail
grep
```
![Screen Shot 2019-05-25 at 18.02.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/b91a45dc-ffe4-9eaa-4f88-583deab22a08.png)

次はコマンドの結果をファイルに保存したり、あるファイルの内容を他のコマンドに渡すことができます。
![Screen Shot 2019-05-25 at 18.07.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/173855/ae0b6de3-9dab-ea1d-5bd9-94a6a49e624c.png)

findを使ってファイルを検索する方法、検索結果に関して処理を行う方法について見ていきます。

```
#ファイル名で探索
find -name "ファイル名"

#タイプで検索
find -type f -name “*.ovpn”
```
Size、Time、Owner、 Permissionなどで探索することできます。

じゃあ、ここまで大丈夫そうです。