首页 > 代码库 > 第八周
第八周
9.1 shell概述
每个人在成功登陆linux后,系统会出现不同的提示符号,例如$、~、#等,然后你就可以开始输入需要的命令,若是命令正确,系统就会依据命令的要求来执行,直到注销系统为止;在登录到注销期间,输入的每个命令都会经过解释及执行。而这个负责的机制就是shell
9.2 shell编程
其实作为命令语言互动式地解释和执行用户输入的命令只是shell功能的一个方面。shell还可以用来进行程序设计。它提供了定义变量和参数的手段以及丰富的程序控制结构。使用shell编程类似于DOS中批处理文件,称为shell script,又叫shell程序或shell命令文件
9.3 shell的分类
Shell名称 | 开发者 | 命令名称 |
Bourne | S.R.Bourne | /bin/sh |
C | Bill Joy | /bin/csh |
Korn | David | /bin/ksh |
9.4 shell的使用
命令历史和互动:用上下箭头键可以重复以前所输入的命令
命令完成功能:用tab键能自动完成相关命令,再次按tab可得到清单
[Ctrl]+c 中断当前命令的组合键,
[Ctrl]+d 键盘输入结束,可以用来取代exit的输入.
shell脚本文件:
- 是一个文本文件
- 命令的集合
- 有执行的权限
- 执行方式(./文件名)
用户登录后自动执行的shell脚本文件
- .bashrc位于主目录下,它之前执行系统的脚本/etc/bashrc主要是基本配置数据
- 配置.bashrc文件可以指定某些程序在用户登录的时候就自动启动
- .bash_profile位于主目录下,它之前执行系统的脚本/etc/profile主要是配置环境变量
用export可以临时加入一个系统路径,如export PATH=$PATH:$HOME/bin:/root/test/t1,输出环境PATH,引用原来的值$PATH,$HOME表示工作主目录,:是路径分隔符
- 已经定义好的环境变量
- SHELL:默认shell
- PATH:路径
- USER:当前登录用户的用户名
- 显示变量内容
- echo $SHELL
- echo $USER
- echo $PATH
变量键盘读取、数组、与声明:read、array、declare
- read 格式:read [-pt] variable (鸟哥linux第二版 p213)
- -p : 后面可以接提示符
- -t : 后面可以接等待秒数
【案例】read -p “Please keyin your name: ” –t 30 name
- declare/typeset 格式: declare [-aixr] variable
- -a : 将后面的variable定义为数组(array)
- -i : 将后面的variable定义为整数数字(integer)
- -x : 用法与export一样,就是将后面的variable变成环境变量
- -r : 将一个variable的变量设置成只读,变量不可以更改内容,也不能取消设置
【案例】delare –i sum=100+200+300
- array 格式:var[index]=content
- 输入:
- var[1]=”small min”
- var[2]=”big min”
- var[3]=”nice min”
- 读取: echo “${var[1]}, ${var[2]}, ${var[3]}”
shell通配符
- *代表多个字母或数字
- ?代表一个字母或数字
【案例】ls a* ls a? ls f080[1-6].tif
- 转义字符\
【案例】ls /mnt/win1/My\Documents
引号
【案例】export NAME=Michael
echoWelcome $NAME, the date is date
- 单引号:不处理任何变量和命令
【案例】echo ‘Welcome $NAME, the date is date ’
- 双引号:处理变量但不处理命令
【案例】echo “Welcome $NAME, the date is date “
- 反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理
【案例】echo “Welcome $NAME, the date is `date` “
Linux echo命令。
功能说明:显示文字。
语 法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参 数:-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
- \a 发出警告声;
- \b 删除前一个字符;
- \c 最后不加上换行符号;
- \f 换行但光标仍旧停留在原来的位置;
- \n 换行且光标移至行首;
- \r 光标移至行首,但不换行;
- \t 插入tab;
- \v 与\f相同;
- \\ 插入\字符;
- \nnn 插入nnn(八进制)所代表的ASCII字符;
- --help 显示帮助
- --version 显示版本信息
别名
- 命令:alias显示系统当前定义的所有alias
【案例】alias cp=’cp -i’
【案例】alias li=’ls –l –color=tty’
补充说明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。
还有,如果你想给每一位用户都生效的别名,请把alias la=‘ls -al‘ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用有,如果你想给每一位用户都生效的别名,请把alias la=‘ls -al‘ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用
shell的修改
chsh –s 输入新的shell
查阅历史记录
- history,查看使用过的命令的历史记录
- history 5,此项说明会显示最近使用的5个命令
- !5,此项说明执行历史编号为5的命令
- !ls,此项说明执行最后一次以“ls”开头的命令
环境变量的说明: env、set 可以用这两个命令查看一些环境变量的说明,直接输入即可。
提示符的设置:PS1=’[\u@\h \W \]\$’
$系统变量
$# : 命令行参数个数
$n : 命令行参数,n为非负整数.
$0 : 表示程序名称
$1 : 表示第一个命令行参数
$? : 前一条命令的返回码
$$ : 本进程的进程ID
$! : 上一进程的进程ID
第八周