LinuxやVim操作のコマンド忘れがちなので一覧にしてみました。

## はじめに
LinuxやVimのコマンドを忘れがちなので一覧表を作成しました。


## １.ファイル/ディレクトリの操作
```yaml
## ファイルの作成
$ touch ファイル名

## ディレクトリの作成
$ mkdir ディレクトリ名

##ディレクトリBの親ディレクトリAを作成
$ mkdir -p ディレクトリA ディレクトリB　　　 
```
・<font color="red">**mkdir**</font>  『`m`a`k`e `dir`ectory』の略
・<font color="red">**-p**</font> 『`p`arents』の略
```yml
## カレント(作業中)ディレクトリの確認
$ pwd

## ディレクトリの階層構造の確認
$ tree

## カレント(作業中)ディレクトリの移動
$ cd ディレクトリ名  #指定ディレクトリへ移動
$ cd            #ホームディレクトリへ移動
$ cd ../  　　　　　    #1つ上層のディレクトリへ移動
$ cd ../../  　　　　　 #2つ上層のディレクトリへ移動
```
・<font color="red">**pwd**</font>  『`p`rint `w`orking `d`irectory』の略
・<font color="red">**cd**</font> 『`c`hange `d`irectory』の略
```yml
## カレント(作業中)ディレクトリのパーミッション（権限）確認
$ ls -l  

## カレント(作業中)ディレクトリ(隠しファイル含む)のパーミッション（権限）確認   
$ ls　-la
```
・<font color="red">**ls**</font> 『`l`i`s`t 』の略
```yml
## ファイルの名称を変更する （ファイルA → ファイルB)
$ mv ファイルA　ファイルB　

## ディレクトリの名称を変更する （ディレクトリA → ディレクトリB)
$ mv ディレクトリA　ディレクトリB　

## ファイルAをディレクトリBに移動する
$ mv ファイルA　ディレクトリB

## ファイルAを一つ上の階層へ移動する
$ mv ファイルA ../　　 
```
・<font color="red">**mv**</font> 『`m`o`v`e 』の略
```yml
## ファイルAをファイルBとしてコピーする　(タイムスタンプそのまま)
$ cp (-p) ファイルA　ファイルB　　 　

## 　ファイルAをディレクトリBにコピーする　 　　　
$ cp ファイルA　ディレクトリB　　

## 　#ディレクトリAをディレクトリBの中にコピーする　　　　
$ cp -r ディレクトリA　ディレクトリB　　
　
```
・<font color="red">**cp**</font> 『`c`o`p`y 』の略


```yml
## 　ファイルAを削除する　 
$ rm ファイルA

## 　ディレクトリBを削除する　 
$ rm -r ディレクトリB
```
・<font color="red">**rm**</font> 『`r`e`m`ove 』の略

```yml
## hogeを含むファイル名を検索
$ find . -name "*hoge*"

## ファイルA内の特定文字列を検索
$ grep 特定文字列　ファイルA

## hogeから始まるファイル名/ディレクトリ名を検索
$ ls -la hoge*

## ファイルAの内容を行番号含めて表示
cat -n ファイルA

## ファイルA内の指定した文字列が含まれる行を表示
$ grep 文字列パターン ファイルA　　　

## ファイルAのコメントアウト行を除いて内容を表示
cat ファイルA | grep -v "#"
```

## ２.Vim操作
#### コマンドモード
| コマンド　　        |       説明　　                  |    
|:-----------------|-------------------------------|
| :q               | viエディタを終了                  |   
| :q!              | ファイル編集を保存せずにviエディタを終了|     
| :w               | ファイルを保存                    |     
| :wq (:zz)        | ファイルを保存して終了              |     
| O                | 現在カーソルがある行の行頭へ移動      |     
| $                | 現在カーソルがある行の行末へ移動      |     
| gg               | ファイルの先頭へ移動                |
| hまたは⬅️         | １文字左へ移動                     |
| jまたは⬇️         | １文字下へ移動                     |
| kまたは⬆️         | １文字上へ移動                     |
| lまたは⏩         | １文字右へ移動                     |
| :set number      | 行番号を表示                      |
| :set uonumber    | 行番号を非表示                    |
| :set hlsearch    | 検索結果のハイライト表示             |
| :set nohlsearch  | 検索結果のハイライト非表示           |


#### 挿入モード
| コマンド　　        |       説明　　                                   |    
|:-----------------|------------------------------------------------|
| i                | カーソル位置から入力を開始                           |   
| I                | カーソルを行頭に移動し、その右側から入力を開始            |     
| esc              | コマンドモードへ変更                                 |     
| a                | カーソルの右側の位置から入力を開始                     |     
| A                | カーソルを行末に移動し、その右側の位置から入力を開始       |     
| o                | カーソル位置がある行の下に空白行を挿入し、その行で入力を開始 |     
| O                | カーソル位置がある行の下に空白行を挿入し、その行で入力を開始 |

## ３.その他の操作
#### パーミッション管理
```yml
## 指定したファイルの所有グループを変更
$ chgrp グループ名　ファイル名

## 指定したディレクトリ以下全てのファイルの所有グループを変更         
$ chgrp -R グループ名　ディレクトリ名    

## 指定したファイルのアクセス権を変更
$ chmod アクセス権(数値)　ファイル名 
$ chmod -R アクセス権

## 指定したファイルの所有者を変更                  
$ chown 所有者　ファイル名 

## 指定したディレクトリ以下全てのファイルの所有者を変更          
$ chown -R 所有者　ディレクトリ名      
```
・<font color="red">**chgrp**</font> 『`ch`ange `gr`ou`p`』 の略
・<font color="red">**chown**</font> 『`ch`ange `own`er 』の略
・<font color="red">**chmod**</font> 『`ch`ange `mod`e 』の略

```yml
r w - r w - r - -
----- ----- -----
所有者 ｸﾞﾙｰﾌﾟ その他

・読み取り権利 = r (Read)    4
・書き込み権利 = w (Write)   2
・実行権利    = x (eXecute) 1
```

#### シェル操作
```yml
## エイリアスを作成、表示
$ alias

## エイリアスを削除                            
$ unalias

## コマンドのエイリアスを設定                          
$ alias [別名='コマンド']             

## 指定した変数の内容を表示
$ echo  $変数名                     

## 指定した変数をエクスポート
$ export 変数                      

## コマンド履歴を表示
$ history                         

## 環境変数を表示
$ printenv

#シェル変数と環境変数を表示                        
$ set                             
```
#### パッケージ管理
```yml
## 指定したパッケージをアンインストール
$ rpm -e パッケージ名

## 指定したパッケージをインストール                
$ rpm -ivh パッケージファイル名        

## インストール済みのパッケージを一覧表示
$ rpm -qa                         

## 指定したパッケージをアップグレード
$ rpm -Uvh パッケージファイル名        

## 指定したパッケージをインストール
$ yum install パッケージ名          

## 指定したパッケージをアンインストール
$ yum remove パッケージ名           

## 指定した名前のパッケージを検索
$ yum search "キーワード"           

## システム全体をアップデート
$ yum update                     

## 指定したパッケージをアップデート
$ yum update パッケージ名           
```