Shell基础与编程技术讲义.pptVIP

  • 1
  • 0
  • 约9.44千字
  • 约 90页
  • 2019-11-09 发布于天津
  • 举报
第四章 Shell基础与编程技术;4.1 shell概述;Linux系统提供了多种不同的shell。常用的有Bourne shell(简称sh)、C-shelll(简称csh)、Korn shell(简称ksh)和Bourne Again shell (简称bash)。它们的渊源和区别,请读者自己到网上遨游一下,便略知一二。 目前linux系统的缺省shell分别是Bourne Again shell,即bash。 要知道所用的linux有哪些版本的shell,可以查看/etc/shell目录下的文件。查看命令行如下: $ cat /etc/shells 还可以用下面的命令来查看当前的shell类型: #echo $SHELL 其中的“$SHELL”是环境变量,记录使用的shell型。可以用$exit命令退出当前shell。;4.2 shell程序设计基础;2019/11/2;同其他语言一样,也可以通过使用任意一种文字编辑器,比如nedit、kedit、emacs、vi等来编写shell程序。程序最好以“#!/bin/sh”为开始的第一行。符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中使用/bin/sh来执行程序。当脚本编好后,要执行该脚本还要改变其文件为可执行文件属性。但在cygwin的linux模拟环境中可以直接执行而无需改变其文件属性。 改变脚本文件成为可执行文件属性的命令行的写法是: $chmod +x myprogram 或 $chmod 755 myprogram 最后,执行该程序的命令行写法是: $./myprogram 或 $ bash myprogram 回车就可以看到程序的执行结果: hello world. my first shell program.;在shell编程时,以#开头的句子表示这一行为注释。 Shell对用户输入的命令即文件名进行分析。如果文件标记为可执行,但不是编译过的程序,shell把它看作shell脚本,并解释执行。 用户开发的shell脚本可以驻留在命令搜索路径的目录之下如/bin、 /usr/bin等,像普通命令一样使用。通过这样方式可以扩充新命令。 shell脚本经常被用来执行重复性的工作。当进入系统时要查看有无信件、现有用户群、将工作目录改为指定目录、显示当前日期等。完成这些工作的命令是固定的,可把它们写入一个shell脚本中,每次批处理完成。 有些固定工作的命令很复杂,如文件系统安装mount带多个选项和参数,此时用shell脚本存放该命令,就能提高效率。 shell的基本功能有运行程序、输入输出重定向、变量和文件名的替换、管道、编程与环境的控制等。 RedHat Linux带有不少快捷方式。~就是home目录的简写形式。如想把一个名为‘sometext’的文件复制到home目录下的‘docs’子目录中,可以用#cp sometext ~/docs实现。另外,$cd回车可随时回到home目录。;(1)bash 配置文件;(2)提示符;(3)改变 $PATH;处理$PATH变量时,用户不能只替换变量,而要将新字符串添加到原来的值中。用户不能用PATH=/some/directory,这将删除$PATH中的其它所有目录。用户在该终端运行程序时,必须给出完整路径。所以只能添加: PATH=$PATH:/some/directory 当用户打开新终端运行echo $PATH时,返回的是旧$PATH值,看不到添加的新目录。因为用户定义的是局部环境变量。要定义全局变量,用户需要将局部变量输出(export),用export命令: export PATH=$PATH:/some/directory 现在打开新终端,输入echo $PATH,将能看到新设置的$PATH。为了永久保存添加的路径,要将export行添加到用户.bash_profile文件。 不要在.bashrc中设置PATH,以免PATH目录意外增长。因为用户每打开一个终端,目录都会被添加,从而导致PATH变量目录的多次复制。 (4)历时记忆功能 bash命令的历史功能是把以往输入的命令记录下来,方便日后查询与再次使用。只要按向上键就能调出历史命令。与SHIFT键连用,可遍历该控制台中的历史输出。历史命令的编辑修改通过光标和Home、End等键完成。 用户可以为环境变量HISTFILE赋新值改变存放历史命令的文件,如: $ HISTFILE=/home/mengqc/.myhistory ;4.3 shell基本命令;2019/11/2;4.3.2 外部命令;4.3.4 函数;【例】4.2;【例】4.3 定义4个函数并实现其功能;4.3.5 shell的命令组合;通过命令、管道线和

文档评论(0)

1亿VIP精品文档

相关文档