現場で使ったLinuxコマンド備忘録

# はじめに
はじめまして、株式会社エニプラの野口です。
インフラ系の業務に配属されてLinuxのCUIに携わるようになってから
実際に使用したコマンドを綴っていきます。

##   ・hostname
用途 :
作業対象の確認、オペレーティングミステイク略してオペミスの防止

書式 :
`hostname [オプション]`
`hostname [オプション] [新しいホスト名]`
``` Linux:実行例
$ hostname
<システムのホスト名>
```
所感 :
エビデンスを取る際に1番目に実行するコマンドです。
ついでに`date`や`localectl`コマンドで時刻とロケール設定も確認する
確認は重要、これ大事。
`hostname anyplus`と入力すると現在のホスト名がanyplusに変更されるので注意

##   ・ls
用途 :
ディレクトリ構成、権限(パーミッション)設定の確認

書式 :
`ls [オプション] [ファイルまたはディレクトリ……] ` 
``` Linux:実行例
$ ls
 .bash .work fileA fileB
```
所感 :
 現場においてはls単体よりもオプションを加えた`ls -al`を使っていた。
 ディレクトリやファイルは勿論のこと、隠しファイルやパーミッション周りも表示してくれる優れもの。
 画面表示を広げてないと改行されて見にくいのが欠点。
 設定書と見比べて足りない場合や構成が違った場合は、`mkdir` `vi` `mv`等を使って合わせる必要が出てくる。
 
##   ・cd
用途 :
カレントディレクトリの移動
コマンド内のディレクトリ参照にて絶対パスを打つ手間を省くため

書式 :
`cd [オプション] [ディレクトリ] `
``` Linux:実行例
$ cd ../
 ※カレントディレクトリ(現在地)が/homeの場合、/(ルートディレクトリ)に戻る。
```
所感 :
長文ディレクトリでなければ普通に絶対パスで実行して、そうであれば`cd`してから実行してる印象です。


##   ・vi
用途 :
ファイル作成、編集

書式 :
`vi [オプション] [ファイル名] `
``` Linux:実行例
$ vi AnyPlus.txt
```
 補足 :
 1.コマンドモードでファイルが開かれる
 2.iキーで編集モード、Escキーでコマンドモードへ戻る
 3.上書き保存はコマンドモードにて`:wq`、破棄する場合は`:q`または`:!q`
 
所感 :
`cat`コマンドとセットで使っている印象。
エビデンスの兼ね合いで、`1.編集前をcat`→`2.編集でvi`→`3.編集後をcat`と行うのが様式美

##   ・mkdir
用途 :
ディレクトリ作成
ディレクトリ構成の修正やファイル避難

書式 :
`mkdir [オプション] [ディレクトリ名]`
``` Linux:実行例
$ mkdir work01
 ※カレントディレクト(現在地)に「work01」という名前のディレクトリが作成される。
```
所感 :
構成が違ったときに`rmdir`(ディレクトリ削除)とセットで使っている。
ファイル作成は`vi`、ディレクトリ作成は`mkdir`

##   ・mv
用途 :
ファイル、ディレクトリの移動(カット・アンド・ペースト)

書式 :
`mv [オプション] [移動元(ファイルまたはディレクトリ)] [移動先(ファイルまたはディレクトリ)]`
``` Linux:実行例
$ mv AnyPlus.txt AnyPlus01.txt
 ※AnyPlus.txtのファイル名がAnyPlus01.txtに変更される。この時AnyPlus.txtはいなくなっている。
```
所感 :
間違ったディレクトリに配置してしまった際に使用するコマンド
元ファイルも必要な場合は`cp`コマンドを使用する。

##   ・cp
用途 :
ファイル、ディレクトリのコピー(コピー・アンド・ペースト)

書式 :
`cp [オプション] [コピー元(ファイルまたはディレクトリ)] [コピー先(ファイルまたはディレクトリ)]`

``` Linux:実行例
$ cp AnyPlus.txt AnyPlus01.txt
 ※内容はAnyPlus.txtでファイル名がAnyPlus01.txtが作成される。この時AnyPlus.txtは存在している。
```
所感 :
同じ内容で違う名前のファイルが必要なときは`cp`コマンド
一部内容に変更が必要な場合は`sed`コマンドを使う印象です。

##   ・sed
用途 :
コピー時に連番のファイル名とファイル内容が必要になったとき

書式 :
`sed [オプション] [スクリプトコマンド] [入力ファイル]`
`sed [オプション] [スクリプトコマンド] [入力ファイル] > [出力ファイル]`
``` Linux:実行例
$ ls
AnyPlus01.txt
$ sed 's/AnyPlus01/AnyPlus02' AnyPlus01.txt > AnyPlus02.txt 
$ ls
AnyPlus01.txt AnyPlus02.txt
※AnyPlus01.txt内にあるAnyPlus01の記載をAnyPlus02に変更して、その内容をAnyPlus02.txtにして保存している。
```
所感 :
可能性の塊と言ったら過言になりそうなコマンドですが、
いちいち`vi`コマンドで連番を書き込まなくて済むので
これからも積極的に使いたいコマンドです。

##   ・chmod
用途 :
ファイル、ディレクトリの権限(パーミッション)変更

書式 :
`chmod [オプション] [mode] [ファイルまたはディレクトリ]`
``` Linux:実行例
$ chmod 775 AnyPlus02.txt 
```
所感 :
`vi`や`rm`コマンドで操作できないファイルはパーミッション設定がおかしい場合がたまにあるので
ここも`ls -al`で見るのが確実。

##   ・ip
用途 :
通信環境の確認

書式 :
`ip [オプション] [オブジェクト] [サブコマンド]`
``` Linux:実行例
$ ip a
※ipアドレスの確認
```
所感 :
`ip a`でIPアドレスが合ってるかどうかを確認している。
変更等が必要であれば`nmcli`コマンドを使う。

##   ・ping
用途 :
疎通確認

書式 :
`ping [オプション] [対象のIPアドレスまたはドメイン名]`
``` Linux:実行例
$ ping -c 3 xxx.xxx.xxx.xxx(IPアドレス) 
※対象のIPアドレスに対して-c(カウント)で3回疎通を行う。
```
所感 :
構築した環境にて別環境と疎通が出来るのか確認する際に使用している。
`-c`で回数を設定していないとエンドレスで疎通確認が行われるので注意(`Ctrl+C`で止められる)

##   ・rm(rmdir)
用途 :
ファイルの削除(ディレクトリの削除)

書式 :
`rm [オプション] [ファイル1...] `
`rmdir [オプション] [ディレクトリ] `
``` Linux:実行例
> rm AnyPlus.txt
※確認が表示され、yまたはyesを入力して削除される。
```
所感 :
`rm -R`でディレクトリも消せるので`rmdir`はそんな使わない印象。
やるときはダブルチェック必須。


# 最後に
以上が、現場で使ったLinuxコマンド(一部抜粋)でした。
使用頻度と記憶に残っているコマンドから書いているので、
現場じゃ必須の例のコマンドがない！等ありましたら教授いただけますと助かります。

# 参考文献
1. Linuxコマンド逆引き大全 | 日経クロステック（xTECH）   　　　　
   https://xtech.nikkei.com/it/article/COLUMN/20060224/230568
2. Linux基本コマンドTips - ＠IT
   https://atmarkit.itmedia.co.jp/ait/series/3065/
3. Solaris ユーザーズガイド (上級編)
   https://docs.oracle.com/cd/E19253-01/816-3946/index.html