AmazonLinux コマンド

自分の覚書のために多数の方を参考にさせていただいています。

#AmazoLinuxはRedHat系のディストリービュージョンになる
CentOSやRHELに近い
[Amazon Linuxの特徴とCentOSとの違い まとめ](https://dev.classmethod.jp/cloud/aws/amazon-linux-centos-rhel-difference/)

***コマンド***
ディストリービュージョンの確認

```
cat /etc/system-release
```

yumでインストール済みのパッケージを表示する

```
yum list installed | more //テキストを1画面ずつ止めながら表示する
sudo find / -name hoge //ファイル検索
```
[yumコマンドで既にインストールしたソフトを調べる](http://www.searchman.info/tips/1800.html)
コマンド――実行コマンドのフルパスを表示する

```
$ which echo
--> /bin/echo
```
シェルのコマンドの解釈を調べることができる

```
$ sh -x -c "find . -name "cloudwatch""
+ find . -name cloudwatch
./cloudwatch
```
プロセスを強制終了する

```
$ ps ax | grep scan
 7858 pts/3    Tl     0:00 ./scan
 7986 pts/2    S+     0:00 grep --color=auto scan
$ kill 7858
```
#プロセス管理

```
ps aux       //システムに走っている全てのプロセスを表示する
ps auxf      //プロセススリーを表示してくれる
```
-a コマンドラインの引数を表示する
-p ユーザIDを表示する
-u ユーザIDを表示する
-c 同じ内容のツリーをまとめないで表示する

```
pstree -apuc //pstreeコマンド　プロセスの親子関係が把握しやすい
```


パイプライン処理・標準入出力によるデータ処理
「|」（縦棒）はパイプと呼び、あるコマンドの出力を別のプログラムの入力に引き渡す操作

```
./request | ./scan
```
teeコマンドの使い方　　
[teeコマンドについて詳しくまとめました 【Linuxコマンド集](https://eng-entrance.com/linux-command-tee)

ルートディレクトリからファイル名で検索する

```
find / -type f -name "*201904*"
```

```
find *.dat | tee find.txt //findコマンドの実行内容が画面出力され、ファイルに上書きされる
```
オプション -a（オプション--append

catコマンドでファイルに書き込み
[catコマンドでファイルに書き込みをする](https://hacknote.jp/archives/13756/)
ファイルをまるごと書き換える


```
cat <<EOF > ファイル
書き込む内容
EOF
```
ファイルの末尾に追加して書き込む

```
cat <<EOF >> ファイル
付け足す内容
EOF
```
Listen portの確認
[lsofコマンドで覚えておきたい使い方9個](https://orebibou.com/2016/04/lsof%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E4%BD%BF%E3%81%84%E6%96%B99%E5%80%8B/)

```
sudo lsof -i -P //プロセスが使用しているポートを確認する
```
[【 ss 】コマンド](https://www.atmarkit.co.jp/ait/articles/1710/06/news014.html)

```
sudo ss -ltunp //接続待ちをしているソケットを確認する
```
***初期解析方法***
サービスを確認するコマンドはたくさんある

topコマンド　リアルタイムにプロセスの状態を表示


```
top //システム全体の負荷、プロセス、CPU、メモリ、スワップの統計情報
```
メモリ上に常駐して要求に応じてサービスを提供する(各種システムサービスやサーバープログラム)等のデーモンが起動するためのファイルが格納されている
(起動スクリプトと呼ばれている)

```
ls /etc/init.d
```
[サービスの自動起動の設定を行うことができます](https://qiita.com/yukikimoto/items/6bd18c8c74e580af177b)

```
chkconfig
```
ネットワーク型ファイアウォール

```
iptables --list
```
#環境変数の設定
一覧取得

```
sudo printenv
```
変数の値変更

```
export HOSTNAME="ip-3.91.104.214"
```
特定の環境編巣の値を取得する

```
echo $HOSTNAME
```
~/.bash_profileに環境変数を設定しておくとログインするときに関設定してくれる

```
sudo vi ~/.bash_profile
export HOSTNAME="ip-3.91.104.214"
```
コピペコマンド

```
cat <<EOF >> ~/.bash_profile
export HOSTNAME="ip-3.91.104.214"
EOF
```
[tailコマンドについて詳しくまとめました 【Linuxコマンド集】](https://eng-entrance.com/linux-command-tail)

```
tail -n 2 -fv /var/log/messages //ファイルの最終2行から表示を行い、最終行を追跡する
```

#yumの使い方

```
yum clean all
yum list installed
sudo yum remove perl-CGI.noarch
//xxx packages excluded due to repository priority protections とエラーが出たときに使うと有効的
yum provides perl-URI
sudo yum install -y perl-URI-1.60-9.8.amzn1.noarch
```
例

```
yum provides *Compress
sudo yum install -y perl-Compress-Raw-Zlib-2.061-4.1.amzn1.x86_64
sudo mv /usr/lib64/perl5/vendor_perl/Compress/Raw/Zlib.pm /usr/lib64/perl5/vendor_perl/Compress/Zlib.pm
```


#見出し
***強調***
[リンク](http)
```

```