本文,我们将要学习 Linux 高级 Shell 脚本以及用户管理(重点)。下面,我们将开始探索几个使用的 Shell 脚本,然后介绍 Linux 中的用户管理。
Shell 脚本
1 创建动态目录
首先,我们创建一个名为 create_directories.sh
的脚本文件,这个将本将用于生成指定数量且具有动态名称的目录。以下是脚本的内容:
#!/bin/bash
# 检查是否由 3 个参数
if [ "$#" -ne 3 ]
then
echo "Please use the following sequence: ./createDirectories.sh <directory-name> <start-number> <end-number>"
exit 1
fi
# 保存 3 个参数的变量
# 目录成成
directory_name=$1
# 起始编号
start_number=$2
# 结束编号
end_number=$3
# 循环创建目录
for ((i=start_number; i<=end_number; i )); do
mkdir "$directory_name$i"
done
# 输出目录创建成功
echo "The directories have been successfully created"
解释:上面脚本采用三个参数:目录名称、起始编号和结束编号。然后,脚本使用指定的目录名称以及起始和结束编号,循环创建目录。例如,如果目录名称为 directory
,起始编号和结束编号分别为 1 和 3,则将创建目录名称为directory1
、directory2
以及 directory3
3 个目录。
以下是操作和执行的结果:
代码语言:javascript复制[root@localhost test]# vim create_directories.sh
[root@localhost test]# chmod 700 create_directories.sh
[root@localhost test]# ./create_directories.sh dicrectory 1 3
The directories have been successfully created
[root@localhost test]# ls
case1.sh case3.sh create_directories.sh dicrectory2 fruits.txt test.txt
case2.sh color.txt dicrectory1 dicrectory3 readme.md
2 自动备份脚本
自动备份,可用于备份我们需要备份的资料,还是非常实用的。创建一个名称为auto_backup.sh
的脚本文件,以下是脚本的内容:
#!/bin/bash
# 设置将要备份的目录路径
backup_dir="/root/test"
# 设置带时间戳的文件名称
backup_filename="backup_$(date "%Y%m%d_%H%M%S").tar.gz"
# 创建压缩文件
tar -czf $backup_dir/$backup_filename -C /root/test/backup .
# 如果备份文件创建成功
if [ -f "$backup_dir/$backup_filename" ]; then
echo "备份文件创建成功"
else
echo "备份失败"
exit 1
fi
解释:上面的脚本通过将指定目录压缩成压缩包(.tar.gz)来创建备份。备份文件名称包含一个时间戳,以确保唯一性。脚本使用带有 c
(创建)、z
(使用 gzip 压缩)和 f
(指定输出文件)选项的 tar
命令。然后它会检查备份文件是否创建成功,并提供相应的信息。
以下是运行的过程及结果:
代码语言:javascript复制[root@localhost test]# ./auto_backup.sh
备份文件创建成功
[root@localhost test]# ls
auto_backup.sh case1.sh color.txt dicrectory2 readme.md
backup case2.sh create_directories.sh dicrectory3 test.txt
backup_20231126_094004.tar.gz case3.sh dicrectory1 fruits.txt
3 使用 Cron 自动执行备份脚本
Cron 是 Linux 中基于时间的作业调度程序。可以用它定期自动执行备份脚本。下面是具体操作方法:
- 打开中单或命令提示符。
- 输入命令:
crontab -e
编辑 crontab 文件。 - 添加一行新内容来安排备份脚本。例如,要在每天凌晨 2:00 运行备份,可以添加如下行:
0 2 * * * /bin/sh /root/test/auto_backup.sh
将 /root/test/auto_backup.sh
替换为你自己备份脚本的实际路径。
- 保存 crontab 文件并退出文本剪辑器。
现在,备份脚本将根据指定的计划自动运行。
提示:Cronitor[1] 提供快速简便的 cron 计划表达式编辑器。
用户管理
1 基本命令
在 Linux 系统中,用户管理对于控制访问和权限至关重要。以下是一些基本命令:
- 要创建用户,需要使用
useradd
命令。例如:
sudo useradd username
- 要删除用户,请使用
userdel
命令。例如:
sudo userdel username
- 要修改用户属性,例如密码或主目录,请使用
usermod
命令。例如:
sudo usermod -d /new/home/directory username
- 要显示用户信息,请使用
id
或finger
命令。例如:
id username
finger username
切记使用 sudo
管理权限执行这些命令,以确保正确的用户管理。
2 创建和显示用户名
要创建用户并显示它们的用户名,可以按照下列步骤操作:
- 打开终端或命令提示符。
- 运行以下命令创建第一个用户:
- 运行命令:
sudo useradd user1
,出现提示时提供所需的信息。 - 重复上一步创建第二个用户:
sudo useradd user2
- 要显示用户名,可以使用命令:
awk -F '{print $1}' /etc/passwd
,此命令将从etc/passwd
文件中检索用户名。
以下是执行过程:
代码语言:javascript复制[root@localhost test]# sudo useradd user1
[root@localhost test]# sudo useradd user2
[root@localhost test]# awk -F: '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
libstoragemgmt
abrt
rpc
apache
sshd
postfix
chrony
ntp
tcpdump
huang
nginx
user1
user2
通过熟悉以上用户管理命令,我们就可以高效处理 Linux 系统上的用户帐户。
参考资料
[1]
Cronitor: https://crontab.guru/