河池市网站建设_网站建设公司_Java_seo优化
2026/1/18 21:43:04 网站建设 项目流程

🔥 码途CQ:个人主页

✨ 个人专栏:《Linux》|《经典算法题集》《C++》《QT》

✨ 追风赶月莫停留,无芜尽处是春山!


💖 欢迎关注,一起交流学习 💖
📌 关注后可第一时间获取C++/Qt/算法干货更新

🌟


🚀 第一章:欢迎回到Linux命令行世界!

在上一篇文章中,我们一起认识了Linux的基础文件操作命令,是不是已经对那个黑乎乎的终端窗口有了些许亲切感?今天,我们将继续深入,学习更多实用指令,尤其是Linux中至关重要的文件操作权限管理

🎩进阶思维:如果说基础命令是Linux的“单词”,那么今天的命令就是“语法”,而权限系统则是整个语言的“规则体系”。

一、温故知新:快速回顾

还记得这些命令吗?

ls-la# 查看详细信息cd~# 回家mkdir-p a/b/c# 创建多层目录rm-rf danger# 危险!慎用!

很好!现在让我们进入今天的主菜。


📁 第二章:高级文件操作

一、复制与移动的艺术

1.cp:不只是复制,更是备份的起点

基本用法

cpsource.txt destination.txt# 复制文件cp-r source_dir/ destination_dir/# 复制整个目录

高级技巧

# 备份时保留所有属性(权限、时间等)cp-p important_file.txt backup/# 交互式复制,覆盖前询问cp-i *.txt backup/# 只复制更新的文件cp-u source/*.log backup/# 详细模式,显示复制过程cp-v file1 file2 file3 destination/# 复制符号链接本身,而不是指向的文件cp-d symbolic_link backup/

实用场景

# 备份配置文件cp-p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup# 批量复制图片并重命名cpphoto.jpg vacation/photo_2023.jpg
2.mv:移动、重命名、还是覆盖?

mv命令有三重身份,全看第二个参数是什么:

# 1. 重命名文件mvold_name.txt new_name.txt# 2. 移动文件mvfile.txt /home/user/Documents/# 3. 移动并重命名mvfile.txt /home/user/new_name.txt# 4. 移动多个文件mvfile1.txt file2.txt file3.txt destination_folder/# 5. 交互式移动(覆盖前询问)mv-i important_file.txt maybe_existing_file.txt

💡小贴士mv实际上是“移动”而非“复制+删除”,所以速度极快,即使大文件也能瞬间完成。

二、文件比较:diff—— 找不同高手

# 比较两个文件difffile_v1.txt file_v2.txt# 并排显示差异diff-y file1.txt file2.txt# 统一格式,更易读diff-u old_version.c new_version.c# 比较两个目录diff-r directory1/ directory2/

实际应用

# 查看配置文件修改了哪些地方diff-u /etc/nginx/nginx.conf.orig /etc/nginx/nginx.conf# 生成补丁文件diff-u old_code.c new_code.c>fix_bug.patch

三、链接文件:ln—— 文件的“快捷方式”

Linux有两种链接:

  • 硬链接:同一个文件的多个名字(像分身)
  • 软链接:真正的快捷方式(像指针)
# 创建硬链接lnoriginal.txt hardlink.txt# 创建软链接(符号链接)ln-s /path/to/original symlink_name# 查看链接指向ls-l symlink_name readlink symlink_name

对比理解

原始文件:我是一份重要文档 硬链接:我也是那份文档(同一个实体) 软链接:我指向那份文档(只是一个路径)

🔐 第三章:Linux权限系统深度解析

一、理解权限:Linux的“门禁系统”

当你执行ls -l时,看到的那些神秘字母是什么意思?

-rwxr-xr-- 1 user group 4096 Jan 1 12:00 myfile ↑ ↑↑↑↑↑↑↑↑ │ └── 权限部分 └── 文件类型
1. 文件类型标识符
  • -:普通文件(文本、图片、二进制等)
  • d:目录
  • l:符号链接
  • b:块设备(硬盘、U盘等)
  • c:字符设备(终端、打印机等)
  • s:套接字文件
  • p:管道文件
2. 权限详解

权限分为三组,每组三个字符:

rwx r-x r-- ↑↑↑ ↑↑↑ ↑↑↑ ||| ||| ||└── 其他人:无执行权限 ||| ||| |└── 其他人:无写权限 ||| ||| └── 其他人:有读权限 ||| ||└── 所属组:无执行权限 ||| |└── 所属组:有写权限 ||| └── 所属组:有读权限 ||└── 所有者:无执行权限 |└── 所有者:有写权限 └── 所有者:有读权限

二、权限的数字表示法

每个权限都有对应的数字:

  • r (读) = 4
  • w (写) = 2
  • x (执行) = 1
    • (无权限) = 0

组合计算:

rwx = 4+2+1 = 7 r-x = 4+0+1 = 5 r-- = 4+0+0 = 4 rw-r--r-- = 644 rwxr-xr-x = 755

三、修改权限:chmod命令大全

1. 数字模式(最常用)
chmod755script.sh# rwxr-xr-xchmod644config.txt# rw-r--r--chmod600private.key# rw-------chmod777test_dir# 完全开放(慎用!)
2. 符号模式(更直观)
# 添加权限chmodu+x myscript.sh# 给所有者添加执行权限chmodg+w shared_file# 给组添加写权限chmodo+r public.txt# 给其他人添加读权限chmoda+x everyone.sh# 给所有人添加执行权限# 移除权限chmodu-w sensitive.txt# 移除所有者的写权限chmodo-rx private_dir/# 移除其他人的读和执行权限# 设置精确权限chmodu=rwx,g=rx,o=file.txtchmoda=rwx open_for_all.sh
3. 递归修改目录权限
chmod-R755web_root/# 递归修改整个目录树chmod-R u+w project/# 给所有者递归添加写权限

四、修改所有者和组

1.chown:改变文件所有者
# 基本用法sudochownnewowner file.txtsudochownnewowner:newgroup file.txt# 递归修改sudochown-R www-data:www-data /var/www/html/# 只改组sudochown:developers project/
2.chgrp:改变文件所属组
sudochgrpdevelopers source_code/sudochgrp-R www-data web_content/

五、特殊权限位

1. SUID(Set User ID)
  • 作用:普通用户以文件所有者的权限执行
  • 设置:chmod u+s filechmod 4755 file
  • 典型应用:/usr/bin/passwd
2. SGID(Set Group ID)
  • 作用:在目录中新建的文件继承目录的组
  • 设置:chmod g+s directorychmod 2755 directory
  • 典型应用:团队协作目录
3. Sticky Bit(粘滞位)
  • 作用:只有文件所有者、目录所有者或root能删除
  • 设置:chmod +t directorychmod 1777 directory
  • 典型应用:/tmp目录
# 设置/tmp的典型权限sudochmod1777/tmp# 查看特殊权限ls-ld /tmp# 显示:drwxrwxrwt ... /tmp# 注意最后的t,表示粘滞位

六、默认权限与umask

umask决定新建文件的默认权限:

umask# 查看当前umaskumask022# 设置umask# 计算默认权限# 文件:666 - umask# 目录:777 - umask# 示例:umask=022# 文件:666-022=644 (rw-r--r--)# 目录:777-022=755 (rwxr-xr-x)

📦 第四章:压缩与打包

一、tar:Linux的“瑞士军刀”

tar最初是Tape ARchive(磁带归档)的缩写,现在是最常用的打包工具。

1. 打包与解包
# 打包(不压缩)tar-cvf archive.tar file1 file2 dir1/# 解包tar-xvf archive.tar# 解包到指定目录tar-xvf archive.tar -C /target/path/
2. 压缩与解压
# 使用gzip压缩(.tar.gz 或 .tgz)tar-czvf archive.tar.gz files/tar-xzvf archive.tar.gz# 使用bzip2压缩(.tar.bz2)tar-cjvf archive.tar.bz2 files/tar-xjvf archive.tar.bz2# 使用xz压缩(.tar.xz,压缩率最高)tar-cJvf archive.tar.xz files/tar-xJvf archive.tar.xz
3. 查看内容而不解压
tar-tzvf archive.tar.gz# 查看gzip压缩包内容tar-tjvf archive.tar.bz2# 查看bzip2压缩包内容tar-tJvf archive.tar.xz# 查看xz压缩包内容
4. 高级技巧
# 只解压特定文件tar-xzvf archive.tar.gz path/to/specific/file# 追加文件到压缩包tar-rvf archive.tar new_file.txt# 排除特定文件/目录tar-czvf backup.tar.gz --exclude="*.log"--exclude="temp/"/home/user/# 基于时间备份(只备份24小时内修改的文件)tar-czvf daily_backup.tar.gz --newer-mtime="1 day ago"/data/

二、zipunzip:跨平台选择

# 压缩zip-r archive.zip folder/zip-r -9 maximum_compression.zip large_files/# 最大压缩率zip-e encrypted.zip sensitive_data/# 加密压缩# 解压unziparchive.zipunziparchive.zip -d target_directory/# 解压到指定目录unzip-l archive.zip# 查看内容而不解压unzip-t archive.zip# 测试压缩包完整性

三、其他压缩工具

# gzip(通常用于单个文件)gziplarge_file.log gunzip large_file.log.gz# bzip2(压缩率比gzip高)bzip2big_file.txt bunzip2 big_file.txt.bz2# xz(压缩率最高,但较慢)xz huge_file.data unxz huge_file.data.xz

🖥️ 第五章:系统监控与进程管理

一、tophtop:实时系统监控

1.top:经典的系统监控工具
top

top界面中:

  • 按1:显示每个CPU核心的使用情况
  • 按M:按内存使用排序
  • 按P:按CPU使用排序
  • 按k:杀死进程(输入PID)
  • 按q:退出
2.htoptop的增强版(需要安装)
sudoaptinstallhtop# Ubuntu/Debiansudoyuminstallhtop# CentOS/RHELhtop

htop的特点:

  • 彩色界面,更直观
  • 鼠标支持
  • 树状视图显示进程关系
  • 更方便的进程操作

二、ps:进程快照

# 查看所有进程psaux# 查看特定用户的进程ps-u username# 查看进程树psauxf# 查看特定进程ps-p PIDps-C process_name# 自定义输出格式ps-eo pid,ppid,cmd,%mem,%cpu --sort=-%mem|head-10

三、进程控制

1. 发送信号
killPID# 发送TERM信号(正常终止)kill-9 PID# 发送KILL信号(强制终止)kill-15 PID# 发送TERM信号(同kill PID)kill-STOP PID# 暂停进程kill-CONT PID# 继续被暂停的进程# 通过名称杀进程pkillprocess_namekillallprocess_name
2. 后台与前台
# 运行命令并放到后台long_running_command&# 查看后台作业jobs# 将后台作业调到前台fg%1# 暂停当前作业(按Ctrl+Z)# 然后可以:bg%1# 在后台继续运行fg%1# 回到前台运行

四、系统信息查询

# 查看系统信息uname-a# 所有系统信息lsb_release -a# 发行版信息(需要安装lsb-release)cat/etc/os-release# 系统版本信息# 查看CPU信息lscpucat/proc/cpuinfo# 查看内存信息free-hcat/proc/meminfo# 查看磁盘信息df-h# 磁盘使用情况du-sh directory/# 目录大小du-h --max-depth=1/home# 查看/home下各目录大小# 查看网络信息ifconfig# 网络接口信息(需要安装net-tools)ipaddr# 更现代的替代品netstat-tuln# 监听端口ss -tuln# netstat的替代品

🎯 第六章:综合实战与最佳实践

一、实用脚本示例

1. 备份脚本
#!/bin/bash# backup.sh - 简单备份脚本BACKUP_DIR="/backup/$(date+%Y%m%d)"SOURCE_DIR="/home/user/important_data"mkdir-p"$BACKUP_DIR"tar-czf"$BACKUP_DIR/backup_$(date+%H%M%S).tar.gz""$SOURCE_DIR"echo"备份完成:$BACKUP_DIR"
2. 日志清理脚本
#!/bin/bash# clean_logs.sh - 清理旧日志LOG_DIR="/var/log/myapp"DAYS_TO_KEEP=30find"$LOG_DIR"-name"*.log"-mtime +$DAYS_TO_KEEP-deletefind"$LOG_DIR"-name"*.log.*.gz"-mtime +$DAYS_TO_KEEP-deleteecho"已清理$LOG_DIR$DAYS_TO_KEEP天前的日志"

二、安全最佳实践

  1. 最小权限原则:只给必要的权限
  2. 定期备份:重要数据永远要有备份
  3. 使用sudo:避免直接使用root账户
  4. 检查脚本:运行未知脚本前先查看内容
  5. 日志监控:定期检查系统日志

三、故障排查流程

  1. 查看日志tail -f /var/log/syslog或相应应用日志
  2. 检查进程ps aux | grep process_name
  3. 检查端口netstat -tuln | grep port_number
  4. 检查权限ls -la /path/to/file
  5. 检查磁盘df -hdu -sh

🌟 总结

恭喜!你已经掌握了Linux系统管理的核心技能。让我们总结一下:

高级文件操作cp,mv,diff,ln
权限管理chmod,chown,chgrp, 特殊权限位
压缩打包tar,zip, 各种压缩格式
系统监控top,htop,ps, 进程控制
信息查询uname,df,du,free

🎯Linux哲学:一个工具只做好一件事,通过管道组合完成复杂任务。


如果觉得文章有帮助,欢迎:

  • 👍 点赞支持
  • 💾 收藏备用
  • ➕ 关注作者获取更多Linux教程
  • 💬 留言分享你的Linux学习经验

学习Linux是一场马拉松,不是短跑。每天进步一点点,你将成为真正的Linux高手!

推荐资源

  • 书籍:《鸟哥的Linux私房菜》
  • 网站:Linux中国、酷壳
  • 练习:Linux Journey、OverTheWire

祝你在Linux的世界里探索愉快!🐧🚀


我们下篇见!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询