【情報整理②】日々の検索に疲弊しきった私のための、基本的なLinuxコマンドの整理①

・Netflixによって世界中から人気を博している「こんまり」さんに、多大な影響を受けて情報整理をしていく記事第二弾。
・「人生変化」という壮大な理由ではなく、自己顕示にまみれた醜い目的のため、今回もしっかりと整理していこう。
・今回は、膨大なLinuxコマンドを二・三回に分けて、記録していくことにしよう。
・[情報整理第一弾はこちら](https://qiita.com/t_o_d/items/62c464218d438f700bef)

# Linuxコマンドメモ①
## 移動・コピー
### cdコマンド
・ホームフォルダ移動

```
cd
```
・指定フォルダ移動

```
cd フォルダ名
```
・ひとつ前のフォルダ移動

```
cd ..
```
### mvコマンド
・ファイル移動

```
mv 移動元 移動先
``` 
・ファイル移動（確認してくれる。）

```
mv -i 移動元 移動先
```
・ファイル移動（強制）

```
mv -f 移動元 移動先
```
### cpコマンド
・ファイルやディレクトリのコピー

```
cp コピー元 コピー先
```
・ファイルやディレクトリのコピー（上書き確認）

```
cp -i コピー元 コピー先
```
・ディレクトリごとコピー

```
cp -r コピー元 コピー先
```
・ファイルやディレクトリのコピー（ファイル情報も一緒にコピー）

```
cp -p コピー元 コピー先
```
・ファイルやディレクトリのコピー（コピーしたファイル名を表示）

```
cp -v コピー元 コピー先
```
・ファイルやディレクトリのコピー（ファイル情報も一緒にコピー）

```
cp -p コピー元 コピー先
```
・ファイルやディレクトリのコピー（ファイル情報も一緒にコピー）

```
cp -p コピー元 コピー先
```
## 作成・削除
### mkdirコマンド
・新規フォルダ作成

```
mkdir フォルダ名
```
・既存フォルダの中に新規フォルダ作成

```
mkdir 既存フォルダ/新規フォルダ名
```
・新規フォルダ作成して、その中にもフォルダ作成

```
mkdir -p 新フォルダ名/新フォルダ名2
```
・複数フォルダ作成

```
mkdir 新フォルダ名 新フォルダ名2 新フォルダ名3
```
### rmdirコマンド
・空フォルダ削除

```
rmdir フォルダ名
```
### touchコマンド
・ファイルの日時情報変更（現在日時）・新規ファイル作成

```
touch ファイル名
```
・ファイルの日時情報変更（指定日時）・新規ファイル作成

```
touch -t YYYYMMDDHHmm ファイル名
```

### rmコマンド
・ファイル削除コマンド

```
rm ファイル名
```
・フォルダごと削除

```
rm -r 削除したいフォルダ名
```
・削除確認メッセージを出す。

```
rm -i ファイル名
```
・削除対象が4つ以上の場合に、確認メッセージを出す。

```
rm -I 削除ファイル群
```

## 表示・確認系
### lsコマンド
・現在いるディレクトリの情報表示（名前のみ。）

```
ls
```
・現在いるディレクトリの情報表示（名前以外の情報も。）

```
ls -l
```
・ファイル名の先頭が「.」のものを表示。

```
ls -a
```
・最終更新が新しい順に表示。

```
ls -t
```
・最終更新が古い順に表示。

```
ls -r
```
・縦に並べて表示。

```
ls -1
```
・ファイルのノード番号表示

```
ls -i
```
・サブディレクトリの下のすべてのファイルを表示

```
ls -R
```
・設定データも含めたすべてのデータ表示

```
ls -aR
```
・「ls -l」の強化版。こっち使う。

```
ll
```

### pwdコマンド
・カレントディレクトリ（作業中場所）表示

```
pwd
```

### catコマンド
・ファイル中身（短い）表示（行番号非表示）

```
cat test.txt
```
・行番号表示

```
cat -n test.txt
```
・行番号表示（空行無視）

```
cat -b test.txt
```
・複数ファイル連結して、新規ファイル作成。

```
cat test.txt test2.txt > test3.txt
```
### lessコマンド
・ファイル中身（長い）表示

```
less test.txt
```
・行番号表示

```
less -N test.txt
```
・行番号表示（空行無視）

```
less -b test.txt
```
・複数ファイル連結して、新規ファイル作成。

```
less test.txt test2.txt > test3.txt
```
・行番号表示

```
less -b test.txt
```
### historyコマンド
・コマンドの実行履歴表示

```
history
```
・コマンドの実行履歴全削除

```
history -c
```
・コマンドの実行履歴削除（番号指定）

```
history -d 実行番号（historyコマンドで確認）
```
・コマンドの実行履歴をファイルに書き込む。(例 : test.txt)

```
history -w test.txt
```
### manコマンド
・コマンドマニュアルを見る。

```
man コマンド名
```
### echoコマンド
・文字列や変数を表示

```
echo 文字列
```
### dateコマンド
・現在の日時を表示

```
date
```
・現在の日時を表示(yyyy/mm/dd形式で表示)

```
date "+%y%m%d"
```
### diffコマンド
・比較箇所表示

```
diff ファイル名1 ファイル名2
```
・比較箇所表示(空白文字無視)

```
diff -b ファイル名1 ファイル名2
```
・比較箇所表示(空行無視)

```
diff -B ファイル名1 ファイル名2
```
・比較箇所表示(一致しない前後の行数も表示)

```
diff -C 行数 ファイル名1 ファイル名2
```
・比較箇所表示（大文字と小文字の違い無視。）

```
diff -i ファイル名1 ファイル名2
```
・比較箇所表示(内容が同じことも表示)

```
diff -s ファイル名1 ファイル名2
```

### haxdumpコマンド
・ファイルの中身を16進数で表示

```
hexdump ファイル名
```
・ファイルの中身をASCII文字で表示

```
hexdump -c ファイル名
```

### psコマンド
・実行中のプロセス表示

```
ps
```
・端末操作のプロセス表示

```
ps a
```
・実行中のプロセス表示（ユーザー名と開始時刻表示）

```
ps u
```
・端末操作以外のプロセス表示

```
ps x
```
### pstreeコマンド
・プロセスの親子関係表示

```
pstree
```
### ifconfigコマンド
・インターネットのIPアドレス表示

```
ifconfig
```
### netstatコマンド
・ネットワークの状況表示

```
netstat
```
・ネットワークの状況表示

```
netstat -r
```


## 検索系
### findコマンド
・ファイル名検索

```
find ファイル名
```
・「name」オプションで、一部名前・ワイルドカード指定で検索

```
find フォルダ名 -name \*.拡張子
```
・今日アクセスされたファイルやフォルダ検索

```
find 検索対象名 -atime 0
```
・5日以内にアクセスされたファイルやフォルダ検索

```
find 検索対象名 -atime -5
```
・5日よりも前ににアクセスされたファイルやフォルダ検索

```
find 検索対象名 -atime +5
```
・今日変更されたファイルやフォルダ検索

```
find -mtime 0
```
・5日以内に変更されたファイルやフォルダ検索

```
find -mtime -5
```
・5日よりも前に変更されたファイルやフォルダ検索

```
find -mtime +5
```
※その他オプションは、検索する。

### grepコマンド
・正規表現で文字列検索

```
grep 検索正規表現 ファイル名
```
・大文字と小文字を区別しない

```
grep –i 検索正規表現 ファイル名
```
・検索結果の行番号表示

```
grep -n 検索正規表現 ファイル名
```
・検索結果のファイル名のみ表示

```
grep -l 検索正規表現 ファイル名
```
・検索結果のフォルダ対象

```
grep -r 検索正規表現 ファイル名
```

## リセット
### clearコマンド
・画面を綺麗にする。

```
clear
```
※「Ctrl + L」でも同じことができる。こちらを覚える。

## まとめ
- 今回は、Linuxコマンドメモの第一回目ということで、あまりの膨大ぶりに、先人の開発者達への敬意と同時に、若干引いてしまう恩知らずの自分にあきれながら、記事を書く。
- 色々なことを見つけたい検索魔のため、「こういうところを一つにまとめて、効率化しよう」という、天文学的数字の人々が思いつきそうなことを、したり顔で実行していくさまは、呆れを通り越して、滑稽の域。
- その嘲笑に気づくことなく、今後も無垢な表情で日々を過ごしていくだろう。

## 参考
- https://qiita.com/rokuta96/items/d981e432b4c607cea20d  
→こちらの記事を参考にしました。大変お世話になりました。
- https://eng-entrance.com/category/linux/linux-command  
→こちらでは、詳細な使い方やオプションなどが、例をまじえて分かりやすく紹介されています。大変お世話になりました。