第二章 shell编程基础

Posted 6点32分

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二章 shell编程基础相关的知识,希望对你有一定的参考价值。

2.1.1 shell脚本的参数

  常用参数

  (1) *  以一个字符串显示所向脚本传递的参数,与位置变量不同,此参数可超过9个

  (2) @ 从参数1开始,显示所有向脚本传递的参数,和上边的*相似,下面会介绍区别

  (3) # 参数数量,不包含参数0

  (4) $ 脚本运行的当前ID号

  (5) ! 后台运行的最后一个ID号

  (6) ? 显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误

  (7) - 显示shell使用的当前选项,与set命令功能相同

  注:① * 和 @ 的区别在于,当加上双引号时,* 输出的是将所有参数当成一个字符串输出也就是"$1 $2 $3"

    而@则是将所有参数一个一个输出,也就是"$1" "$2" "$3"

    ② - 减号的作用,主要用于标准输入与输出中,在管道中应用,可以省去我们创建临时文件的过程

2.1.2 mv 移动或重命名文件或目录

  常用参数

  (1) -f  //如果文件的空间保留或者固定范围大小无法保存,就发出警告

  (2) -i  //在覆盖现有文件之前不提示

2.1.3 mkidr 创建一个或者多个新的目录

  常用参数

  (1) -m 指定文件夹权限大小

2.2.1 I/O重定向

2.2.2 cat 连接或显示文件

  常用参数

  (1) -n  //显示行号

  (2) -b  //显示非空行号

  (3) -s  //有连续两行以上空行,则只显示一行空行,其他省略

  注:①tac 从结束到开头显示文件

    ②不要使用重定向符号>将输出重定向到输入文件之中。因为shell在cat命令可读取该文件之前先将它截断了

2.2.3 | 管道

  管道的数据共享是在内核中通过内存复制实现的,因此,在设计管道时,尽量把能够江苏数据量操作的置于管道前端。

2.2.4 head 显示一个文件或多个文件的前几行或前几个字节

  主要参数

  (1) -n  //指定显示的行数,默认为10

  (2) 后边也可以接多个文件

2.2.5 文件描述符

  此部分有点难啊,,,,

  待以后学习了后在补充吧

2.2.6 特殊文件

  (1) /dev/null  就像一个“黑洞”,垃圾回收站,写进去的文件不可读,可以将不需要的垃圾文件软连接到这个文件上。

  (2) /dev/zero 这要用途是用来创建一个指定长度,并且初始化为空的文件,这种文件一般都用作临时交换文件。

  (3) /dev/tty  写入这个文件的内容可以在屏幕上显示,很常用

    printf"enter new passwd:"  //提示输入

    stty-echo           //关闭自动打印输入字符的功能

    read pass < /dev/tty      //读取密码

    printf"enter again"       //在读一次,确认密码

    read pass2< /dev/tty     //记得重新打开自动打印输入字符功能

    stty echo

2.2.7 read 从标准输入中读取一行。

  主要参数:

    (1) -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。

    (2) -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志,会举例说  明。

    (3) -p 后面跟提示信息,即在输入前打印提示信息。

    (4) -e 在输入的时候可以使用命令补全功能。

    (5) -n 后跟一个数字,定义输入文本的长度,很实用。

    (6) -r 屏蔽,如果没有该选项,则作为一个转义字符,有的话 就是个正常的字符了。

    (7) -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。

    (8) -t 后面跟秒数,定义输入字符的等待时间。

    (9) -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。

2.3 一切皆文件

  共有其中文件类型

  (1) -  普通文件

  (2) d 目录文件

  (3) c 字符设备文件

  (4) b 块设备文件

  (5) s 套接口文件

  (6) l 符号链接文件

  (7) 管道文件

  

  

 

以上是关于第二章 shell编程基础的主要内容,如果未能解决你的问题,请参考以下文章

shell 脚本编程基础篇

shell基础编程

shell编程基础知识2

Shell编程-10-Shell中的数组

两天高效学会Shell基础编程(赞赞赞)

两天高效学会Shell基础编程(赞赞赞)