目次 >> Linux
ここでは、ネットワークやXwindowなどのLinux自体の動作に関する設定を中心に説明する。
ここでは、各種の情報を集める際の表示方法について説明する。
OSのバージョンのような基本的な情報を取得するには、
$ uname -a
Linux example.com 3.2.0-24-generic #37-Ubuntu SMP Wed Apr 25 08:43:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
および
$ cat /etc/issue
CentOS release 5.2 (Final)
でわかる。
hwinfoを使うと、ハードウェアの詳細な情報を得ることができる。OpenSUSEでは標準で備わっている。Ubuntuではapt-get install hwinfoでインストールすることができる。CentOSでは標準では存在しない。
また、オプションをつけることにより、個別の情報を表示することができる。例えばCPUに関する情報を得たい場合は、
$ hwinfo --cpu
01: None 00.0: 10103 CPU
[Created at cpu.304]
Unique ID: rdCR.j8NaKXDZtZ6
Hardware Class: cpu
Arch: X86-64
Vendor: "GenuineIntel"
Model: 6.30.5 "Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz"
Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,rdtscp,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,xtopology,pni,dtes64,monitor,ds_cpl,vmx,smx,est,tm2,ssse3,cx16,xtpr,pd
Clock: 2925 MHz
BogoMips: 6090.41
Cache: 8192 kb
Units/Processor: 16
Config Status: cfg=new, avail=yes, need=no, active=unknown
(以下略)
メモリに関する情報を得たい場合は、
$ hwinfo --mem
01: None 00.0: 10102 Main Memory
[Created at memory.61]
Unique ID: rdCR.CxwsZFjVASF
Hardware Class: memory
Model: "Main Memory"
Memory Range: 0x00000000-0x3ffeffff (rw)
Memory Size: 1 GB
Config Status: cfg=no, avail=yes, need=no, active=unknown
それ以外のオプションは--helpにある。
ドライバなどの設定には、ハードウェアの情報が欠かせない。本体をあけてみるのが一番確実ではあるが、ソフトウェア的に表示させるには下記のようにして行う。まず、http://ezix.sourceforge.net/software/lshw.htmlからlshwをダウンロードする。
$ tar zxvf lshw-B.02.06.tar.gz
$ cd lshw-A.01.08
$ make
srcディレクトリにlshwという実行ファイルができているのでそれを実行する。rootである必要はない。必要であればパスの通っているディレクトリにコピーしておく。
/proc/cpuinfoを表示すればよい。
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
cpu MHz : 2793.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 lahf_lm tpr_shadow vnmi flexpriority ept vpid
bogomips : 7140.43
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
(以下略)
なお、Turbo Boostが有効な場合はflagsの中にidaがあるはずである。
IPアドレスなどネットワークの設定の確認は
$ /sbin/ifconfig
で見ることができる。Windowsでのipconfigに相当する。
表示するには
# hostname
mail.example.com
設定するには
# hostname mail.example.com
ただし、これでは、再起動すると元に戻ってしまう。
これを防ぐには、直接ホスト名を設定しているファイルを変更する。
UbunutuなどDebian系では
/etc/hostname
RedHat系(CentOS6まで)では
/etc/sysconfig/network
というファイルの
HOSTNAME="mail.example.com"
という項目に書き込む。
CentOS7では
# hostnamectl set-hostname mail.example.com
というコマンドか、
/etc/hostname
というファイルに直接
mail.example.com
と書き込む。(「HOSTNAME=」はつけない)
で設定する。
参考:http://www.ducea.com/2006/08/07/how-to-change-the-hostname-of-a-linux-system/
CentOS7では、systemctl list-unit-files -t serviceコマンドで表示する。
# systemctl list-unit-files -t service UNIT FILE STATE auditd.service enabled autovt@.service disabled blk-availability.service disabled brandbot.service static console-getty.service disabled console-shell.service disabled container-getty@.service static cpupower.service disabled (以下略)
staticは単独では起動できないサービス。
Fedora系およびOpenSUSE系OSでサーバの自動起動状況を表示するには、
# chkconfig --list
Makefile 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:off 5:on 6:off
alsasound 0:off 1:off 2:on 3:on 4:off 5:on 6:off
apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autoyast 0:off 1:off 2:off 3:off 4:off 5:off 6:off
bluetooth 0:off 1:off 2:off 3:off 4:off 5:off 6:off
...
# chkconfig named --list
apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off
サーバの自動起動をOn、Offするには、
# chkconfig named on
# chkconfig named off
ディストリビューションによって、同じサーバのでも名前が違う場合がある。例えば、apacheのOn、OffはFC4、FC5ではhttpdであるが、openSUSE 10.0の場合はapache2である。
Ubuntuの場合は、sysv-rc-confコマンドを使う。初期状態ではインストールされていないので、
# sysv-rc-conf
The program 'sysv-rc-conf' is currently not installed. You can install it by typing:
apt-get install sysv-rc-conf
-bash: sysv-rc-conf: command not found
のように、apt-getでインストールするようメッセージが返されるはずである。
指示に従って、apt-get install sysv-rc-confと打ってインストールする。
$ sudo apt-get install sysv-rc-conf Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libcurses-perl libcurses-ui-perl The following NEW packages will be installed: libcurses-perl libcurses-ui-perl sysv-rc-conf 0 upgraded, 3 newly installed, 0 to remove and 108 not upgraded. Need to get 406 kB of archives. After this operation, 1,442 kB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://us.archive.ubuntu.com/ubuntu/ natty/universe libcurses-perl amd64 1.28-1 [139 kB] Get:2 http://us.archive.ubuntu.com/ubuntu/ natty/universe libcurses-ui-perl all 0.9607-1 [243 kB] Get:3 http://us.archive.ubuntu.com/ubuntu/ natty/universe sysv-rc-conf all 0.99-6 [24.2 kB] Fetched 406 kB in 23s (17.1 kB/s) Selecting previously deselected package libcurses-perl. (Reading database ... 135329 files and directories currently installed.) Unpacking libcurses-perl (from .../libcurses-perl_1.28-1_amd64.deb) ... Selecting previously deselected package libcurses-ui-perl. Unpacking libcurses-ui-perl (from .../libcurses-ui-perl_0.9607-1_all.deb) ... Selecting previously deselected package sysv-rc-conf. Unpacking sysv-rc-conf (from .../sysv-rc-conf_0.99-6_all.deb) ... Processing triggers for man-db ... Setting up libcurses-perl (1.28-1) ... Setting up libcurses-ui-perl (0.9607-1) ... Setting up sysv-rc-conf (0.99-6) ...
あとは、rootで(あるいはsudoで)sysv-rc-confと打つと、メニュー画面が現れるので、あとは、スペースキーでオンオフを切り替え、qで終了する。
また、コマンドラインから、
$ sysv-rc-conf --list
のように使うこともできる。
CentOSをインストールして、最初に問題となるのが、たとえネットワークデバイスがインストールされていても、デフォルトでネットワークに繋がっていないと言うことである。
ブート時にネットワークデバイスをオンにしてやることで解決する。
具体的には、
/etc/sysconfig/network-scripts/ifcfg-eth0
というファイルの中の
ONBOOT=no
を
ONBOOT=yes
に書き換えてやればよい。
CentOSではインストールした状態では、ファイアウォールがオンになっている。
ファイアウォールの設定を変更するか、切らないかぎり、22番ポート以外の別ポートでのSSHへのアクセスや、httpdにアクセスできない。
サーバが既にファイアウォール内に設置されているならば、ファイアウォールを切るという方法もある(もちろんセキュリティ的には少し安全性が低下する)。
起動中のファイアウォールを切るには
#/etc/rc.d/init.d/iptables stop
OS起動時に起動しないようにするには
#chkconfig iptables off
とすれば良い。
etherwakeを使う。etherwakeはroot、もしくはsudoを使って呼び出す。
書式は、
etherwake MACアドレス
である。
sudo etherwake 90:E6:BA:F3:B6:D2
逆にシャットダウンするには
ssh -t example.com 'sudo shutdown -h now'
ネットワークアクセスを許可するホストおよび禁止するホストの設定は/etc/hosts.allowと/etc/hosts.denyいうファイルで行う。
コンピュータが参照する順序は
1.hosts.allowに記述されていれば許可
2.hosts.denyに記述されていれば不許可
3.それ以外はすべて許可
の順で参照される
コマンドラインで
# setup
と打つと、メニュー形式でファイアウォールやネットワーク、タイムゾーンなどが設定できる。
起動オプションに"edd=skipmbr"をつける。
CentOSでマウスポインタが表示されない場合は、/etc/X11/xorg.confで
Option "HWCursor" "off"
とする。
原因:インストール時に、ブートローダをMBR以外にインストールした。
対策:OSインストール時にMBRに指定してインストールする。
#yum info xxx
で、パッケージxxxの情報が得られる。例えば、
# yum info mrtg
Setting up repositories
Reading repository metadata in from local files
Available Packages インストールされていない場合はこのように表示される
Name : mrtg
Arch : i386
Version: 2.11.1
Release: 3
Size : 853 k
Repo : base
Summary: Multi Router Traffic Grapher
Description:
The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic
load on network-links. MRTG generates HTML pages containing PNG
images which provide a LIVE visual representation of this traffic.
#yum install xxx
でパッケージxxxのインストールを行う。たとえば、apacheの場合は、yum install httpdと打つ。
yastはrootでないと使えないのでsuコマンドなどでrootになっておく。
インストールは
# yast -i sshfs
のように-iオプションの後にパッケージ名を入れる。
# yum install gd-devel
CTRL+ALT+BS
最新のパッケージにアップデートするには、
# yum update
自動化するには、
# chkconfig yum on
yum-updatesdを使う。標準でこのデーモンは起動しているが、標準状態では、デスクトップに通知を出すのみである。自動的に更新するようにするには、/etc/yum/yum-updatesd.confの中の3項目をyesに書き換える。
do_update = yes do_download = yes do_download_deps = yes
yum-fastestmirrorをインストールする。なおCentOS7ではデフォルトで入っている。
# yum install yum-fastestmirror
yumを実行した際に、
# yum install samba
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
* fedora: ftp.riken.jp
* updates: ftp.riken.jp
Setting up Install Process
Parsing package install arguments
のようにLoading "fastestmirror" pluginが出れば成功である。
ログファイルをローテンションする。logrotate.confでlogrotate全体の設定を、/etc/logrotate.d下の各ファイルで各ログファイルの処理方法設定する。logrotate.confにデフォルトの設定を書き、/etc/logrotate.d下の各ファイルの設定で上書きされる。
オプション | 意味 |
---|---|
compress | 圧縮を行う。デフォルトではgzipで圧縮される。 |
nocompress | 圧縮しない |
compresscmd | 圧縮を行うコマンドを指定する。 |
uncompresscmd | 解凍を行うコマンドを指定する。 |
compressext | 圧縮を行う際の拡張子。 |
compressoptions | 圧縮を行う際のオプション。デフォルトではgzipのオプション"-9"が指定されている。 |
daily | 毎日行う |
dateext | 数字の代わりに日付の拡張子をつける。(FC4では機能しないがFC5では使える) |
ifempty | ログファイルが空の場合でもローテーションを実行する |
notifempty | ログファイルが空の場合はローテーションを実行しない |
include /etc/logrotate.d | 以下のディレクトリ内のファイルを含める。この場合は、/etc/logrotate.d/ |
missingok | ログファイルが存在しなくてもエラーを出さない |
monthly | 毎月行う。通常は月の最初の日。 |
sharedscripts | このスクリプトで複数のログファイルを処理する。(prescriptおよびpostscriptを書くログファイルに対して実行する) |
firstaction/endscript | 一番最初に実行するスクリプトを書く |
prerotate/endscript | ローテートを実行する前に実行するスクリプト |
postrotate/endscript | ローテーション実行後に実行するスクリプトをpostrotate~endscriptの間に書く。 |
lastaction/endscript | postrotateよりもさらに後に実行するスクリプトを書く |
rotate 4 | ローテーションを行う回数。この場合は4回。5個目からは古いものから順に削除される。 |
size 100k | サイズが指定サイズより大きい場合は実行する。この場合は100kB以上の場合。 |
weekly | 毎週実行する |
強制的に実行するには
# /usr/sbin/logrotate -f /etc/logrotate.conf
と打つ。
なお、たとえば、ubuntuでは、/var/lib/logrotate/statusというファイルに、最終実行日時が記録される。
ログファイルをgzipではなくxzで圧縮すると、ファイルサイズをより小さくできる。
やりかたは、logrotate.confに
compresscmd /usr/bin/xz uncompresscmd /usr/bin/unxz compressext .xz
と記述する。
CentOS 5では、logrotateにバグがあり、dateextやcompressなどのオプションが使えなかった。現バージョンでは直っている。
LinuxでCDやDVDを焼く場合、まずmkisofsでisoファイルを作成し、それをcdrecordなどのコマンドで焼く。なおmkisofsは標準状態では日本語に対応していないので注意。下記のようなオプションで作成するとWindowsマシンでもロングファイル名などがきちんと表示される。
例)dir1、dir2内のファイルをdisk.isoにまとめる。ボリュームラベルにはVolumeLabelを指定。
$ mkisofs -V "VolumeLabel" -U -J -r -T -joliet-long -hide-joliet-trans-tbl -o disk.iso ./dir1 ./dir2
主要なオプション(詳しくはmanページを参照)
オプション | 意味 |
---|---|
-V | ボリュームラベルを指定する。これは、Windowsの場合ドライブ名として表示される。 |
-U | -d -l -L -N -relaxed-filenames -allow-lowercase -allow-multidot -no-iso-translateのすべてを指定した状態になる。ISO9660規格に違反するが、通常はこれで良い。 |
-r | Unixで利用する情報を付加する。 |
-J | Windowsからロングファイル名でアクセスできるようにするためにJolietでディレクトリテーブルを作成する。 |
-o | アウトプットファイルを指定する。 |
-joliet-long | Unicodeで103文字までのファイル名がつかえるようになる。 |
-hide-joliet-trans-tbl | Joliet ツリーから TRANS.TBL ファイルを隠す |
まずは
$cdrecord -scanbus
でCD/DVDドライブを見つけるためにデバイスの一覧を表示させる。
ユーザーを追加するにはadduserとuseraddがあるが、adduserが便利。
使い方は、
# adduser loginname
である。同時にパスワードも指定する場合は、-pオプションで
# adduser loginname -p password
とする。passwdコマンドでパスワードを設定しても良い。
ユーザーおよびグループを管理するファイル群は次のとおりである。
/etc/passwd ユーザの情報を保持する。passwdという名前であるが、通常はshadowパスワードを使うのでパスワードは書かれていないことが多い /etc/passwd- passwdのバックアップファイル /etc/group グループの情報を保持する /etc/group- groupのバックアップファイル /etc/shadow ユーザのパスワードファイル /etc/shadow- shadowのバックアップファイル /etc/gshadow グループのパスワードファイル
passwdを編集するには、vipwコマンドを使え
groupファイルの編集するには、vigrを使え。
usermodコマンドを使う。書式は
# usermod -d home_dir username
直接/etc/passwdファイルを編集してもよい。その際はviではなく、vipwを使うようにする。
yum upgrade
は、
yum update --obsoletes
と同等である。
--obsoletesの効果は、新バージョンで削除された旧バージョンのパッケージを削除する。
複数のコマンドを連続して実行するには;で区切る。例えば、
ls;du;df
これで、ls、du、dfが順次実行される。
一方、単純に一つのコマンドをバックグランドで実行するには、
ls &
と&をつければよいが、複数のコマンドをバックグランドで実行するには、複数のコマンドをかっこで囲って、その後に&をつければよい。
(ls;du;df) &
C言語などのsystemコマンド内でも、同様にすると、実行中のプログラムと並列にコマンドを実行することができる。
デフォルトでのコマンド履歴historyの記録数は500件である。.bashrcなどに下記のように書き込むことによって、その数を変えることができる。下記の例では10000件
export HISTSIZE=10000 export HISTFILESIZE=10000
なお、0にすると記録されない。
デフォルトでは単にコマンド履歴のが記録されるだけである。実行日時も記録したい場合は、.bashrcなどに下記のように書き込むことによって変えることができる。
export HISTTIMEFORMAT="%h %d %H:%M:%S "
historyファイルは単にコマンドを実行しただけでは更新されない。
更新されるのは、
だけである。
最終更新日