news 2026/9/20 1:20:14

Linux命令大全:从零基础到熟练操作的实用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令大全:从零基础到熟练操作的实用指南

简介:面向Linux零基础新手的一份命令手册,覆盖从文件与目录导航、文本查看到权限控制、系统监控的完整学习路径,也适合刚接触服务器、需在无图形界面下完成日常任务的用户快速上手。资源包体为单个PDF文件,大小703KB,内容精炼但体系完整,共分五大章节:基础命令、文件内容查看、权限与系统管理、效率技巧、安全注意事项,目前已吸引69人学习下载。资源注重实操与避坑,不仅逐条讲解pwd、ls、cd、chmod、grep等常用命令的适用场景和参数,还结合示例提示rm -rf等高危操作的注意事项,帮助用户养成安全的命令行习惯。对想夯实Linux基础、后续进阶脚本自动化或系统运维的人来说,是可随时翻阅的速查与实践入门资料。

1. 先看这份 Linux 命令大全,把命令行当母语用

包管理、日志排查、服务部署、容器操作,这套东西绕不开同一个入口:Linux 命令行。图形界面在服务器上基本不出现,哪怕是在虚拟机或云服务器上做实验,ssh 进去也只有一个黑框。很多人被“命令多、记不住”吓退,其实核心命令量不大,真正要上手的不过几十条。这份《Linux新手命令大全:从零基础到熟练操作.pdf》走的是典型工程路径:先拿 pwd、ls、cd、mkdir、rm、cp、mv 解决文件系统里的生存问题,再用 cat、less、tail、grep 处理文本和日志,接下来是 chmod、sudo、ps、top 这类权限与系统管理,最后用管道、重定向、history、alias 把操作效率提起来。适合刚接触 Linux 的开发者、运维实习生,也适合准备 Linux 面试但命令不熟的人。它的设计思路是让你在真实环境里照着敲,而不是背参数表。下面按照这份文档的体系,把每条命令的选型理由、参数差异和容易出错的边界展开讲。

2. 文件与目录操作:从 pwd 到 mv 的路径心智

2.1 pwd 与 ls:先确认自己站在哪

几乎所有灾难性误操作,都发生在你不知道自己当前在哪个目录的时候。pwd输出当前工作目录的完整路径,这是文件系统里最便宜的定位手段。在脚本里也常用$(pwd)拼出绝对路径,避免相对路径在不同调用目录下行为不一致。

ls有三个高频参数组合:ls -l看权限、大小、属主和修改时间;ls -a显示以点开头的隐藏文件;ls -lh-h会自动把字节数换算成易读的 K、M、G。老手习惯把三者合起来打成ls -lah,一条命令看全目录所有信息。文件名对大小写敏感,Notes.txtnotes.txt是两个文件,这在从 Windows 环境切过来的人身上最容易踩坑。

$ pwd /home/yourname $ ls -lah total 28K drwxr-xr-x 2 yourname yourname 4.0K Jan 12 10:22 Documents -rw-r--r-- 1 yourname yourname 1.2K Jan 12 10:23 notes.txt

ls -l输出的第一列就是后面权限章节要展开的 rwx 字符,从左到右依次是属主权限、属组权限、其他人权限。drwxr-xr-x表示这是目录,属主可读写进入,属组和其他人只能读和进入,不能在里面新建文件。-h让 1.2K 这种信息直接可见,不需要自己换算字节数。注意ls默认只显示非隐藏文件,空目录会显示为空,这是正常现象。

命令参数作用常见坑
pwd显示当前绝对路径在软链接目录中默认显示物理路径
ls-l长格式详细信息不识别 Windows 换行符的文件名
ls-a显示隐藏文件-l合用时需写成ls -la
ls-h人类可读大小单独使用无效,需配合-l

2.2 cd 与 mkdir:切换和建目录的细节

cd不带参数直接回到当前用户主目录,cd ~也是这个效果。你可能会注意到cd -在旧目录和新目录之间往返,这在切换配置目录、日志目录两个位置时非常顺手。cd ..返回上一级,cd ../..返回上两级,连续写多个..是相对路径的基本用法。

mkdir有两个容易忽略的能力:mkdir -p一次性创建多级目录,不会因为父目录不存在而报错;mkdir -p project/{src,docs,data}这种花括号展开语法会同时创建三个子目录,适合初始化项目骨架。rmdir只能删空目录,里面只要有文件就报错Directory not empty,这不是命令坏了,而是刻意设计的安全行为。

$ mkdir -p project/{src,docs,data} $ tree project project ├── src ├── docs └── data

花括号展开由 shell 解释,不是mkdir的功能。bash 和 zsh 都支持,sh 里不一定可用,写脚本时如果目标系统只有 sh 就别依赖这个语法。-p还有个隐藏用途:在脚本里提前保证某个目录存在,比如mkdir -p /var/log/myapp 2>/dev/null,即使目录已存在也不报错,日志落盘前先建目录,减少启动失败概率。

2.3 touch、rm、cp、mv:创建、删除、复制、移动的坑

touch notes.txt的核心行为其实是“更新文件时间戳”,文件不存在时才顺手创建空文件。在自动化场景里,touch常用来生成一个空的标记文件,比如.deploy.lock表示部署进行中,让别人或脚本知道当前状态。看不出来内容变化的空文件,未必没有业务含义。

rm是最需要谨慎对待的命令。rm file.txt删除文件,rm -r folder/递归删除整个目录。文档强调的rm -i会在删除前逐个确认,对新手是保命参数。真正的危险组合是rm -rf,其中-f表示强制删除且不提示不存在文件,-r递归目录,两个参数合在一起会静默删掉大量文件。删除命令是有无法撤销属性的,请把确认动作前置。

$ rm -i notes.txt rm: remove regular file 'notes.txt'? y $ cp -r project/ backup/ $ mv old.txt new.txt

cp复制文件不需要额外参数,复制目录则必须加-r。复制目录时源路径尾部是否带斜杠有语义差异:cp -r dir1/ dir_backup/复制的是目录内的内容,cp -r dir1 dir_backup/复制的是整个目录本身,这会让最后落盘结构产生一层目录差。mv既能移动文件也能重命名,跨文件系统移动时实际执行的是“复制到目标 + 删除源”,所以移动一个大目录看起来会比同文件系统慢得多。

命令场景推荐写法备注
touch新建空文件touch notes.txt也用于刷新时间戳
rm删除文件rm -i file.txt建议默认带-i
rm删除目录rm -r folder/确认目录内容后再执行
cp复制目录cp -r dir1/ dir2/注意源路径尾斜杠
mv重命名/移动mv old new跨文件系统会复制+删除

3. 文件内容查看与搜索:cat、less、tail、grep

3.1 cat / less / more:按文件大小选工具

cat把整个文件内容直接打到终端上,适合几十行以内的配置文件。文件一大,输出刷屏,前面的内容根本看不见。这时候应该用less代替cat分页查看,它支持上下方向键滚动,按/输入关键词搜索,按n跳到下一个匹配项,按q退出。more是更早期的分页工具,只能向下翻页,回看前面的内容很不舒服,现在基本让位给less

$ less /var/log/syslog

less打开大文件不会把整个文件一次性读入内存,性能优势在几百 MB 的日志上体现得很明显。打开日志时建议加-R参数,比如less -R app.log,这会保留颜色转义序列,让带颜色的日志在终端里正常显示,不加的话会看到一堆[1;31m之类的乱码字符。

查看之外要编辑文件时,vivim是命令行里的常备工具。vim 默认是命令模式,按i进入插入模式开始打字,按Esc回到命令模式,再输入:wq保存退出。新手只需要记住“打开、编辑、退出”这三个动作就够了,遇到E45: 'readonly' option is set这类报错通常是文件只读,用:w!强制保存或先chmod调整权限。

3.2 head / tail:盯日志和文件首尾

head默认显示前 10 行,head -n 5 log.txt自定义显示前 5 行;tail默认显示末尾 10 行,tail -n 50 app.log取最后 50 行。这两个命令不读完整文件,对超大日志处理效率很高。日常排错场景中tail -f是运维的主力工具,-f让命令保持运行状态,日志文件有新内容写入时实时追加到终端,适合观察服务启动过程、接口报错、定时任务执行结果。

$ tail -f app.log 2025-03-15 10:22:01 request /api/status 200 12ms 2025-03-15 10:22:03 request /api/user/info 200 8ms

输出里每一行是一次请求记录,时间、路径、状态码、耗时各字段的位置由日志格式决定。Ctrl+C终止tail -f进程,这只退出跟踪命令,不影响正在写入日志的服务。同时跟踪多个文件可以用tail -f a.log b.log,输出会带文件名前缀标识来源。处理滚动日志时还需要-F而不是-f-F在文件被 logrotate 改名或重建后会自动重新打开新文件,-f不会。

组合含义典型场景
head -n 5 file查看前 5 行确认日志格式
tail -n 50 file查看末尾 50 行看最近报错
tail -f file持续跟踪追加内容服务调试
tail -F file跟踪且支持日志轮转长时间维持的观察会话

3.3 grep:从单文件到递归目录搜索

grep的核心能力是从文本中筛出符合条件的行。grep "error" system.log在单个文件里搜索关键词,命中行直接输出到终端。.bash_history是个有意思的搜索对象:grep "apt install" ~/.bash_history能找出自己过去装过哪些软件,比翻记录快得多。

三个常用参数值得放心里:-n显示行号,定位问题时少了行号等于没搜;-i忽略大小写,避免ErrorERRORerror三种写法各搜一遍;-c只统计匹配行数而不是输出内容。递归搜索用-rgrep -rn "TODO" ./src/能找出所有源码文件里未完成的工作标记。

$ grep -rn "TODO" ./src/ src/main.py:12: # TODO: 处理超时重试 src/db.py:34: # TODO: 补充索引迁移 $ grep -c "error" system.log 17

-c后面的数字表示匹配行的数量,不是关键词出现次数,同一行里出现两个 error 只计一次。递归搜索大目录会扫描所有文件,如果项目里有依赖目录,用--exclude-dir=node_modules--exclude-dir=.git显式跳过,执行速度质变。grep -v反向匹配输出不包含关键词的行,常用来过滤日志里的噪音行。-q不输出内容只通过退出码判断是否匹配到,写脚本时用于条件判断。

4. 权限与系统管理:chmod、chown、sudo、ps、top 的组合用法

4.1 权限字符与数字:rwx 和 755 是怎么算出来的

Linux 权限模型分三组角色:属主(owner)、属组(group)、其他人(others)。每组三个位:读r、写w、执行x,分别对应数值 4、2、1。chmod 755 backup/的含义是属主获得 4+2+1=7 的完整权限,属组 5 即读和执行,其他人同样是 5。文件属主可以读写改,其他人只能看和执行,这是分享可执行目录的常用配置。

目录的权限语义和文件不同:目录的r控制能否列出内容,w控制能否在目录里新建或删除文件,x控制能否进入目录。所以目录通常至少要有x位,否则连cd都进不去。文件用chmod +x script.sh加执行位后就能直接./script.sh运行,否则只能报 Permission denied。

$ chmod +x script.sh $ chmod 755 backup/ $ ls -l script.sh -rwxr-xr-x 1 yourname yourname 0 Mar 15 10:30 script.sh

ls -l输出里的-rwxr-xr-x第一位的-表示普通文件,后面九位严格对应四组权限。chmod 600常用于密钥、凭证这类敏感文件,只允许属主读写,比如~/.ssh/id_rsa私钥文件权限过大会导致 ssh 连接直接拒绝。判断权限是否生效的唯一标准是ls -l输出,而不是自己记住了什么数字。

4.2 chown 与 sudo:谁拥有文件,谁有资格改

chown user:group file.txt同时修改文件属主和属组。只有 root 才有资格改其他用户的文件属主,所以命令需要加sudo前缀:sudo chown www-data:www-data /var/www/html是部署网站时最典型的用法,把 Web 根目录交给 Web 服务用户管理。加-R可以递归修改目录下所有文件的属主,但递归操作要确认目标范围,避免把系统目录变成普通用户属主。

sudo的作用是临时用 root 身份执行单条命令。sudo apt update只需要输入当前用户密码后执行一次提权,不会把 shell 会话变成 root。这个机制比su安全的原因在于提权范围最小化:每一条 sudo 命令都是独立授权。sudo rm -rf /some/path会把所有者检查完全绕过,平时以普通用户身份删除失败的文件,换成 sudo 后可能真的被永久删除,删除前多看一眼路径比什么都重要。

$ sudo chown user:group file.txt $ sudo apt update Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease ...

sudo执行时的输入密码操作终端不会显示任何字符,连星号都没有,这是正常行为,不是卡住了。密码默认缓存一段时间,频繁使用 sudo 不需要反复输入。如果命令在脚本里以非交互方式执行,可以配置免密 sudo,但生产环境不建议全量免密,尽量限制到具体命令。

4.3 系统监控:ps / top / df / free

ps aux显示当前所有进程的快照。a包括其他用户的进程,u显示用户和资源占用列,x包括无终端的进程。输出列里 PID 是进程号,kill 命令要用的就是它;%CPU%MEM是瞬时占用百分比;TIME 是进程累计消耗的 CPU 时间。配合管道ps aux | grep nginx,只留下和目标进程相关的行。

top是动态刷新界面,默认按 CPU 占用排序。按P切到按 CPU 排序,按M切到按内存排序,按q退出。进程数量一多,top 的交互操作效率远高于反复敲 ps 加管道。htop是 top 的增强替代,有颜色和鼠标操作,但很多最小化系统没预装,要apt install htop才有。

$ ps aux | grep nginx root 1234 0.0 0.1 112M 2344 ? Ss Mar15 0:00 nginx: master $ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 18G 20G 48% /

df -h查看磁盘空间,-h自动换算易读单位。关注Use%列,超过 80% 就该清理或扩容。根分区/满会影响系统基本运行,日志清理可以按journalctl --vacuum-size=200M压缩系统日志占用的空间。free -m以 MB 显示内存使用,重点看available列而不是used,因为 Linux 会把空闲内存用作缓存,used 数字高不代表内存不够用。

命令查看内容最有价值的列退出/交互方式
ps aux当前进程快照PID、%CPU无交互,直接输出
top动态资源占用%CPU、%MEM按 q 退出
df -h磁盘分区空间Use%无交互
free -m内存使用情况available无交互

5. 效率与安全:管道、重定向、history、alias,以及 rm -rf 的边界

5.1 管道与重定向:把输出变成输入

管道符|把左边命令的标准输出连接到右边命令的标准输入,不需要中间文件。cat log.txt | grep "error" | wc -l完成三个动作:读取日志、过滤 error 行、统计数量。管道里的每个命令独立执行,整个链路只保留最终输出,数据量也可以很大,因为左侧命令是边输出边传给右侧,而不是等全部跑完再处理。

重定向是把输出写入文件。ls > filelist.txt单箭头覆盖写入,文件原本的内容全部丢失;echo "New" >> log.txt双箭头追加写入,在文件末尾加一行。覆盖写入的风险在于命令本身出错也会先清空文件,所以把命令改成ls filelist.txt 2>&1 | tee output.log更稳,2>&1把标准错误也合并到管道里,tee 一边写文件一边在终端显示。

$ echo "New" >> log.txt $ grep -r "error" ./logs/ 2>&1 | tee error.log log/a.log:3: error: timeout log/b.log:1: error: connection refused

2>单独把错误信息写进文件,2>&1表示把文件描述符 2 重定向到 1 当前指向的位置。顺序很重要,2>&1 > file> file 2>&1含义不同,后者才是常见的把标准输出和标准错误都写进一个文件。在 crontab 里执行脚本时,>> /var/log/myjob.log 2>&1会同时收集正常输出和报错,排错时不用重新跑一遍。

5.2 history 与 alias:把高频操作固化下来

history显示当前 shell 的历史命令。!123重跑编号为 123 的命令,!!重跑上一条,!grep重跑最近一条以 grep 开头的命令。历史记录默认保存在~/.bash_history,新终端会话启动时读取。history | grep apt搜索历史里所有和 apt 相关的操作,比一页页翻快很多。更高效的是Ctrl+R反向增量搜索,输入几个关键字符就即时匹配历史命令,回车直接执行。

alias ll='ls -alF'定义短命令代替长命令,ll从此等价于ls -alF。这只是当前会话生效,新开终端就消失,所以要永久化就得写进~/.bashrc文件。-alF三个参数的含义分别是所有文件、长格式、目录后面自动加斜杠标识。脚本文件里不会展开 alias,因为脚本默认以非交互模式运行,要shopt -s expand_aliases才支持,所以 alias 定位成交互环境下的提速工具更合适。

$ echo "alias ll='ls -alF'" >> ~/.bashrc $ source ~/.bashrc

source ~/.bashrc让配置文件重载,当前终端立即生效,硬件重启之后也会自动加载。给常用的grepdfdu都可以做类似别名,比如alias grep='grep --color=auto'让 grep 匹配内容自动高亮。alias 只会做文本替换,后面再跟参数照样传进去,ll -h实际执行的是ls -alF -h

alias 定义实际执行适用场景
alias ll='ls -alF'ls -alF目录详情速览
alias grep='grep --color=auto'grep --color=auto高亮匹配结果
alias ..='cd ..'cd ..减少路径切换输入

5.3 rm -rf 的安全边界:alias、备份和删除前检查

rm -rf的问题在于两个参数相互叠加:-r递归进入目录,-f抑制所有确认提示,组合起来可以静默删除任意目录树。安全策略应该前置到删除动作之前。第一条防线是alias rm='rm -i',让每次删除需要确认,终端会逐条列出待删除文件等着按 y。这条建议的来源正是文档里面用户因误删系统文件后被迫重装系统的教训。注意 root 用户的 alias 不一定生效,系统维护不能只依赖它。

第二条防线是删除前检查路径。执行rm -rf之前先跑echo $PWD确认当前目录,再ls列出目标内容,看通配符会匹配到哪些文件。变量场景要多一步保护:[ -n "$DIR" ] && rm -rf "$DIR"确保变量为空时不执行删除,避免变量未赋值时rm -rf $DIR/变成删除根目录。rm project/*.log这一步列出的文件名和实际删除目标一致,确认无误后再删除。

$ alias rm='rm -i' $ ls project/*.log project/app.log project/access.log $ rm project/*.log

第三条防线是备份。改系统配置文件之前复制一份原文件:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak,后缀.bak既能识别又保留扩展名方便diff对比。改坏的配置能直接回滚,比找备份来得快。真正需要强制删除一批文件时,临时用/bin/rm -rf绕过 alias 确认,但同样的路径检查流程不能被跳过。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 1:16:31

Tinycast 工程规范完全指南:Posture、不可妥协项与完成标准解读

Tinycast 工程规范完全指南:Posture、不可妥协项与完成标准解读 【免费下载链接】tinycast Tinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history. 项目地址: https://gitcode.com/GitHub_Trending/ti/tinycast 本篇技术指南以…

作者头像 李华
网站建设 2026/9/20 1:12:43

Miniconda下载安装全攻略:国内镜像源配置与避坑指南

1. 为什么我劝你别再手动配环境了做数据科学和Python开发的朋友,大概率都经历过这样的场景:新买了一台笔记本,兴致勃勃准备跑个模型,结果光是装Python、配环境、解决包冲突就折腾了一整个下午。更别提团队协作时,同事说…

作者头像 李华
网站建设 2026/9/20 1:06:59

Windows 11 25H2 全新安装与兼容性排查指南:从ISO到WSL2

Windows 11 25H2 这版年度更新,说实话我盯了很久。版本号直接跳到 26200.9278,官方给出的定位是“年度更新版本”,不是那种每个月攒的小补丁,而是把一整年的功能、内核调整、安全策略打包在一起的大版本。对于还在用 Win10 或者停…

作者头像 李华
网站建设 2026/9/20 1:05:38

Windows上Claude Code配Playwright MCP踩坑记录

最近项目里要给 Claude Code 配上浏览器操作能力,我选了社区里最常见的方案:Playwright MCP。折腾下来说实话,Windows 上比 macOS 和 Linux 要烦不少,光是“npx 找不到”“浏览器内核起不来”“MCP server 连不上”这三个问题就让…

作者头像 李华