1. Linux指令基础从入门到熟练作为一名Linux系统管理员我每天的工作都离不开各种基础指令。很多人觉得Linux指令复杂难记其实只要掌握核心逻辑你会发现它们比图形界面更高效。让我们从最基础的目录操作开始pwd显示当前工作目录路径ls列出目录内容加-l参数显示详细信息cd切换目录cd ~返回家目录cd -返回上次目录mkdir创建目录-p参数可创建多级目录rmdir删除空目录提示在Linux中.代表当前目录..代表上级目录这个约定贯穿整个文件系统操作。文件操作是日常使用频率最高的指令类别# 创建空文件 touch filename.txt # 查看文件内容 cat filename.txt less filename.txt # 分页查看 # 复制文件 cp source.txt destination/ # 移动/重命名文件 mv oldname.txt newname.txt # 删除文件 rm file_to_delete.txt注意rm命令删除的文件默认无法恢复建议新手先使用-i参数交互式删除。2. 文件权限深度解析Linux权限系统是其安全架构的核心。每次执行ls -l时看到的类似drwxr-xr-x的字符串就是权限标识d rwx r-x r-x │ │ │ └─ 其他用户权限 │ │ └─── 所属组权限 │ └─────── 所有者权限 └────────── 文件类型(d目录, -普通文件, l链接)权限由三部分组成r(read)读取权限4w(write)写入权限2x(execute)执行权限1数字表示法更便于权限设置chmod 755 filename # 所有者rwx组和其他r-x chmod x script.sh # 添加执行权限特殊权限位需要特别注意SUID4执行时以文件所有者身份运行SGID2目录下新建文件继承组IDSticky1只有所有者能删除/tmp下的文件chmod us /usr/bin/passwd # 设置SUID chmod gs /shared_dir # 设置SGID chmod t /tmp # 设置Sticky3. 用户与组管理实操用户权限管理是Linux系统安全的基础。以下是关键操作指令# 用户管理 useradd newuser # 创建用户 passwd newuser # 设置密码 usermod -aG sudo newuser # 添加到sudo组 userdel -r olduser # 删除用户及家目录 # 组管理 groupadd developers # 创建组 gpasswd -a user1 developers # 添加用户到组 groups user1 # 查看用户所属组/etc/passwd文件结构解析username:x:UID:GID:描述信息:家目录:登录shell/etc/shadow存储加密密码格式为用户名:加密密码:最后修改天数:最小天数:最大天数:警告天数:不活跃天数:失效日安全提示定期检查/etc/passwd中UID为0的账户root权限避免未授权提权。4. 高级权限控制ACL与SELinux当基础权限无法满足需求时需要使用高级权限控制4.1 访问控制列表(ACL)# 查看ACL getfacl /shared_dir # 设置ACL setfacl -m u:user1:rwx /shared_dir setfacl -m g:developers:r-x /project setfacl -x u:user1 /shared_dir # 删除特定ACL4.2 SELinux基础SELinux提供了更细粒度的强制访问控制# 查看SELinux状态 sestatus # 修改文件安全上下文 chcon -t httpd_sys_content_t /var/www/html/index.html # 恢复默认上下文 restorecon -Rv /var/www/html/ # 常用布尔值开关 setsebool -P httpd_can_network_connect on排错技巧当遇到Permission denied但常规权限正常时检查SELinux日志ausearch -m avc -ts recent5. 实用组合指令与脚本技巧真正的Linux高手都擅长组合使用简单指令# 查找并处理文件 find /var/log -name *.log -mtime 30 -exec rm {} \; # 统计代码行数 find src/ -name *.py | xargs wc -l # 监控日志变化 tail -f /var/log/syslog | grep error # 压缩备份 tar czvf backup-$(date %Y%m%d).tar.gz /important_data管道(|)和重定向()是Linux指令的灵魂# 将错误输出重定向到文件 command 2 error.log # 将输出追加到文件 echo new line existing_file # 管道组合多个命令 ps aux | grep nginx | awk {print $2} | xargs kill -96. 系统管理核心指令系统管理员必备的监控与管理指令# 进程管理 ps aux # 查看所有进程 top # 动态监控进程 kill -9 PID # 强制终止进程 pkill -f pattern # 按模式杀进程 # 系统监控 free -h # 内存使用情况 df -h # 磁盘空间 uptime # 系统负载 iostat 1 # IO统计 # 网络工具 ifconfig/ip a # 网络接口 netstat -tulnp # 监听端口 ss -plnt # 更现代的套接字统计 traceroute google.com # 路由跟踪7. 环境变量与Shell配置理解环境变量是高效使用Linux的关键# 查看所有环境变量 env printenv # 设置临时变量 export PATH$PATH:/new/path # 永久生效需要写入配置文件 # ~/.bashrc (用户级) # /etc/profile (系统级) # 常用环境变量 echo $HOME # 家目录 echo $USER # 当前用户 echo $SHELL # 当前shell echo $PATH # 可执行文件搜索路径Shell配置技巧# 命令别名 alias llls -alF alias grepgrep --colorauto # 历史命令优化 export HISTSIZE10000 export HISTFILESIZE20000 shopt -s histappend # 追加而不是覆盖历史文件 # 提示符定制 export PS1[\u\h \W]\$ 8. 实用工具与技巧分享8.1 文本处理三剑客# grep文本搜索 grep -rin error /var/log # 递归忽略大小写显示行号 # sed流编辑器 sed -i s/old/new/g file.txt # 替换文本 sed /pattern/d file.txt # 删除匹配行 # awk文本分析 awk {print $1} access.log | sort | uniq -c | sort -nr # 统计访问IP8.2 终端多路复用器tmuxtmux new -s session_name # 新建会话 Ctrlb d # 分离会话 tmux attach -t session_name # 重新连接 tmux ls # 列出会话 # 窗口管理 Ctrlb c # 新建窗口 Ctrlb n # 下一个窗口 Ctrlb p # 上一个窗口8.3 SSH高级用法# 密钥认证 ssh-keygen -t rsa -b 4096 ssh-copy-id userremote_host # 端口转发 ssh -L 8080:localhost:80 gateway.example.com # 本地端口转发 ssh -R 9000:localhost:3000 userremote # 远程端口转发 # 配置文件~/.ssh/config示例 Host myserver HostName server.example.com User myuser Port 2222 IdentityFile ~/.ssh/id_rsa_myserver
阅读完成 · 觉得有帮助?