Skip to content
命令用法
  • su&&sudo
bash
#### su 切换用户身份

# 切换到 root 用户,但不改变当前环境变量(PATH 等仍可能是原用户的)
su

# 切换到 root 用户,并模拟登录(推荐使用,会加载 root 用户的 .profile 等)
su -

# 切换到指定用户(如 zhangsan)
su - zhangsan

# 以其他用户身份执行一条命令(不进入交互 shell)
su -c "systemctl restart nginx" zhangsan


#### sudo 让用户临时以root身份进行操作

# 以 root 权限执行单条命令(最常用)
sudo systemctl restart nginx

# 以指定用户身份执行命令
sudo -u zhangsan whoami   # 输出 zhangsan


#### 给用户添加附加组
# 指定GID
sudo groupadd -g 3001 devops
# 创建系统组,通常用于服务或守护进程: sudo groupadd -r nginx

# 给用户附加组: devops
sudo usermod -aG devops zhangsan

# 查看用户的所属组: id zhangsan 或者groups zhangsan

# 移除用户: zhangsan 的附加组
sudo gpasswd -d zhangsan devops
  • getent
bash
# 查询Linux系统数据库条目信息
# 用法: getent database key
# 查看可用的database: getent --help
  • rsync
bash
rsync -av --exclude-from='exclude.txt' srcDir destDir
# 将 srcDir 路径中的文件同步到 destDir; 同步过程中排除exclude.txt中列出的文件或目录
  • logger
bash
# 将日志写入系统 rsyslog/syslogd服务
logger -t TESTLABLE "这是一条测试日志"

# RHEL/CentOS rsyslog/syslogd 将上面日志写入 /var/log/messages
# Ubuntu/Debian rsyslog/syslogd 将上面日志写入 /var/log/syslog

# 自定义写入文件
sudo tee /etc/rsyslog.d/99-custom.conf > /dev/null << 'EOF'
# 自定义日志规则模板
# 语法::属性, 操作, "值" 日志文件路径

# 按标签
:syslogtag, contains, "APP1" /var/log/app1/app.log
:syslogtag, contains, "APP2" /var/log/app2/app.log

# 按优先级
*.err /var/log/errors.log
*.warning /var/log/warnings.log

# 按facility
local0.* /var/log/local0.log
local1.* /var/log/local1.log
EOF
systemctl restart  rsyslog

# 测试: logger -t APP1 "app1: 这是一条测试日志"
# 测试: logger -t APP2 "app2: 这是一条测试日志"

欢迎来到 Laazua 的站点