Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88831
  • 博文数量: 38
  • 博客积分: 273
  • 博客等级: 二等列兵
  • 技术积分: 215
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-14 22:01
文章分类

全部博文(38)

文章存档

2012年(14)

2011年(24)

分类: LINUX

2011-12-15 11:07:02

1. 以 #! /bin/sh 开头。

2. 赋值语句内一定不要留多余空格,语句后不必加分号。
如 a = "Hello",等号两端的空格会让shell以为a是一个命令。

3. 取变量值在变量前加 $。
如 echo $a,将把a的值打印出来,echo会自动打印换行符。
此方法在字符串中也可使用。
如 echo "$a"

4. 使用chmod +x 使文件可执行。

5. 在shell中可以使用容易的unix命令。

6. expr进行数学计算。
如:expr 2 "+" 3     (运算符需要加引号)
    也可以使用bc计数器,在bc计数器中运算符不需要加引号。
    也可以使用以下方式计算:$[2 + 3]

    所有的数学运算只能处理整数,不能处理小数。


7. file得到文件类型。
如:file filename

8. sort对文件排序输出,但不改变原文件。
如:sort filename

9. uniq删除连续的重复项。
如:sort filename | uniq

10. basename返回文件名,dirname返回路径名。

11. grep在文件中查找指定字符串。
如:grep "string" filename
    find查找文件。
如:find ./ -name filename

12. sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令

采用正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。比如:将linuxfocus 替换为 LinuxFocus :cat text.file | sed

's/linuxfocus/LinuxFocus/' > newtext.file。

13. awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F, '{print "," }'

这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下:
Adam Bor, 34, IndiaKerry Miller, 22, USA
命令输出结果为:
Adam Bor, IndiaKerry Miller.

14. wc -l计算行数,-c字符数,-w单词数。

15. 输出重定向。
>覆盖, >>追加

16. time, date, cal

17. 流程控制
        if ...; then

18. tar命令
        -f:指定文件名。
        -c:创建归档文件tar,未压缩。
        -x:解压。
        -z:指定以gz格式压缩,解压对应格式也用此参数。
        -j:指定以bz2格式压缩,解压对应格式也用此参数。
        -v:显示详细信息。
-f 参数要放在最后面,否则会出错。
如:
    压缩:
        tar -cf test.tar test  创建归档文件test.tar,未压缩
        tar -zcf test.tar.gz test 创建压缩文件test.tar.gz,压缩为gz格式
        tar -jcf test.tar.bz2 test 创建压缩文件test.tar.bz2,压缩为bz2格式
        注:压缩文件名是自己取的,但最好使用约定的扩展名
    解压:
        tar -xf test.tar  解压归档文件
        tar -zxf test.tar.gz  解压gz格式文件
        tar -jxf test.tar.bz2 解压bz2格式文件
以上各指令都可以加上-v选项以显示详细信息。
注意各参数的顺序,-f 参数要放在最后面,否则会出错。

19. diff, cmp

20. 操作DOS文件系统
    只需在命令前加m即可以操作Windows文件系统,如mcd,mcopy等。

21. 默认情况下普通用户只能在自己的主目录~和/tmp目录下创建子目录或创建文件。

22. Linux中一切操作对象都是文件,包括鼠标键盘等。

23. grep, egrep, fgrep
        前两个可以使用正则表达式。
        元字符:
"^" :表示文本行开头。
"$" :表示文本行结束。
"."  :表示任何一个字符。
"\"  :讲元字符转化为普通字符。
"\" :表示一个由word组成的单词。
"[]" :表示搜索可选择的字符。如[0-9], [a-z]
"*" : 重复任意次数。



23.   显示文件或目录大小:du。
        显示磁盘使用率:df。
        两个指令都可以使用-h选项可将各数据转换成方便人类阅读的格式。

24.  export声明变量。export声明过的变量在一个会话中都有效。
        要使环境变量启动时自动初始化,可以在/etc/profile中使用export声明。

25.  位置参数:$1,$2 ...。它是在程序名之后输入的参数,各参数间用空格分隔。
        $0是一个特殊变量,它是shell程序的文件名,不是位置参数。
        如:echo $1 $2
        在命令行调用时,提供两个参数,此脚本即可将此参数显示出来。


26.  预定义变量。由shell定义的特殊变量。
        $#:位置参数的数量。
        $*:所有位置参数的内容。
        $?:命令执行后返回的状态。
        $$:当前进程的进程号。
        $!:后台运行的最后一个进程号。
        $0:当前执行的进程名。
        其中,$?用于检查上一个命令执行是否正确。
在Linux中,命令退出状态0表示命令正确执行,任何非0值都表示出错。
        $$变量最常见的用途是用作临时文件的名字以保证临时文件不会重复。

27.  参数置换的变量
       参考Red Hat Linux 9 系统管理员完全学习手册,P191

28.  命令分组
        shell中的“()”与“{}”有特殊意义。
        ():shell会新建一个进程运行括号中的脚本,所以括号中的变量值的改变不会对外面的程序产生影响。
        {}:以管道方式运行括号中的脚本,前一条指令的输出将作为后一条指令的输入。

        所以在真正需要使用括号时需要使用转义字符\,否则会被解释为命令分组。

29.  信号。
        参考Red Hat Linux 9 系统管理员完全学习手册,P195

30.  shell程序的调试
-e:如果一个命令失败就立即退出。
-n:读入命令但是不执行他们。
-u:置换时把未置换的变量当作出错。
-v:当读入shell输入行时把他们显示出来。
-x:执行命令时把命令和他们的参数显示出来。
        所有上面的选项也可以在shell程序内部使用“set -选项”说明,“set +选项”将禁止该项起作用。

31. 流程控制语句比较琐碎不再赘述。

32.  别名alias。
       使用 alias 别名='命令',可以为命令指定别名。
       输入alias将可以看到系统使用的所有别名,如:alias ll='ls -l'

33.   history显示命令输入历史。
        使用 !! 可以重复上一条命令。

34.  bash内部命令
echo :回显命令。
命令:执行命令,用在其他语言中执行shell命令。
exec 命令:进程执行完此命令即终止。
export :声明变量,使后面的脚本都可以使用。
readonly : 声明变量为只读。
read 变量名:从控制台读入数据赋给变量,可以同时输入多个变量。
shift :左移位置参数,$2变为$1,$3变为$2。
wait :等待子进程结束
exit :退出,可指定数字作为返回状态。
. shell脚本:执行其他shell脚本

35.  sync同步命令。将缓存中的数据写入磁盘。

36.   运行一个长时间的指令,shell脚本将停在对应指令处等待指令的结束。
        为了在长指令执行同时可以继续进行其他处理,可以让长指令在后台运行。
        要让指令以后台模式运行,只需在指令后加“&”即可。

37.  使用“ctrl+z”可以让一个进程挂起。
        使用“bg”使挂起的进程恢复到后台运行,使用“fg”使恢复到前台运行。

38.  “ctrl+c”向进程发出结束信号。“ctrl+d”表示输入完成,正常结束。

39.   at:定时任务,只执行一次。
        cron:周期运行任务,以固定时间间隔重复执行。
cron在系统启动时自动以后台方式启动,不需要手工运行。
只需在crontab配置文件中指明时间间隔及需要执行的指令后,系统就会在固定时间间隔里运行相应指令。
             每个用户都可以有自己的crontab,位于/var/spool/cron下,使用crontab -e编辑此配置文件。
编辑/etc/crontab将对所有用户都生效。

40.  who,w:查看当前系统中的用户情况。

41.  kill:默认发送TERM信号,对于可以捕获该信号的进程这样就无法将其杀死,需要使用以下指令:
kill -9 PID , -9指明为KILL信号
阅读(2037) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~