Linux下shell编程实例

1. 判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下

read -p "input a file:" filename

if [ -b $filename -o -c $filename ]

then

cp $filename /dev/

fi

2.编写一个脚本,进行简单的减法运算,要求提示输入变量

#!/bin/bash

read -p "input a number:" num1

read -p "input another number:" num2

let "num3=num1-num2"

echo $num3

3.把某个目录下的文件扩展名改为bat,再以时间为文件名压缩打包存放到某个目录。

#!/bin/bash

for file in $(ls $1)

do

new_file=${file%.*}.bat

mv ./$1/$file ./$1/$new_file

tmp=$(date +%y)

tar cvf ./$tmp.tar ./$1

done

4.判断一个数是不是完数。打印出1-1000之间的完数。 完数就是约数的和等于自身2倍的数。(6,28,496)

#!/bin/bash

sub()

{

i=1;

sum=0;

while [ $i -le $num ]

do

let "m=num%i"

if [ $m -eq 0 ]

then

let "sum=sum+i"

fi

let "i=i+1"

done

let "a=2*num"

if [ $a -eq $sum ]

then

echo $num

fi

}

num=1

while [ $num -le 1000 ]

do

sub

let "num = num+1"

done

5.在某个文件夹下查找含有指定字符串的文件

#!/bin/bash

for file in $(ls $2)

do

bname=$(grep -l $1 $2/$file)

basename $bname

done

6.添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。

#!/bin/bash

groupadd class1

for i in {9901..9930}

do

xx=$(echo $i | sed ‘s/99//‘);

useradd -g class1 std$xx -p ""

done

7.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其\中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

#!/bin/bash

for ((i=1;i<=50;i++))

do

mkdir -p /usrdata/user$i

cd /usrdata

chmod 754 user$i

done

8. 写一个脚本,利用循环计算10的阶乘

#!/bin/sh

factorial=1

for a in `seq 1 10`

do

factorial=` expr $factorial \* $a `

done

echo "10! = $factorial"

9.删除当前目录下大小为0的文件

#/bin/bash

for filename in `ls`

do

if test -d $filename

then b=0

else

a=$(ls -l $filename | awk ‘{ print $5 }‘)

if test $a -eq 0

then rm $filename

fi

fi

done

Linux下shell编程实例,布布扣,bubuko.com

时间: 2024-10-26 04:25:28

Linux下shell编程实例的相关文章

Linux下Shell编程

Linux的shell编程 1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序.一般的Linux系统都将bash作为默认的shell. 2.几种流行的shell 目前流行的shell有ash.bash.ksh.csh.zsh等,可以用下面的命令来查看she

linux下shell编程示例-获取进程id

今天初步学习了一下linux下的shell编程,简单记录一下测试用例 1.编辑shell脚本文件如下: #!/bin/bashecho "hello bash linux"echo "第0个参数:$0"echo "第一个参数:$1"echo "当前子shell进程:$$" #pidarr=`ps x | awk '{print $1}'`pidarr=$(ps x | awk '{print $1}')echo $pidadd

linux下shell编程梳理

经常看一些有关linux的书籍仍感觉不能全面掌握这些知识其实也不可能全面掌握只要能达到熟练地使用就可以了毕竟做研发就是能快速做出能卖钱的产品民营企业为王的年代. 这些日子做产品感觉对shell部分基础有些不大熟练在此总结一些要点以期对这个shell有新的认识也做些笔记和大家分享.   一 shell的基础 Shell 是一个用C语言编写的程序它是用户使用Linux的桥梁.Shell既是一种命令语言又是一种程序设计语言. Shell 是指一种应用程序这个应用程序提供了一个界面用户通过这个界面访问操

linux下shell编程基础知识

1.history    记录历史命令: 预设记录1000条命令,存储在用户家目录 .bash_history 文件中: !!     执行上一条命令 !n    n为数字,history里面显示的指令数字 !cat    执行最近一次以cat开头的命令 !$    上一条命令的最后一个参数 man builtin    可以查询系统内置的所有命令: 2.指令和文件名补全 Tab键    连续按2次列出所有的指令或文件名: 3.别名alias 自定义别名,把很长的经常使用的命令别名一个简单的命令

linux下Shell编程--标准的守护进程的启动脚本

一个标准的守护进程的启动脚本: #! /bin/sh WHOAMI=`whoami` PID=`ps -u $WHOAMI | gerp mydaemond | awk '{print $1}'` if (test "$1" = "") then echo "mydaemond [start][stop][version]" exit 0 fi if ( test "$1" = "status") then

Linux下Socket编程

http://blog.chinaunix.net/uid-20733992-id-3450058.html 原文地址:Linux下Socket编程 作者:yulianliu1218 Linux下Socket编程 什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket接口. Socket接口设计者最先是将接口放在Unix操作系统里面

Linux下Shell脚本输出带颜色文字

Linux下Shell脚本输出带颜色文字 文本终端的颜色可以使用"ANSI非常规字符序列"来生成. 举例:    "echo -e \033[44;37;5m BLUE \033[0m" "echo -e \033[44;37;5m BLUE \033[0m BLACK" 需要修改的地方是红色带下划线的部分,其中[***m部分的内容换成下面的数字,后面的内容是自己想要上色的内容. 以上命令设置作用如下:背景色为蓝色,前景色为白色,字体闪烁,输出字

linux 下 poll 编程

poll 与 select 很类似,都是对描述符进行遍历,查看是否有描述符就绪.如果有就返回就绪文件描述符的个数将.poll 函数如下: #include <poll.h> int poll(struct pollfd *fdarray, unsigned long nfds, int timeout) 第一个参数指向结构数组第一个元素的指针,每个数组都是一个 pollfd 结构iouyonghu制定额是某个给定描述符的条件. struct pollfd { int fd; short eve

linux下多线程编程

最近研究mysql源码,各种锁,各种互斥,好在我去年认真学了<unix环境高级编程>, 虽然已经忘得差不多了,但是学过始终是学过,拿起来也快.写这篇文章的目的就是总结linux 下多线程编程,作为日后的参考资料. 本文将介绍linux系统下多线程编程中,线程同步的各种方法.包括: 互斥量(mutex) 读写锁 条件变量 信号量 文件互斥 在介绍不同的线程同步的方法之前,先简单的介绍一下进程和线程的概念, 它们的优缺点,线程相关的API,读者——写者问题和哲学家就餐问题. 基础知识 1. 进程和