ICON of RYUUO.COM TradeMark

bashの使用

会員登録(SSL)
会員専用(SSL)


更新日: ??????

bashの使用

ここのページは隠しファイルとしていたが公開することにした。どうも年令の為かど忘れが甚だしい。引数・オプション等、いちいち本を調べなければならないことが多々あり面倒なためにこのページを以前から作成しておいた。コマンドからの設定のほうが私見として安心していられるからである。が多少は私と同じ様な方々のために役に立つのではないかと思い公開に踏み切った。FedoraCore3ではCD-ROM並びにUSBは/mnt/cdrom, /mnt/usbではないので注意してもらいたい。

  1. Bashの基礎
  2. 圧縮と解凍
  3. mount umount
  4. floppy disc format
  5. chkconfig のコマンド
    サーバ設定・サービスでGUIが使えるのであまり必要ないと思うが
  6. yum 並びに rpm (インストール)関連
  7. bash scripts
  8. bash scriptsの自動化
  9. NetWork関連
    ifconfig, ethtool, netstate, route
  10. Disk関連
    fdisk,
  11. .bashrcの内容
  12. deamonの起動
  13. whois
  14. 文字コードの変換
  15. 自分だけがよく使うコマンド

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