getopt
=====================================================
常用指令
=====================================================
1 基本指令
o 1.1 ls -R -S -t -i(find -inum)
o 1.2 cat,tac
o 1.3 rev
o 1.4 cp -a -u -R(r)
o 1.5 mv
o 1.6 rm ./-g -- -g
o 1.7 rmdir
o 1.8 mkdir 這個指令的 -p我以前用過,還可結合{ ,}
o 1.9 chmod
o 1.10 chattr (以前一直沒搞懂它和lsattr怎用的,lsattr老是全出現-) i a s u c
o 1.11 ln
o 1.12 man,info
2 複雜指令
o 2.1 find -exec COMMAND /; /+這個怎麼用?(mv)重點!-execdir??
o 2.2 xargs
o 2.3 expr *****
3 時間/日期指令
o 3.1 date %N
o 3.3 time times(好像是内建指令, time好像也是 :help與enable)
o 3.4 touch
o 3.5 at
o 3.8 sleep
4 文本處理指令
o 4.1 sort*
o 4.3 uniq*
o 4.5 cut* awk
o 4.8 head
o 4.9 tail
o 4.10 grep*
o 4.12 sed,awk*
o 4.15 wc*
o 4.16 tr*
o 4.17 fold -s??
o 4.19 col(?)
o 4.20 column
o 4.22 nl
5 檔案與歸檔指令
o 5.1 tar --delete(隻對.tar,不對.gz) -u -r -A -d
o 5.2 shar
o 5.3 ar
o 5.4 rpm
o 5.5 cpio (低??)
o 5.6 rpm2cpio
6 壓縮指令
o 6.1 gzip
o 6.2 bzip2
o 6.5 zip,unzip
o 6.6 unarc,unarj,unrar
7 檔案資訊
o 7.1 file*
o 7.2 which
o 7.3 whereis*
o 7.4 whatis
o 7.6 locate,slocate
o 7.8 diff,patch* (diff3 sdiff很少用)
o 7.9 cmp
8 一般工具
o 8.1 basename
o 8.2 dirname
o 8.4 sum,cksum,md5sum,sha1sum*
o 8.5 shred
9 編碼和解碼
o 9.1 uuencode
o 9.2 uudecode
10 一些雜項工具
o 10.1 mktemp
o 10.4 dos2unix
11 通訊指令
o 11.1 host
o 11.3 nslookup
o 11.4 dig
o 11.5 traceroute
o 11.6 ping
o 11.7 whois
o 11.13 ftp
o 11.15 telnet
o 11.16 wget
o 11.21 rsync ????
o 11.22 ssh
o 11.23 scp
o 11.24 write
o 11.25 mail (可以對外郵寄)
12 終端控制指令
o 12.5 script
13 數學計算指令
o 13.2 bc
o 13.4 awk*
14 混雜指令
o 14.2 getopt ??
o 14.11 dd*
=====================================================
Shell内建指令
=====================================================
1 I/O 類
o 1.1 echo -n -e -E
o 1.2 printf
o 1.3 read -n
2 檔案系統類
o 2.1 cd
o 2.2 pwd
o 2.3 pushd、popd、dirs
3 變量類
o 3.1 let
o 3.2 unset
o 3.3 export
o 3.4 getopts
4 腳本行為
o 4.1 source, . (點指令)
o 4.2 exit
o 4.3 exec
o 4.4 true
o 4.5 type[cmd]
o 4.6 bind
o 4.7 help
5 作業控制指令
o 5.1 jobs
o 5.2 disown nohup setsid screen
o 5.3 fg、bg
o 5.4 wait
o 5.5 logout
o 5.6 times
o 5.7 kill
o 5.8 command
o 5.9 builtin
=====================================================
系統管理指令
=====================================================
---------------------------------------------
ulimit
/proc裡設定
修改核心源碼,從新編譯核心
----------------------------------------------
1 Users 和 Groups 類指令
o 1.1 users
o 1.2 groups
o 1.3 chown,chgrp*
o 1.4 useradd,userdel*
o 1.5 usermod*
o 1.6 groupmod gpasswd
o 1.7 id
o 1.8 who
o 1.9 w
o 1.10 logname
o 1.11 su
o 1.12 sudo
o 1.13 passwd
o 1.14 ac
o 1.15 last
o 1.16 newgrp
2 終端類指令
o 2.1 tty
o 2.2 sty
o 2.3 tset
o 2.4 setserial
o 2.5 getty,agetty
o 2.6 mesg
o 2.7 wall
o 2.8 uname
o 2.9 arch
o 2.10 lastcomm
o 2.11 lastlog
o 2.12 lsof (lsusb lsdev)
o 2.13 strace
o 2.14 nmap
o 2.15 nc
o 2.16 free
o 2.17 procinfo
o 2.19 du
o 2.20 df
o 2.21 dmesg
o 2.22 stat
o 2.23 vmstat
o 2.24 iostat
o 2.25 netstat
o 2.26 uptime
o 2.27 hostname
o 2.28 hosted
o 2.29 sar
o 2.30 readelf
o 2.31 size
3 系統日志類
o 3.1 logger
o 3.2 logrotate
4 作業控制
o 4.1 ps pidof
o 4.2 pgrep, pkill
o 4.3 pstree
o 4.4 (h)top
o 4.5 nice
o 4.6 nohup setsid disown screen
o 4.8 fuser lsof
o 4.9 cron
5 程序控制和啟動類
o 5.1 init
o 5.2 telinit
o 5.3 runlevel
o 5.4 halt,shutdown,reboot
o 5.5 service
6 網絡類
o 6.1 ifconfig
o 6.2 iwconfig(無線網絡的ifconfig版本)
o 6.3 route
o 6.4 chkconfig(RH類專有)
o 6.5 tcpdump
7 檔案系統類
o 7.1 mount
o 7.2 umount
o 7.3 sync
o 7.4 losetup
o 7.5 mkswap
o 7.6 swapon,swapoff
o 7.7 mke2fs
o 7.8 tune2fs
o 7.9 dumpe2fs
o 7.10 hdparm
o 7.11 fdisk
o 7.12 fsck,e2fsck,debugfs
8 系統
o 8.1 badblocks
o 8.2 lsusb,usbmodules
o 8.3 mkbootdisk
o 8.4 chroot
o 8.5 lockfile
o 8.6 mknod
o 8.7 MAKEDEV 是一個指令
o 8.8 tmpwatch
9 備份類
o 9.1 dump,restore
o 9.2 fdformat
10 系統資源類
o 10.1 ulimit
o 10.2 quota
o 10.3 setquota
o 10.4 umask
o 10.5 rdev *
11 子產品類
o 11.1 lsmod
o 11.2 insmod
o 11.3 rmmod
o 11.4 modprobe
o 11.5 depmod
o 11.6 modinfo
12 雜項類
o 12.1 env
o 12.2 ldd
o 12.3 strip
o 12.4 nm
o 12.5 rdist
============================================
sed中的可以直接使用的正則:
* . ^ $ [ ] /
需要轉義使用的正則符号:
+ ? { } ( ) | < >
其它
/w ( 相當于[A-Za-z_] ) /W ( 相當于[^A-Za-z_] )
/b 比對單詞的前或後邊界
/B 比對單詞的非邊界
/< 比對單詞的位置前
/> 比對單詞的位置後
============================================
數組類用法:
${name[*]}和${name[@]} 擴充為整個數組的所有項。差別僅在帶雙引号時,*擴充為一個詞,@擴充為數組長度個詞(for val in "${name[*]",即可看出差別),所有變量替換中的*和@的差別都與此類似。
${#name} name為變量時,擴充為變量字元串的長度;name為數組時,擴充為數組長度。${#name[subscript]}符合前者。
雜類:
${parameter:offset}和${parameter:offset:length} 擴充為parameter從第offset字元開始,取length個字元;無length時,預設取到變量末尾。
一種特例,${parameter: -n}擴充為變量parameter的最後n個字元(注意:和-之間必須有空格)
${@:offset:length}擴充為指令行參數清單從 offset開始的length項;
${name[@]:offset:length}擴充為數組name從${name[offset]}開始的 length項。
${!prefix*}和${[email protected]} 擴充為所有以prefix開始的變量名。
${!name[*]}和${!name[@]} 擴充為name數組的所有下标。
預設值類用法:
${parameter-word} 若parameter變量未定義,則擴充為word。
${parameter:-word} 若parameter變量未定義或為空,則擴充為word。
${parameter:-word} 若parameter變量未定義,則從父程序的标準錯誤輸出輸出bash: parameter: word。
${parameter:-word} 若parameter變量未定義或為空,則從父程序的标準錯誤輸出輸出bash: parameter: word。
${parameter+word} 若parameter變量已定義,則擴充為word。
${parameter:+word} 若parameter變量非空,則擴充為word。
${parameter=word} 若parameter變量未定義,則擴充為word,并将parameter指派為word。
${parameter:=word} 若parameter變量未定義或為空,則擴充為word,并将parameter指派為word。
變量值替換類:
${parameter#pattern}和${parameter##pattern} 掐頭,#是最小比對,##是最大比對,将變量從開頭比對pattern,最後擴充為原變量值去掉比對的内容後的内容。
${parameter%pattern}和${parameter%%pattern} 去尾,%是最小比對,%%是最大比對,将變量從結尾比對pattern,最後擴充為原變量值去掉比對的内容後的内容。
${parameter/pattern/string}和${parameter//pattern/string} 擴充為将變量内容比對pattern的部分用string替換後的内容。/隻做第一次替換,//做全部替換。此例的一種特殊用法,pattern中以#開頭時比對pattern開頭的,pattern中以%開頭時比對pattern結尾的。
此類中使用的pattern都是檔案名擴充所支援的通配符,并不支援BRE或ERE,shopt -s extglob打開的擴充檔案名擴充也可影響此pattern,使之支援更複雜的檔案名擴充。
此類中的parameter都可以為*或@,以擴充為使每個指令行參數清單(即$1,$2...$n)都進行操作後的内容;還都可以為name[*]或name[@],以擴充為使每個數組項都進行操作後的内容。