当前位置: 首页 > news >正文

合肥企业网站建设工作室张掖网站建设公司

合肥企业网站建设工作室,张掖网站建设公司,本地网站制作,天津建设企业网站这世间#xff0c;青山灼灼#xff0c;星光杳杳#xff0c;秋风渐渐#xff0c;晚风慢慢 shell编程基础熟悉shell编程的有关机制#xff0c;如标准流。学习Linux环境变量设置文件及其内容/etc/profile/etc/bashrc/etc/environment~/.profile~/.bashrc熟悉编程有关基础命令…这世间青山灼灼星光杳杳秋风渐渐晚风慢慢 shell编程基础熟悉shell编程的有关机制如标准流。学习Linux环境变量设置文件及其内容/etc/profile/etc/bashrc/etc/environment~/.profile~/.bashrc熟悉编程有关基础命令技巧和规则awk( 1 ) 按行输出文本 2 按字段输出文本sed( 1 ) 输出符合条件的文本( 2 ) 删除符合条件的文本( 3 ) 替换符合条件的文本( 4 ) 迁移符合条件的文本bc掌握shell 程序执行的三种基本方式注意调试shell程序的命令书写方式有什么不同使用for循环语句编写一段B-shell程序完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序文件及其目标文件的列表。编写一段shell程序完成根据从键盘输入的学生成绩显示相应的成绩标准分出不及格、及格60、中70、良80和优秀90等。为便于系统管理员对磁盘分配的管理请编写一段B-shell程序当文件系统/home占用空间改变时给出相应的信息提示。要求/home占用量在系统磁盘中为假设score.txt文件中保存了三个班级的学生的某门课程考试成绩请编写一段shell程序计算每个班级的学生人数与平均分。熟悉shell编程的有关机制如标准流。 如果当前目录下有文件f1但是没有f2解释命令ls f1 f2 2ef1 12的运行结果。 1 . ls f1 f2 2ef1 12 (1) 0 表示 stdin , 标准输入 ; 1 表示 stdout , 标准输出 ; 2 表示 strerr , 标准错误输出 12 表示 将标准输出重定向至标准错误输出; 21 表示 将标准错误输出 (2) 所以这里是把ls f1 f2命令的报错信息写入ef1, 又把命令的输出的正常信息当成报错信息写入ef1 如果没有把结果重定向, 就是直接输出 学习Linux环境变量设置文件及其内容 根据实验系统查看/etc/profile/etc/bashrc/.bash_profile/.bashrc等有关文件。 /etc/profile 在系统启动后第一个用户登录时运行并从/etc/profile.d目录的配置文件中搜集shell的设置使用该文件配置的环境变量将应用于登录到系统的每一个用户。 /etc/bashrc Ubuntu和Debian中是/etc/bash.bashrc 在 bash shell 打开时运行修改该文件配置的环境变量将会影响所有用户使用的bash shell。 /etc/environment 在系统启动时运行用于配置与系统运行相关但与用户无关的环境变量修改该文件配置的环境变量将影响全局。 ~/.profile 当用户登录时执行每个用户都可以使用该文件来配置专属于自己使用的shell信息。 ~/.bashrc 当用户登录时以及每次打开新的shell时该文件都将被读取不推荐在这里配置用户专用的环境变量因为每开一个shell该文件都会被读取一次效率肯定受影响。 熟悉编程有关基础命令技巧和规则 如变量的命名引用位置变量及使用输出语句及输出格式控制输入语句和变量存储从命令输出中提取字段值等。 ##熟悉常见外部工具如awksedbc等的基本用法。 awk 逐行读取输入文本并根据指定的匹配模式进行查找对符合条件的内容进行格式化输出或者过滤处理用于在无交互的情况下实现相当复杂的文本操作。 用法: 1 . 过滤并输出文件中符合条件的内容 awk 选项 ‘模式或条件 {编辑指令}’ 文件 1 文件 2 … ( 1 ) 按行输出文本 awk {print} demo.txt //输出所有内容,等同于 cat demo.txt awk {print $0} demo.txt //输出所有内容,等同于 cat demo.txt awk NR1||NR3{print} demo.txt //输出第 1 行、第 3 行内容 awk (NR1)(NR3){print} demo.txt //输出第 1~3 行内容 awk (NR%2)1{print} demo.txt //输出所有奇数行的内容 awk (NR%2)0{print} demo.txt //输出所有偶数行的内容 awk /^root/{print} /etc/passwd //输出以root 开头的行awk awk /nologin$/{print} /etc/passwd //输出以 nologin 结尾的行2 按字段输出文本 awk {print $3} test.txt //输出每行中(以空格或制表位分隔)的第 3 个字段 awk {print $1,$3} test.txt //输出每行中的第 1、3 个字段 awk -F : $2{print} /etc/shadow //输出密码为空的用户的shadow 记录 awk BEGIN {FS:}; $2{print} /etc/shadow //输出密码为空的用户的shadow 记录 awk -F : $7~/bash{print $1} /etc/passwd //输出以冒号分隔且第 7 个字段中包含/bash 的行的第 1 个字段 awk ($1~nfs)(NF8){print $1,$2} /etc/services //输出包含 8 个字段且第 1 个字段中包含 nfs 的行的第 1、2 个字段 awk -F : ($7!/bin/bash)($7!/sbin/nologin){print} /etc/passwd //输出第 7 个字段既不为/bin/bash 也不为/sbin/nologin 的所有行 2 . 从脚本中调用编辑指令,过滤并输出内容 awk -f 脚本文件 文件 1 文件 2 … awk -F: /bash$/{print | wc -l} /etc/passwd //调用wc -l 命令统计使用 bash 的用户个数,等同于 grep -c bash$ /etc/passwdawk BEGIN {while (w | getline) n ; {print n-2}} //调用w 命令,并用来统计在线用户数awk BEGIN { hostname | getline ; print $0} //调用hostname,并输出当前的主机名sed ( 1 ) 输出符合条件的文本 sed -n p demo.txt //输出所有内容 sed -n p;n demo.txt //输出所有奇数行n表示读入下一行 sed -n n;p demo.txt //输出所有偶数行,n 表示读入下一行 sed -n 10,${n;p} demo.txt //输出第 10 行至文件尾之间的偶数行sed 命令结合正则表达式时格式略有不同正则表达式以“/”包围。 sed -n /the/p demo.txt //输出包含the 的行 sed -n 4,/the/p demo.txt //输出从第 4 行至第一个包含 the 的行 sed -n /^PI/p demo.txt //输出以PI 开头的行 sed -n /[0-9]$/p demo.txt //输出以数字结尾的行 sed -n /\wood\/p demo.txt //输出包含单词wood 的行,\、\代表单词边界( 2 ) 删除符合条件的文本 sed 1,3d 1.txt #删除第1-3行 sed /acb/d 1.txt #删除所有包含acb的行 sed /aaa/!d 1.txt #删除不包含aaa的行 sed /^abc/d 1.txt #删除以abc开头的行 sed /\.$/d demo.txt //删除以.结尾的行 sed /^$/d demo.txt //删除所有空行( 3 ) 替换符合条件的文本 sed s/the/THE/ demo.txt //将每行中的第一个the 替换为 THE sed s/l/L/2 demo.txt //将每行中的第 2 个 l 替换为 L sed s/the/THE/g demo.txt //将文件中的所有the 替换为 THE sed s/^/#/ demo.txt //在每行行首插入#号 sed /the/s/^/#/ demo.txt //在包含the 的每行行首插入#号 sed /the/s/o/O/g demo.txt //将包含the 的所有行中的 o 都替换为 O sed 3,5s/the/THE/g demo.txt //将第3~5行中所有the替换为 THE sed s/$/NO/ demo.txt //在每行行尾插入字符串NO( 4 ) 迁移符合条件的文本 在使用 sed 命令迁移符合条件的文本时常用到以下参数. H:复制到剪贴板。g、G:将剪贴板中的数据覆盖/追加至指定行。w保存为文件。r读取指定文件。a追加指定内容。 sed /the/{H;d};$G test.txt //将包含the 的行迁移至文件末尾,{;}用于多个操作sed 1,5{H;d};17G test.txt //将第 1~5 行内容转移至第 17 行后 sed /the/w out.file test.txt //将包含the 的行另存为文件 out.filesed /the/r /etc/hostname test.txt //将文件/etc/hostname 的内容添加到包含 the 的每行以后sed 3aNew test.txt //在第 3 行后插入一个新行,内容为New sed /the/aNew test.txt //在包含the 的每行后插入一个新行,内容为 Newsed 3aNew1\nNew2 test.txt //在第 3 行后插入多行内容,中间的\n 表示换行sed 1,5{H;d};17G test.txt //将第 1~5 行内容转移至第 17 行后bc :加-:减*:乘/:除^:指数%:求余数sqrt:开方ibase:输入进制obase:输出进制;要计算多个结果用分号分隔scale:小数部分位数 比如: 3除以2保留3位小数:echo ‘scale3; 3/2’ | bc 10进制的3转换为2进制:echo “obase2;3” |bc 10进制的11转换为16进制:echo “obase16;11” |bc 2进制转16进制:echo “obase16;ibase2;11” |bc 2进制转10进制:echo “obase10;ibase2;11” |bc 100开方: echo “sqrt(100)” |bc 10的3次方,10的2次方,3的5次方: echo “103;102;3^5” |bc 掌握shell 程序执行的三种基本方式注意调试shell程序的命令书写方式有什么不同 (1)输入重定向的执行方式 Shell从文件test中读取命令行并执行它们, Shell执行到文件末尾就会终止执行 sh test.sh(2)脚本名文件执行 可以将参数值传递给文件中的命令,使shell程序可以处理更多的情况 sh test.sh [参数.](3)添加执行权限,直接进行执行 chmod ux test.sh ./test.sh(4)调试shell程序的命令 在脚本头部添加 set -euxo pipefail或执行时传⼊参数 bash -euxo pipefail xxx.sh使用for循环语句编写一段B-shell程序完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序文件及其目标文件的列表。 考虑如何验证实验结果。 用户注册目录: $HOME查看 #!/bin/bash d$HOME/a_sub $HOME/b_sub #找到这两个目录 for i in $d docd $i #然后进入目录ls -l *.c #分别输出 done编写一段shell程序完成根据从键盘输入的学生成绩显示相应的成绩标准分出不及格、及格60、中70、良80和优秀90等。 如果输入的数据不是合法的怎么处理 11.sh #!/bin/bash while : do read -p 输入成绩: scase $s inq|Q)exit;;*)if ! [[ $s ~ ^[0-9]$ ]] ; then echo 请输入数字continuefiif [ $s -ge 90 -a $s -le 99 ] ; thenecho 优秀fiif [ $s -ge 80 -a $s -le 89 ] ; thenecho 良fiif [ $s -ge 70 -a $s -le 79 ] ; thenecho 中fiif [ $s -ge 60 -a $s -le 69 ] ; thenecho 及格fiif [ $s -ge 0 -a $s -le 59 ] ; thenecho 不及格fi;;esac done 为便于系统管理员对磁盘分配的管理请编写一段B-shell程序当文件系统/home占用空间改变时给出相应的信息提示。要求/home占用量在系统磁盘中为 ①小于50%时提示“用户文件系统磁盘使用负荷量小”。 ②大于50%小于90时提示“用户文件系统磁盘使用负荷量正常”。 ③大于等于90%时提示“用户文件系统磁盘使用负荷量偏大。 思路怎么获取磁盘的空间情况注意题目是需要知道一个目录的空间占用情况和磁盘的占用不是一个问题。 df -h /home homespace1.txt单独运行df和du命令查看用户注册目录的空间使用情况然后再根据此二命令的输出决定编程的方法。 #!/bin/bash df -h /home homespace1.txt #将/home目录占用磁盘空间的情况输出重定向到一个txt文件中去ssed -n 2p homespace1.txt #把homespace.txt文件里的第二行赋值给temp变量 #sed命令是利用脚本来处理文件 #-n仅显示script处理后的结果 l${s%%*} #从右往左把第一次出现%的右边截掉保留左边因为%符号有特殊含义所以加上单引号%把截取后的字符串片段先赋值给m变量 r${l##*G}#从左往右把字符串最后一个出现字符G的左边截掉保留右边。这样就把占用空间百分比的数字给截取出来了把它赋值给r变量 for i in $r doif [ $i -le 50 ] ; thenecho 用户文件系统磁盘使用负荷量小fi if [ $i -ge 50 -a $i -le 90 ] ; thenecho 用户文件系统磁盘使用负荷量正常fi if [ $i -ge 90 ] ; thenecho 用户文件系统磁盘使用负荷量偏大fi done 假设score.txt文件中保存了三个班级的学生的某门课程考试成绩请编写一段shell程序计算每个班级的学生人数与平均分。 学习读取文件的方法。 #!/bin/bashclassclass1 class2 class3 for i in $class dototalgrep -F $i score.txt|wc -laveragegrep -F $i score.txt|awk -F: {sum$3}END{print :,sum/NR}#在之前检索出来的一个班级的内容中截取第三列所在的内容并进行累加得到sumsum再除以内置变量NR行数就得到平均值了。echo $i班:$total人,平均分$average。 done如果数据文件的内容是3个班级5门不同课程的内容程序应该怎么调整 #!/bin/bashclassclass1 class2 class3 for i in $class dototalgrep -F $i score1.txt|wc -lecho $i班:$total人for j in 2 3 4 5 6 7doxsed -n 1p score1.txt|awk -F {print $$j}#获取第一行的内容读取科目便于简化操作。averagegrep -F $i score1.txt|awk -F {sum$$j}END{print sum/NR}echo $i班$x平均分$averagedone done
http://www.hkea.cn/news/14383388/

相关文章:

  • 中国工程建设监理协会网站找个男做那个视频网站好
  • 网站怎么做才有百度权重建筑证书兼职网站
  • wordpress标签链接分类目录品牌推广百度seo
  • 学院网站建设招标书wordpress 卡
  • 济南网站建设泰观网络深圳市网站建设公司排名
  • 中山做营销型网站深圳网站建设叶林
  • 创意手机网站ps做 网站标准尺寸是多少合适
  • 中国住房和城乡建设部网站一级建造师网莱州网站建设案例
  • 襄城县做网站的门店做网站有没有必要
  • 官方网站套餐北京 网站设计招聘信息
  • 茌平企业做网站推广郑州建设网站企业定制
  • asp.net mvc 网站开发wordpress彩色标签云插件
  • 西安网站制作哪家公司好用asp.net做网站计数器
  • 电商网站 性能目标有哪些以蓝色为主色调的网站
  • 手机网站推广个人如何申请网址
  • 怀化优化网站排名wordpress单页面博客
  • 河南中英网站建设做一个同城便民信息网站怎么做
  • 县城网站怎样做经验十大医疗器械公司排名
  • 做企业网站赚钱吗广州宝盈网络科技有限公司网站
  • 沈阳网站制作优化推广建筑设计专业世界大学排名
  • 装潢设计与制作是学什么网站优化销售话术
  • 网站开发工程师适合女生吗产品公司网站建设方案模板
  • 网站域名怎么买wordpress localhost
  • 最流行的做网站语言用友erp管理系统多少钱
  • 网站备案通过之后北京注册公司政策
  • wordpress 建门户网站东营建设信息网官网查询
  • 营销型网站费用南京模板建网站哪家好
  • 杭州企业网站seo网站的备案的要多少钱
  • 杭州做家教网站杭州企业网站制作哪家好
  • 怎么整理网站电商网站建设网