Shell基础-8

Tutorial: Shell基础 Category: Shell Published: 2026-04-07 13:58:25 Views: 21 Likes: 0 Comments: 0

Shell 基础-8

  1. 修改 Linux 系统的最大打开文件数量
#!/bin/bash

# 往/etc/security/limits.conf 文件的末尾追加两行配置参数
# 修改最大打开文件数量为 65536

cat >>/etc/security/limits.conf <<EOF
* soft nofile 65536
* hard nofile 65536
EOF

  1. 自动修改计划任务配置文件
#!/bin/bash

read -p "请输入分钟信息(00-59):" min
read -p "请输入小时信息(00-24):" hour
read -p "请输入日期信息(01-31):" date
read -p "请输入月份信息(01-12):" month
read -p "请输入星期信息(00-06):" weak
read -p "请输入计划任务需要执行的命令或脚本:" program

echo "$min $hour $date $month $weak $program" >>/etc/crontab

  1. 统计次数
#!/bin/bash
# 每读取一行文件内容,即从第 1 列循环到最后 1 列,依次判断是否包含 root 关键词,如果包含则 x++
awk -F: '{i=1;while(i<=NF){if($i~/root/){x++};i++}} END{print "root 出现次数为"x}' /etc/passwd

awk -F: '{
            i=1;
            while(i<=NF) {
                if($i~/root/) {
                    x++
                };
                i++
            }
        }
        END{
           print "root 出现次数为" x
        }' /etc/passwd

  1. 进程统计
#!/bin/bash
running=0
sleeping=0
stoped=0
zombie=0

# 在 proc 目录下所有以数字开始的都是当前计算机正在运行的进程的进程 PID
# 每个 PID 编号的目录下记录有该进程相关的信息

for pid in /proc/[1-9]*; do
    procs=$((procs + 1))
    stat=$(awk '{print $3}' $pid/stat)
    # 每个 pid 目录下都有一个 stat 文件,该文件的第 3 列是该进程的状态信息
    case $stat in
    R)
        running=$((running + 1))
        ;;
    T)
        stoped=$((stoped + 1))
        ;;
    S)
        sleeping=$((sleeping + 1))
        ;;
    Z)
        zombie=$((zombie + 1))
        ;;
    esac
done

echo "进程统计信息如下"
echo "总进程数量为:$procs"
echo "Running 进程数为:$running"
echo "Stoped 进程数为:$stoped"
echo "Sleeping 进程数为:$sleeping"
echo "Zombie 进程数为:$zombie"

  1. 判断用户输入
#!/bin/bash

read -p "请输入一个字符:" KEY

case "$KEY" in
[a-z] | [A-Z])
    echo "字母"
    ;;
[0-9])
    echo "数字"
    ;;
*)
    echo "空格、功能键或其他控制字符"
    ;;
esac

# 一个字符...