Linux (CentOS8) メモ

(2006.12.10 - 2024.4.6)

CentOS 5-6はこちら,CentOS7はこちら

以下,プロンプトが#のコマンドはスーパーユーザー,$は普通のユーザで実行.

AlmaLinux 8

商用のRed Hat Enterprise Linux(RHEL)とバイナリ互換のフリーのLinuxディストリビューション.ElevateでCentOS7からアップグレードできる。

マシン・OS情報

OS version # cat /etc/redhat-release

マシン・OS情報 $ uname -a

CPU $ cat /proc/cpuinfo

メモリ $ cat /proc/meminfo

デバイス名 # fdisk -l

HDD/SSD # smartctl -a デバイス名 

インストール用メディア

RIKENなどからisoファイルをダウンロードして,(ブートできる)インストール用USBメモリを作る。Windows機であればRufusで作成する(インストール不要)。[スタート]ボタンを押してから,DDイメージモードを選ぶ。

HDD

2TB超HDD  4TB超のHDDにCentOS6をインストールするには。

HDD増設 内蔵HDD, USB外付HDDの増設。

設定

/etc/bashrc にログイン時実行コマンドを書いておく。

管理

SELinux無効化

/etc/sysconfig/selinuxのSELINUX=enforcingをSELINUX=disabledに書き換える。この設定を誤り,OSが起動しなくなった時は,grubでkernelの起動オプションにselinux=0を追加してselinux一時無効で起動する(see single user mode)。

再起動・シャットダウン

再起動 # reboot

シャットダウン # shutdown -h now

シングル・ユーザ・モード

rootのパスワードを忘れてしまった時などはsingle user mode でパスワードを新規設定できる.

サービス・プロセス

サービス再起動 # systemctl restart サービス名
サービス確認 # systemctl list-unit-files -t service
サービスON # systemctl enable サービス名
サービスOFF # systemctl diable サービス名
プロセス表示 # ps axc

実行

Ctrl+Z  実行停止

bg Ctrl+Zで停止してbgと打つか,コマンド末尾に&をつけて実行すると,バックグラウンドで実行される。

disown ログアウト後にもプロセスを残すには, コマンドをバックグラウンド実行して,jobsでプロセス番号を調べ(1だったとする),disown %1。プロセスが実行中かどうかはps rxで調べる。

/etc/rc.local に実行したいコマンドを書いておくと,起動時に実行される。起動後300秒してから実行したい場合は「sleep 300; コマンド」。

定期実行 

ログの解析

logwatchをインストールすると(#yum install logwatch),毎日定時にログ解析メールをroot宛てに送ってくる.

yum  dnf  rpm

Yum / Dandified Yum

# yum update または,
# dnf update

パッケージ(ソフトウェア)更新。yumとはYellow dog Updater, Modified。dnfとはYumの後継,Dandified Yum。CentOS8ではyumと打つと,dnfが呼び出される。

yumでエラーが出るとき(DBクリア)

# yum clean all 

それでも直らない時は,

# mv /var/lib/rpm/__db* /tmp/

# rpm --rebuilddb

# mv /var/cache/yum /tmp/ 

をやってから # yum clean all

yum-cron 一定間隔で更新があるかどうかをチェックしてe-mailで通知:  yumでyum-cronをインストールして,サービスyum-cronをONにする。/etc/yum/yum-cron.confのemail_toにメールアドレスを書く。

yum EPEL/Remi 標準外のyumパッケージ 

RPM

tarからRPM作成:RPMファイルは /usr/src/redhat/RPMS/i386/にできる

# rpmbuild -ta xxx.tar.gz

 パッケージ表示:xxxはパッケージ名

# rpm -qa | grep xxx

情報表示:

# rpm -qi xxx

インストール:

# rpm -ivh xxx.rpm

アンインストール:

# rpm -e xxx  

gcc 

CentOSをデフォルトでインストールするとgccがインストールされない.

# yum install gcc*  

ruby2.4 see ruby

ユーザー・グループ

ユーザー

-d ホームディレクトリは省略可.ホームディレクトリは絶対パスで指定.

追加 # /usr/sbin/useradd -d ホームディレクトリ ユーザ名

 削除 # /usr/sbin/userdel ユーザ名

一覧 # cut -d: -f1 /etc/passwd

情報 # finger ユーザ名

ログイン

不可 # /usr/sbin/usermod -s /sbin/nologin ユーザ名

パスワード

設定 # passwd ユーザ名

変更 $ passwd 

グループ

グループ変更 # groupadd グループ名 

グループ削除 # groupdel グループ名

ユーザー追加 # gpasswd -a ユーザ名 グループ名

ユーザー削除 # gpasswd -d ユーザ名 グループ名

グループ表示 $ cat /etc/group

所属表示   $ id

所属変更   $ newgrp グループ名 ;もとのグループに戻るにはexit。 

グループの使い方(例)ユーザーfukudaのプライマリグループはstaffだとします。gpasswd -aで fukudaのサブグループにapacheを加えると,例えば,fukudaでログインしてファイルをつくると,その所有者はfukuda,グループは通常通りプライマリグループstaffになります。一方,newgrp apache とやってから,ファイルをつくると,その所有者はfukuda,グループはapacheになります。これで,apache(wwwサーバー) は書き込めるけれども,他の誰でもは書き込めないファイルを作れます。

所有者の一括変更

フォルダ以下の全ファイル/フォルダの所有者を変更..グループ名,あるいは,ユーザ名は省略可.

# chown -R ユーザ名.グループ名 フォルダ 

ネットワーク

IPアドレス・ホスト名設定 

nmtuiコマンドを使ってtui(テキストUI)で設定。ホスト名 /etc/hpostname, IPアドレス /etc/sysconfig/network-scripts/ifcfgの直接編集は非推奨。

IP, MACアドレス表示  

UNIXでは netstat -i,Windows 2000以降では ipconfig /all,Windows 9x/Meでは winipcfg

# /sbin/ifconfig 

ファイヤーウオール

サービスxxxを

追加 # firewall-cmd --permanent --add-service=xxx

削除 # firewall-cmd --permanent --remove-service=xxx

ポート番号nnnをポート番号 22=ssh, 25=smtp, 80=http, 143=imap, 443=https, 465=smtps, 993=imaps)

追加 # firewall-cmd --permanent --add-port=nnn/tcp

削除 # firewall-cmd --permanent --remove-port=nnn/tcp

設定を

反映 # firewall-cmd --reload

確認 # firewall-cmd --list-all 

ポートスキャン 

ipアドレスのポートをスキャンする。yumでインストールできる。

$ nmap ipアドレス 

ホスト名↔IPアドレス

ホスト名表示   $ nslookup ipアドレス

ipアドレス表示 $ nslookup ホスト名 

リモートログイン,ユーザ名@は省略可

$ ssh ユーザ名@ホスト名

 ファイル転送,使い方はftpと同じ

$ sftp ユーザ名@ホスト名

リモートコピー,コピー元/先は ユーザ名@ホスト名:パス, ユーザ名@やホスト名:は省略可

$ scp コピー元 コピー先  

ファイル

rsync  (ファイル同期)
$ wget http://... (http://...で指定したファイルを取得)

CUIブラウザ 

$ lynx 学内専用ページを学外から見ることができる.4方向のカーソルキーでネットサーフ.ファイルのダウンロードはd.(インストールは #yum install lynx)

メールの配達先 

/etc/aliases (newaliasesで設定が反映される。)

ファイル

圧縮・アーカイブ

tar作成ファイル名の拡張子は.tarとすること

$ tar cvf ファイル名 フォルダ名

tar展開:aaa.tarをフォルダaaaに戻す

$ tar -xf aaa.tar  

gzip圧縮:拡張子.gzがつく

$ gzip ファイル名

 gzip展開:aaa.tar.gzを展開aaa.tarとなる

$ gzip -d aaa.tar.gz  

zip圧縮:a.zipが存在する時は追加

$ zip a.zip ファイル名

zipフォルダ圧縮:a.zipが存在する時は追加

$ zip -r a.zip フォルダ名

 zip展開:ワイルドカードで複数ファイルを展開可能。その際*\*と書くこと(例 unzip a\*.zip

$ unzip a.zip  

7z圧縮:ファイル/フォルダをaa.7zに圧縮7zのインストールはyumにepelリポジトリを追加してyum install p7zip

$ 7za a aa.7z ファイル名/フォルダ名

7z展開:a.7zを展開

$ 7za e a.7z

文字コード一括変換

カレントディレクトリ以下のhtmlファイルの文字コードをUTF8に一括変換。|前後の-print0と-0は,出入力ともヌル文字区切りという意味で,空白文字などを含むファイル名にも対応できる。

$ find -name "*.html" -print0 | xargs -0 nkf --overwrite -w

nkfのインストールはyum install nkf

ンボリックリンク 

$ ln -s リンク先 リンク名

ファイル名補完 

TABキー

領域

N=0,1,...階層下のフォルダ容量(hはhuman readable)

$ du -hdN フォルダ

 ファイルシステムの空き・使用容量をkB単位で表示.-mでMB単位

$ df  

検索 

フォルダ以下でファイル名のファイルを探す.

$ find フォルダ -name ファイル名  

n階層フォルダ作成 

n=1なら-pは不要

$ mkdir -p フォルダ1/フォルダ2/.../フォルダn  

isoファイル作成 dd 

# dd if=デバイス of=出力ファイル 

デバイスはCD/DVDをマウントした/dev/cdromなどのフォルダ。出力ファイルはa.isoなどの作成するisoファイル名

Cygwinの場合,管理者権限でTerminalを起動して,デバイスは/dev/scd0とする(ImgDriveでiso化できなかったCD-ROMが,Cygwinのddでできた)。WSL2ではddではうまくいかないので専用コマンドgenisoimageを使う。

PDFファイル操作

PDFファイルのページを逆順にする(see)。WSL2に入れておくと便利。

$ qpdf --empty out.pdf --pages in.pdf z-1 -- 

PDFファイルを画像に変換するインストールはapt install poppler-utils

$ pdftoppm -jpeg in.pdf out 

参考