veket官方网站论坛

veket

 找回密码
 要注册
搜索
查看: 2542|回复: 2

Shell的使用

[复制链接]
发表于 2010-4-22 14:41 | 显示全部楼层 |阅读模式
本章目标:
了解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”目录的配置文件中
 楼主| 发表于 2010-4-22 14:41 | 显示全部楼层
管道与重定向:
1、标准输入输出
2、重定向
1、输入重定向
2、输出重定向
3、错误重定向
4、输出重定向和错误重定向的组合使用
#如何需要将标准输出和错误输出重定向到同一个文件,需要使用&>重定向操作符。
管道:
   


shell脚本
1、Shell脚本的概念
Linux系统中的shell脚本
基本脚本编程:
1、 建立shell脚本文件
2、 脚本中应该包括的内容
a) 脚本运行环境设置
b) 注释行的使用
c) 脚本语句
3、 设置脚本文件为可执行
脚本运行:
1、使用shell命令
#程序执行脚本:不需要脚本文件具有可执行的属性
2、使用“.” 命令执行脚本:不需要有可执行权限
3、设置执行属性执行脚本:需要有可执行权限,使用绝对路径
发表于 2014-3-8 19:00 | 显示全部楼层
消灭零回复
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛 ( 粤ICP备 11052856 )

GMT+8, 2024-4-30 03:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表