shell环境使用和文本的使用

一、实验目的
    1. 熟悉shell环境的使用。
    2. 熟悉文本工具的使用。

    二、实验环境
    虚拟Linux主机,远程工具putty

    三、实验过程
    (一)准备
    1.启动主机Linux,以yanji登录。
    2.创建文件consume.txt。
    命令:cat > consume.txt
        01      刘校明  广州    1550    400
    02      邓子丽  深圳    1500    500
    03      林静聪  深圳    1450    600
    04      庄勇添  湛江    1350    350
    05      李家鹏  梅县    1050    750
    06      梁舒昊  湛江    950     650
    07      叶国林  湛江    1200    550
    08      苏启业  深圳    1600    500
    09      李伟敏  广州    1400    400
    10      周晨    梅县    1000    400
    11      黎峰婷  深圳    1700    600
    12      庄晓    梅县    1350    300
    13      陈炜志  广州    1400    550
    14      叶泳敏  广州    1650    450
    15      杨靖莉  梅县    1450    500
     
      (二)理解环境变量PATH
    1.创建脚本

命令:cat > greet
输入:
 #! /bin/bash
 echo "Hello,$1"
命令:
  chmod +x greet


    2.不指定路径执行
命令: greet Mary
输出:-bash: greet: command not found
解释:执行失败是因为没有指定路径,出现了-bash: greet: command not found的错误。
    ./表示当前目录,由于自己编写的脚本在当前目录,而当前目录不在环境变量中,所以要指定路    径才可以执行。


    3.查看环境变量
命令:  echo $PATH
输出:
/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/yanji/bin


    4.指定路径执行
命令:./greet Mary
输出:Hello,Mary


    (三)元字符

    1.屏蔽元字符
命令:echo <html>
输出:-bash: syntax error near unexpected token `newline'
命令:echo "<html>"
输出:<html>


    2.单引、双引和反转义
命令: y=500
       echo "y = $y"
输出:y = 500
解释:$引用变量,""双引号不会屏蔽`、\和$这三个Shell元字符的含义。

命令:echo 'y = $y'
输出:y = $y
解释:单引号实现屏蔽Shell元字符的功能。

命令: echo "y = \$y"
输出: y = $y
解释:\显示字符本身,屏蔽了字符的功能,因此$就失去了引用变量的功能。

    
    3.命令替换
命令: h=`date +%H`
       echo $h
输出:10

命令:ip=`hostname -I | awk '{print $1}'`
      echo $ip
输出:192.168.139.3

解释:反引号进行命令替换,是Shell可以将命令字符替换为命令执行的结果的输出的内容。

    (四)文本工具
    1.grep

命令: grep "10" consume.txt
输出: 05      李家鹏  梅县    1050    750
       10      周晨    梅县    1000    400
解释:匹配一行中带有10字样的记录

命令: grep "^10" consume.txt
输出: 10      周晨    梅县    1000    400
解释:匹配以10开头的记录

命令:grep "450" consume.txt
输出:03      林静聪  深圳    1450    600
      14      叶泳敏  广州    1650    450
      15      杨靖莉  梅县    1450    500
解释:匹配一行中带有450的字样的记录

命令:grep "450$" consume.txt
输出:14      叶泳敏  广州    1650    450
解释:匹配以450结束的记录


    2.输出consumer.txt中月伙食费(第四列)低于1300的记录。(awk)
命令:awk '$4<1300 {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5}' consume.txt
输出:05      李家鹏  梅县    1050    750
      06      梁舒昊  湛江    950     650
      07      叶国林  湛江    1200    550
      10      周晨    梅县    1000    400


    3.输出consumer.txt中月伙食费最高的前三名。(sort)
复习:sort -r -k 4  consumer.txt -o text.txt
cat -n text.txt | awk '$1<04 {print$1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6}'

head -3  text.txt | awk ' {print$1 "\t" $2 "\t" $3 "\t" $4 "\t" $5}'


1       06      梁舒昊  湛江    950
2       11      黎峰婷  深圳    1700
3       14      叶泳敏  广州    1650
4       08      苏启业  深圳    1600

 

命令:方法1: awk '$1<=03  {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5}' consume.txt | sort -u
      方法2: sort -u consume.txt | awk '$1<04'

输出:01      刘校明  广州    1550    400
      02      邓子丽  深圳    1500    500
      03      林静聪  深圳    1450    600
解释:一个是先输出了以第一列序号小于04的输出后再排序;另外一个是先排序再输出,结果都是一样的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值