码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Shell之练习一


    目录

    一、判断是管理员还是普通用户

    1.1、分析

    1.2、编辑脚本文件

    1.3、测试

    二、判断bash用户

    2.1、分析

    2.2、编辑脚本文件

    ​2.3、测试

    三、判断指定文件中是否有空白行

    3.1、分析

    3.2、编辑脚本文件

    3.3、测试

    四、判断指定用户UID与GID是否一样

    4.1、分析

    4.2、编辑脚本文件

    4.3、测试​

    五、两个整数比较大小

    5.1、分析

    5.2、编写脚本文件

    ​5.3、测试

    六、判断当前主机的CPU生产商

    6.1、分析

    6.2、编辑脚本文件

    6.3、测试

    七、指定压缩格式并指定压缩到的目录

    7.1、分析

    7.2、编辑脚本文件

    7.3、测试


    一、判断是管理员还是普通用户

    需求:给定一个用户,如果其UID为0,就显示此为管理员;否则,就显示其为普通用户;

    1.1、分析

    给定一个用户,要判断用户是否存在,当用户存在才能判断其uid,再用uid进行比较。

    1.2、编辑脚本文件

    内容为:

    注意:

    这是代表的意思是从位置4之后开始截取,截取长度为1。

    因为管理员用户uid为0,只有一位,所以可以偷懒!

    用此方法判断uid是否等于gid用此方法就有bug

    例如:

     

     

    1.3、测试

    二、判断bash用户

    需求:判断当前系统上是否有用户的默认shell为bash,如果有,就显示有多少个这类用户;否则,就显示没有这类用户;

    2.1、分析

    判断当前系统上是否有用户的默认shell为bash,可以用grep过滤一下/etc/passwd文件

     判断是否有此类用户,可以用$?,看上一条命令执行是否成功来判断,0代表有,1代表没有。

    2.2、编辑脚本文件

    内容为:

    2.3、测试

    三、判断指定文件中是否有空白行

    需求:给定一个文件,比如/etc/file3,判断这个文件中是否有空白行。如果有,则显示其空白行数;否则,显示没有空白行。

    3.1、分析

    首先应该判断给定的文件是否存在

    其次判断文件是否为空

    再判断这个文件中是否有空白行,

    3.2、编辑脚本文件

    内容为:

    3.3、测试

     /etc/file3

    四、判断指定用户UID与GID是否一样

    需求:给定一个用户,判断其UID与GID是否一样,如果一样,就显示此用户为“good guy”;否则,就显示此用户为“bad guy”。

    4.1、分析

    首先要判断用户是否存在

    其次在要获取uid和gid

    最后进行比较

    4.2、编辑脚本文件

    内容为:

    4.3、测试

    五、两个整数比较大小

    5.1、分析

    (1)首先要输入两个数

    (2)其次输入的两个数是否都是整数

    (3)最后进行比较

    5.2、编写脚本文件

    内容为:

    5.3、测试

    六、判断当前主机的CPU生产商

    需求:判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor_id一行中。 如果其生产商为GenuineIntel,就显示其为Intel公司; 如果其生产商为AuthenticAMD,就显示其为AMD公司; 否则,就显示无法识别;

    6.1、分析

    (1)判断当前主机的CPU生产商

    grep vendor_id  /proc/cpuinfo | cut -d : -f 2

    前面还有个空格,要删除才行

    grep vendor_id  /proc/cpuinfo | cut -d : -f 2 | tr -d " "

     (2)再判断生产商

    6.2、编辑脚本文件

    内容为:

    6.3、测试

    七、指定压缩格式并指定压缩到的目录

    需求:
    写一个脚本,完成如下功能 传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;
    (1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/file1/backups/etc-20160613.tar.gz; tar -czvf /backups/etc-20160613.tar.gz /etc/*
    (2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/file1/backups/etc-20160613.tar.bz2; 
    (3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/file1/backups/etc-20160613.tar.xz; 
    (4) 其它任意值,则显示错误压缩工具,并执行非正常退出;

    7.1、分析

    (1)首先要打印出可以选项

    (2)输入选项

    (3)执行对应语句

    7.2、编辑脚本文件

    内容为:

    7.3、测试


     

  • 相关阅读:
    Echarts案例网站(由于https://www.makeapie.com/关闭了,所以找了一些替代的)
    Spring Boot复用yaml文件
    【计算机毕业设计】微信小程序:MHK自学平台的设计与实现——后附源码
    python练习
    CentOS7和CentOS8 Asterisk 20.0.0 简单图形化界面4--使用libss7配置7号中继
    初始JDBC 编程
    【Note】二叉树的遍历
    redis持久化
    [Linux]进程间通信(system V共享内存 | system V信号量)
    web前端设计与开发期末作品_期末大作业-疫情
  • 原文地址:https://blog.csdn.net/mengfanshaoxia/article/details/126936231
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号