ubuntu怎么写脚本的

1. ubuntu编写一个shell脚本,要求:删除目录及子目录下2019.02.14之前 Linux下使用Shell脚本删除一个目录下的所有子目录和文件
#!/bin/sh
#FileName:deleteDir.sh
#Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件
#Version:V0.1
#Author:Sunrier
#Date:2012-08-01
CURRPATH=$PWD
#DESTPATH为删除的目标目录
DESTPATH="/home/Sunrier/Trash"
#isNullDir函数判断进入的目录下是否存在下级子目录或者文件
【ubuntu怎么写脚本的】#存在返回1 , 不存在返回0
isNullDir()
{
local NewCurrentPath=$PWD
local NewDirName=$1
cd $NewDirName
local NewFileList=`ls 2>/dev/null`
# -n string : 如果字符串不为空 , 则结果为真
if [ -n "$NewFileList" ]
then
echo "目录$NewDirName下列表信息为$NewFileList"
cd $NewCurrentPath
return 1
else
echo "目录$NewDirName为空目录"
cd $NewCurrentPath
return 0
fi
}
2. linux启动脚本如何写 inittab是很多linux版本的启动脚本 。
Linux在完成核内引导以后 , 就开始运行init程序 , 它的进程号是1 , 是所有其他进程的起点 。init需要读取/etc/inittab , 该文件告诉init在它的每个运行级别上需要做哪些事情 。
init共定义了七个运行级(run level) , 分别是什么?# Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # - 关闭计算机 , 安全关闭电源 # 1 - Single user mode # - 进入单用户维护模式 , 卸下除root以外的所有文件系统并杀死所有用户进程 # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # - 多用户模式 , 无网络连接 # 3 - Full multiuser mode # - 多用户模式 , 并以文本方式作为登陆方式 # 4 - unused # 5 - X11 # - 多用户模式 , 并以图形方式作为登陆方式 # 6 - reboot (Do NOT set initdefault to this) # - 停止linux系统 , 并按照/etc/inittab默认的登记项重新引导系统通常在/etc/inittab的开头就定义了系统默认启动到的级别 , 如:id:3:initdefault:id - 用来定义缺省的init运行的级别3 - 默认的级别为此 (Full multiuser mode)initdefault - 是关键字 , 表示默认的级别 。系统管理员可以通过修改这条语句方便地修改默认的运行级别 。
在机器引导时 , init从运行级0开始 , 一级一级往上运行到在/etc/inittab中所设置的默认运行级别 。为了完成在每一对相邻运行级别之间的过渡 , init运行在/etc/inittab中为这种过渡而说明的一些操作 。
当机器关闭时 , 以相反的顺序执行同样的处理过程 。既然之前指定的默认运行级别是3 , 那么init就要执行/etc/rc.d/rc3.d目录中的脚本 。
/etc/rc.d/rcN.d/目录中的这些启动脚本实际上都是一些链接文件 , 而不是真正的rc启动脚本 , 真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下 。而这些rc启动脚本有着类似的用法 , 它们一般能接受start、stop、restart、status等参数 。
我们可以看到/etc/rc.d/rc5.d/中的 rc启动脚本通常是K或S开头的链接文件 , 对于以以S开头的启动脚本 , 将以start参数来运行 。而如果发现存在相应的脚本也存在K打头的链接 , 而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志) , 则将首先以stop为参数停止这些已经启动了的守护进程 , 然后再重新运行 。
这样做是为了保证是当init改变运行级别时 , 所有相关的守护进程都将重启 。下面讲下几个特殊的linux.对于arch:以我机子上的arch linux为例 , inittab如下:[[email protected] etc]$ cat inittab ## /etc/inittab## Runlevels:# 0 Halt# 1(S) Single-user# 2 Not used# 3 Multi-user# 4 Not used# 5 X11# 6 Reboot## Only one of the following two lines can be uncommented!# Boot to console#id:3:initdefault:# Boot to X11id:5:initdefault:rc::sysinit:/etc/rc.sysinit //第1个启动脚本rs:S1:wait:/etc/rc.single //当以S和1运行级启动时 , rs为代号 , wait为行为描述 , 下同rm:2345:wait:/etc/rc.multi //当以2-5运行级启动时rh:06:wait:/etc/rc.shutdown //6运行级启动时su:S:wait:/sbin/sulogin -p //S运行级启动时# -8 options fixes umlauts problem on loginc1:2345:respawn:/sbin/agetty -8 38400 tty1 linuxc2:2345:respawn:/sbin/agetty -8 38400 tty2 linuxc3:2345:respawn:/sbin/agetty -8 38400 tty3 linuxc4:2345:respawn:/sbin/agetty -8 38400 tty4 linuxc5:2345:respawn:/sbin/agetty -8 38400 tty5 linuxc6:2345:respawn:/sbin/agetty -8 38400 tty6 linuxca::ctrlaltdel:/sbin/shutdown -t3 -r now# Example lines for starting a login managerx:5:respawn:/usr/bin/xdm -nodaemon#x:5:respawn:/usr/sbin/gdm -nodaemon#x:5:respawn:/usr/bin/kdm -nodaemon#x:5:respawn:/usr/bin/slim >& /dev/null# End of file由id:5:initdefault:看出默认运行级别为5 。