ThatManK Mobile Article
Shell基础-3
Shell 基础-3
- 统计当前 Linux 系统中可以登录计算机的账户有多少个
#!/bin/bash
# 方法1:
grep "bash@@H0@@quot; /etc/passwd | wc -l
# 方法2
awk -F: '/bash$/{x++}END{print x}' /etc/passwd
- 统计目录下的文件
#!/bin/bash
sum=0
cd /var/log
for i in $(ls -r *); do
if [ -f $i ]; then
let sum++
echo "文件名:$i"
fi
done
echo "总文件数量为:$sum"
- 批量添加解释器
#!/bin/bash
if ! grep -q "^#!" $1; then #带参数
sed -i '1i #!/bin/bash' $1
fi
- nginx 启动脚本
#!/bin/bash
# 本脚本编写完成后,放置在/etc/init.d/目录下, 就可以被 Linux 系统自动识别到该脚本
program=/usr/local/nginx/sbin/nginx
pid=/usr/local/nginx/logs/nginx.pid
start() {
if [ -f $pid ]; then
echo "nginx 服务已经处于开启状态"
else
$program #启动
fi
}
stop() {
if [ -! -f $pid ]; then
echo "nginx 服务已经关闭"
else
$program -s stop
echo "关闭服务 ok"
fi
}
status() {
if [ -f $pid ]; then
echo "服务正在运行..."
else
echo "服务已经关闭"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
status)
status
;;
*)
echo "你输入的语法格式错误"
;;
esac
- 磁盘分区格式化挂载
#!/bin/bash
# 对虚拟机的 vdb 磁盘进行分区格式化,使用<<将需要的分区指令导入给程序 fdisk
# n(新建分区)
# p(创建主分区)
# 1(分区编号为 1),两个空白行(两个回车,相当于将整个磁盘分一个区)
# 注意:1 后面的两个回车(空白行)是必须的!
fdisk /dev/vdb <<EOF
n
p
1
wq
EOF
# 格式化刚刚创建好的分区
mkfs.xfs /dev/vdb1
# 创建挂载点目录
if [ -e /data ]; then
exit
fi
mkdir /data
# 自动挂载刚刚创建的分区,并设置开机自动挂载该分区
echo '/dev/vdb1 /data xfs defaults 0 0' >>/etc/fstab
mount -a