从“只会点鼠标”到“爱上敲命令”:Linux基础入门 重定向
在Linux的学习之路上,掌握基础命令与服务器初始化配置是迈向高阶运维的必经之路。今天我们将深入探讨Linux中的重定向与任务管理、用户权限体系,以及系统安全与打包压缩等核心知识。无论你是刚入门的新手,还是希望巩固基础的老手,这篇实战指南都将为你提供清晰的脉络。
---------------------------------------------------------------------------------------------------------------------------------
一、 数据流与任务控制
1. 重定向与管道
>:覆盖写入文件。- 示例:
echo "Hello" > file.txt(若文件存在则清空重写,不存在则新建)。
- 示例:
>>:追加写入文件。- 示例:
echo "World" >> file.txt(在文件末尾另起一行写入 World,保留原内容)。
- 示例:
|:管道符,将前一命令的输出作为后一命令的输入。grep:配合管道符筛选文本。- 示例:
cat access.log | grep "error"(从日志中精准揪出包含 "error" 的行)。
- 示例:
2. 任务管理
sleep 5:终端休眠 5 秒。命令 &:将命令放入后台执行。- 示例:
sleep 100 &(终端立即返回提示符,不阻塞后续操作)。
- 示例:
Ctrl + C:终止前台任务。kill PID:终止后台任务。- 示例:先通过
ps -ef | grep sleep找到进程号(如 1234),再执行kill 1234将其终止。
- 示例:先通过
二、 用户与权限管理
1. 用户与组
- 创建组:
groupadd -r group1(系统组)或groupadd -g 10086 group1。 - 删除组:
groupdel group1。 - 创建用户:
useradd -m -u 1001 -g group1 -s /bin/bash username。- 示例:
useradd -m -u 1001 -g group1 -s /bin/bash zs(创建用户 zs 并自动建家目录)。
- 示例:
- 删除用户:
userdel -r username(连带家目录删除)。- 示例:
userdel -r zs(彻底清理 zs 用户及其文件)。
- 示例:
- 加入组:
groupmems -g 组名 -a 用户名。- 示例:
groupmems -g group1 -a zs。
- 示例:
2. 权限与属性
- 查看权限:
ll(ll -d仅看目录本身)。- 示例:
ll -d /var/log(查看 /var/log 目录自身的权限,而不列出其内部文件)。
- 示例:
- 改权限:
chmod 755 文件名。- 示例:
chmod 755 test.sh(赋予所有者读写执行权限,其他人读和执行权限)。
- 示例:
- 改归属:
chown 所有者:组 文件名。- 示例:
chown zs:group1 test.sh。
- 示例:
- 隐藏属性:
lsattr查看,chattr +i 文件名锁定不可修改。- 示例:
chattr +i /etc/resolv.conf(防止文件被意外覆盖或删除,需chattr -i解锁)。
- 示例:
三、 安全机制与打包
1. 访问控制
- SELinux(CentOS/Rocky):
- 查看:
getenforce - 临时关:
setenforce 0 - 永久关:改
/etc/selinux/config为SELINUX=disabled并重启。
- 查看:
- AppArmor(Ubuntu/Debian):类似 SELinux 的安全模块。
- 示例:
sudo aa-status(查看当前 AppArmor 的配置文件和进程状态)。
- 示例:
2. tar 打包压缩
- 打包压缩:
tar -caf 压缩包名 源文件(-a自动识别格式)。- 示例:
tar -caf backup.tar.gz /var/www(自动以 gzip 格式压缩)。
- 示例:
- 解压:
tar -xf 压缩包名(自动识别格式)。- 示例:
tar -xf backup.tar.gz(无需手动指定-z或-j参数)。
- 示例:
