kilin> how to > コマンドメモ

Linux (CentOS) メモ

(2006.12.10 - 2015.2.25)


(環境)CentOS 5.1-5.11, 6.2-6.6, 7.0
以下の表で,プロンプトが#のコマンドはスーパーユーザー,$は普通のユーザで実行.

機能 コマンド 備考
サポート期間
CentOS 5.x 2012-9-31まで更新2017-3-31までメンテナンス。CentOSは,商用のRed Hat Enterprise Linux(RHEL)と完全互換のフリーのLinuxディストリビューション.Community ENTerprise Operating System.
CentOS 6.x  2015-5-31まで更新2020-11-30までメンテナンス。
CentOS 7.x  2019-12-31まで更新2024-6-30までメンテナンス。
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のパスワードを忘れてしまった時などはシングル・ユーザ・モードでパスワードを新規設定できる. 
サービス再起動 CentOS5-6 # service サービス名 restart または /etc/init.d/サービス名 restart
CentOS7 # systemctl restart サービス名
サービス確認 CentOS5-6 # /sbin/chkconfig --list (ランレベル 2-5ON が通常のサービス)
CentOS7 # systemctl list-unit-files -t service
サービスON CentOS5-6 # /sbin/chkconfig サービス名 on
CentOS7 # systemctl enable サービス名
サービスOFF CentOS5-6 # /sbin/chkconfig サービス名 off
CentOS7 # systemctl diable サービス名
プロセス表示 # ps axc
システム更新 # yum update Yellow dog Updater, Modified
yumのDBをクリア # yum clean all yumでエラーが出るとき実行する.
yum-updatesd 一定間隔でyum更新があるかどうかをチェックしてe-mailで通知する。
(CentOS5) サービスyum-updatesdをONにする。/etc/yum/yum-updatesd.confにメールアドレスを書く。
(CentOS6) yumでyum-cronをインストールして,サービスyum-cronをONにする。/etc/sysconfig/yum-cronでCHECK_ONLYとDOWNLOAD_ONLYをyesにし,MAILTOにメールアドレスを書く。 
(CentOS7) yumでyum-cronをインストールして,サービスyum-cronをONにする。/etc/yum/yum-cron.confのemail_toにメールアドレスを書く。
yum EPEL 標準外のyumパッケージ see yum EPEL
自動更新 see Linux Tips リンク切れの場合はここ
CPU情報の表示 $ cat /proc/cpuinfo
メモリ情報の表示 $ cat /proc/meminfo
マシン・OS情報表示 $ uname -a
CentOSのversion  # cat /etc/redhat-release  
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   
ネットワーク 
ホスト名変更  (CentOS5-6) /etc/sysconfig/network を編集。/etc/hostsにも記述があればこちらも編集。
(CentOS7) /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を再起動.
ポートをあける(CentOS5-6) # /usr/sbin/setup または,
# /sbin/iptables -I RH-Firewall-1-INPUT -p tcp --dport xxx -j ACCEPT ; チェイン名 RH-Firewall-1-INPUT の最初でTCPプロトコルのxxxポートを許可
(CentOS7)  # 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, 993=imaps
ファイヤーウオール  (CentOS5-6) setupで
(CentOS7) サービスfirewalldをsystemctlで 
ターミナル・遠隔操作 
コマンド補間 TABキー
リモートログイン $ ssh ユーザ名@ホスト名 sshでリモートログイン.ユーザ名@は省略可
ファイル転送 $ sftp ユーザ名@ホスト名 sshが使えれば使える.使い方はftpと同じ.
リモートコピー  $ scp コピー元 コピー先  ;コピー元/先は ユーザ名@ホスト名:パス, ユーザ名@やホスト名:は省略可
ファイル取得 $ wget http;//... http://...で指定したファイルを取得.
CUI端末用ブラウザ $ lynx ;学内専用ページを学外から見ることができる.4方向のカーソルキーでネットサーフ.ファイルのダウンロードはd.(インストールは #yum install lynx)
バックグラウンド実行  コマンドを実行後Ctrl+Zで停止しbg。あるいは,コマンドの末尾に&をつけて実行。 
プロセスを残す ログアウト後にもプロセスを残すには, コマンドをバックグラウンド実行,jobsでプロセス番号を調べ(1だったとする),disown %1。プロセスが実行中かどうかはps rxで調べる。
起動時実行  /etc/rc.local ファイルに実行したいコマンドを書いておけば,起動時に実行される。起動後300秒してから実行したい場合は「sleep 300; コマンド」。
ファイル 
フォルダを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)。
所有者の一括変更 $ chown -R ユーザ名.グループ名 フォルダ フォルダ以下の全ファイル/フォルダの所有者を変更..グループ名,あるいは,ユーザ名は省略可.
文字コード一括変換 $ 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 

参考

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