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[@],以扩展为使每个数组项都进行操作后的内容。