Shell学习中
时间:2007-01-30 来源:youyuanyin
一、基本命令
cal 日历
date 显示或修改日期
`expr 表达式` 对表达式进行运算
find . | xargs grep "funcname" 查找funcname
finger 查看登录用户信息
grep string file 在文件中查看有无匹配的字符串
kill -l 显示所有的信号名,在RedHat Linux9中显示如下:
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1
35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5
39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9
43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13
47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-14 50) SIGRTMAX-13
51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10 54) SIGRTMAX-9
55) SIGRTMAX-8 56) SIGRTMAX-7 57) SIGRTMAX-6 58) SIGRTMAX-5
59) SIGRTMAX-4 60) SIGRTMAX-3 61) SIGRTMAX-2 62) SIGRTMAX-1
63) SIGRTMAX
last 查看登录用户信息
let var=表达式
man 数字 xxx (数字默认为0,代表shell命令;1表示系统调用; 2代表库函数)
mount mount -o codepage=936,iocharset=cp936 /dev/hda5 /mnt/fat mount -o iocharset=cp936 /dev/hda5 /mnt/ntfsmount -o loop /abc.iso /mnt/iso
mount /dev/fd0 /mnt/floppy
mount /dev/sda1 /mnt/U
mount -a /etc/fstab里列出的
mount -t vfat(ext2、ext3) * *
用codepage=936,iocharset=cp936能显示fat32的分区中的中文,这个参数对
cdfs分区无效
ps -d 查看守护进程
ssh登录远程机
ssh node command登录远程机执行命令,在本地显示
shift 向左移动参数位置
test
文件状态测试
-d 目录
-f 正规文件
-L 符号连接
-r 只读
-s 文件长度大于0,非空
-w 可写
-u 文件有suid位设置
-x 可执行
逻辑操作符
-a 逻辑与,操作符两边均为真,结果为真,否则为假
-o 逻辑或,操作符两边一边为真,结果为真,否则为假
! 逻辑否,条件为假,结果为真
字符串测试
= 两个字符串相等
!= 两个字符串不等
-z 空串
-n 非空串
数值测试
-eq 数值相等
-ne 数值不相等
-gt 第一个数大于第二个数
-lt 第一个数小于第二个数
-le 第一个数小于等于第二个数
-ge 第二个数大于等于第二个数
time command/sh 显示运行时间
uname -a 察看系统信息
who 查看用户信息
二、符号
`` 希望执行某个命令或脚本并替换其输出结果的语句中
‘’ 不希望其中发生字符替换,保持其内字符串原样,所有特殊的含义或功能都被屏蔽;每次使用某个变量时,重新读取它
“” 其中的字符或命令可被替换
((var=表达式或条件表达式))
[条件表达式]
-eq 等于
-ge 大于等于
-gt 大于
-le 小于等于
-lt 小于
-ne 不相等
< 重定向输出
> 重定向输入
<< 重定向输入追加
<< 重定向输出追加
$number 代表第number个参数
$* 所有的命令行参数作为一个参数获取
$@ 获取整个命令行,并分割成不同的参数
$# 命令行参数的个数
$word 取变量的值
三、常见的提示错误:
too many arguments
解释:不符合规定的参数数目
示例:
错误 if [ $confirm = 'y'] -a [$confirm = 'Y' ]
正确 if [ $confirm = 'y' -a $confirm = 'Y' ]或if [ $confirm = 'y' ] || [ $confirm = 'Y' ]