ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linux 基础知识 ---shell部分

linux 基础知识 ---shell部分

原创 Linux操作系统 作者:wysfenghuo007 时间:2008-09-01 15:33:57 0 删除 编辑

【linux与shell编程指南 第三章-后台执行命令】
1、cron:系统调度进程,可以使用它在每天的非高峰负荷段运行作业,或在一周或一个月中的不同时段运行。
  at:使用它在一个特定的时间运行一些特殊的作业,或在晚些时候的非负荷高峰时段运行
  &:在后台运行一个占用时间不长的进程
  Nohup:运行一个命令,即使用户退出也不受影响

2、Crontab文件格式
   分  时  日 月  星期   命令
  1-60 1-24 1-31 0-6     绝对路径
   列举使用都好,区间使用- ,如果是在该列中没有限制,使用*

  在脚本中设置好脚本运行的所有环境变量。

3、查询当前日期信息
   date
   echo `date`表示如果date是命令时就执行相应的命令,如果是普通字符时则显示普通字符。
   echo命令的含义是将消息输出到标准输出中,如果是启动转义符的话,加-e参数,禁止时使用-n参数
   例如:echo -e "\n my home is $HOME" 空一行
         echo -n "\n my home is $HOME"不空行  
      要想输入双引号需要在引号前面加入转义字符
         echo "\"my name is $HOME\""
   read命令:可以从键盘或者文件的某一行输入信息,并将其赋给一个变量。
   注意,他是以空格作为变量之间的分割符的。


  cat命令用来显示文件的内容,或者创建文件,注意他是一次全部显示,如果想分页显示时,可以使用more命令或者采用管道输入到具有分页功能的命令中。使用-v参数可以显示控制符
  cat ls.txt|more
  cat > test.txt
  管道:他就是将信息从一端输入到另一端,sed,awk和grep都很适合于管道
  tee命令:把一个副本输出到标准输入,而另一个副本输出到文件中,使用-a参数,进行文件的追加,他也可以定向到终端上。
4、标准输入输出,错误
   0,1,2 对应标准输入,输出,错误
   使用标准输入:
   sort    command<<自定义输入结束符。
   注意结合使用标准输出和标准错误
   cat test1 test2 test3>test.out 2>test.err
   合并标准输出和标准错误
   ls -al>test.out 2>&1
5、exec命令可以替换当前的shell,而没有启动子shell
【第6章命令执行控制】
1、&&
   command1&&command2表示如果第一个命令执行成功,才执行第二个命令。
2、||
   command1||command2表示如果第一个命令执行失败了,才执行第二个命令
3、使用(),{}把命令结合在一起
   为了在当前shell中执行一组命令可以使用命令分割符隔开每一个命令,并把所有的命令用圆括号括起来。格式:(command1;commd2;commd3...)
   如果使用{}来代替(),那么相应的命令将在子shell中执行,而不是在当前shell中执行,只用档{}中的所有命令的输出作为一个整体被重定向时才使用{},否则在当前shell中执行。
4、grep和正则表达式
   格式:
   grep 选项【正则表达式】文件

   使用grep进行精确匹配方法:
   grep '48\>' test.txt 这是精确匹配48
   grep在缺省情况下是对大小写敏感的,如果忽略大小写可以使用参数-i
   使用正则表达式时,最好用单引号引起来,这样可以防止grep中使用的专有模式与shell命令的特殊方式相混淆。

5 、测试变量是否已运行:
    echo ${file:?} 测试变量file是否已经设置
    echo ${file:-txt}测试变量file如果已经设置则使用原设置的值,否则使用txt,注意:与-之间没有空格
    设置只读变量:readonly 变量名
    查看系统的只读变量: readonly
6、环境变量
   显示环境变量跟显示本地变量一样使用echo,但是将环境变量引入到用户进程需要使用export导出。显示系统的所有环境变量使用env

   注意:在shell脚本中调用shell,要使用绝对路径。
  位置环境变量是:使用 $0-$9,$0记录文件名

   echo -e参数显示控制字符
7、shell脚本
   使用shell脚本可以加快处理复杂问题的速度,简化时间,提高效率。注意,调试脚本时一步步进行,并且把结果保存起来,这是一个好方法。shell脚本第一行是#!/bin/sh,它是告诉shell调用bourne shell解释器,注释行用#,最后要加可执行权限。 把脚本放在.profile中的PATH路径指定的目录下。
8、 使用expr时,需要符号之间有空格
    注意:if 与条件符号[]之间必须有空格
9、$#与$@的区别是$#表示输入参数的个数,$@表示输入参数的具体值,在使用时需要用双引号
10、/dev/null与/dev/zero的区别:
    /dev/null,又称无底洞,送给他的东西,通吃而且也不会撑着。
    /dev/zero,它是一个输入设备,可以用来初始化文件,可以提供无穷尽的0
11、使用dd命令创建文件时,=号两边不能有空格
    dd if=/dev/zero f=/root/dd.txt count=1024 bs=1024
12、变量赋值问题
    如果当前变量有值,则默认使用。如果没有值的话,用另一个变量进行赋值。
    例如:
    var_x=wangysh
    var_y=yangyh
    :  ${var_x:=$var_y}
    echo $var_x时显示wangysh,如果unset var_x时,则显示yangyh
13、[]中间的等号两边必须有空格,例如:[ "_USER_NAME = "" ]而不能这样[ "_USER_NAME"="" ]

    for语句中:
    for loop
    do
     ....
    done 其中loop变量为入口参数值
14、awk与wc获取字符串的区别是:awk默认把字符串结尾的空格截掉,而wc会连空格也计算在内。
15、测试函数的方法是:先将作为普通代码进行测试,然后转换为函数,这样可以节省大量的时间。


   

 

  

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/318184/viewspace-440365/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2008-02-14

  • 博文量
    1
  • 访问量
    5932