e を押す。 e(edit)を押す。 single を入力して Enter を押す。 b(boot)を押して起動する。
この時 /(ルートディレクトリ)はリードオンリーでマウントされています。
そのため、設定ファイルの編集などはできません。
読み書き可能にするためには、再マウントします。
mount -n -o remount,rw /dev/hda1
knoppix 2 noswap vga=normal
ps axww
ps alefxww
turboservice
ntsysv
nmap localhost
chkconfig –list
* 設定\\ chkconfig --level <ランレベル> <サービス名(例:ssh)> on|off
df -i
sh -c パラメータを使います。
sudo sh -c "command xxx > xxx.log"
mkdir /media/usbfm mount -t vfat /dev/sda1 /media/usbfm
または
mount -t vfat /dev/sda2 /media/usbfm
デバイス名は USBメモリを挿した直後に dmesg で確認することができます。
マウントを解除
umount /media/usbfm eject /dev/sda2
dvd+rw-format -full /dev/dvdwriter
または
dvd+rw-format -blank=full /dev/dvdwriter
root で行う必要があります。(sudo では実行できません。)
growisofs -Z /dev/dvdwriter -R -J <ファイル名> または <ディレクトリ名>
(例) splitedfile.001, splitedfile.002, splitedfile.003 を originalfile.dat に結合
cat splitedfile.* > originalfile.dat
例えば RPM 作成用ディレクトリを一気に作成する場合。
mkdir -p ~/rpm/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i586,i686,noarch}}
tar zcvf xxx.tar.gz <color red>–remove-files</color> *.txt
tar zx<color red>O</color>f xxx.tar.gz
\\ * 特定のファイルを画面に表示\\ tar zx<color red>O</color>f xxx.tar.gz foo.txt\\ (ワイルドカード指定はダブルクォートで囲む)\\ tar zx<color red>O</color>f xxx.tar.gz "*.txt"\\ \\ * vi, less を使って tar に格納されたファイルを表示\\ tar zx<color red>O</color>f xxx.tar.gz "*.txt" | less\\ tar zx<color red>O</color>f xxx.tar.gz "*.txt" | view -\\ tar zx<color red>O</color>f xxx.tar.gz "*.txt" | vi -R -\\
<color blue>(正解)</color>/var/log が /opt/log にコピーされます。
rsync -auv /var/log/ /opt/log/
<color red>(間違い)</color>/var/log が /opt/log/log としてコピーされます。
rsync -auv /var/log /opt/log/
<color red>(間違い)</color>/var/log が /opt/log/log としてコピーされます。
rsync -auv /var/log /opt/log
<color blue>(正解)</color>/var/log が /opt/log にコピーされます。
rsync -auv /var/log /opt
e2label <device> <ラベル名>
(例) e2label /dev/sda3 mydata
e2label <device>~
:(例)|e2label /dev/sda3
mount -t <fstype> -L <ラベル> <マウント先>~
:(例)|mount -t ext3 -L data /data
dd if=/dev/sda1 bs=8129 | gzip > p0731_xvda-sda1.gz
この時は Xen 仮想VM 用に割り当てたパーティションをバックアップしました。
set -o emacs
if [ `find /tmp/foo -name '*.txt' -type f | wc -l` -gt 0 ] ; then # 処理 fi
find を実行した結果、見つかったファイルの行数が 1行以上の場合だけ、条件が成立し、処理を実行します。
(例) 年月日の間にピリオドを挿入する。つまり、20100301.txt を 2010.03.01.txt に変換する。
for file in 20*; do mv $file `echo $file | sed -e "s/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1\.\2\.\3/"`; done
以下のコマンドで正しく変換できているのを確認してから実行すると良い。
for file in 20*; do echo `echo $file | sed -e "s/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1\.\2\.\3/"`; done
date –date '1 day ago'
(例) 前日の日付を8桁の数字でシェル変数 yesterday にセット
yesterday=`date -d '1 day ago' +%Y%m%d`
for fname in *.doc; do mv $fname ${fname%.doc}.txt; done
for jar in *.jar; do jarsigner -keystore /mnt/foo.key -storepass passs -keypass passk -signedjar sign/$jar $jar aliasname; done
環境変数 LD_ASSUME_KERNEL=2.2.5 を指定。
ifconfig eth0 media 100baseTX
または
/etc/conf.modules に <code>alias eth0 tulip
options tulip options=100baseTX</code>
と記述。\\ \\ (参考) http://www.ecn.purdue.edu/~laird/Linux/LNE100TX/readme.txt * オートネゴシエーションにする場合 <code>ifconfig eth0 media autoselect</code>
例:Tomcat 用
service tomcat
{
socket_type = stream
protocol = tcp
user = root
wait = no
port = 80
redirect = localhost 8080
disable = no
}
/etc/sysconfig/iptables /etc/sysconfig/system-config-securitylevel
nslookup server xxx.xxx.xxx.xxx (DNSサーバのIPアドレス) ls -d <ドメイン名> (ゾーン転送を確認するドメイン名) ls -d xxx.xxx.xxx.in-addr.arpa. (逆引きのゾーン転送を確認するIPアドレス - 後ろから逆に指定)
Windows の nslookup ではうまく動きますが、最近の Linux では ls -d はサポートされていないようです。
/proc/sys/net/ipv4/tcp_retries2 に値を設定(デフォルト15回)
echo 3 > /proc/sys/net/ipv4/tcp_retries2
iptables -L -n
iptables -L -n -v
iptables -L -n -v -t nat
cat /proc/net/ip_conntrack
ipsec look ipsec auto --status
netstat -anp
ポート 8080 を追加する場合~
/etc/sysconfig/iptables に
| -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT |
という行を追加。~
/etc/sysconfig/system-config-securitylevel に
–port=8080:tcp
route add -net default gw 192.168.1.254
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254
send host-name “<hostname>”;
view /proc/bus/usb/devices
sudo modprobe ipaq vendor=0x04dd product=0x91ac
ls /dev/ttyUSB*
おもに kppp を使った場合の設定
「モデム」タブから「モデムコマンド」ボタンをクリック
「初期化文字列2」に次のモデムコマンドを指定\\ <code>AT&FE0V1Q0&C1&D2&S0</code> - 「モデムのボリューム」を最小に設定 - モデムの音量がオフの時のモデムコマンドをクリア
すぐ切れてしまう場合は /etc/ppp/options の次の行をコメントアウトしてみる。
vncserver :1
(:1 はディスプレイ番号)
初回は VNC クライアントから接続する時に使うパスワードの入力を求めてくるので、パスワード入力して設定。\\ するとホームディレクトリに .vnc/passwd ファイルが作成されます。\\ # このファイルを削除すると、パスワードをリセットしてパスワードを変更することができるかも。 - Windowsから接続\\ vncviewer を起動して '''<ホスト名>:1''' または '''<IPアドレス>:1''' に対して接続 - vncserver を停止| <code>vncserver -kill :1</code>
デフォルトでは twn が起動しますので、標準のウィンドウマネージャが起動するように設定します。
eval `ssh-agent` ssh-add <秘密鍵のパス>
時刻を設定
date -s 18:00
2009.04.01 00:00:00 に設定
date -s 090401 date -s "2009/04/01 00:00:00"
2009.04.01 15:30:00 に設定
date -s "090401 15:30:00" date -s "2009/04/01 15:30:00"
(参考)
http://www.atmarkit.co.jp/flinux/rensai/eeepc01/eeepc01b.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231082/
| cat /proc/filesystems |
| mkdir /cdrom |
を実行して、下記内容を /etc/fstab に追記。
| /dev/cdrom /cdrom auto pamconsole,fscontext=system_u:object_r:removable_t,exec,<color blue>user</color>,<color blue>ro</color>,<color blue>noauto</color>,managed 0 0 |
一般ユーザもマウント可能
読み込み専用でマウント
read-only のメッセージが表示されなくなる。 * noauto\\ OS 起動時にはマウントしない
map=off というオプションを指定してください。
| mount -o map=off /mnt/cdrom |
ln -s /usr/share/zoneinfo/Japan /etc/localtime
hwclock –systohc
Fedora Core に gcc を入れようとすると、依存関係から kernel-headers が必要となりますが。Fedora Core には kernel-headers の RPM が含まれていません。
代わりに glibc-kernheaders を使うとうまくいきます。
cd /var
# swap ファイル用ディレクトリを作成
mkdir /swap
cd swap
# swap 用ファイルを作成
dd if=/dev/zero of=swap1 bs=1024 count=1024000
読み込んだブロック数は 1024000+0 書き込んだブロック数は 1024000+0
# 作成したファイルを swap ファイルとして初期化
/sbin/mkswap swap1
Setting up swapspace version 1, size = 104853504 kB
# 作成した swap ファイルを優先度30でアクティブに設定
/sbin/swapon swap1 -p 30
# swap ファイルの状況を表示
/sbin/swapon -s
Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1 /var/swap/swap1 file 599992 0 30
# swap ファイルをはずしてみる
/sbin/swapoff -a swap1
# swap ファイルの状況を表示してみるが、何も表示されない
/sbin/swapon -s
# 再び swap ファイルをアクティブに
/sbin/swapon swap1 -p 30
| rpm -e Canna Canna-libs FreeWnn FreeWnn-libs GConf2 ORBit2 OpenIPMI OpenIPMI-libs alsa-lib anacron aspell aspell-en audiofile bluez-bluefw bluez-hcidump bluez-libs bluez-utils chkfontpath cups cups-libs desktop-file-utils esound fontconfig freetype gnome-keyring gnome-mime-data gnome-vfs2 iiimf-csconv iiimf-docs iiimf-le-canna iiimf-libs iiimf-server irda-utils isdn4k-utils jisksp14 jisksp16-1990 kon2 kon2-fonts lftp lha libbonoboui libglade2 libgnome libgnomecanvas libgnomeui libjpeg libpng pcmcia-cs talk tcsh ttfonts-ja wireless-tools words xorg-x11-Mesa-libGL xorg-x11-font-utils xorg-x11-libs xorg-x11-xfs yp-tools ypbind libbonobo pango gtk2 ttmkfdir pygtk2-libglade system-switch-im redhat-lsb redhat-menus libtiff startup-notification pygtk2 NetworkManager stunnel htmlview pinfo |
次の行を ~/.bash_profile に追加
HISTCONTROL=ignoredups
次の行を ~/.bash_profile に追加
stty stop undef
perl -e '$dt = localtime <経過秒数>; print “$dt\n”;'
次の行をスクリプトに記述しておく~
# chkconfig: 345 99 01
-345~
on にする runlevel~
-99~
on にする時用のシンボリックリンクの番号 ⇒ 起動する順序~
-01~
off にする時用のシンボリックリンクの番号 ⇒ 停止する順序~
chkconfig –add xxx
-有効にする~
SELINUX=enforcing~
-無効にするがメッセージは制限に引っかかったところのメッセージは表示する~
SELINUX=permissive~
-無効にする~
SELINUX=disabled~
0:Sun,1:Mon,2:Tue,3:Wed,4:Thu,5:Fri,6:Sat,7:Sun
#minute hour mday month wday command
*/5 * * * * /bin/touch xxx
「0,5,10,15,20,25,30,35,40,45,50,55」と同じ。
#minute hour mday month wday command
5-10 * * * * /bin/touch xxx
xfs_db -c frag -r /dev/sda2
xfs_fsr /dev/sda2
xfs_fsr 実行後、xfs_db で状況を表示してもあまり改善されていませんでした。
が、再起動してからもう一度 xfs_db を実行すると、「fragmentation factor 0.00%」になっていました。
ftp://ftp.riken.jp/Linux/centos/4/centosplus/i386/RPMS/ から次のファイルをダウンロード。
-kernel-2.6.9-42.0.10.plus.c4.i686.rpm
-kernel-module-xfs-2.6.9-42.0.10.plus.c4-0.2-1.i686.rpm
-kernel-devel-2.6.9-42.0.10.plus.c4.i686.rpm
-xfsdump-2.2.42-1.c4.i386.rpm
-xfsprogs-2.8.16-1.c4.i386.rpm
-xfsprogs-devel-2.8.16-1.c4.i386.rpm
-dmapi-2.2.5-1.c4.i386.rpm
上記ファイルをインストール。
3番目の IDE ドライブの最初のパーティションを xfs で強制的にフォーマット。
mkfs -t xfs -f /dev/hdc1
パーティションがすでに別の形式でフォーマットされている場合、-f を付けないとエラーになります。
次のコマンドを入力して、マウントできるか確認します。
mount -t xfs /dev/hdc1 /opt
/etc/fstab に次の行を追加して、ブート時に自動的にマウントされるようにします。
/dev/hdc1 /opt xfs defaults 1 2
Fedora Core 6 の標準パッケージには xfsdump が含まれていません。
そこで yum を使ってインストールする必要があります。
yum install xfsdump
rpm -Uvh reiserfs-utils-xxx.rpm
selinux を無効にすると起動できるようになりました。
起動時のカーネルオプションに enforcing=0 を指定。~
または /etc/sysconfig/selinux を編集。
-ネットワーク系~
dhclient~
openssh~
openssh-server~
openssh-client~
bind-utils~
~
-開発系~
gcc~
cpp~
glibc-devel~
kernel-header~
kernel-devel~
~
-未分類~
プロセスID を指定
renice <優先度> -p <プロセスID>
ユーザ名を指定
renice <優先度> -u <ユーザ名>
:優先度|-20(最優先) ~ 19(一番後回し) の間で指定
ldd <ファイル名>
su でユーザを切り替えるだけの shll script を作成。
cat /usr/local/bin/sufoo.sh #!/bin/sh su - foo;
/etc/group に特定のユーザになる権限を与えたいグループとメンバーを登録。
tail /etc/group foousers:x:300:user1,user2,user3
visudo で /etc/sudoers に権限を与えたいグループと、作成した shell script を登録
%foousers ALL=(root) NOPASSWD: /usr/local/bin/sufoo.sh
echo 0 > /proc/sys/vm/oom-kill
echo -17 > /proc/〈PID〉/oom_adj
カーネルパラメータを次のように設定。
vm.overcommit_memory=2
swap領域のサイズ[MB] + (物理メモリ量[MB] * overcommit_ratio / 100)
ps -axl –sort -vsize
または top を実行して、'M'(大文字のM)をタイプ
ボリュームグループを検索
# lvm vgscan
Reading all physical volumes. This may take a while…
Found volume group “VolGroup00” using metadata type lvm2
ボリュームグループを使用可に設定
#lvm vgchange -a y
2 logical volume(s) in volume group “VolGroup00” now active
論理ボリュームをマウント
# mount /dev/VolGroup00/LogVol00 /mnt/sda1
ボリュームグループを使用不可に設定
lvm vgchange -an <ボリュームグループ名>
ボリュームグループをリネーム
lvm vgrename <旧ボリュームグループ名> <新ボリュームグループ名>
RedHat, CentOS 4 以降では使用可能なエンコーディングにシフトJIS が含まれていません。
使用可能なエンコーディングは次のコマンドで確認できます。
locale -a | grep ja
そこで次のコマンドを実行してシフトJIS を使えるようにします。
localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS
localedef -f UTF-8 -i ja_JP ja_JP.utf8
mkdir -p /lib/modules/`uname -r` depmod
証明書がプリインストールされているファイル・ディレクトリ
/etc/pki/tls/certs/ca-bundle.crt
/etc/ssl/certs
mailcap-xxx.rpm に含まれています。
CentOS 4.x の場合~
+CentOS-Testing.repoをダウンロード~
cd /etc/yum.repos.d
wget http://dev.centos.org/centos/4/CentOS-Testing.repo
+CentOS-Testing.repo を編集して enabled を 1 に設定~
enabled=1
+今回は ruby を 1.8.1 ⇒ 1.8.5 に更新~
yum update ruby
+CentOS-Testing.repo の enabled を 0 に戻しておく~
enabled=0
fuser (実行ファイル)
ls -l /proc/(プロセス番号)/exe
pstree -p, ps aux , top または ls -lv /proc/[0-9]*/exe
TELNET ポートにアクセスしているプロセス. /etc/servicesを参照.
ファイルシステム上のファイルにアクセスしているすべてのプロセス.
umount でデバイスを使用中のときに確認に使える.
使用中のファイル/socket/pipe をしらべる.
ls -lv /proc/(プロセス番号)/fd |sed -n 's/^.* -> //p'
(ファイルのみを表示する場合)
ls -lv /proc/(プロセス番号)/fd |sed -n 's:^.* -> /:/:p'
変数から値を取り出し、その先頭部分がwordと一致した場合その部分を取り除きます。
変数から値を取り出し、その後方部分がwordと一致した場合その部分を取り除きます。
変数から値を取り出し、patternとマッチする部分をwordで置換します。
mkdir /tmp/initrd cd /tmp/initrd
した後
gzip -dc /boot/initrd-2.6.xx-xxx.img | cpio -id
または
zcat /boot/initrd-2.6.xx-xxx.img | cpio -i -c
展開したファイルを編集してブートイメージを作成する場合は
find . | cpio --quiet -c -o | gzip -c > /boot/initrd-2.6.xx-xxx_2.img
(例) vmware 仮想イメージをディレクトリごとコピーする場合
scp -pr centos root@172.16.1.1":/var/lib/vmware/Virtual\ Machines/
http://www.ring.gr.jp/archives/linux/knoppix/iso/
次のコマンドを実行します。
# lvm vgscan Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2 #lvm vgchange -a y 2 logical volume(s) in volume group "VolGroup00" now active # mount /dev/VolGroup00/LogVol00 /mnt/sda1
起動時のカーネルパラメータに次のいずれかを指定すると回避できるかもしれません。~
-acpi=off~
-iommu=off~
-iommu=soft~
grub.conf の例~
default=0~
timeout=5~
splashimage=(hd0,0)/grub/splash.xpm.gz~
hiddenmenu~
title CentOS (2.6.18-8.el5)~
root (hd0,0)~
kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 &color(blue){acpi=off};~
initrd /initrd-2.6.18-8.el5.img~
シャットダウン実行後、最後に電源が切れないままになるため、その後 BIOS の自動起動や WOL による起動ができない。~
この時コンソールに表示されていたメッセージ~
Shutdown: hdb
Power down.
acpi_power_off called
このメッセージが表示された状態で止まっていました。~
chkconfig で実行しているデーモンを確認すると、acpid が on になっていましたので、acpid を実行しないようにすると、シャットダウン後、電源が切れるようになりました。
chkconfig acpid off
/etc/grub.conf のカーネルパラメータに acpi=off を指定する、という方法もあるらしい。~
acpi経由で電源を切ろうとしてうまく動いていない?~
※この時は Dell SC430(Intel Pentium D) + CentOS5.1 の組み合わせでしたが、他のハードや Fedora でも発生している模様。
現象~
-DHCP設定された eth0 の IPアドレス取得にかなり時間がかかる。~
-syslog が起動しないため、/var/log/message が出力されてない。~
-dmesgを確認すると selinux で権限が不足らしきメッセージが表示される。~
何らかのモジュールを update した時に、selinux の設定が enforce になっていたのが原因。/etc/sysconfig/selinux を確認。
DVDドライブのない PC で、ネットワークインストール用 CD を使って起動し、インストール元として Windows に建てた HTTP サーバを指定すると、パッケージ(RPM)の読み込みエラーが頻発する、という現象。
Linux に建てた HTTP サーバを指定した場合は発生しないことから、Windows 固有の現象と思われます。
アンチウィルスが邪魔をしているのか?、HTTP サーバを建てている Windows マシンでブラウザを開いて、パッケージ(RPM)をダウンロードしようとした場合も、ダウンロード開始までに 15秒程度時間がかかる。
:解決策|Linux マシンに HTTP サーバを建て、DVD をマウントし、そのサーバをインストール元として指定する。
スワップフアイルが初期化されていない可能性がありますので、初期化しましょう。
mkswap /dev/hda3
du で確認したディレクトリ使用量の合計よりも、df で確認したディスク使用量の方がかなり大きい。
次のコマンドで削除したにもかかわらずプロセスが終了していないため、つかんだままになっているファイルが存在しないか確認します。
lsof | grep deleted