分类: LINUX
2008-08-18 22:28:33
本章目标: 了解shell的发展过程和用途 掌握shell变量的设置和使用 掌握bash的基本操作方式 掌握简单的shell脚本编辑方法 shell的环境: Shell程序充当了一个命令解释器的角色。 Shell的发展和分类: Bsh―――20世纪70年代中期―――新泽西的AT&T贝尔实验室 Csh―――20世纪80年代早期―――加利福尼亚――C语言风格 Ksh―――AT&T贝尔实验室―――结合了bsh和csh Bash――-默认的Shell 1、RHEL4中提供的Shell /etc/shells #记录了当前linux系统中能够使用的shell Example: $ cat /etc/shells $ ls –l `cat /etc/shells ` 2、shell程序的切换 3、用户默认shell的设定与shell的修改 $ cat /etc/passwd $ grep teacher /etc/passwd $ chsh #命令的使用 Bash的主要功能: SHELL变量: ×环境变量 ×预定义变量 ×位置变量 ×用户自定义变量 环境变量: 1、查看环境变量: $ set | head -3 2、常用环境变量介绍: USER、UID、SHELL、HOME、PWD、PATH、PS1、PS2 3、环境变量配置文件 $ ls –l /etc/bashrc /etc/profile /etc/profile #文件负责设置全局的环境变量,并应用于所有的用户登陆shell /etc/bashrc #文件用于定义全局的函数和别名,文件的内容除了为系统中所有登录用户提供设置外,也适用于非交互shell和非登陆shell /etc/skel #目录中保存了初始的用户配置文件模板,当用户对自己的配置文件进行了错误的设置后,可以直接将/etc/skel目录中的模板文件复制到用户目录,从而恢复到正确的初始配置。 位置变量: 预定义变量: 预定义变量是linux系统中已定义好的变量,用户只能使用预定义变量,而不能创建或赋值预定义变量。所有的预定义变量都是由$和另一个符号组成的,常用的shell预定义变量有: $#:表示位置参数的数量 $*:表示所有位置参数的内容 $?:表示命令执行后返回的状态 $$:表示当前进程的进程号 $!表示后台运行的最后一个进程号 $0:表示当前执行的进程名 用户自定义变量: 1、自定义变量的设置: 变量名=变量值 $DAY=sunday 2、自定义变量的查看与引用: example: $DAY=sunday $echo $DAY sunday $set | grep DAY DAY=sunday #set命令可以显示系统中所有的变量,也包括用户自定义变量。 3、自定义变量的输出: #用户在当前shell中定义了某个变量后,只能在当前的shell中使用,而在当前shell的 子shell中是无效的。 example: $DAY=sunday $echo $DAY sunday $bash $echo $DAY #为了在用户的子shell或脚本程序中使用自定义变量,需要将用户自定义的变量“输出 ”为全局变量。 Export 命令用于输出变量为全局变量: Export [-nf ] [name=[value]……] example: $echo $DAY sunday $export DAY $bash $echo $DAY sunday $exit #export命令可以在输出变量的同时对指定名称的变量进行赋值 $export DAY=sunday MONTH=jan $echo $DAY $MONTH sunday jan 4、自定义变量的清除: $ echo $DAY $ sunday $ unset DAY $ echo $DAY $ bash常用功能 1、命令行编辑功能 1、光标的移动 2、退格键与删除键 3、定位命令行首尾:home ;end; 4、行内快速删除命令:ctrl+U;ctrl+K 2、命令行补全功能 1、命令补全功能 2、文件补全功能 3、命令历史与命令重复 1、命令历史的使用 2、历史命令的查看 $ history $!113 3、用户命令历史文件: $ set | grep HISTFILE $history -c 命令别名: 1、命令别名的显示 $ alias #如果定义的命令别名与原命令重名,bash在执行命令时将优先执行别名命令,而用户需要执行原命令时需要输入该命令的完整路径。 2、命令别名的定义: $alias name=value 3、命令别名的取消: $unalias [-a ] name #用户固定使用的自定义别名命令应保存在用户宿主目录的".bashrc"文件中。 4、系统别名定义文件: #RHEL4系统中为用户预定义的命令别名保存在”/etc/profile.d”目录的配置文件中 管道与重定向: 1、标准输入输出 2、重定向 1、输入重定向 2、输出重定向 3、错误重定向 4、输出重定向和错误重定向的组合使用 #如何需要将标准输出和错误输出重定向到同一个文件,需要使用&>重定向操作符。 管道: shell脚本 1、Shell脚本的概念 Linux系统中的shell脚本 基本脚本编程: 1、 建立shell脚本文件 2、 脚本中应该包括的内容 a) 脚本运行环境设置 b) 注释行的使用 c) 脚本语句 3、 设置脚本文件为可执行 脚本运行: 1、使用shell命令 #程序执行脚本:不需要脚本文件具有可执行的属性 2、使用“.” 命令执行脚本:不需要有可执行权限 3、设置执行属性执行脚本:需要有可执行权限,使用绝对路径