shell学习笔记之一——入门

来源:互联网 发布:西门子plc编程手册 编辑:程序博客网 时间:2024/06/06 03:38

1. Shell脚本最常用于系统管理工作,或是用于结合现有的程序以完成小型的、特定的工作。

2. 现在UNIX系统都会拥有好几个Shell,因此需要告知UNIX内核应该以哪个Shell来执行所指定的Shell脚本。方法是:通过脚本文件中特殊的第一行来设置:

    在第一行的开头处使用 #! 这两个字符。但是开头的这一行的长度限制是从63到1024个字符,所以,尽量不要超过64个字符。

3. 在一行里可以放置多条命令,之间用分号(;)分隔,Shell会依次执行这些命令。

4. Shell识别三种基本命令: 内建命令、Shell函数和外部命令;

    内建命令就是由Shell本身所执行的命令;

    Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。

    外部命令就是由Shell的副本(新的进程)所执行的命令。

5. Shell变量的命名规则与C++相同,以字母或下划线开头,由任意长度的数字、字母以及下划线组成。

    注意在给变量赋值时,如myname=hello,等号两端是没有任何空格的。

6. echo命令

    原始的echo命令只会将参数打印到标准输出,参数之间以一个空格隔开,并以换行符结尾。

    BSD版本的echo看到第一个参数为 -n 时,会省略结尾的换行符号,如echo -n "Enter your name: "

7. printf命令

    printf命令模仿C程序库里的printf()库程序。它几乎复制了该函数所有的功能。printf命令的完整语法分为两部分:

    printf format - string [arguments ...]

8. 重定向与管道

    以 < 改变标准输入:program < file可将program的标准输入修改为file

    以 > 改变标准输出:program > file可将program的标准输出修改为file

    以 >> 改变标准输出:program >> file可将program的标准输出附加到file的结尾处

    以 |  建立管道:program1 | program2 可将program1的标准输出修改为program12的标准输入

9. tr命令 :tr [options ] source-char-list replace-char-list

    用途:转换字符。例如,将大写字符转换成小写。选项可让你指定所要删除的字符,以及将一串重复出现的字符浓缩成一个。

10. 构造管道时,应试着让每个阶段的数据变得更少。换句话说,如果你有两个要完成的步骤与先后次序无关,可以把会让数据量变少的那一个步骤放在管道的前面。

       这么做可以提升脚本的整体性能,例如,使用sort排序之前,先以grep找出相关的行。

11. 特殊文件:/dev/null 与 /dev/tty (待补充...)

12. 环境变量PATH

      $PATH是一个以冒号分隔的目录列表,可以在列表所指定的目录下找到所要执行的命令。Shell会沿着查找路径$PATH来寻找命令。

      如果要编写自己的脚本,最好准备好自己的bin目录来存放它们,并且让Shell能够自动找到它们。这不难,只要建立自己的bin目录,并将它加入到$PATH的列表即可:

    

$ cd                       切换到home目录$ mkdir bin                建立个人的bin目录$ mv nusers bin            将我们的脚本置入该目录$ PATH=$PATH:$HOME/bin     将个人的bin目录附加到PATH$ nusers                   试试看,Shell找到并执行它

要让修改永久生效,在.profile文件这把你的bin目录加入$PATH,而每次登录时Shell都读取.profile文件

原创粉丝点击