资讯动态

Linux 基础指令详解:从目录操作到权限管理,一篇带你真正入门

发布时间:2026/9/30 15:57:30 来源:尧图企业网站定制
Linux 学习的第一道门槛往往不是命令太多而是不知道每条命令解决什么问题。本文不按“命令清单”生硬罗列而是模拟一次真实的服务器操作过程登录系统、定位目录、创建项目、查看日志、搜索文件、打包备份和配置权限。一、Linux、内核与 Shell我们究竟在和谁打交道严格来说Linux 指的是操作系统的内核Kernel。内核负责管理硬件资源例如CPU 调度内存管理文件系统网络通信进程管理设备驱动。但普通用户不会直接操作内核而是通过 Shell 与内核沟通。用户输入命令 ↓ Shell 解析命令 ↓ Linux 内核执行请求 ↓ Shell 显示执行结果Shell 可以理解为 Linux 的“命令行解释器”。例如输入ls -lShell 会解析这条命令找到ls程序并执行最后把结果输出到终端。常见 Shell 有bash zsh sh fish在服务器环境中bash依然非常常见。二、认识终端提示符登录 Linux 后通常能看到类似提示符[rootserver ~]#或[zhangsanserver ~]$它包含几个关键信息用户名 主机名 当前目录例如[zhangsanserver ~/project]$表示当前用户zhangsan当前主机server当前目录~/project当前是普通用户需要重点记住# 表示超级用户 root $ 表示普通用户root权限极高几乎可以修改或删除系统中的任何内容因此日常操作应尽量使用普通用户。三、目录结构与路径Linux 文件都放在哪里Linux 的文件系统是一棵目录树最顶层是根目录/。/ ├── bin ├── boot ├── dev ├── etc ├── home ├── root ├── tmp ├── usr └── var常见目录含义如下目录作用/根目录整棵目录树的起点/home普通用户的家目录/rootroot 用户的家目录/etc系统配置文件/bin常用可执行程序/usr用户程序、库和共享资源/var经常变化的数据例如日志/tmp临时文件目录/dev设备文件目录/proc内核和进程信息的虚拟文件系统例如普通用户zhangsan的家目录通常是/home/zhangsan而 root 用户的家目录是/root注意/root 不是根目录 /前者是 root 用户的家目录后者才是整个 Linux 文件系统的起点。四、绝对路径与相对路径1. 绝对路径绝对路径从根目录/开始书写不依赖当前所在位置。cd /home/zhangsan/project无论当前在哪个目录这条命令都会进入/home/zhangsan/project绝对路径常用于脚本配置文件定时任务服务启动参数。2. 相对路径相对路径是相对于当前目录书写的。假设当前目录为/home/zhangsan执行cd project实际上等价于cd /home/zhangsan/project几个常见特殊目录符号含义.当前目录..上一级目录~当前用户家目录-上一次所在目录示例cd .. cd ~ cd -其中cd -非常实用可以在当前目录与上一次目录之间快速切换。五、目录浏览ls、pwd 与 cd1. pwd查看当前所在目录pwd示例$ pwd /home/zhangsan/projectpwd的全称是Print Working Directory即“打印当前工作目录”。2. ls查看目录内容基本用法ls查看当前目录中的文件和子目录。常用参数命令作用ls -a显示隐藏文件ls -l以详细列表显示ls -h文件大小使用易读单位ls -t按修改时间排序ls -S按文件大小排序ls -R递归显示子目录内容ls -d 目录名显示目录本身而非目录内部内容ls -F用符号标识文件类型推荐初学者经常使用ls -lah例如$ ls -lah total 20K drwxr-xr-x 3 zhangsan zhangsan 4.0K Sep 29 10:00 . drwxr-xr-x 10 zhangsan zhangsan 4.0K Sep 29 09:00 .. -rw-r--r-- 1 zhangsan zhangsan 120 Sep 29 10:00 main.c drwxr-xr-x 2 zhangsan zhangsan 4.0K Sep 29 10:00 src其中.表示当前目录..表示上一级目录-开头表示普通文件d开头表示目录l开头表示软链接。3. cd切换目录基本语法cd 目录名示例cd /home/zhangsan/project cd ../ cd ~ cd -常用场景# 进入家目录 cd ~ # 返回上一级目录 cd .. # 回到上一次所在目录 cd - # 进入根目录 cd /六、创建和删除文件、目录1. touch创建普通文件touch 文件名示例touch main.c touch README.md touch log.txt如果文件不存在touch会创建空文件。如果文件已存在touch默认会更新它的时间戳。touch main.c常见参数参数含义-a仅更新访问时间-m仅更新修改时间-c文件不存在时不创建查看文件详细时间信息stat main.c2. mkdir创建目录mkdir 目录名示例mkdir project mkdir src mkdir include如果要一次创建多级目录使用-pmkdir -p project/src/include它会自动创建不存在的父目录。目录结构如下project └── src └── include3. rmdir删除空目录rmdir 目录名例如rmdir empty_dir注意rmdir只能删除空目录。如果目录中仍有文件或子目录删除会失败。递归删除空的父目录rmdir -p a/b/c如果c被删除后b和a也变为空目录它们也会被一并删除。4. rm删除文件或目录删除普通文件rm file.txt删除目录及其内部所有内容rm -r dir常见参数参数含义-r递归删除目录及其内容-f强制删除不提示确认-i删除前逐个询问-v显示删除过程建议初学阶段优先使用rm -ri 目录名它会在递归删除前逐步询问能有效避免误删。高危命令rm -rf 目录名这条命令会强制递归删除指定目录及全部内容。务必确认路径无误后再执行尤其不要对系统目录、家目录或变量展开结果盲目使用。七、复制与移动cp 和 mv1. cp复制文件或目录复制普通文件cp main.c main_backup.c复制多个文件到指定目录cp main.c README.md backup/复制整个目录cp -r project project_backup常见参数参数含义-r递归复制目录-i覆盖前询问-f强制覆盖-v显示复制过程更适合保留属性的常见写法cp -a project project_backup-a会尽量保留文件权限、时间戳、软链接等属性。2. mv移动文件或重命名重命名文件mv old_name.txt new_name.txt移动文件到目录mv main.c src/移动目录mv project /home/zhangsan/backup/如果目标位置存在同名文件mv可能覆盖原文件。因此可以使用mv -i old.txt new.txt覆盖前会提示确认。八、查看文件内容cat、more、less、head 与 tail1. cat适合查看较小文件cat file.txt常见参数参数含义-n给所有行编号-b仅给非空行编号-s压缩连续空行例如cat -n main.c适合快速查看配置文件、小型代码文件和文本内容。但不要用cat查看超大日志文件否则终端会被大量内容刷屏。2. more分页查看文件more file.txtmore会按页显示内容。常用操作Enter向下移动一行 Space向下翻一页 q退出3. less更推荐的大文件查看工具less file.txt相比moreless更灵活可以向前、向后翻页支持搜索不会一次性把整个文件加载到内存中更适合查看大日志文件。常用操作按键作用q退出/关键字向下搜索?关键字向上搜索n重复上一次搜索N反向重复搜索G跳到文件末尾g跳到文件开头-N启动时显示行号示例less -N /var/log/messages4. head查看文件开头默认显示前 10 行head file.txt显示前 20 行head -n 20 file.txt5. tail查看文件结尾默认显示最后 10 行tail file.txt查看最后 50 行tail -n 50 file.txt实时追踪日志tail -f /var/log/messagestail -f会持续显示新增内容排查程序日志时非常常用。停止查看可以按Ctrl C九、文本搜索与文件查找grep、find、which、whereis1. grep在文件内容中搜索关键字语法grep [选项] 关键字 文件名示例grep error app.log常用参数参数含义-i忽略大小写-n显示行号-v显示不匹配的行-r递归搜索目录-w匹配完整单词常见组合grep -in error app.log表示忽略大小写搜索error并显示所在行号。递归搜索当前目录下所有.c文件grep -rn malloc --include*.c .2. find按条件查找文件基本语法find 路径 条件按文件名查找find ~ -name main.c查找当前目录下所有.log文件find . -name *.log查找 7 天内修改过的文件find . -mtime -7查找大于 100 MB 的文件find /var -size 100Mfind功能很强但搜索大目录时可能较慢因为它需要遍历目录树并访问文件系统。3. which查找命令实际执行的位置which ls可能输出/usr/bin/ls它常用于确认某个命令来自哪里。例如系统中可能同时有多个pythonwhich python which python34. whereis查找命令、源文件和帮助文档whereis ls可能得到ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz相比whichwhereis往往能返回更多相关位置。十、重定向与管道Linux 命令组合的核心1. 输出重定向将命令输出写入文件ls -l files.txt会覆盖原内容。如果希望追加内容ls -l files.txt不会覆盖原内容而是写到文件末尾。例如echo start app.log echo success app.log2. 输入重定向命令 文件例如wc -l file.txt统计文件行数。3. 管道 |管道会将前一个命令的输出作为后一个命令的输入。命令1 | 命令2例如查看包含error的日志行cat app.log | grep error更推荐的简洁写法是grep error app.log再例如查看文件第 180 到 200 行head -n 200 file.txt | tail -n 21思路是先取前 200 行再从这 200 行中取最后 21 行得到第 180 到第 200 行。十一、压缩与归档zip、unzip 和 tar1. zip 与 unzip压缩文件zip archive.zip file1.txt file2.txt递归压缩目录zip -r project.zip project/解压文件unzip project.zip解压到指定目录unzip project.zip -d /tmp/project2. tarLinux 中非常重要的归档工具tar的核心概念是打包不一定压缩 压缩通常要结合 gzip 或 bzip2常见扩展名文件名含义.tar仅打包.tar.gz或.tgztar 打包后使用 gzip 压缩.tar.bz2tar 打包后使用 bzip2 压缩.tar.xztar 打包后使用 xz 压缩常见参数参数含义-c创建归档文件-x解压归档文件-t查看归档内容-v显示详细过程-f指定归档文件名-z使用 gzip-j使用 bzip2-C解压到指定目录创建.tar.gz压缩包tar -zcvf project.tar.gz project/查看压缩包内容tar -ztvf project.tar.gz解压tar -zxvf project.tar.gz解压到指定目录tar -zxvf project.tar.gz -C /tmp/注意-f后面必须紧跟压缩包文件名。例如tar -zcvf project.tar.gz project/这里的project.tar.gz就是-f指定的归档文件名。十二、时间、系统信息与进程查看1. date查看和格式化时间查看当前时间date自定义格式date %Y-%m-%d %H:%M:%S输出示例2026-09-29 10:30:00常见格式符格式符含义%Y四位年份%m月份%d日期%H小时%M分钟%S秒%F年-月-日获取 Unix 时间戳date %s把时间戳转为可读时间date -d 10000000002. cal查看日历查看当前月份cal查看全年日历cal 2026查看当前月、前一个月和后一个月cal -33. uname查看系统和内核信息查看内核版本uname -r查看完整系统信息uname -a4. top实时查看系统资源占用top可以查看CPU 使用率内存使用情况运行中的进程进程 PID系统负载。设置刷新间隔和刷新次数top -d 1 -n 5表示每 1 秒刷新一次共刷新 5 次。退出topq十三、Linux 权限理解 rwx、chmod 和 sudo1. Linux 的三类用户Linux 中针对某个文件或目录访问者分为符号含义u文件拥有者 Userg文件所属组 Groupo其他用户 Othersa所有用户 All例如-rw-r--r-- 1 zhangsan dev 120 Sep 29 10:00 main.c权限部分为rw-r--r--可以拆分为rw- r-- r-- u g o含义是文件拥有者可读、可写同组用户只读其他用户只读。2. r、w、x 对文件和目录的含义不同权限对普通文件对目录r可以读取文件内容可以查看目录中的文件名w可以修改文件内容可以在目录内创建、删除、重命名文件x可以执行文件可以进入目录、访问目录内的已知文件目录权限是初学者最容易混淆的部分。例如没有目录的x权限就无法cd进入该目录只有x没有r可以进入目录但不能用ls列出目录内容目录的w权限决定能否在该目录中创建或删除文件。因此删除一个文件时真正关键的往往不是文件自身的写权限而是所在目录是否具有写权限和执行权限。3. chmod修改权限符号方式chmod ux script.sh表示给文件拥有者增加执行权限。常见示例chmod uw file.txt chmod g-r file.txt chmod o-x script.sh chmod ar file.txt其中增加权限-移除权限直接设置权限。4. 八进制方式设置权限权限对应数字r 4 w 2 x 1常见组合权限数值rwx7rw-6r-x5r--4---0例如chmod 644 file.txt等价于拥有者rw- 同组用户r-- 其他用户r--再例如chmod 755 script.sh等价于拥有者rwx 同组用户r-x 其他用户r-x常见权限建议场景常见权限普通文本文件644私密配置文件600可执行脚本755普通目录755团队可协作目录775不要为了“省事”随意设置chmod 777 文件或目录这会让所有用户都拥有读、写、执行权限存在明显安全风险。5. chown 与 chgrp修改文件拥有者chown zhangsan file.txt修改文件所属组chgrp dev file.txt同时修改拥有者和所属组chown zhangsan:dev file.txt递归修改整个目录chown -R zhangsan:dev project/6. umask默认权限掩码新建文件时系统会根据默认权限和umask计算实际权限。通常普通文件基础权限666 目录基础权限777实际权限可理解为默认权限 ~umask例如umask输出0022那么通常会得到普通文件644 目录755查看当前掩码umask设置新的掩码umask 022十四、sudo 与粘滞位1. sudo临时以管理员权限执行命令普通用户不应长期使用 root 身份操作。需要管理员权限时推荐使用sudo 命令例如sudo apt update sudo systemctl restart nginx修改 sudo 配置时不建议直接编辑/etc/sudoers。更安全的方式是sudo visudo它会检查语法避免因为配置错误导致 sudo 失效。2. 粘滞位保护公共目录中的文件公共目录可能允许多个用户写入例如/tmp。如果一个目录对所有人都可写理论上任何用户都可能删除其他用户的文件。Linux 使用“粘滞位”解决这个问题。设置粘滞位chmod t 目录名设置后目录中的文件通常只能由以下用户删除文件拥有者目录拥有者root 用户。例如drwxrwxrwt 10 root root 4096 Sep 29 10:00 /tmp最后的t就表示该目录设置了粘滞位。十五、帮助、补全与常用快捷键1. man最可靠的命令帮助查看命令说明man ls搜索关键字相关帮助man -k copy不同章节含义不同章节内容1普通命令2系统调用3库函数5文件格式和配置文件7协议、约定等8系统管理命令例如 C 语言中printf既可能是命令也可能是库函数man 1 printf man 3 printf2. 必须掌握的快捷键快捷键作用Tab命令或文件名补全Ctrl C终止当前程序Ctrl D输入结束或退出 ShellCtrl L清空终端屏幕Ctrl A跳到命令行开头Ctrl E跳到命令行结尾↑/↓浏览历史命令其中最实用的是Tab它不仅能补全命令还能补全文件名和目录名能减少输入错误。十六、一次真实的 Linux 操作流程假设我们要在服务器上创建一个 C 项目、查看日志并打包备份可以这样操作# 1. 回到家目录 cd ~ # 2. 创建项目目录 mkdir -p linux_demo/src linux_demo/logs # 3. 进入项目目录 cd linux_demo # 4. 创建源文件 touch src/main.c # 5. 查看目录结构 ls -lah写入测试内容echo #include stdio.h src/main.c echo int main() { printf(Hello Linux\\n); return 0; } src/main.c查看文件内容cat -n src/main.c搜索代码中的printfgrep -rn printf src/实时查看日志tail -f logs/app.log打包备份项目cd .. tar -zcvf linux_demo.tar.gz linux_demo/查看压缩包内容tar -ztvf linux_demo.tar.gz这样一组基础命令就能完成从创建、编辑、查看、搜索到备份的完整工作流。十七、总结Linux 指令并不需要一次性死记硬背。建议按使用频率分阶段掌握第一阶段 pwd、ls、cd、touch、mkdir、rm、cp、mv 第二阶段 cat、less、head、tail、grep、find、tar 第三阶段 chmod、chown、umask、sudo、top、date真正重要的是理解每条命令背后的问题想知道自己在哪pwd想看目录内容ls想切换目录cd想创建文件或目录touch、mkdir想查看日志tail -f想搜索文本grep想找文件find想备份项目tar想控制访问范围chmod当你能把“需求”和“命令”建立对应关系时Linux 命令行就不再难记。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑