WAVE Log
nmcli

ネットワークの設定管理をする

インタフェースおよびステータスを表示

# nmcli d DEVICE TYPE STATE CONNECTION eth0 ethernet 接続済み System eth0 lo loopback 管理無し --

個別インターフェースのパラメータ一覧表示

# nmcli d show eth0

固定 IPv6 アドレスを設定

# nmcli c mod "System eth0" ipv6.addresses 2001:db8::/32 # nmcli c mod "System eth0" ipv6.method manual

デフォルトゲートウェイを設定

# nmcli c mod "System eth0" ipv6.gateway 2001:db8::1

DNS サーバの設定

# nmcli c mod "System eth0" ipv6.dns 2606:4700:4700::1111,2606:4700:4700::1001

設定反映

# nmcli c up "System eth0"

openssl

秘密鍵と自己署名証明書を作成

秘密鍵と自己署名証明書を一括で作成

# openssl req -x509 -sha512 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out server.crt ‥‥‥‥‥ ‥‥‥‥‥ Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:www.example.com Email Address []:admin@example.com

秘密鍵の内容を確認

# openssl rsa -text -noout -in private.key

証明書の内容を確認

# openssl x509 -text -noout -in server.crt

passwd

パスワードを設定あるいは変更する

一般ユーザ(linux)のパスワードを設定あるいは変更する

# passwd linux

paste

複数ファイルを「横方向」に結合する

# cat file1.txt aaa bbb ccc

# cat file2.txt ddd eee fff

# paste -d ' > ' file1.txt file2.txt > file3.txt

# cat file3.txt aaa > ddd bbb > eee ccc > fff

-d は区切り文字(delimiter)を指定するオプション

ps

システムで実行しているプロセスを表示する

# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

a:自分以外のユーザーのプロセスも表示する
u:ユーザ名,CPU占有率,メモリ占有率,開始時刻などを表示
x:制御端末のないプロセス(デーモンなど)の情報も表示する
w:表示内容が長い場合に、w ひとつあたり1行分表示行を増やす。

表示されるそれぞれの要素の意味は以下の通りです。

USER:所有するユーザ名
PID:プロセスID
%CPU:CPU時間と実際に処理した時間の比率
%MEM:実メモリの使用量
VSZ:仮想メモリの全サイズ
RSS:使用中の物理メモリ量
TTY:制御端末の種類及び番号
STAT:プロセス状態
 R 実行中 (running)
 S 休眠中 (sleeping)
 D 割込み不可能な休眠中
 T 停止中かトレース中
 Z ゾンビプロレス
 W スワップ・アウトしたプロセス
 N ナイス値が正であることを表す
START:開始時刻
TIME:実行時間
COMMAND:プロセスのコマンド名

pwd

現在自分がアクセスしている場所(ディレクトリ)を表示する

# pwd

rm

ファイル,ディレクトリの削除

# rm ファイル名

# rm -r ディレクトリ名

削除確認なしにする

# rm -rf ディレクトリ名

rpm

rpm パッケージのファイル名を package-3.5-1.i386.rpm とすると、
(package=ファイル名,3=バージョン,5-1=リリース番号,i386=プラットホーム)

詳細情報(v),進行状況(h)を表示してインストール(i)する。

# rpm -ivh package-3.5-1.i386.rpm

パッケージがインストールされているかの問い合わせ。

# rpm -q package

↑インストールされていれば、バージョンも表示される。

古いバージョンがインストールされている場合はアップグレードし、古いバージョンがインストールされていない場合はインストールする。

# rpm -Uvh package-3.5-1.i386.rpm

古いバージョンがインストールされている場合のみアップグレードする場合は

# rpm -Fvh package-3.5-1.i386.rpm

sdiff

2つのファイルの差分を得る

test1 と test2 ファイルの差分を表示

# sdiff -sB test1 test2

-s:共通な行を表示しない
-B:空行を挿入・削除するだけの違いは無視する

sed

文字列の置換をする

test.html というファイルの euc-jp という部分を UTF-8 に変える

# sed -i 's/euc-jp/UTF-8/g' test.html

-i はファイルを編集するオプション。
-e を指定した場合は、ファイルの変更はせずに標準出力に出力するだけになる。

区切り文字は「/」以外でも可。URL の「/」のエスケープをしなくてよくなる。「!」にした例。

# sed -i 's!http://www.wave440.com!https://www.wave440.com!g' test.html

変数の場合は「'」で囲む

# sed -i 's/number/'${i}'/g' test.txt

連続するスペースを半角スペース一つにする。

# sed -e 's/\s\+/ /g' test.txt

行頭の連続するスペースを削除する。

# sed -e 's/^\s\+//g' test.txt

同じ位置にある文字に置換する。(例:全角数字→半角数字)

# echo "20210713" | sed 'y/0123456789/0123456789/'

最短マッチ(sed は最長マッチのため、否定の文字クラスを利用する。)

# sed -i 's/"visits"[^,]*,/"visits":0,/g' speed-dial-2.json

「"visits":123,」などが「"visits":0,」に置換される。「[^,]」は、「,」ではない文字。

テキストファイルの行を削除する

45行目を削除する

# sed -i '45d' file.txt

5行目から20行目までを削除する

# sed -i '5,20d' file.txt

13行目以降を削除する

# sed -i '13,$d' file.txt

「pattern」を含む行を削除する

# sed -i '/pattern/d' file.txt

空行を削除する

# sed -i '/^$/d' file.txt

テキストファイルの指定した行のみを出力する

5行目のみを出力する

# sed -n 5p file.txt

テキストファイルの行頭,行末に文字列を追加する

行頭に「"」を追加する

# sed -i 's/^/"/g' file.txt

行末に「"」を追加する

# sed -i 's/$/"/g' file.txt

文字列「AAAA」を含む行の行頭に「;」を追加する

# sed -i '/AAAA/s/^/;/g' file.txt