以下,プロンプトが#のコマンドはスーパーユーザー,$は普通のユーザで実行.
AlmaLinux 8
商用のRed Hat Enterprise Linux(RHEL)とバイナリ互換のフリーのLinuxディストリビューション.ElevateでCentOS7からアップグレードできる。
CentOS 8 2021-12-31でメンテナンス終了。
CentOS 8 Stream 2024-05-31でメンテナンス終了。
CentOS 7 2024-6-30でメンテナンス終了。
AlmaLinux 8 2029-5-1でサポート終了。
マシン・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 にログイン時実行コマンドを書いておく。
export EDITOR=vim #エディタにvimを使う
管理
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
参考
Fedora Core (http://typea.dip.jp/tips/wiki.cgi?page=Fedora+Core) 2008.4
Linux のセキュリティについて (http://www.st.ryukoku.ac.jp/security/linux/) 2008.4
@IT > Linux Square > Linux Tips Index (http://www.atmarkit.co.jp/flinux/rensai/linuxtips/tipsindex.html) 2006.12
ITmedia エンタープライズ Linux Tips (http://www.itmedia.co.jp/help/tips/linux/) 2006.12