Linux (CentOS7) メモ

(2006.12.10 - 2019.6.19)

CentOS 5-6はこちら

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

Cent OS
CentOS 商用のRed Hat Enterprise Linux(RHEL)と完全互換のフリーのLinuxディストリビューション.Community ENTerprise Operating System.
CentOS 7.x 2019-12-31まで更新2024-6-30までメンテナンス。
OS version # cat /etc/redhat-release
マシン・OS情報 $ uname -a
CPU情報 $ cat /proc/cpuinfo
メモリ情報 $ cat /proc/meminfo
デバイス名 # fdisk -l
HDD/SSD情報 # smartctl -a デバイス名
2TB超HDD  4TB超のHDDにCentOS6をインストールするには。
HDD増設 内蔵HDD, USB外付HDDの増設。
管理
GUIで管理 GUIでサーバーを管理するときは,rootでログインすること.普通のユーザでログインするとGUIツールのバグで設定が正しく行われない.
SELinux無効化 /etc/sysconfig/selinuxのSELINUX=enforcingをSELINUX=disabledに書き換える。この設定を誤り,OSが起動しなくなった時は,grubでkernelの起動オプションにselinux=0を追加してselinux一時無効で起動する(see single user mode)。
再起動 # reboot
シャットダウン # shutdown -h now
single user mode rootのパスワードを忘れてしまった時などはシングル・ユーザ・モードでパスワードを新規設定できる.
サービス再起動 # systemctl restart サービス名
サービス確認 # systemctl list-unit-files -t service
サービスON # systemctl enable サービス名
サービスOFF # systemctl diable サービス名
プロセス表示 # ps axc
システム更新 # yum update ;yumとはYellow dog Updater, Modified
yumのDBをクリア # yum clean all ;yumでエラーが出るとき実行する. それでも直らない時は,
# mv /var/lib/rpm/__db* /tmp/
# rpm --rebuilddb
# mv /var/cache/yum /tmp/ をやってから
# yum clean all
yum-updatesd 一定間隔でyum更新があるかどうかをチェックしてe-mailで通知する。 yumでyum-cronをインストールして,サービスyum-cronをONにする。/etc/yum/yum-cron.confのemail_toにメールアドレスを書く。
yum EPEL 標準外のyumパッケージ see yum EPEL
自動更新 see Linux Tips❐ リンク切れの場合はここ
apacheのversion # httpd -v
メールの配達先 /etc/aliases (newaliasesで設定が反映される。)
ログの解析 logwatchをインストールすると(#yum install logwatch),毎日定時にログ解析メールをroot宛てに送ってくる./etc/aliasesを編集してroot宛てのメールを適宜転送する.
ユーザの追加 # /usr/sbin/useradd -d ホームディレクトリ ユーザ名 ;-d ホームディレクトリは省略可.ホームディレクトリは絶対パスで指定.
ユーザの削除 # /usr/sbin/userdel ユーザ名
ユーザ一覧 # cut -d: -f1 /etc/passwd
ユーザ情報 # finger ユーザ名
loginを不可にする # /usr/sbin/usermod -s /sbin/nologin ユーザ名
パスワードの追加 # passwd ユーザ名
パスワードの変更  $ passwd
グループの作成 # groupadd グループ名
グループの削除 # groupdel グループ名
グループへ追加 # gpasswd -a ユーザ名 グループ名
グループから削除 # gpasswd -d ユーザ名 グループ名
グループの表示 $ cat /etc/group
所属グループの表示 $ id
グループの変更 $ newgrp グループ名 ;もとのグループに戻るにはexit。
所有者の一括変更 # chown -R ユーザ名.グループ名 フォルダ ;フォルダ以下の全ファイル/フォルダの所有者を変更..グループ名,あるいは,ユーザ名は省略可.
ネットワーク
ホスト名変更 /etc/hpostname を編集
IPアドレス変更 /etc/sysconfig/network-scripts/ifcfg-インターフェイス名 (ifcfg-eth0など)を編集。
IP, MACアドレス # /sbin/ifconfig
UNIXでは netstat -i,Windows 2000以降では ipconfig /all,Windows 9x/Meでは winipcfg
root login禁止 デフォルトではsshでrootとしてログインできてしまう.これを無効にするには,/etc/ssh/sshd_config の "#PermitRootLogin yes" の下の行にPermitRootLogin noを加え,sshを再起動.
ファイヤーウオール # firewall-cmd --permanent --add-service=xxx (サービスxxxを許可)
# firewall-cmd --permanent --remove-service=xxx (サービスxxxを許可しない)
# firewall-cmd --permanent --add-port=nnn/tcp (ポート番号nnnを開ける)
# firewall-cmd --permanent --remove-port=nnn/tcp (ポート番号nnnを閉じる)
# firewall-cmd --reload (設定を反映する)
# firewall-cmd --list-services (確認)
ポート番号 22=ssh, 25=smtp, 80=http, 143=imap, 443=https, 465=smtps, 993=imaps
ポートスキャン $ nmap ipアドレス ;ipアドレスのポートをスキャンする。yumでインストールできる。
リモートログイン $ ssh ユーザ名@ホスト名 ;sshでリモートログイン.ユーザ名@は省略可
ファイル転送 $ sftp ユーザ名@ホスト名 ;sshが使えれば使える.使い方はftpと同じ.
リモートコピー $ scp コピー元 コピー先 ;コピー元/先は ユーザ名@ホスト名:パス, ユーザ名@やホスト名:は省略可
ファイル同期see rsync
ファイル取得 $ wget http://... ;http://...で指定したファイルを取得.
CUI端末用ブラウザ $ lynx ;学内専用ページを学外から見ることができる.4方向のカーソルキーでネットサーフ.ファイルのダウンロードはd.(インストールは #yum install lynx)
実行
コマンド補間 TABキー
バックグラウンド実行 コマンドを実行後Ctrl+Zで停止しbg。あるいは,コマンドの末尾に&をつけて実行。
プロセスを残す ログアウト後にもプロセスを残すには, コマンドをバックグラウンド実行,jobsでプロセス番号を調べ(1だったとする),disown %1。プロセスが実行中かどうかはps rxで調べる。
起動時実行 /etc/rc.local ファイルに実行したいコマンドを書いておけば,起動時に実行される。起動後300秒してから実行したい場合は「sleep 300; コマンド」。
定期実行# crontab -e または $ crontab -e
ファイル
tar作成 $ tar cvf ファイル名 フォルダ名 ;ファイル名の拡張子は.tarとすること
gzファイル圧縮 $ gzip ファイル名 ;拡張子.gzがつく.
gzファイル展開 $ gzip -d aaa.tar.gz ;aaa.tar.gzを解凍.aaa.tarとなる.
tarファイル展開 $ tar -xf aaa.tar ;aaa.tarをフォルダaaaに戻す
zipファイル圧縮 $ zip a.zip ファイル名 ;a.zipが存在する時は追加.
zipフォルダ圧縮 $ zip -r a.zip フォルダ名 ;a.zipが存在する時は追加. 
zipファイル展開 $ unzip a.zip  ;ワイルドカードで複数ファイルを解凍可能。その際*は\*と書くこと(例 unzip a\*.zip)。
7z圧縮 $ 7za a a.7z ファイル名/フォルダ名 ;7zのインストールはyumにepelリポジトリを追加して,yum install p7zip
7z展開 $ 7za e a.7z
文字コード一括変換 $ find -name "*.html" -print0 | xargs -0 nkf --overwrite -w  ;カレントディレクトリ以下のhtmlファイルの文字コードをUTF8に一括変換。|前後の-print0と-0は,出入力ともヌル文字区切りという意味で,空白文字などを含むファイル名にも対応できる。nkfのインストールはyum install nkf
シンボリックリンク $ ln -s リンク先 リンク名
空き領域 $ df ファイル名 ;ファイルの属すファイルシステムの空き・使用容量をKB単位で表示.-mオプションでMB単位.
使用領域 $ du -hs フォルダ名 ;フォルダ内のファイルの総計を表示。
検索 $ find フォルダ -name ファイル名  ;フォルダ以下でファイル名のファイルを探す.
n階層フォルダ作成 $ mkdir -p フォルダ1/フォルダ2/.../フォルダn   ;n=1なら-pは不要
インストール/アンインストール
tarからRPM作成 # rpmbuild -ta xxx.tar.gz ;RPMファイルは/usr/src/redhat/RPMS/i386/にできる
RPM表示 # rpm -qa | grep xxx ;xxxはパッケージ名
RPM情報表示 # rpm -qi xxx
RPMインストール # rpm -ivh xxx.rpm
RPMアンインストール # rpm -e xxx
gccインストール # yum install gcc* ;CentOSをデフォルトでインストールするとgccがインストールされない.
php5.3 # yum remove php php-*
# yum install php53 php53-*  ;CentOS5.6でphp5.3を使うにはphp5.1をアンインストールせねばならない.CentOS6でははじめからphp5.3, CentOS7ではphp5.4
ruby2.4 まず,標準外のyumパッケージを入れる準備をする。see yum EPEL。 そして,Software Collections (SCL)リポジトリを導入する。
# yum install centos-release-scl-rh centos-release-scl
そして,ruby 2.4をインストールする。
# yum install rh-ruby24 rh-ruby24-ruby-devel
ruby 2.4を使うには,
$ scl enable rh-ruby24 bash
と打つ。この環境を抜けるにはexit。

参考

  1. Fedora Core (http://typea.dip.jp/tips/wiki.cgi?page=Fedora+Core) 2008.4
  2. Linux のセキュリティについて (http://www.st.ryukoku.ac.jp/security/linux/) 2008.4
  3. @IT > Linux Square > Linux Tips Index (http://www.atmarkit.co.jp/flinux/rensai/linuxtips/tipsindex.html) 2006.12
  4. ITmedia エンタープライズ Linux Tips (http://www.itmedia.co.jp/help/tips/linux/) 2006.12