




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八讲第八讲 shell功能指令功能指令 知识点知识点 bash中的变量设定中的变量设定 指令记忆指令记忆 指令别名指令别名 输入输出重定向输入输出重定向 管线指令管线指令 配置文件配置文件变量变量 存储数据以备未来所用的场所存储数据以备未来所用的场所 以文字或字符表示的参数或设置以文字或字符表示的参数或设置 便于参数修改与维护,减少编译的需求便于参数修改与维护,减少编译的需求变量设定规则变量设定规则 格式:变量名变量内容格式:变量名变量内容 等号两边不能加空格(这点与具体的等号两边不能加空格(这点与具体的shell版本有关)版本有关) 变量名只能是字母或数字,且首字符不变量名只能是字母或数字
2、,且首字符不能是数字能是数字 特殊字符可用转义符号特殊字符可用转义符号“”变为一般字变为一般字符符变量设定规则变量设定规则 当需要显示的内容包含空格等特殊符号时,使当需要显示的内容包含空格等特殊符号时,使用双引号或单引号将其组合在一起用双引号或单引号将其组合在一起 双引号有变量代换功能:当双引号中的字符串出现了双引号有变量代换功能:当双引号中的字符串出现了变量名时,系统自动将变量值作为字符串的一部分看变量名时,系统自动将变量值作为字符串的一部分看待待 单引号不具有变量置换功能单引号不具有变量置换功能 eg: # name=swh # echo $name is my name # echo “
3、$name is my name” 变量设定规则变量设定规则 使用引用符号使用引用符号“ ”实现指令的嵌套实现指令的嵌套 优先处理该符号内的指令,反馈结果被视优先处理该符号内的指令,反馈结果被视为外层指令的一部分为外层指令的一部分 eg: # ls al echo $workdir/testdir 该指令相当于该指令相当于ls -al /home/swh/testdir eg: # cd /lib/modules/uname r/kernel 将将uname r作为内嵌指令可以将本系统的作为内嵌指令可以将本系统的版本名提取出来作为外层指令的一部分,既保版本名提取出来作为外层指令的一部分,既保证
4、了通用性又节省了时间证了通用性又节省了时间变量设定规则变量设定规则 累加变量内容时,使用累加变量内容时,使用“$变量名称变量名称”指指代变量原值代变量原值 eg: MAIL=$MAIL:/home/swh/mailbox 命名规范:大写变量名通常为系统预设,命名规范:大写变量名通常为系统预设,用户自定义变量通常用小写用户自定义变量通常用小写 取消变量:取消变量:unset paraname查看变量值查看变量值 echo $varname 查看指定变量查看指定变量varname的值的值 eg:echo $PATH echo $MAIL 若若echo指令后不加指令后不加$则直接显示其后所接则直接显
5、示其后所接的字符串的字符串查看变量值查看变量值 env 该指令用来查看系统默认环境变量的值,其中该指令用来查看系统默认环境变量的值,其中比较重要的有:比较重要的有: BASH_ENV=/root/.bashrc 用户自定义的环境变量的配置文件用户自定义的环境变量的配置文件 HISTSIZE=1000 .bash_history中记录的指令条数中记录的指令条数 HOSTNAME=localhost.localdomain 主机名主机名查看变量值查看变量值 LANG=zh_CN.GB18030 语言类型语言类型 LOGNAME=swh 当前登录用户的账号当前登录用户的账号 MAIL=/var/sp
6、ool/mail/root 邮件的存取地址邮件的存取地址 PATH= 系统可执行文件的默认查找路径系统可执行文件的默认查找路径查看变量值查看变量值 set 查看当前用户的所有变量,包括环境变量和用查看当前用户的所有变量,包括环境变量和用户自定义变量户自定义变量 eg: # set # workdir=/home/swh/ # set 可以看到新定义的这个可以看到新定义的这个workdir变量变量已经记录在系统中了已经记录在系统中了取消变量指令取消变量指令 unset para 直接取消直接取消para变量的设定内容变量的设定内容变量设定例题变量设定例题eg1:按照要求写出指令以及操作结果:按照
7、要求写出指令以及操作结果将变量将变量test1赋值为赋值为swhs test1test1=“swhs test1” 操作成功,注意等号前后没有空操作成功,注意等号前后没有空格格查看操作是否成功查看操作是否成功echo $test1将变量将变量2test赋值为赋值为swhs test22testswhs test2 错误,因为不能用数字作为变量错误,因为不能用数字作为变量名的开端名的开端查看变量查看变量test1的值的值echo $test1或者或者echo “$test1”或者或者echo $test1变量设定例题变量设定例题eg2:请说出下述指令的作用及操作结果请说出下述指令的作用及操作结果
8、name1=moon river 错误,空格是特殊字符,需要进行组合或者转义错误,空格是特殊字符,需要进行组合或者转义echo $name1 显示显示name1的变量值的变量值name2=“moon river”echo $name2name3=moon river变量设定例题变量设定例题echo $name2johnny 没有结果可以显示,因为此变量不存在没有结果可以显示,因为此变量不存在echo “$name2”johnny显示显示moon riverjohnny,进行了变量代换,进行了变量代换name4=$name2johnny赋值不成功(使用赋值不成功(使用echo指令可以查看是否成功
9、赋指令可以查看是否成功赋值),因为值),因为$是特殊字符是特殊字符变量设定例题变量设定例题name5=”$name1”johnny赋值成功,所赋的值为赋值成功,所赋的值为moon riverjohnnyname6=$name1johnny和上面的指令结果一样和上面的指令结果一样name2“$name2”“ mercer”为为name2追加追加“ mercer”指令别名指令别名 格式:格式:alias usrcmd=command 该指令将该指令将command指令置换为指令置换为usrcmd,当,当用户使用用户使用usrcmd时,其功效等同于时,其功效等同于command 简化指令,使其更符合
10、自己的操作习惯简化指令,使其更符合自己的操作习惯 查看别名使用查看别名使用alias 取消别名:取消别名:unalias usrcmd指令别名指令别名 与变量的区别:与变量的区别: 指令别名是设置指令的简称,可以指令别名是设置指令的简称,可以视为普通的指令使用,查看时使用视为普通的指令使用,查看时使用alias指令指令 变量是指代具体数值或字符,它将变量是指代具体数值或字符,它将在指令或文件中被使用,本身不能实现在指令或文件中被使用,本身不能实现指令功能,使用指令功能,使用env、set等查看等查看历史指令历史指令 history 可以查看的历史指令包括本次登录以来可以查看的历史指令包括本次登
11、录以来的指令以及以往登录时使用过的指令的指令以及以往登录时使用过的指令 eg:history 显示历史指令显示历史指令 ! 执行上个指令执行上个指令 !22 执行文件执行文件/.bash_history中记载的第中记载的第22号指令号指令 !vi 执行上一个以执行上一个以vi开头的指令开头的指令输入输出重定向输入输出重定向 将数据导入或导出到指定地点将数据导入或导出到指定地点 三种输入输出状态三种输入输出状态 标准输入:标准输入:,stdout,代码,代码1 错误输出:错误输出:2,stderr,代码,代码2输入输出重定向输入输出重定向 指令格式指令格式 command dev/file co
12、mmand 2 dev/file command dev/file command dev/file输入输出重定向输入输出重定向 标准输入标准输入 :指令的输入数据不是从键盘输入的,而是:指令的输入数据不是从键盘输入的,而是从指定的文件中来的从指定的文件中来的 输入输出重定向输入输出重定向eg1:在:在linux中手动发送邮件的步骤为:中手动发送邮件的步骤为: mail -s lucky swh 输入邮件内容输入邮件内容 . 这个这个.说明结束了邮件的输入说明结束了邮件的输入 出现出现Cc.后回车,即选择不使用密件发送后回车,即选择不使用密件发送eg2:若使用输入输出重定向,只要输入指令:若使
13、用输入输出重定向,只要输入指令 mail -s lucky swh:将输出结果转到某个指定的文件中去,当:将输出结果转到某个指定的文件中去,当该文件不存在时就创建一个新的,当该文件存该文件不存在时就创建一个新的,当该文件存在时就覆盖其旧有内容,因此在使用时一定要在时就覆盖其旧有内容,因此在使用时一定要先确定该文件中的数据是否有用先确定该文件中的数据是否有用 :将新的数据累加在现有数据的后面:将新的数据累加在现有数据的后面 eg:ls -altestfile 将将ls指令的显示结果发送到指令的显示结果发送到testfile文件中去文件中去 whotestfile 将将who指令的结果累加到指令的
14、结果累加到testfile输入输出重定向输入输出重定向 标准错误输出标准错误输出 在操作的过程中经常会遇到错误提示信在操作的过程中经常会遇到错误提示信息,为了便于未来分析,通常会将它们息,为了便于未来分析,通常会将它们保存起来,其操作符号为保存起来,其操作符号为2和和2 eg:cd/home/swh 2errorfile 将错误输出发送到将错误输出发送到errorfile中去中去 vi errorfile 查看查看errorfile的内容的内容输入输出重定向输入输出重定向 典型用法典型用法将标准错误输出与标准输出分别放在不同文件中将标准错误输出与标准输出分别放在不同文件中command std
15、infile 2errorfile eg: echo $PATH $MALI 1stdinfile 2errorfile 正确信息输入正确信息输入stdinfile,错误信息输入文件,错误信息输入文件errorfile输入输出重定向输入输出重定向 典型用法典型用法 将标准错误输出与标准输出同时放在一将标准错误输出与标准输出同时放在一个文件中个文件中 command 1stdinfile 2&1 eg: find passwd_cp shadao 1stdinfile 2&1 正确信息与错误信息都输入文件正确信息与错误信息都输入文件stdinfile中中注:注:观察使用指令观察使
16、用指令find passwd_cp shadao 1stdinfile 2stdinfile会有什么后果会有什么后果输入输出重定向输入输出重定向 典型用法典型用法 丢弃不需要的输出信息,通常这些信息都是错丢弃不需要的输出信息,通常这些信息都是错误信息或者已知的某些提示误信息或者已知的某些提示 command 1stdinfile 2/dev/null eg: ls passwd shadao stdinfile 2/dev/null 正确信息输入文件正确信息输入文件stdinfile中,错误信息丢弃中,错误信息丢弃输入输出重定向输入输出重定向 适用范围适用范围 需要保存重要的屏幕输出信息时需要
17、保存重要的屏幕输出信息时 希望保存后台执行的程序的输出结果时希望保存后台执行的程序的输出结果时 系统开机启动等例行性指令需要保存时系统开机启动等例行性指令需要保存时 需要丢弃无用的信息时需要丢弃无用的信息时管线指令管线指令 当前一个指令的输出为当前一个指令的输出为stdout(正确输出)时(正确输出)时才可以进行下一个指令,此时第二个指令的输才可以进行下一个指令,此时第二个指令的输入为前者的输出入为前者的输出 eg:last 该指令将曾经登录过系统的用户账号记录该指令将曾经登录过系统的用户账号记录下来,同时还记录了登录时间、登录终端号等下来,同时还记录了登录时间、登录终端号等信息信息 last
18、 | grep root last | grep root | wc -l管线指令管线指令 cut:分离参数:分离参数 sort:将结果进行排序,便于比较:将结果进行排序,便于比较 wc:计算结果中的行数、字数、字符数:计算结果中的行数、字数、字符数 tee:同时将结果发送到屏幕和指定文件:同时将结果发送到屏幕和指定文件中中 上述指令均为常出现在管线指令行中的上述指令均为常出现在管线指令行中的特殊指令,它们也可以单独使用特殊指令,它们也可以单独使用管线指令管线指令 cut -d separator -cf fields filename -d:代表后接分隔符代表后接分隔符 -c: 代表后接的是
19、第几个字符代表后接的是第几个字符 -f:表示后接第几个区块表示后接第几个区块 对某一行中的数据进行分离以便对其操作对某一行中的数据进行分离以便对其操作管线指令管线指令 eg:cat /etc/shadow | cut d : f 1 查找文件查找文件/etc/shadow的每行第一个区块的每行第一个区块 cat /etc/shadow | cut c 10-15 将将shadow文件中每行的文件中每行的10-15号字符提取号字符提取出来出来 last | cut d “ “ f 1 仅查找所有的用户账号仅查找所有的用户账号管线指令管线指令 sort -t separator (+start)
20、(-end) -nru filename -t separator:用来分隔不同的区块用来分隔不同的区块 +start end:从从start区块开始排序,到区块开始排序,到end结束,结束,注意这里的编号是从注意这里的编号是从0开始的开始的 -n:按数字排序按数字排序 -r:反向排序反向排序 -u:只列出首次出现的行只列出首次出现的行管线指令管线指令 eg1:查看文件:查看文件/etc/passwd,并按照第一,并按照第一个区块的首字母排序个区块的首字母排序 cat /etc/passwd | sort eg2:查看文件:查看文件/etc/passwd,并按照用户,并按照用户ID(第三列第三
21、列)反向排序反向排序 cat /etc/passwd | sort t : +2 nr管线指令管线指令 wc -lmw filename 统计指令统计指令 -l:计算行数计算行数 -m:计算字符数计算字符数 -w:计算字数计算字数管线指令管线指令eg: cat /etc/passwd | wc l 统计文件的总行数统计文件的总行数 cat /etc/passwd | wc m 统计文件的总字符数统计文件的总字符数 cat /etc/passwd | wc w 统计文件的总词(统计文件的总词(word)数)数管线指令管线指令 tee -a filename 双向重定向指令双向重定向指令 该指令除
22、了将数据导入指定文件外还将其显示该指令除了将数据导入指定文件外还将其显示到屏幕上到屏幕上 -a:将数据向后累加:将数据向后累加eg: cat /etc/passwd | tee -a /home/swh/feedback |wc l 屏幕上显示行数,而屏幕上显示行数,而feedback文件中放的是文件中放的是cat指令的反馈结果指令的反馈结果 vi /home/swh/feedback 特殊组合键特殊组合键 CtrlC:终止当前命令:终止当前命令 Ctrl+Z:暂停当前命令:暂停当前命令 Ctrl+D:结束输入:结束输入特殊符号特殊符号 使用特殊符号实现相关指令的连续输入使用特殊符号实现相关指
23、令的连续输入 command1 & command2 command1无错时,执行无错时,执行command2 command1 | command2 command1有错时才执行有错时才执行command2 command1;command2 command2的执行与的执行与command1是否成功没有关系是否成功没有关系Bash shell的配置文件的配置文件 在命令行中设定的用户自定义变量和指在命令行中设定的用户自定义变量和指令别名都是针对本令别名都是针对本shell而言的,若注销而言的,若注销了系统,再次登录时,这些设定就会丢了系统,再次登录时,这些设定就会丢失失 使用配置文件可以将设定永久保存使用配置文件可以将设定永久保存Bash shell配置文件配置文件 系统设定值:需要注销重启才能使用系统设定值:需要注销重启才能使用 用户用户shell操作环境启动后首先被调用的配操作环境启动后首先被调用的配置文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年航空维修人员执照考试的个性化发展与试题及答案
- 消防安全工作机制试题及答案
- 中级审计师试题及答案模拟训练方案
- 消防设备维护保养要点试题及答案
- 学以致用2024年初级审计师考试试题及答案
- 2025年如何评估患者的疼痛程度及试题及答案
- 初级护师考试趋势试题及答案
- 日常生活护理试题及答案
- 民用航空器维修人员考试的服务质量提升及试题及答案
- 护理物品管理试题及答案
- 花篮拉杆悬挑脚手架专项施工方案
- 天地学习法(1小时通读一本书)
- 纺织企业安全风险辨识建议清单
- 居然之家合同DOC
- 大学生德育论文范文3000字
- 铝镁料仓等施工方案精品
- 停车场收费管理系统使用手册
- 我的家乡宁波
- 路灯设施维修施工组织设计
- 执业医师注册健康体检表
- 普通高等学校毕业生 毕业研究生就业协议书
评论
0/150
提交评论