Python
Linux
状態チェック
## アップデート # RedHat系(RPM) sudo dnf check-update sudo dnf upgrade -y [個別RPMパッケージ] # Debian系(deb) sudo apt update apt list --upgradable sudo apt upgrade -y [個別debパッケージ] ## ディストリビューションのバージョン # RedHat系 Debian系 共通 cat /etc/os-release # Debian系 cat /etc/lsb-release ## ホスト名確認 hostnamectl hostname ## OS情報 # 共通 uname -a # OS, PC名, kernel, -v情報全て uname -r # kernelバージョン確認 ## 時刻 timedatectl # タイムゾーン・時刻設定の確認 LANG=C date # 現在時刻の確認 ## ログインシェル初期設定 echo $SHELL ## パーミッション初期設定 umask # デフォルトのパーミッション確認(RedHat系 0002)(Debian系 022) umask -S # シンボル形で確認 ## ドライブの空き容量確認 df -h --total # デフォはバイト表示 -h(1024B単位でG,M,K表示) --total最後に合計が表示される ## ディレクトリの使用量の確認 du -sh ~/Onedrive(例) # 親ディレクトリにまとめて表示し、まとまった使用量で表示(この場合、--totalは意味ないから割愛) du -h --total ~/snap(例) # 子ディレクトリを表示し、それぞれの使用量も全て表示 ▲とんでもなく長くなる時あるから注意! ## メモリ使用量の確認 free # KB表示 ## フォルダツリー表示 tree ~/snap # システムの負荷状況を確認 vmstat -SM # Virtual Memory # -SM はMB表示
ディレクトリ・ファイル操作1
ディレクトリ・ファイル作成 ls -1h mkdir -p training/dir #デフォ 775 (directory) touch training/file #デフォ 664 (file) ls -lh training rm training/file # 一旦消して・・ dd if=/dev/zero of=training/file bs=500KB count=2 # 1MBサイズのfileを作成 #デフォ 644(file) ls -lh training ディレクトリ移動 cd training パーミッション編集 chmod 777 dir file # ディレクトリ権限とファイル権限を777に変更 ls -lh chmod go-w dir # ディレクトリ権限を755に変更 ls -lh chmod a-wx file # ファイル権限を444に変更 chmod u+wx file # ファイル権限を744に変更 ls -lh
変数
echo '#!/bin/bash' > file # ファイルにプログラムを書き込み echo 'echo "My name is $name."' | tee file # 追記 ${name}も可 cat file ./file # プログラム実行(u=rwxであること) シェル変数 name=masa # シェル変数の定義 echo $name set | grep masa export name # 環境変数に設定 printenv | grep masa export -p | grep masa export -n name # 環境変数からnameを削除 ./file # masaが表示されなくなったことを確認 export -p | grep masa unset name # シェル変数からnameを削除 echo $name # 消えたことを確認 set | grep masa 環境変数の全体確認 printenv | tr ':' '\n' # : を改行に変換して整形表示 通っているパスを確認 echo $PATH | tr ':' '\n' | sort (| grep ***) # sort追加で重複も視認 cat ~/.bashrc | more -10 # 大元のファイルはコレ
ディレクトリ・ファイル操作2
cp file dir/copiedfile ls -lh dir ./dir/copiedfile # 実行 # 圧縮ファイルを作っておく tar -zcvf dir.tar.gz dir # tar.gz形式でdirを圧縮(デフォルトで再帰的) zip -r dir.zip dir # zip形式でdirを再帰的に圧縮
データ転送
AWSでEC2(RHEL9)を立ち上げる ## 別シェル(別PCでも可) ssh -i keypair.pem ec2-user@RHEL_GIP # AWSのRHEL9 EC2にログイン su - masa # masaにユーザ変更 mkdir receive # SCPでファイルを受け取る為のディレクトリを作成 ## 元シェル find ~ -name 'keypair' scp -i keypair.pem -r dir masa@RHEL_GIP:/home/masa/receive # dirを圧縮せずに再帰的に転送 scp -i keypair.pem dir.tar.gz masa@RHEL_GIP:/home/masa/receive # tar.gzを転送 scp -i keypair.pem dir.zip masa@RHEL_GIP:/home/masa/receive # zipを転送 ## 別シェル receiveディレクトリ内を確認 cd receive ls -lh dir dir.tar.gz dir.zip ls -lh dir # -r dirで送ったディレクトリを確認 rm -r dir tar -zxvf dir.tar.gz # tarで送ったファイルを解凍 rm -r dir unzip dir.zip # zipで送ったファイルを解凍 ※RHELにはunarコマンドは存在しないらしい・・・ rm d* # 圧縮ファイルは消しておこう receiveディレクトリは残しておこう 別シェルを落として、EC2は停止しておく
ネットワーク試験
## 応答用メッセージを作成 echo 'Connection test successful!' > response ## 簡易的に疑似サーバを建てて疎通試験 nc -l 8000 < response # 8000番ポートでlisten(-l)状態に nc dynabook 8000 # 別シェルから疑似サーバに接続試験 > Connection test successful!
ディレクトリ・ファイル操作3
mv file dir/movedfile ls -lh dir ls -lh rm dir/*file # copiedfile, movedfile両方消す rm -r dir* # dirディレクトリ, dir.tar.gz, dir.zip すべて一気に消せる cd # ホームディレクトリに移動 rmdir training # これできれいさっぱり
プロセス監視
uptime # 稼働時間 プロセス実行終了(パフォーマンスモニタを見ながら) yes > /dev/null & # [1] バックグラウンド top # [2] uptimeと%CPUを確認 # 起動時刻,稼働時間,負荷平均,タスク,PID,CPU使用量率,メモリ使用量率 Ctrl+z # [2]topを一時停止 ps kill -9(-kill) ***** # yesのPID [1]- Killed yes > /dev/null ps fg 2(%2) # [2]topをフォアグラウンドに戻す Ctrl+c # [2]topを終了 ps
ネットワーク監視
(sudo dnf install net-tools) curl inet-ip.info # 自宅ルータのWAN側GIPアドレス curl globalip.me # 同じく自宅ルータのWAN側GIPだが、反応がちょっと遅い(なぜ?) networkctl status # 自PCのネットワーク情報 ifconfig # NWインターフェース確認、設定 ip -4 a # 各IFのIPv4アドレス確認(addr | address でも可) route # ルートテーブル情報 ss -pantsu # ソケット情報 ping -c 4 8.8.4.4 # GoogleセカンダリDNSサーバにping4回 traceroute -n 8.8.4.4 # 名前解決せず高速に経路確認 tracepath -n 8.8.4.4 # pmtu dig schneehoppli.com any # A:NWアドレス NS:ネームサーバ MX:メールサーバ SOA:SOA情報 ANY:すべて host -v schneehoppli.com # 同上 nslookup schneehoppli.com # GIPアドレス調査 curl -I https://www.schneehoppli.com # レスポンスヘッダ curl -v https://www.schneehoppli.com # コンテンツ取得時の詳細ログ
Cisco
Linux端末からCisco機器にコンソール接続(minicom使用)
# シリアルポートの確認(USBにシリアルケーブルを挿した状態で) ls /dev | grep ttyUSB ttyUSB0 # minicomをシリアルポート指定で起動(英語の方が表示が整う) LANG=C minicom -D /dev/ttyUSB0 # minicomを終了するときは Ctrl+A z x Enter
# show clock # SYSクロックの確認 # show calendar # HWクロックの確認(startup)