Linux--shell练习题
1、判断/etc/inittab文件是否大于100行,如果大于,则显示”/etc/inittab is a big file.”否者显示”/etc/inittab is a small file.”
#!/bin/bash
#判断/etc/inittab文件是否大于100行,如果大于,则显示“/etc/initabb is a big file." 否则显示”/etc/inittab is a small file."
Line=`wc -l /etc/inittab |cut -d" " -f1`
if [ $Line -gt ];then
echo "/etc/initabb is a big file."
else
echo "/etc/inittab is a small file."
fi
2、给定一个用户,来判断这个用户是什么用户,如果是管理员用户,则显示“该用户为管理员”,否则显示“该用户为普通用户”
#!/bin/bash
#给定一个用户,来判断这个用户是什么用户,如果是管理员用户,则显示“该用户为管理员”,否则显示“该用户为普通>用户”
a=`whoami`
str="root"
if [ $a = $str ];then
echo "该用户为管理员"
else
echo "该用户为普通用户"
fi
3、判断某个文件是否存在
#!/bin/bash
#判断某个文件是否存在
read -p "你要查找的文件" var
find $var &> NULL
if [ $? -eq ];then
echo "这个文件存在"
else
echo "这个文件不存在"
fi
4、判断当前系统上是否有用户的默认shell程序是否为bash程序,如果有,就显示有多个这类用户,否则就显示没有这类用户;【并且显示出那些用户是bash】
#!/bin/bash
#判断当前系统上是否有用户的默认shell程序是否为bash程序,如果有,就显示有多个这类用户,否则就显示没有这类用户;>【并且显示出那些用户是bash】
grep "bash" /etc/passwd &> /dev/null
if [ $? -eq ];then
echo "有多个这个类用户"
else
echo "没有这类用户"
fi
grep "bash" /etc/passwd |cut -d":" -f1
5、写出一个脚本程序,给定一个文件,比如:/etc/inittab a、判断这个文件中是否有空白行? b、如果有,则显示其空白行的行号,否则显示没有空白行
#!/bin/bash
#写出一个脚本程序,给定一个文件,比如:/etc/inittab a、判断这个文件中是否有空白行? b、如果有,则显示其空白行的
行号,否则显示没有空白行
a=`grep "^$" /etc/inittab |wc -l`
if [ $a -gt ];then
echo "含有空白行"
grep -n ^$ /etc/inittab
else
echo "没有空白行"
fi
6、写一个脚本程序,给定一个用户,判断其UID与GID是否一样,如果一样,就显示该用户为“good guy”,否则显示为“bad guy”
#!/bin/bash
#写一个脚本程序,给定一个用户,判断其UID与GID是否一样,如果一样,就显示该用户为“good guy”,否则显示为“bad guy”
read -p "请输入一个要查询的用户:" user
uid=`grep "$user" /etc/passwd | cut -d":" -f3`
gid=`grep "$user" /etc/passwd | cut -d":" -f4`
if [ $uid -eq $gid ];then
echo "good guy"
else
echo "bad guy"
fi
7、写一个脚本程序,给定一个用户,获取其密码警告期限7;然后判断用户最近一次修改密码的时间距离今天是否已经小于警告期限;
#!/bin/bash
#写一个脚本程序,给定一个用户,获取其密码警告期限;然后判断用户最近一次修改密码的时间距离今天是否已经小
于警告期限;
read -p "请输入一个用户:" user
W=`grep $user /etc/shadow | cut -d: -f6`
S=`date +%s`
T=`expr $S/`
L=`grep $user /etc/shadow | cut -d":" -f5`
N=`grep $user /etc/shadow | cut -d":" -f3`
SY=$[$L-$[$T-$N]]
if [ $SY -lt $W ];then
echo 'Warning'
else
echo 'OK'
fi
8、判断命令历史中历史命令的总条目是否大于1000,如果大于,则显示“some command will gone”,否则显示OK
#!/bin/bash
#判断命令历史中历史命令的总条目是否大于1000,如果大于,则显示“some command will gone”,否则显示OK
num=`history | wc -l`
if [ $num -gt ];then
echo "some command will gone"
else
echo "OK"
fi
9、给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”
#!/bin/bash
#给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”
read -p "请输入一个文件:" file
if [ -f $file ];then
echo "普通文件"
elif [ -d $file ];then
echo "目录文件"
else
echo "无法识别"
fi
10、写一个脚本,能接受一个参数(文件路径),判断这个参数如果是一个存在的文件就显示“ok”,否则显示“No such file”
#!/bin/bash
#写一个脚本,能接受一个参数(文件路径),判断这个参数如果是一个存在的文件就显示“ok”,否则显示“No such file”
read -p "请输入一个路径:" route
if [ -f $route ];then
echo "ok"
else
echo "No such file"
fi
11、写一个脚本,给脚本传递两个参数,显示两则之和和两者之积
#!/bin/bash
#写一个脚本,给脚本传递两个参数,显示两则之和和两者之积
read -p "请输入第一个数:" num1
read -p "请输入第二个数:" num2
sum=$[$num1+$num2]
product=$[$num1*$num2]
echo "$num1+$num2=$sum"
echo "$num1"x"$num2=$product"
Linux--shell练习题的更多相关文章
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux Shell 流程控制语句
* 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...
- Linux Shell 截取字符串
Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
- Linux Shell 通配符、元字符、转义符【转帖】
作者:程默 说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1 1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt ...
- Linux Shell中单引号、双引号、反引号的区别【转载】
linux shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符` 1. 单引号 ( '' )# grep Susan phonebook Sus ...
随机推荐
- linux应用程序设计--GCC程序编译
GCC程序编译 linux系统下的GCC(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作之一.GCC可以在多种硬件平台上编译出可执行程序,其执行效率与一 ...
- 如何在vue中使用echart
1.安装echarts依赖 npm install echarts --save 2.在main.js中全局中引用 import echarts from 'echarts' Vue.protot ...
- [原创]自动化部署K8S(v1.10.11)集群
标准运维实现自动化部署K8S集群主要分两步,第一步是部署gse-agent,拱第二步执行部署. 第一步:部署gse-agent.如下: 第二步:部署k8s集群.主要通过作业平台分为5小步执 ...
- 能访问的谷歌 http://209.116.186.231/
能访问的谷歌 http://209.116.186.231/
- RabbitMQ实战(三)-高级特性
0 相关源码 1 你将学到 如何保证消息百分百投递成功 幂等性 如何避免海量订单生成时消息的重复消费 Confirm确认消息.Return返回消息 自定义消费者 消息的ACK与重回队列 限流 TTL ...
- 【转】Spring事务详解
1.事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交,那在没有Spring帮我们管理事务 ...
- python 面向对象编程 - 小游戏
面向对象写的小游戏 欢迎玩耍 class Omnicience: camp = 'Omniscience' def __init__(self, name, atk=100, hp=1000, mp= ...
- [小米OJ] 4. 最长连续数列
思路: 时间限制为O(n),即不能使用先排序后寻找的方法. 这里利用哈希表查询插入复杂度都为O(1)的特性来解,利用一个哈希表来保存每一个数字以及其所在数列的长度. 遍历每一个数字n:查询表中是否存在 ...
- 多线程与高并发(五)final关键字
final可以修饰变量,方法和类,也就是final使用范围基本涵盖了java每个地方,我们先依次学习final的基础用法,然后再研究final关键字在多线程中的语义. 一.变量 变量,可以分为成员变量 ...
- ASP.NET Core系列(三):启动类Startup
前面讲了ASP.NET Core 的项目结构,查看完整的ASP.NET Core系列文章:https://www.cnblogs.com/zhangweizhong/category/1477144. ...