• 1.8 打好shell基础


    一、常用shell命令

    1、管道命令

    (1)命令格式

    命令1 | 命令2,命令1的输入作为命令2的输入

    (2)案例演示
    任务1、查看/etc目录信息前5行信息

    执行命令:ll /etc | head -5
    在这里插入图片描述

    任务2、查看/etc/profile文件后5行信息

    执行命令:cat /etc/profile | tail -5
    在这里插入图片描述

    2、grep命令

    (1)命令格式

    grep [选项参数] 文件

    (2)案例演示
    任务1、抓取/etc目录下的python信息

    执行命令:ll /etc | grep python
    在这里插入图片描述

    执行命令:ll /etc | grep -c python
    在这里插入图片描述

    任务2、抓取/etc/profile文件里的dev信息

    执行命令:cat /etc/profile | grep dev
    在这里插入图片描述

    任务3、抓取用户数据文件中以how打头的信息

    执行命令:cat /etc/passwd | grep how*
    在这里插入图片描述

    任务4、显示所有以d开头的文件中包含hi的行

    执行命令:grep hi d*

    任务5、显示两个文件匹配某个字符串的行

    执行命令:grep ‘hadoop’ demo.txt demo1.txt

    任务6、显示文件中至少有n个连续小写字符的行

    执行命令:grep ‘[a-z]{7}’ demo.txt
    执行命令:grep ‘[a-z]{6}’ demo.txt

    3、find命令

    (1)命令格式

    find 路径 [选项参数]

    (2)案例演示
    任务1、按类型查找

    执行命令:find /etc/sysconfig -type ‘d’
    在这里插入图片描述

    检查是否查找成功
    在这里插入图片描述
    执行命令:find /etc/sysconfig -type ‘l’
    在这里插入图片描述

    执行命令:find /etc/sysconfig -type ‘f’
    在这里插入图片描述

    任务2、按名称查找

    执行命令:find /etc/sysconfig -name ‘network’
    执行命令:find /etc/sysconfig -name ‘net*’ (可使用通配符)
    在这里插入图片描述

    任务3、按大小查找

    执行命令:find /etc/sysconfig -size 15c(等于15字节)
    在这里插入图片描述

    执行命令:find /etc/sysconfig -size +10k(大于10240个字节)
    在这里插入图片描述

    执行命令:find /etc/sysconfig -size -20c (小于20个字节)
    在这里插入图片描述

    任务4、按权限查找

    执行命令:find /etc/sysconfig -perm ‘777’ (权限字符串:rwxrwxrwx)
    在这里插入图片描述
    执行命令:find /etc/sysconfig -perm ‘755’ (权限字符串:rwxr-xr-x)
    在这里插入图片描述

    4、sed命令

    (1)命令格式

    sed “[action]” [filename]

    (2)案例演示

    预备工作:创建demo.txt
    在这里插入图片描述

    1)替换操作(s - substitute)
    任务1、将所有行的第一个hello替换成HELLO

    执行命令:sed “s/hello/HELLO/” demo.txt
    在这里插入图片描述

    任务2、将第2行到第3行的第2个hello替换成HELLO

    执行命令:sed “2,3s/hello/HELLO/2” demo.txt
    在这里插入图片描述

    任务3、将第2行的hello全部替换成HELLO

    执行命令:sed “2s/hello/HELLO/g” demo.txt
    在这里插入图片描述

    任务4、将全部的hello替换成HELLO后生成新文件

    执行命令:sed “s/hello/HELLO/g” demo.txt > demo1.txt
    在这里插入图片描述

    任务5、将全部的hello替换成hi,要求修改原文件

    执行命令: sed -i “s/hello/hi/g” demo.txt
    在这里插入图片描述

    2)插入操作(i - insert, a - append)
    任务1、在第2行之前插入一行新内容

    执行命令:sed “2 i I love Linux” demo.txt
    在这里插入图片描述

    任务2、在第2行之后插入一行新内容

    执行命令:sed “2 a Linux is fun and I love it” demo.txt
    在这里插入图片描述

    3)删除操作(d - delete)
    任务1、删除第2行

    执行命令:sed ‘2d’ demo.txt
    在这里插入图片描述

    任务2、删除第2行到第3行

    执行命令: sed ‘2,3d’ demo.txt
    在这里插入图片描述

    任务3、删除文件所有行

    执行命令:sed ‘d’ demo.txt
    在这里插入图片描述

    任务4、删除包含指定字符串的行

    执行命令:sed ‘/scala/g’ demo.txt
    在这里插入图片描述

    5、tail命令

    (1)命令格式

    tail [选项参数] 文件名

    (2)案例演示
    任务1、显示文件最后4行内容

    执行命令:tail -n 4 anaconda-ks.cfg
    在这里插入图片描述

    任务2、显示文件最后4个字符内容

    执行命令:tail -c 4 love.txt
    在这里插入图片描述

    6、sort命令

    (1)命令格式

    sort [选项参数] 文件

    (2)案例演示

    预备工作:创建ips.txt文件
    在这里插入图片描述

    任务1、对文件按行排序

    执行命令:sort ips.txt,按字典排序法升序排列
    在这里插入图片描述

    执行命令:sort -r ips.txt,按字典排序法降序排列
    在这里插入图片描述

    任务2、对文件按第4节排序

    执行命令:sort -t ‘.’ -k 4 ips.txt,升序排列
    在这里插入图片描述

    执行命令:sort -t ‘.’ -k 4 -r ips.txt,降序排列
    在这里插入图片描述

    7、cut命令

    (1)命令格式

    cut [选项参数] 文件名

    (2)案例演示
    任务1、提取ips.txt文件第7列字符

    执行命令:cut -c 7 ips.txt
    在这里插入图片描述

    执行命令:cut -b 7 ips.txt
    在这里插入图片描述

    任务2、提取ips.txt文件第4节内容

    执行命令:cut -d ‘.’ -f 4 ips.txt,提取第4节内容
    在这里插入图片描述

    执行命令:cut -d ‘.’ -f 2 ips.txt,提取第2节内容
    在这里插入图片描述

    8、history命令

    (1)命令格式

    history [选项参数]

    (2)案例演示
    任务1、查看历史操作记录

    执行命令:history在这里插入图片描述

    任务2、查看最近10条历史命令

    执行命令:history 10 (写成history -n 10也是一样效果)
    在这里插入图片描述

    任务3、查看最开始10条历史命令

    执行命令:history | head -10
    在这里插入图片描述

    任务4、曾多少次使用vim编辑文本文件?

    执行命令:history | grep vim
    在这里插入图片描述

    任务5、执行历史第5条命令

    查看历史第5条命令
    执行命令:!5
    在这里插入图片描述

    任务6、执行上一条命令

    执行命令:!!
    在这里插入图片描述

    任务7、执行最后一次以his开头的命令

    执行命令:!his
    在这里插入图片描述

    任务8、将当前历史命令缓冲区命令写入历史命令文件中

    执行命令:history -w myhis
    在这里插入图片描述

    执行命令:cat myhis | tail -5
    在这里插入图片描述

    任务9、 清除第5条历史命令

    查看第5条历史明令
    执行命令:history -d 5
    在这里插入图片描述

    任务10、清除所有历史命令

    执行命令:history -c
    在这里插入图片描述

    任务11、将历史命令文件中的命令读入当前历史命令缓冲区

    执行命令:history -r myhis
    在这里插入图片描述

    执行命令:history | head -10
    在这里插入图片描述

    二、shell脚本

    1、执行shell脚本

    创建脚本文件,执行命令:vim /home/shell.sh
    在这里插入图片描述
    此时,shell.sh对于所有者而言,只有读和写的权限,并不是可执行的脚本
    在这里插入图片描述

    (1)直接执行脚本

    shell.sh文件必须具备可读与可执行(rx) 的权限
    增加shell.sh的写权限,执行命令:chmod u+x /home/shell.sh
    在这里插入图片描述
    在这里插入图片描述

    绝对路径方式执行脚本
    执行命令:/home/shell.sh
    在这里插入图片描述

    相对路径方式执行脚本
    执行命令:cd /home
    执行命令:./shell.sh (.表示当前目录)
    在这里插入图片描述

    (2)利用source命令执行脚本

    执行命令:source shell.sh
    在这里插入图片描述

    (3)利用bash或sh命令执行脚本

    执行命令:bash shell.sh
    在这里插入图片描述

    执行命令: sh shell.sh
    在这里插入图片描述

    2、shell脚本实战

    任务1、显示当前用户主目录
    1)编写脚本

    执行命令:vim shell01.sh
    在这里插入图片描述

    2)设置权限

    执行命令:chmod u+x shell01.sh,增加可执行权限
    在这里插入图片描述

    3)执行脚本

    执行命令:./shell01.sh
    在这里插入图片描述

    任务2、编程实现两个数相乘
    1)编写脚本

    执行命令:vim shell02.sh
    在这里插入图片描述

    2)设置权限

    执行命令:chmod u+x shell02.sh
    在这里插入图片描述

    3)执行脚本

    执行命令:./shell02.sh
    在这里插入图片描述

  • 相关阅读:
    PHP7虚拟机(PHP 7 Virtual Machine)(转载)
    排序算法:堆排序
    SpringBoot2.7.3 动态数据数据源以及多数据源自动配置
    Winform中实现会旋转的Label控件
    什么是信息摘要?
    Mongodb安全访问控制操作案例
    云计算技术大数据概述及其知识点
    K8S常用kubectl命令汇总(持续更新中)
    docker compose 管理应用服务的常用命令
    golang超时控制(转)
  • 原文地址:https://blog.csdn.net/m0_62492032/article/details/128093636