17.linux中Shell的使用

Shell环境是是Linux用户与Linux操作系统之间的交互界面。位于OS内核和用户之间,负责接收用户输入的命令,在对已输入的命令进行解释后,将需要执行的命令程序传递给OS内核执行。
1、  Shell程序的产生和发展
概念:命令解释器,如Windows的CMD.exe
发展:
Bsh:产生较早的Unix Shell程序,还是编程语言,可以进行编写Shell脚本
Csh:C Shell缩写,Bill Joy编写,有C语言的风格,对命令行交互做了改进,增加了某些功能,更加适合命令交互
Ksh:结合Bsh和csh两者功能优势
Bash:是Bsh的升级,是GNU的成员,红帽4使用其作为默认Shell
查看当前系统可用的Shell:
#cat /etc/shells
Shell的替换:
临时替换:直接在命令行下输入 #Shell名字。临时更改,注销或重启系统后恢复到原Shell
永久替换:直接修改文件/etc/passwd或者使用命令:
#chsh  直接回车是修改自己的默认Shell,root用户修改别人的Shell是命令#chsh 用户名
2、Shell变量
环境变量:是用户登录时Linux系统为用户预先设定好的一类Shell变量
查看:#set|more
查看变量的值:#echo $变量名
常用环境变量:USER(用户名) UID(用户uid) SHELL(用户默认登录shell) HOME(用户宿主目录) PWD(根目录到当前目录的路径) PATH(用户执行命令的默认搜索路径) PS1(用户主提示符) PS2(用户附注提示符)
环境变量配置文件:
全局配置文件:/etc/profile(负责设置全局的环境,并应用于所有的用户登录shell)和/etc/bashrc(定义全局的函数和别名),只有root有权限进行修改和设置
用户环境变量配置文件:位于用户的宿主目录中,是隐藏文件。用户自己可以修改来更改自己的环境变量。.bash_profile和.bashrc,两个文件的配置只对当前用户生效。/etc/skel目录是用户配置文件模板
位置变量:与shell脚本程序执行时所使用的命令参数相对应,命令行中的参数按照从左到右的顺序赋值为位置变量。格式是“$n”,n从1开始,最多到9。单引号,双引号和反引号的使用
预定义变量:Linux系统中已经定义好的变量,用户只能使用预定义变量,通常用在Shell脚本中
$#表示位置参数的数量(个数)
$*表示所有位置参数的内容
$?表示命令执行后返回的状态,用于检查上一个命令的执行是否正确;为0时表示命令正确执行,任何非0值表示命令执行错误
$$表示当前进程的进程号
$!表示后台运行的最后一个进程号
$0表示当前执行的进程名(表示命令本身)
用户自定义变量:
格式:#变量名=变量值(赋值不用加$)
显示变量值:#echo $变量名
变量的输出:#export 变量名,输出变量为全局变量,在当前Shell的子Shell中也可使用
变量的清除:#unset 变量名
3、Bash常用功能:
命令行或文件、目录名的不全:使用“Tab键”
命令历史和命令重复:使用命令history查看,默认系统记1000个命令,使用“!命令号”执行此命令,保存在用户宿主目录下的.bash_history中,使用命令history  �C c清除命令历史,可以把此命令写在.bash_logout中,注销时清空命令历史
命令别名:可以提高效率和兼容其他OS命令。
#alias  直接回车是显示当前用户所有的命令别名
定义别名:#alias name=value
取消:#unalias  name
取消全部别名:#unalias  �C a
4、管道和重定向
   标准输入:0 键盘
   标准输出:1 显示器
   标准错误:2 显示器
    W c命令是计算指定文件中的行数、单词数和字符数
   输入重定向:#wc < /etc/passwd,把由键盘输入改为由文件输入
   输出重定向:把屏幕输出改为输出到文件。#ls>lch.txt(文件不存在,建立文件;文件存在则清空原文件内容并写入命令的执行结果)
   >> 追加重定向:把内容添加到文件的末尾,不清空原文件内容
   错误重定向:把错误的屏幕输出改为输出到文件。使用“2>”符号;添加内容到文件(文件不存在,则创建;文件存在,则清空其内容,写入最后执行的结果);使用“2>>”符号:追加内容到文件末尾,不覆盖以前的文件内容
   管道:使用符号“|”,连接两个命令,左边的命令执行结果是右边命令的输入,实现单个命令无法完成的操作
   5、脚本(默认后缀是.sh)
   概念:使用shell命令编写的可执行程序,有以下特点:
    A  类似于DOS中的批处理文件,是shell命令语句的集合,用于实现特定功能
    B  保存在文本文件中,可以使用文本处理程序进行阅读和编辑
    C  由Shell环境解释执行,不需要事前进行编译
    D  执行shell程序时,shell脚本文件需要有可执行属性
   组成:使用vi编辑器进行编辑
    A  脚本运行的环境
      #!/bin/bash
    B  注释行的使用
      “#”开头,后面可以写入对于脚本的注释,脚本执行时并不执行
    C  脚本语句:脚本程序的重要组成部分,是真正需要在程序中解释执行的内容
使用chmod命令给脚本文件添加可执行属性
脚本运行:
A  使用shell命令程序执行脚本
  #bash 脚本文件    不需要脚本有可执行属性
B  使用“.”命令执行
  #.  F ilename        不需要脚本文件有可执行属性
C  设置执行属性执行脚本
  #./脚本文件    或者使用绝度路径    需要脚本有可执行属性
      
   

你可能感兴趣的:(linux,enterprise,4,hat,rad)