Linux (CentOS7) メモ

(2006.12.10 - 2019.6.19)

CentOS 5-6はこちら

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

Cent OS

商用の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。

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

所有者の一括変更

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

ネットワーク

IPアドレス・ホスト名の変更 nwtuiコマンドを使ってtui(ターミナルUI)で変更。ホスト名 /etc/hpostname, IPアドレス /etc/sysconfig/network-scripts/ifcfgの直接編集は非推奨。

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を再起動.

アクセス制限 see tcpwrapper

ファイヤーウオール

# 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 see ruby

参考

  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