Linux基础学习-第三课(上部分)

 shell

     最早的是bsh,然后基础上产生csh以及ksh。

    综合2种的优点,产生了现在的bash。

主要功能:

1.作业控制      查看作业信息以及调整作业的运行方式等。

2.别名功能     用Alias命令用来为一个命令简历另一个名称,他最主要的功能室使用一个姓新的名称来代表固定参数在内的shell命令。

3.命令历史    可以查看命令历史功能,并重复执行这些命令。

4.命令行编辑功能       能能够方便用户在中断编辑输入命令行。

5.功能键自定义功能   允许用户将常用的命令序列定义为功能键,达到一键操作的效果。

6.提供更能丰富的变量类型、命令与控制结构。

如果需要使用其他shell只需要在shell命令输入该shell程序然后执行即可。

shell变量分为:

1.本地变量  如MOVIE=hello ,引用变量的值 echo $MOVIE   就会显示hello,如果变量本身有空格需用双引号,MOVE=“hello world”,清除定义为unset MOVIE。

2.环境变量  shell开始执行时就已经定义了的变量。export可以显示所有的环境变量。

3.位置参数变量  shell语句通过位置参数变量获得用户在命令行上附加的参数 共有9个,$1-$9.($0表示程序本身,不是位置参数)

    $#表示参数的个数。如果超过9个则第九个机器以后的参数将被作为一个字符串赋给$9变量。如果运行shift参数可以挤掉第一个参数,后面的参数将以此前移一个位置。

4.预定义变量      shell内部已经定义好的变量,不能手动更改,由shell根据系统环境的变化自动赋值。

    $#     传递到脚本的参数的数量

    $*      显示传递到脚本的所有参数内容

    $?     命令执行后返回的状态,0表示成功,非零表示失败

    $$     当前进程的进程号

    $!     后台运行的最后一个进程号

    $0    当前执行的进程名

环境变量中比较特殊的是PATH和PS1变量

PATH变量决定了shell将到那些目录中寻找命令或者程序。如果要执行的命令在$PATH中就不必输入命令的完整路径,如ls、cd、pwd等基础命令的路径都已经加入在PATH中

需要添加命令搜索目录方法如下:

PATH=$PATH:/some/directory

Export  PATH

PS1设置了shell提示符。[\u@\h\w]\$   \u代表用户名 \h代表工作目录 \$代表提示符

bash常用功能

1.*表示任意多个字符     ?表示单个字符

2.tab可以补全,如输入的信息能唯一确定命令或者文件,按一下tab即可补全命令或者文件名

    按两下tab则显示以输入为开头的 所有文件名

3.命令历史  按上箭头显示最后一个历史命令

    history | more 可以分页查看全部的历史命令清单

标准输入输出

0号文件 分配给标准输入文件 对应键盘

1号文件分配给标准输出文件 对应屏幕

2号文件分配标准错误输出文件 对应屏幕

重定向

输入重定向以<开头如命令wc为统计行数、单词数、字符数,在命令行只键入wc时统计标准输入文件的。wc</home/myfile  就可以显示/home/myfile内的行数、单词数、字符数。以<<开头则代表分隔符 如

wc <<8

>my

>first

>test

>8

3    3    11

输出重定向以>开头.如ls -l >file 则为将ls -l的信息写入file文件中,此时会清楚file文件中的内容然后写入。以>>代表在文件末尾追加。

管道

管道用来将前面命令的输入传给后一个命令的输入。

如ls -al ./ | wc

48     375     2450

管道可以以重定向操作结合使用。

脚本

shell脚本的解释程序就是shell本身。

逻辑运算符 -a 双目运算符 逻辑与 ,-o双目运算符逻辑或,-!单目运算符逻辑否。

文件比较运算符  后接文件名 

    -e文件存在为真

    -d如果文件为目录则为真             (ls可以看到目录文件属性为d)

    -f如果文件为常规文件则为真      (ls可以看到常规文件属性为f)

    -L如果文件为符号链接为真         (ls可以看到链接文件属性为l)

    -r/w/x  如果文件可读/写/执行 为真 (对应文件的三种属性)

字符串比较符

    -z str字符串长度为0  为真(zero)

    -n str字符串长度非0  为真(not zero)

  str1 != str2  不同为真  ,str1 = str2 相同为真 (注意只有字符串可以直接用=)

算数比较运算符

 num1 -eq num2 等于(equal),

            -ne             不等于(not equal)

             -lt               小于(less than)

             -le             小于等于(less or equal)

            -gt              大于

           -ge              大于等于


版权声明:本文为u010783413原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。