Linuxコマンド

##始めに
私なりにLinuxコマンドについて勉強したのでまとめてみようと思いました。

##参　考
Linux標準教科書

##基本的なコマンド

###ls(ファイルやディレクトリの参照)

```
ls [オプション][ファイル名]
```

オプション

| オプション | 説　明                        |
|:-------:|:-----------------------------|
| -a      |.ではじまる隠しファイル等も全て表示   |
| -l      |Long形式で出力                 |
| -t      |最終更新時間によってソートして出力   |
|-r       |逆順にソートして出力              |

ソートとは
データを一定の基準によって並び替えること

ls -la 等組み合わせることも出来る。

###cp(ファイルのコピー)

```
cp[オプション]　コピー元(ファイル名等)　コピー先(ファイル名等)
```


| オプション | 説　明 |
|:-:|:-|
|-i   |処理を行う前にコンピュータが確認してくれる   |
|-r   |ディレクトリごとコピーしてくれる   |
|-p   |所有者、属性、更新日時などのファイルの情報を変換せずに古い情報のままコピーしてくれる   |

###mv(ファイルの移動)

```
mv 移動元ファイル　移動先ファイル
```

| オプション | 説　明|
|:-:|:-|
|-i   |処理を行う前にコンピュータが確認してくれる   |
|-f   |強制的に処理を実行   |

###rm(ファイルの削除)

```
rm ファイル名
```

| オプション | 説　明 |
|:-:|:-|
|-i   |処理を行う前にコンピュータが確認してくれる   |
|-f   |強制的に処理を実行   |
|-r   |ディレクトリごと削除する   |

###pwd(現在のディレクトリ表示)

```
pwd
```

###cd(ディレクトリの変更)

```
cd 移動先ディレクトリ名
```

何も指定しない場合はホームディレクトリになる。

###mkdir(ファイルの作成)

```
mkdir ディレクトリ名
```

| オプション | 説　明 |
|:-:|:-|
|-p   |上位のファイルがない場合もまとめてファイルを作成   |

mkdir -p file1 / file2 / file3
と入力することでfile1, file2 がなくても、file1, file2, file3
を作ってくれる。

###rmdir(ディレクトリの削除)

```
rmdir ディレクトリ名
```

指定したディレクトリが空の場合のみ削除できる。
rm -r の方が使いやすそう。

###ディレクトリの説明

| コマンド | 説　明 |
|:-:|:-|
|.   |カレントディレクトリ。現在いるディレクトリのこと   |
|..   |親ディレクトリ。１階層上のディレクトリ   |
|~   |ホームディレクトリ。ユーザーの作業開始位置となるディレクトリ   |
|/   |ディレクトリ階層の一番上   |

###cat(ファイルの内容を表示)

```
cat ファイル名
```

| オプション | 説　明 |
|:-:|:-|
|-n   |行番号を付加して表示（何行目に何が書いてあるかが分かりやすくなる）   |

###more(ファイルの内容が多い時の表示方法)

```
more ファイル名
```

moreでファイルを参照した後、以下のコマンドが使える。

| 項　目 | 説　明 |
|:-:|:-|
|スペース   |次のページに進む   |
|b   |前の一画面に戻る   |
|f   |次の一画面に進む   |
|/単語   |単語検索。この後にnキーを押すことで検索結果をジャンプ   |
|q   |終了   |

###find(ファイルの検索)

```
find パス　-name ファイル名
```

指定したパス（ディレクトリなど）の配下にあるファイル名を検索

###which(コマンドのパスを表示)

```
which コマンド名
```

そのコマンドがどこに配置されているかを確認できる。

###touch(ファイルの最終更新日（タイムスタンプ）の変更)

```
touch [オプション]ファイル名
```

存在しないファイルの場合は中身が空のファイルを作成してくれる。
存在してたらタイムスタンプを変更する。

| オプション | 説　明 |
|:-:|:-|
|-t   |ファイルの更新時刻を指定する   |

###head(ファイルの先頭から一部分を出力)

```
head [オプション]ファイル名
```

| オプション | 説　明 |
|:-:|:-|
|-n 行   |先頭から指定した行を標準出力   |
|-c バイト   |先頭から指定したバイト分を標準出力   |

オプションを指定しなかったら、ファイルの先頭から10行取り出し

###tail(ファイルの後ろから一部分を出力)

```
tail [オプション]ファイル名
```

| オプション | 説　明 |
|:-:|:-|
|-n 行   |後ろから指定した行を標準出力   |
|-c バイト   |後ろから指定したバイト分を標準出力   |
|-f |リアルタイムでログファイルの変更を見ることが出来る |

headの後ろからバージョン。
アクセスログ、エラーログを見るときに便利

###sort(テキストファイルのソート)

```
sort[オプション]ファイル名
```

| オプション | 説　明 |
|:-:|:-|
|-r   |逆順でソート   |
|-k n   |n列目のデータをソート   |
|-n   |数値としてソート   |

オプションをつけない場合はアルファベット順でソートされる。

###uniq(行の重複の消去)

```
uniq ファイル名
```

連続している同じ内容の行を１行にまとめることが出来る。

###tr(文字列の置き換え)

```
tr 文字列1　文字列2
```

例えば
tr abc ABC
だと、ABCに置き換わる。

###diff(ファイルの比較)

```
diff[オプション]ファイル1 ファイル2
```

| オプション | 説　明 |
|:-:|:-|
|-c   |context diff 形式で差分を出力（更新時刻とかの差分も表示してくれる）   |
|-u   |unified diff 形式で差分を出力（削除された行に-, 追加された行に+をつけてくれる）   |

主に変更の有無があるかどうかで使う。

###リダイレクト

```
ls > ls.txt
```

> でlsの結果をls.txtに出力出来る
すでにファイルが存在する場合は上書きされる。
追加したい場合は

```
ls >> ls.txt
```

にする。

###標準出力

1:標準出力
2:エラー出力

```
ls -l kandou 2 > ls_l_output
```

kandouファイルでのエラーをls_l_outputに出力する。

```
ls -l kandou > ls_l_output 2>&1
```

これで標準出力とエラー出力の結果を１つのファイルに出力出来る。

###grep(データの検索)

```
grep [オプション] 検索条件 [指定ファイル]
```

指定ファイルは１つ以上選択する。

使用例は

```
ls /var | grep a
```

/var以下のファイルでaがつくファイルを検索して表示してくれる。

###コマンドのオプションで困ったら、、、

```
コマンド　--help
```

を使いましょう。

他にも、

```
man コマンド名
```

| オプション | 説　明 |
|:-:|:-:|
|-k 単語  |'単語'が含まれるエントリー一覧を表示   |

man は指定したコマンドをどうやって使うのか、マニュアルを表示してくれる。