linux系统shell

上传人:第*** 文档编号:32688829 上传时间:2018-02-12 格式:DOCX 页数:29 大小:505.09KB
返回 下载 相关 举报
linux系统shell_第1页
第1页 / 共29页
linux系统shell_第2页
第2页 / 共29页
linux系统shell_第3页
第3页 / 共29页
linux系统shell_第4页
第4页 / 共29页
linux系统shell_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《linux系统shell》由会员分享,可在线阅读,更多相关《linux系统shell(29页珍藏版)》请在金锄头文库上搜索。

1、文档标题文档模板 01文档副标题DEV-07-001Version 1.02015-03-01日期 编写/修改人 版本 记录2015-03-01 IRE Ver 1.0 创建日期 审阅人 版本 密级 状态 意见2015-03-05 IRE Ver 1.0 内部公开 发布 无编写/修改文档控制页面审阅 BASH shell 编程-飞翔 用户登陆Bash 先执行/etc/profile,在调用/.bash_profile注销Bash 调用/.bash_logout环境设置文件.bash_history .bash_logout .bash_profile .bashrc如 kde gnome ic

2、ewm 等桌面管理程序时,执行终端程序或者抖动执行/bin/bash.或者在编辑程序中调用 shell,会先执行/etc/profile 在调用/.bashrc我们知道变量设置规范后,后输入的设置值可以取代先输入的值, 。那么我们登陆 bash 的时候,这些设置文件到到底是如何读取的了,他是这样读取的1、 先读取/etc/profile,在根据 profile 的内容读取其他附加的设置文件,例如/etc/profile.d 和/etc/inputrc 等设置文件2、 根据不同的用户,到家目录去读取/.bash_profile 或者/.bash_login,或者/.profile 等设置文件3、

3、 根据不同的用户,到家目录读取/.bashrc4、 登陆 bash 后,最终读取的设置文件室/.bashrc全局设置文件在/etc/profile 和/etc/bashrc个人自定义环境变量/.bash_profile 登录时/.bashrc 执行新的 shell 时/.bash_logout 注销时一、Bash 内置命令。由于不必在程序中区搜索路径$PATH,中寻找,直接就可以调用就行常见的内置命令Alias,bg,bind,break,continue,builtin,case cd,command,compgen,complete,declare,dirs,disown,echo ,ev

4、al,exec ,exit,export 等等Printf 的详细参数%s 字符串%q 特殊字符用转义%c 字符%d 整数%f 浮点数%e 显示科学计数法%g 由 bash 选择使用%f 或者%e%i 和%d 相同%o 显示八进制数%x 显示无号十六进制,且是小写字母%X 显示无号十六进制,且是大写字母% 显示百分号例子 1:首先建立一个 printf.txt 文件rootstation20 test# cat printf.txt Name Chinese English Math AverageDmtai 80 60 92 77.33Vbird 75 55 80 70.00Ken60 90

5、 70 73.33常用的转义n 换行r 回行首t 水平 tabv 垂直 tab 单引号 斜线b 退一位f 跳页0 后接八进制:冒号什么都不做,传回真值 0:test.txt 建立一个空文件.半句点在现行的 shell 环境执行 shell 程序.与 source 相同作用#alias 设置别名#unalias 取消别名#exit 离开 shell,并传回 1#logout 注销 shell 或者 ctl+d#umask 显示或者设定,文件,目录建立时,文件的权限屏蔽值。#history 显示过去岑经执行过的 shell 指令#fc 列出登陆主机之后,最近执行过的命令#fc ln 反向显示#ty

6、pe 判断 bash 对某一指令如何解释#set 用于设置 bash shell 的属性,set 不加参数,表示会显示所有的 shell 变量和函数内容显示当前 bashshell 所有的属性的开关状态开启某一个属性以命令行修改的支持 emacs 为例子#set o emacs关闭某一个属性的话#set +o emacs开启后就会识别 backspace 了保护已存在的文件,避免转向输出时被覆盖掉文件内容#set C 或则 set o noclobber限制覆盖#set +o noclobber如果变量不存在就显示错误信息#set u如果变量不存在,一线就是换回的错误信息,并传回值 1#set

7、 v 显示 bash 的每一行,这样有利于排错设定 bash shell 的行为模式#shopt 的用法#shopt 或者 shopt p 显示目前个选项的状态#shopt s 选项 启用选项#shopt u 选项 关闭选项#shopt o 选项 使用和 set o 相同的选项来设置#shopt q 选项 不显示开关状态,0 表示开启,非零表示关闭例子 1、打开 checksize 使 bash 在每一项指令执行后,检查窗口的大小,必要时更新行和列#shopt -s checkwinsize例子 2、shopt -s extglob progcomp打开 extglob 选项,如此一来,比较样

8、式时,可使用比较能力较佳的语法打开 progcomp ,启用可程序化的补齐功能#time 统计 real user,cpu3 种耗时#time script 或者指令#time ps aux #read 由标准输入读取一行数据如果在 read 后面没有指定接收数据的变量,则默认的变量名称为$REPLY 上述做法可以使用-p 来达成-p 选项表示提示信息PS3 select 选单提示符,默认为#?PS4 追中程序时各行的样式,默认+、PWD 目前工作目录RANDOM 随基函数SECONDS 表示 bash shell 执行了多长时间 25926 秒REPLY select 和 read 没有设定

9、变量时,默认为 REPLYSHELL shell 文件路径SHLVL 表示运行的 shell 层级TIMEFORMAT 设定 time 统计运行的时间格式TIMEFORMAT 默认格式为 $nrealt%31nusert%31nsyst%31TMOUT 等待多少秒后,自动结束UID 用户代码2.4 内部变量$1-$n 位置参数$0 表示进程名称$* 代表所有得参数$ 代表个位置参数数组组成的串$#位置参数的个数$- bashshell 目前使用的功能选项$? 上一个命令执行结束后的传回值,0 成功,1 失败$ 代表 bash 的进程编号$! 上一个后台程序的进程编号$_ 执行时,bash 绝对

10、路径,上一个命令执行时,最后一个参数,检查邮件时,$_的值为邮件文件名SHELL 数学运算数组的用法使用数组时第一个元素为 0 开始,第 n 个为 N-1欲显示或者取得某一个元素的值。语法为$数组索引值底下显示数组 A 的第二个元素#echo $A1取出数组所有的元素#echo $B或者适用于#echo $B*取得元素的个数#echo $#数组或者#数组*r 若元素是字符串还可以用下面的语法取得长度#echo $#数组索引取消数组或者数组的元素#unset A若只想取消一个元素 #unset A32.5 用户变量用户变量一般是用户在编写 shell 程序时或在命令行中,将经常使用的值,赋给一个

11、用户变量,然后直接调用这个变量即可(变量名是以字母或下划线开头,通常字母是大写母) 。获取变量值 $变量名例:VARhello rhce ;赋值echo $VAR ;显示变量值 用户可通过“unset ”来撤消某一个变量。2.7 函数的用法roottestdb # vim getline.sh1 #!/bin/bash2 getline()3 4 local i=0 本地变量5 while read line6 do7 let +i 让 i+18 done b); thenecho $a gre $belseecho $a eqa $bfi或者rootredhatlinux test# vim

12、 if04_1.sh#!/bin/bashdeclare -i a ba=$1; b=$2if let ab; thenecho $a gre $belseecho $a equ $bfi也可以改写成为如下方式If 条件测试 1thencommand 1elif 条件测试 2then command 2elsecommand 3fi使用 bash 关键字判断使用内置命令 test 判断If test “test” “xyz” ;thenrootredhatlinux test# vim if05.sh#!/bin/bashif str xyz ; thenecho string gre str

13、elseecho string low strfi使用内置命令判断 与 test 语法相同可以替换rootredhatlinux test# vim if05.sh#!/bin/bashif test str xyz ; thenecho string gre strelseecho string low strfi=右边表示存放的样式= for 循环for var in 串行docommand 1donerootredhatlinux test# vim forsum.sh#!/bin/bashdeclare -i i sum for (i=1;i 10); thenbreak;fiecho $sumdoneecho $sumwhile 循环while 条件测试docommand done使用 while 循环,读取文件内容#!/bin/bashwhile read linedo echo $linedone 10)dolet sum+=i;let +i;doneecho $sum或者until falsedo command 1doneselect 命令select var in 串行docommand doneshell 脚本调试与跟踪#sh -nvx script.sh-n 不要执行脚本-v 在执行脚本前,就先将脚本的内容输出到屏幕上-x 将使用脚本的内容显示在屏幕上。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号