- Bashの基礎
- 圧縮と解凍
- mount umount
- floppy disc format
- chkconfig のコマンド
サーバ設定・サービスでGUIが使えるのであまり必要ないと思うが
- yum 並びに rpm (インストール)関連
- bash scripts
- bash scriptsの自動化
- NetWork関連
ifconfig, ethtool, netstate, route
- Disk関連
fdisk,
- .bashrcの内容
- deamonの起動
- whois
- 文字コードの変換
- 自分だけがよく使うコマンド
man
$ man optino {command}
optino には 1-5 又は -a
$ man 5 slapd-sql | col -bfx > sql.txt
文字化けをせずに保存できるが、もっぱらemacsを利用している。
META-x man [return] slapd-sql [return]
こちらの方が利用し易いように思う。
所有者のファイルを探す
# find / -uid 500 -ls --->ユーザID500番の所有しているファイルをListUp
# find / -nouser -ls --->所有者のいないファイルをListUp
process
$ ps
option axはすべてのプロセスを表示
$ kill process_number
option -9 プロセスの強制終了
discとmemory 容量
$ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sdb3 29753588 14425084 13792692 52% /
/dev/sdb1 194442 14668 169735 8% /boot
tmpfs 256744 0 256744 0% /dev/shm
/dev/sdb6 70821436 185908 66979940 1% /var/spool
/dev/sdb2 49594228 231428 46802844 1% /var/www
$
|
$ free
total used free shared buffers cached
Mem: 513492 507008 6484 0 22464 79072
-/+ buffers/cache: 405472 108020
Swap: 1020088 73156 946932
$
|
ファイル間の違いを探す
$ diff file_1 file_2
ファイルの末尾の部分を表示
$ tail -n 5 /etc/aliases
Option -n 5は行数を表す
gzに付いて・・・UNIX系でよく使われる
$ gzip file_name (圧縮)
$ gunzip file.gz(解凍)
$ gzip -r file.gz file_01 file_02 /dir
(複数のファイル・ディレクトリの圧縮)
bz2に付いて・・・UNIX系でよく使われ、最も高い圧縮率
$ bzip2 file.bz2 file_01 (圧縮)
$ bunzip2 file.bz2 (解凍)
$ bzip2 file.bz2 file_01 file_02 /dir
(複数のファイル・ディレクトリの圧縮)
zipに付いて・・・Windowsとの互換性がある
$ zip -r file_name (圧縮)
$ unzip file.zip (解凍)
$ zip -r file.zip file_01 file_02 /dir
(複数のファイル・ディレクトリの圧縮 )
アーカイブファイル *****.tar
複数のディレクトリ・ファイルをひとつにまとめる。
圧縮されるわけではなく、一つのファイルにまとまるだけ。
上記の圧縮と組み合わされることが多い。(XXX.tar.bz2など)
≪tarのオプション≫
-c 新しいアーカイブの作成
-u 差分を取る
-f -cと組み合わせて、tarファイルの作成に指定したファイル名を使用。
-xと組み合わせて、指定されたファイルを展開。
-t tarファイル内のファイルの一覧を表示
-v 進行状況の表示
-x アーカイブからファイルを展開
-z gzipを使って、tarファイルを圧縮
-j bzip2を使って、tarファイルを圧縮
≪tarファイルの作成≫
$ tar cfv file.tar dir (and/or) file
(複数のファイル・ディレクトリをまとめる場合は、スペースで区切って列記する)
$ tar ufv file.tar dir (and/or) file
(複数のファイル・ディレクトリの差分を取る)
$ tar tvf file.tar(tarファイルの内容の表示)
$ tar xvf file.tar (tarファイル展開)
≪tar.gz or .tgzファイルの作成並びに伸長展開≫
$ gzip file.tar (tarファイルを圧縮)
$ tar cfvz file.tar.gz file(and/or)dir (tarを更にgzipで圧縮)
$ tar xfvz file.tar.gz (file.tar.gzを一気に伸長+展開)
≪tar.bz2 or .tbzファイルの作成並びに伸長展開≫
$ bzip2 file.tar (tarファイルを圧縮)
$ tar cjvf file.tar.bz2 file(and/or)dir (tarを更にbzip2で圧縮)
$ tar xjvf file.tar.bz2 (file.tar.bz2を一気に伸長+展開)
windowsをmount,umount する
$ mount -t vfat /dev/hda1 /mnt/win1
$ umount /mnt/win1
USBをmount,umount する
$ mount -t devpts /proc/bus/usb /mnt/usb
$ umount /mnt/usb
floppy disc を使う
# umount /mnt/floppy
# fdformat /dev/fd0H1440
物理フォーマット
# /sbin/mke2fs /dev/fd0
論理フォーマット
# mount /dev/fd0 /mnt/floppy
boot image をfloppyに書き出す
# dd if=input_filename of=output_filename obs=bytes
input_filename.....
output_device...../dev/fd0 or /media/usbdisk
obs.....default(512)
# chkconfig --list httpd
httpdの設定を表示....httpd省略時には全てを表示
# chkconfig --add httpd
サービスの追加
# chkconfig --del httpd
サービスの削除
# chkconfig --level 345 httpd on
起動時のサービスの切り替え
repoの登録
# cd /etc/yum.repos.d
# wget http://directory.fedoraproject.org/sources/idmcommon.repo
# yum install package-version
# rpm -qa | grep gcc
引数 -q .....query, -a.....all
installされているパッケージでgcc の名前の付くものを調べる
# rpm -ivh package_name.i386.rpm
# rpm -ivh http://download.fedora.redhat.com/pub/fedora/linux/extras/3/i386/package_name.i386.rpm
installする
# rpm --import http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras
keyのinstall
# rpm -e package_name
uninstall
引数 --nodeps .....dependency関係でuninstallできない場合に使用
ソースファイル(src.rpm)からInstall
# rpm -ivh package-version.src.rpm
# cd /usr/src/redhat/SPECS/
# rpmbuild -ba /usr/src/redhat/SPECS/package-version.spec
# cd /usr/src/redhat/RPMS/i386/
# rpm -ivh package-version.i386.rpm
[ ~]$ day=`date +%Y%m%d`
[ ~]$ echo $day
20071227
[ ~]$ echo $day > ${day}_test.txt
現在のdirectoryに20071227_test.txtという名のファイルが出来、内容は、20071227ということになる。
また、詳しくは、man dateで形式を調べてください。
[ ~]$ echo $? returnを調べる
0
[ ~]$
|
これをbash scriptsにまとめると、
#!/bin/bash
#
day=`date +%Y%m%d`
#
# BackUp
#
echo $day > ${day}_test.txt
|
$ chmod +x date.sh
と、実行権を与え、
$ ./date.sh
crontab の使用
# crontab -u root -e
1月から12月までの木曜日(4)の9時10分に/var/scripts/re_week.shを実行
10 21 * 1-12 4 /var/scripts/re_week.sh
1月から12月までの1日の4時00分丁度に/var/scripts/re_month.shを実行
0 4 1 1-12 * /var/scripts/re_month.sh
min[0-59] hour[0-23] day[1-31] month[1-12] week[0(sunday)-6] Scripts
day[1,15]....first or fifth
arp
MACアドレス(Ethernet固有のアドレス...ユーザーが変更不可・・・正確にはチョット違うが?)とIPアドレスとの関係を調べる。
ARP(Address Resulution Protocol)はアドレスを解決するテーブルを作る。
[root@fedora ~]# arp -a
? (***.***.***.77) at 00:01:8G:BA:00:73 [ether] on eth0
router (***.***.***.72) at 00:30:17:ED:18:84 [ether] on eth0
[root@fedora ~]#
|
ifconfig
使用しているパソコンのMACアドレスとIPアドレスはこのコマンドで。
[root@fedora ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:1A:A0:26:15:29
inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 2001:c90:1d60:31f4:21a:a0ff:fe26:1529/64 Scope:Global
inet6 addr: fe80::21a:a0ff:fe26:1529/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1826 errors:0 dropped:0 overruns:0 frame:0
TX packets:1716 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:985423 (962.3 KiB) TX bytes:416420 (406.6 KiB)
Interrupt:17
eth1 Link encap:Ethernet HWaddr 00:02:2A:DD:57:A8
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:16 Base address:0xd800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1740 errors:0 dropped:0 overruns:0 frame:0
TX packets:1740 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2519440 (2.4 MiB) TX bytes:2519440 (2.4 MiB)
[root@fedora ~]#
|
ethtool
[root@fedora ~]# ifdown
[root@fedora ~]# ethtool -s eth0 autoneg on speed 100 duplex full
[root@fedora ~]# ifup eth0
[root@fedora ~]# ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Current message level: 0x000000ff (255)
Link detected: yes
[root@fedora ~]#
|
netstat
[root@fedora ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
[root@fedora ~]# # netstat -ln | grep tcp
tcp 0 0 ---.--.--.66:5060 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5060 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN
tcp 0 0 :::8009 :::* LISTEN
tcp 0 0 :::8080 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::1:6010 :::* LISTEN
tcp 0 0 :::8443 :::* LISTEN
[root@aptity httpd]#
[root@fedora ~]# netstat -help
|
route
[root@fedora ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
======================================================================
[root@fedora ~]# route add default gw 192.168.1.1 netmask 255.255.255.128
[root@fedora ~]# route del default gw 192.168.1.1
|
fdisk
[root@fedora ~]# fdisk -l
Disk /dev/sda: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 10212 81923467+ 83 Linux
/dev/sda3 10213 10343 1052257+ 82 Linux swap / Solaris
/dev/sda4 10344 19452 73168042+ 5 拡張領域
/dev/sda5 10344 19452 73168011 83 Linux
Disk /dev/sdb: 80.0 GB, 80000000000 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdb1 * 1 9726 78124063+ 83 Linux
==========================================================================
使い方: fdisk [-b SSZ] [-u] ディスク 領域テーブルの変更
fdisk -l [-b SSZ] [-u] ディスク 領域テーブルリストの表示
fdisk -s パーティション ブロックの領域サイズ表示
fdisk -v fdisk のバージョン表示
ここで `ディスク' とは /dev/hdb や /dev/sda の様な何かの事です
そして `領域' とは /dev/hda7 の様な何かの事です
-u: (シリンダの代わりに)セクタユニットの開始、終点を与えます
-b 2048: (ある種の MO ドライブ用に) 2048 バイトのセクタサイズを使います
|
$edit ${HOME}/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias netscape='/usr/navigator/navigator & >& /dev/null '
alias rm='rm -i'
# User specific PATH and so on
CVSROOT=${HOME}/CVS
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib:/usr/local/lib
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
#export PKG_CONFIG_PATH CVSROOT LD_LIBRARY_PATH
export LD_LIBRARY_PATH CVSROOT
|
環境変数の設定は難しい!
新しいVersionを試すときなど、環境変数の設定は必須である。
サービスの起動
$ su
passwd:
# /sbin/service httpd start
-- or --
$ su -
passwd:
# service httpd start
IPから
$ whois -h whois.nic.ad.jp 192.168.1.10
-h [ AfriNIC | APNIC | ARIN | LACNIC | RIPE NCC ]
$
$
$
文字コードの変換
$ nkf -w file_name > file.utf (...utf)
$ nkf -e file_name > file.euc (...euc)
$ nkf -j file_name > file.dos (...sjis)
文字コードの一括変換
$ find . -name "*" -print0 | xargs -0 nkf -w -Lu --overwrite
ソースファイルの一括変換
#!/bin/bash
#
CPP=`ls | grep .cpp`
###############################
#
# 文字コードの変換 utf-8? --> jis
#
#for fname in $CPP
#do
# nkf -j < $fname > ${fname}.dos
# mv ${fname}.dos ${fname}
#done
###############################
#
# 改行コードの変換 \n --> \n\r
#
for fname in $CPP
do
awk '{print $0 "\r"}' $fname > ${fname}.dos
mv ${fname}.dos ${fname}
done
|
$ make clean
$ rm -r ./.deps ./autom4te.cache
$ aclocal
$ automake -a
$ autoconf
後は、
$ ./configure
$ make
$ make install
|
|