|
本章目标:
了解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”目录的配置文件中 |
|