程序员 centos wordpress 微软 linux Python java linux命令 shell Windows HTML5 apache Ubuntu php nginx Android google mysql Firefox 开源

Shell的使用简述

Bsh:Bsh在20世纪70年代中期诞生于新泽西的at&T贝尔实验室,具有较强的脚本编程功能。
Csh:Csh在20世纪80年代早期诞生于加利福尼亚大学 ,使用C语言的语法,用户命令交互更加方便。
Ksh:Ksh结合了Bsh和Csh两者的功能优势,兼有Bsh的语法和Csh的交互特性。
Bash:Bash是Bsh的升级替代品,吸收了Ksh中的诸多优秀特性,Bash是开源软件。

Shell是操作系统与用户进行交互操作的界面
Shell是操作系统与用户进行交互操作的界面

RHEL4中Shell的使用

RHEL4中提供了多种Shell程序可供用户选择
文件Shells中保存了Linux系统中可使用的Shell程序列表
/etc/shells

在某个Shell程序中可通过执行其他的Shell程序改变用户的当前Shell
[teacher@localhost ~]$ bsh

用户默认Shell的设定
用户使用的登录Shell保存在passwd文件的记录中
/etc/passwd

环境变量

使用set命令查看环境变量
set

常用环境变量
USER UID SHELL HOME pwd PATH PS1 PS2

环境变量配置文件
/etc/bashrc
/etc/profile
~/.bash_profile
~/.bashrc

位置变量

$ ./exam01 one two tree four five six
./exam01:$0表示命令名称,属于预定义变量,不属于位置变量。
one:$1表示第1个命令参数
two:$2表示第2个命令参数
tree:$3表示第3个命令参数。
four five six:$n表示第n个命令参数。

预定义变量

$#  表示位置参数的数量
$*   表示所有位置参数的内容
$? 表示命令执行后返回的状态,用于检查上一个命令的执行是否正确;在Linux中,命令退出状态为0表示命令正确执行,任何非0值表示命令执行错误
$$  表示当前进程的进程号
$!  表示后台运行的最后一个进程号
$0  表示当前执行的进程名

用户自定义变量

自定义变量的设置
$ DAY=sunday

自定义变量的查看与引用
$ echo $DAY

自定义变量的输出
$ export DAY

自定义变量的清除
$ unset DAY

Bash的命令行编辑功能

左右方向键  使用左右方向键可以使光标在当前命令行中的已有字符间进行任意的移动
退格键  删除命令行中光标左边的字符
Del  删除当前光标处的字符
Home  将光标快速移动到命令行的行首
End  将光标快速移动到命令行的行尾
Ctrl + u  删除当前光标到行首的内容
Ctrl + k  删除当前光标到行尾的内容

Bash的命令行补全功能

命令补全功能
使用Tab键可在命令查找路径中查找匹配的命令,并进行命令拼写的补全

文件补全功能
使用Tab键可对文件和目录名进行补全

Bash的命令历史与命令重复

命令历史功能的使用
使用上下方向键浏览已输入命令(历史命令)
历史命令的查看
$ history

用户命令历史保存文件
~/.bash_history

命令历史的清除
$ history -c

Bash的命令别名功能

命令别名的显示
$ alias

命令别名的定义
$ alias grep='grep -i'

命令别名的取消
$ alias grep
$ unalias -a

系统别名定义文件
RHEL4系统中为用户预定义的命令别名保存在“/etc/profile.d/”目录的配置文件中

重定向操作

输入重定向     <     输入重定向是将命令中接收输入的途径由默认的键盘更改(重定向)为指定的文件
输出重定向     >     将命令的执行结果重定向输出到指定的文件中,命令进行输出重定向后执行结果将不显示在屏幕上
                        >>   将命令执行的结果重定向并追加到指定文件的末尾保存
错误重定向    2>    清空指定文件的内容,并保存标准错误输出的内容到指定文件中
                        2>>  向指定文件中追加命令的错误输出,而不覆盖文件中的原有内容
输出与错误组合重定向        &>      将标准输出与错误输出的内容全部重定向到指定文件

输出重定向实例

将命令输出重定向到文件
将标准输出重定向到文件
$ ls /etc/ > etcdir

将标准输出重定向追加到文件
$ ls /etc/sysconfig/ >> etcdir

将错误输出重定向到文件
$ nocmd 2> errfile

将标准输出和错误输出重定向到文件
$ ls afile bfile &> errfile

管道的使用

管道操作符
|

“|”符用于连接左右两个命令,将“|”左边的命令执行结果(输出)作为“|”右边命令的输入
cmd1 | cmd2

在同一条命令中可以使用多个“|”符连接多条命令
cmd1 | cmd2 | ... | cmdn

Shell脚本的概念

Shell脚本程序是Shell命令语句的集合,用于实现特定的功能;Shell脚本程序保存在文本文件中,可以使用文本处理程序进行阅读和编辑;Shell脚本程序是由Shell环境解释执行的,不需要在执行前进行编译;执行Shell程序时,Shell脚本文件需要具有可执行(x)的属性。

基本脚本编程

使用文本编辑器(vi)建立Shell脚本文件
脚本中应包括的内容
脚本运行环境设置
#!/bin/bash
注释行以#开始
# Clean command history,清除用户命令历史
脚本语句
history -c
设置脚本文件为可执行

运行脚本程序

使用Shell命令程序执行脚本程序
$ bash hello.sh
使用“.”命令执行脚本程序
$ . hello.sh
直接执行具有执行属性的脚本程序
$ ./hello.sh

延伸阅读

评论