




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux的Shell,Shell的概念 Shell中的变量 数据重定向 Shell脚本,目 录,什么是Shell,Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口 ls /etc/shells 用户登录后,将会选择一个shell作为交互进程 cat /etc/passwd shell下可以继续调用shell,问题:图形界面下的控制台是6个控制界面中的哪个?,常见的Shell,sh: Bourne Shell是AT&T Bell实验室的 Steven Bourne为AT&T的Unix开发的,它是Unix的默认。 csh:C Shell是加州伯克利大学的Bill Joy为BSD Unix开发的,它的语法与C语言很相似。 ksh:Korn Shell是AT&T Bell实验室的David Korn开发的,与Bourne Shell向下完全兼容。 Bash:Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。,命令记忆、命令与文件补全、命令别名设置、通配符和强大的脚本,bash中的一些小技巧,历史命令查找 命令和文件名补全 Tab 别名设置 alias 查询指令类型 type 通配符 ? * 枚举字符 多行指令后的转义符 ,PS:注意空格的位置和不需要空格的地方,Shell的概念 Shell中的变量与环境 数据重定向 Shell脚本,目 录,变量的设置与获取,变量名=变量值 (变量缺省为字符串) declare -i(整数) a(数组) 变量名=变量值 $变量名 或者$变量名 echo $变量名 read 变量名 command 变量名=“$变量名”:增加值 “ ”和 的区别,设置,获取,增补,命令输出,显示,键盘输入,套用,变量的有效范围,自定义变量只在当前进程即当前的shell内有效 进入子shell(子进程)或者其它的shell脚本则不再有效 使用export可以使自定义变量成为环境变量 环境变量的有效范围可以持续到所有的子shell 系统已设环境变量:env,例:PS1提示字符的设定 PATH命令搜寻路径的查找,Bash shell 的环境设置,登录讯息显示数据 /etc/issue, /etc/, /etc/motd 系统环境设定文档 /etc/sysconfig/i18n(语言)、/etc/profile(重要环境变量) 、/etc/bashrc、/etc/man.config (帮助路径) 个人环境设定文档(推荐) /.bash_profile, /.bash_login, /.profile /.bashrc(只要启动shell就会被执行) /.bash_history(记录历史命令,不安全因素) /.bash_logout(登出时缺省执行),login shell,non-login shell,系统配置文件,/proc 内核提供接口,存储系统统计信息 /proc/cpuinfo CPU使用情况 /proc/meminfo 内存使用情况 /etc/fstab 系统安装的文件系统 /etc/lilo.conf 缺省引导的命令行参数 /etc/logrotate.conf 维护 /var/log 目录中的日志文件 /etc/inittab 系统启动读取,Linux最基本的编辑器,vi与vim,Shell的概念 Shell中的变量与环境 数据重定向 Shell脚本,目 录,标准输入输出,标准输入(stdin) :代码为 0 ,使用 或 ; 标准错误输出(stderr):代码为 2 ,使用 2 或 2,输出重定向,1 :将正确的数据输出到指定的地方去() 2 :将错误的数据输出到指定的地方去 :将输出追加到指定的文档后,如:find /home -name testing list_right 2 list_error,输入重定向, 将指定的设备或文档作为输入 用来结束输入的控制字符,如: cat catfile eof,如: tr abc ABC myfile,管道命令(pipe),管道将左侧命令的输出发送到右侧命令的输出。一条管道线(pipeline)可能不止一个管道,如: cat myfile | tr abc ABC ls al | less,在管道线中很有用的命令,提取命令 cut -d分隔字符 -f fields grep -acinv 搜寻字符串 filename,排序命令 sort -fbMnrtuk file or stdin uniq -ic,统计命令 wc -lwm,文本处理 tr, col, join, paste, expand,Shell的概念 Shell中的变量与环境 数据重定向 Shell脚本,目 录,Shell Scripts 有用?,自动化管理的重要依据 追踪与管理系统的重要工作 简单入侵侦测功能 连续指令单一化 简易的数据处理 不需要编译可执行,开始第一个Shell脚本:Hello world!,加上rx权限,执行 ./shell.sh 直接 sh shell.sh 放入/bin,随处执行,exa1.sh,exa2.sh,exa3.sh,判断条件,test测试指令+ &与| 如:test -e /dmtsai & echo “exist” | echo “Not exist ” 判断文件是否存在 test -z $filename 判断字符串是否为空 test n1 -eq n2 判断两字符是否相等, 判断符号+if . then . fi 如: -z “$HOME” 判断HOME是否为空 “$HOME”=“$MAIL” 判断两变量是否一致 “$yn” = “Y” -o “$yn” = “y” 与判断,脚本的参数,如:/etc/init.d/crond restart 我们可以重启系统服务,exa4.sh,条件判断语句,if 条件判断式一 ; then 当条件判断式一成立时,可以进行的指令工作内容; elif 条件判断式二 ; then 当条件判断式二成立时,可以进行的指令工作内容; else 当条件判断式一与二均不成立时,可以进行的指令工作内容; fi, 判断符号可以连接 & 代表 AND ; | 代表 or ;=代表等值 ;!=代表不等值,如: if “$yn“ = “Y“ | “$yn“ = “y“ ; then echo “OK, continue“ exit 0,exa5.sh,循环语句,while condition do 程序段落 done,until condition do 程序段落 done,如: s=0 i=0 while “$i“ != “100“ do i=$($i+1) s=$($s+$i) done echo “The result of 1+2+3+.+100 is = $s“,exa6.sh,for 循环,for ( 初始值; 限制值; 执行步阶 ) do 程序段 done,for var in con1 con2 con3 . do 程序段 done,如: filelist=ls $dir for filename in $filelist do perm=“ test -r “$dir/$filename“ & perm=“$perm readable“ test -w “$dir/$filename“ & perm=“$perm writable“ test -x “$dir/$filename“ & perm=“$perm executable“ echo “The file $dir/$filenames permission is $perm “ done,Shell
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论