首页 > 系统相关 >shell练习

shell练习

时间:2024-02-23 18:33:24浏览次数:21  
标签:bin shell num1 num2 练习 echo && bash

几道Linux shell脚本题目

0x01

编写shell脚本将当前目录下大于200字节的文件复制到/tmp目录下

#! /bin/bash

file=`find ./  -maxdepth 1 -type f -size +200c`
for i in $file
do
        cp $i /tmp
        echo '#######success######'
done

0x02

编写shell脚本获取本机的网络地址

#! /bin/bash
# 网卡不一样,命令也会不一样
ip=`ifconfig eth0 | grep "inet " | awk -F '[ ]+' '{print $3"/"$5}'`
echo $ip

结果输出

192.168.0.107/255.255.255.0

0x03

用shell编程,判断一文件是不是字符设备文件,如果是将其复制到/dev目录下

#! /bin/bash

read -p "Input filename:" filename
[ -z $filename ] && echo "no input" && exit 1
[ ! -f $filename ] && echo "file not exists" && exit 1
[ -c $filename ] && cp $filename /dev && echo "done"

0x04

设计一个shell程序,备份并压缩/etc目录的所有内容,存放在/root/bāk目录里,且文件名为如下形式
yymmdd_etc,yy为年,mm为月,dd为日。

#! /bin/bash

dir=/etc
[ ! -d $dir ] && echo "dir not exist" && exit 1
tar zcvf `date +%Y%m%d`_etc.tar.gz $dir
[ $? -eq 0 ] && mv `date +%Y%m%d`_etc.tar.gz /root/bak

0x05

设计一个shell程序,建立10个目录,并设置权限,其中其他用户的权限为:读;文件所有者权限为:读写执行;文件所有者所在组权限为:读执行

#! /bin/bash

for i in `seq 10`
do
        mkdir user$i
        chmod 754 user$i
done

0x06

依次向每个用户打招呼,并说出对方的UID是什么,并统计用户个数

例如:hello root ,your UID is 0

cat /etc/passwd | awk -F':' '{print "hello,"$1",your uid is "$3}''END{print NR}'

或者

#! /bin/bash

cat /etc/passwd |
while read line
do
        user=`echo $line | awk -F':' '{print $1}'`
        uid=`echo line | awk -F':' '{print $3}'`
        echo "hello $user,your uid is $uid"
done
echo `cat /etc/passwd|wc -l`

0x07

写一个脚本
1.换工作目录至/var
2.依次向/var目录中的每个文件或子目录问好,形如:

提示:for FILE in/var/*;或for FILE in`ls/var`;

Hello,log
3.统计/var目录下共有多个文件,并显示出来

#! /bin/bash

for i in ./*
do
        echo "hello $i"
done
sum=`ls|wc -l`
echo "sum of file:$sum"

0x08

写一个脚本
使用循环读取文件第2,4,6,8行,并显示其内容打印到屏幕
把这些行保存至/tmp/4.txt文件中

#! /bin/bash

for i in 2 4 6 8
do
        line=`cat 10.txt | head -$i | tail -1`
        echo $line
        echo $line >> /tmp/4.txt
done

0x09

写一个脚本
传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商

#! /bin/bash
read -p "num1:" num1
read -p "num2:" num2
echo "================="
#echo $num1 $num2
echo $(($num1+$num2))
echo $(($num1-$num2))
echo $(($num1*$num2))
echo $(($num1/$num2))

或者

#! /bin/bash
num1=$1
num2=$2
echo "================="
#echo $num1 $num2
echo $(($num1+$num2))
echo $(($num1-$num2))
echo $(($num1*$num2))
echo $(($num1/$num2))

0x10

写一个脚本
1.显示当前系统日期和时间,而后创建目录/tmp/1 stest
2.切换工作目录至/tmp/1stest
3.创建目录a1d,b56e,6test
4.创建空文件xy,×2y,732
5.列出当前目录下以a,x或者6开头的文件或目录
6.列出当前目录下以字母开头,后跟个任意数字,而后跟任意长度字符的文件或目录

#!/bin/bash
date
mkdir -pv /tmp/lstest
cd /tmp/lstest
mkdir ald b56e 6test
touch xy x2y 732
ls [ax6]*
ls [a-zA-Z][0-9]*

标签:bin,shell,num1,num2,练习,echo,&&,bash
From: https://www.cnblogs.com/C0rr3ct/p/18030184

相关文章

  • powershell 制作工具菜单
    functionmainMenu{$mainMenu='X'while($mainMenu-ne''){Clear-HostWrite-Host"`n`t`tMyScript`n"Write-Host-ForegroundColorCyan"MainMenu"Write-Host-ForegroundColo......
  • 片段代码练习之【水仙花,三角形,字符统计】
    #统计字符个数方法defcount_char(char,string):count=0forcinstring:ifc==char:count+=1returncountchar='l'string='helloworld'count=count_char(char,string)print('{0}字符个数为:{1}'.format(cha......
  • shell脚本如何抛出异常
    shell如何抛出异常在Shell中,可以使用exit命令来退出脚本并返回指定的状态码。当需要抛出异常时,我们可以通过设置不同的状态码来表示不同类型的错误或异常情况。下面是一些常见的Shell异常处理方式及其对应的状态码:exit0:正常结束程序,没有发生任何异常。exit1:非正常结束程序,......
  • MySQL 多表查询 - 缺练习解析
    多表查询【一】概要(1)联表查询innerjoin:内连接--innerjoin/join#拼接两张表中共有的数据部分select*from表2innerjoin表1on表2.字段=表1.字段;leftjoin:左外连接--leftjoin#返回左表中的所有行,以及右表中与左表中相匹配的行。如果右表中没......
  • 【2024.02.22】构图练习(滨田英明)
    ......
  • python 和shell 变量互相传递
    主要介绍python和shell变量互相传递方法,使用了环境变量、管道等方法。python->shell:1.环境变量importosvar=123或var='123'os.environ['var']=str(var)#environ的键值必须是字符串os.system('echo$var')2.字符串连接importospath='/root/a.txt'var=[1......
  • 2024-02-21-物联网Shell语言(2-系统调用)
    2.系统调用2.1系统编程概述操作系统的职责:操作系统用来管理所有的资源,并将不同的设备和不同的程序关联起来Linux系统编程:在有操作系统打的环境下编程,并使用操作系统提供的系统调用及库函数,对系统资源进行访问系统编程就是为了让用户更方便的操作硬件设备,并且对硬件设备起到......
  • Python练习案例_Pico Fermi Bagels猜数字游戏
    案例介绍--《Python编程快速上手2》在PicoFermiBagels这个逻辑推理游戏中,你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一:如果你猜对一位数字但数字位置不对,则会提示“Pico”;如果你同时猜对了一位数字及其位置,则会提示“Fermi”;如果你猜测的数字及其位置......
  • shell脚本忽略错误继续执行
    在shell脚本中,可以使用 set-e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set+e 命令来取消该设置。例如,下面是一个忽略错误并继续执行的简单脚本: bash复制代码#!/bin/bash#取消set-e的设置set+e#执行......
  • shell中basename的使用
    1.首先查看helpbasename--helpUsage:basenameNAME[SUFFIX]or:basenameOPTION...NAME...PrintNAMEwithanyleadingdirectorycomponentsremoved.Ifspecified,alsoremoveatrailingSUFFIX.Mandatoryargumentstolongoptionsaremandatoryforshort......