作为每天和 Linux 打交道的运维老兵,经常被刚入门的朋友问:“Linux 命令太多,记不住怎么办?” 其实新手不用贪多,先吃透这 15 个高频基础命令,就能解决 80% 的日常操作需求。今天就从最常用的文件管理、内容查看、搜索筛选类命令入手,用 “场景 + 实操” 的方式带你吃透它们,每个命令都附实例,看完就能上手。

命令通用格式(前置内容)

Linux 命令有着通用的格式:command [-options] [parameter]

  • command:代表命令本身,是要执行的操作指令,比如 ls(列出目录内容)、cp(复制文件或目录)等。
  • [-options]:是命令的选项,属于可选部分,并非必须填写。通过选项可以控制命令行为的细节,不同的选项能让命令实现不同的功能变种。例如 ls 命令的 -l 选项,能以长格式显示目录内容,包含文件权限、所有者、大小、修改时间等更详细的信息。
  • [parameter]:是命令的参数,同样为可选内容。参数多数用于指定命令的指向目标,像文件、目录路径等。比如 ls -l /home/itheima 中的 /home/itheima 就是参数,指定了 ls -l 命令要操作的目录。

一、文件管理 “三剑客”:ls、cd、pwd—— 定位文件的基本功

刚登录 Linux 系统,首先要解决 “我在哪、周围有什么、要去哪” 的问题,这三个命令就是你的 “导航仪”。

1. pwd:显示当前路径,避免 “迷路”

pwd 是 “Print Working Directory” 的缩写,直译就是 “打印工作目录”。比如你刚用 root 用户登录,输入pwd会返回/root,这就说明你当前在 root 用户的家目录里。
场景:ssh 连接远程服务器后,先输pwd确认位置,避免误操作其他目录文件。

2. ls:查看目录下的 “小伙伴”

ls 是 “List” 的缩写,用来列出当前目录或指定目录下的文件 / 文件夹。光输ls会显示文件名,但加上参数能看到更多信息:

  • ls -l:长格式显示,包含文件权限、所有者、大小、修改时间(最常用,也可以简写为ll);
  • ls -a:显示隐藏文件(Linux 中以 “.” 开头的文件是隐藏文件,比如.bashrc);
  • ls /home:查看/home目录下的内容,不用切换到该目录。
    实例:输入ll,会看到类似这样的结果:
    -rw-r--r-- 1 root root 123 Sep 2 14:30 test.txt
    其中 “-rw-r--r--” 是权限,“root” 是所有者,“123” 是文件大小(字节),“Sep 2 14:30” 是修改时间,“test.txt” 是文件名。

    3. cd:切换目录,想去哪就去哪

    cd 是 “Change Directory” 的缩写,是切换目录的核心命令,用法灵活:

  • cd /home/user:绝对路径切换,从根目录 “/” 开始定位到/home/user
  • cd ../:返回上一级目录(“..” 代表上一级,“.” 代表当前目录);
  • cd ~:直接回到当前用户的家目录(root 用户是/root,普通用户是/home/用户名);
  • cd -:切换到上一次所在的目录(比如从/root/home,输cd -会回到/root)。
    场景:想编辑/etc/profile文件,先输cd /etc,再用ls确认profile是否存在,避免路径写错。

二、文件操作 “四件套”:mkdir、touch、cp、mv—— 创建与移动文件

解决了 “导航” 问题,接下来就是创建、复制、移动文件,这四个命令是日常操作的 “主力”。

1. mkdir:创建文件夹,给文件 “安个家”

mkdir 是 “Make Directory” 的缩写,用来创建新文件夹。

  • 基础用法:mkdir docs,在当前目录创建名为 “docs” 的文件夹;
  • 递归创建:mkdir -p docs/linux/commands,一次性创建多层目录(如果docslinux不存在,-p会自动创建,不用手动一层一层建)。
    注意:如果文件夹名包含空格,需要用引号括起来,比如mkdir "my docs"

2. touch:创建空文件,或更新文件时间

touch 最常用的功能是创建空文件,比如要写一个测试脚本,先输touch test.sh,就会生成一个空的test.sh文件。
另外,touch还有个隐藏用法:更新文件的 “修改时间”。如果一个文件很久没修改,输touch 文件名,会把文件的修改时间更新为当前时间,内容不变。

3. cp:复制文件 / 文件夹,给文件 “分身”

cp 是 “Copy” 的缩写,复制文件或文件夹,核心是 “源路径” 和 “目标路径”:

  • 复制文件:cp test.txt docs/,把当前目录的test.txt复制到docs文件夹下;
  • 复制并改名:cp test.txt docs/test_new.txt,复制后在docs里改名为test_new.txt
  • 复制文件夹:必须加-r参数(递归复制),比如cp -r docs docs_backup,把docs文件夹连同里面的内容复制一份,命名为docs_backup
    踩坑点:复制文件夹时忘了加-r,会提示 “omitting directory”(忽略目录),一定要记得加参数。

4. mv:移动文件 / 文件夹,或给文件 “改名”

mv 是 “Move” 的缩写,既能移动文件,也能改名,用法和cp类似,但不用加-r(移动文件夹默认递归):

  • 移动文件:mv test.txt docs/,把test.txt移到docs文件夹;
  • 文件改名:mv test.txt test_old.txt,在当前目录把test.txt改名为test_old.txt
  • 移动并改名:mv test.txt docs/test_final.txt,把test.txt移到docs,同时改名为test_final.txt
    注意:如果目标路径已有同名文件,mv会直接覆盖,没有提示!如果想避免误删,可以加-i参数(交互模式),比如mv -i test.txt docs/,如果有同名文件会问你 “是否覆盖”。

三、内容查看 “三兄弟”:cat、more、tail—— 读懂文件里的内容

创建了文件,接下来要查看内容,这三个命令各有侧重,覆盖 “全量查看”“分页查看”“实时查看” 场景。

1. cat:一次性显示文件全部内容

cat 是 “Concatenate” 的缩写,最适合查看小文件(比如配置文件、脚本),直接显示全部内容:

  • 基础用法:cat test.txt,直接输出test.txt的所有内容;
  • 显示行号:cat -n test.txt,输出内容时在每一行前面加行号,方便定位某一行;
  • 合并文件:cat file1.txt file2.txt > file3.txt,把file1file2的内容合并到file3(“>” 是重定向符号,后面会讲)。
    缺点:如果文件很大(比如几 MB 的日志),cat会一次性把内容全刷出来,前面的内容会看不到,这时要用more

2. more:分页查看大文件,避免 “信息爆炸”

more 适合查看大文件,会一页一页显示内容,不会一次性刷屏:

  • 基础用法:more /var/log/messages(系统日志文件,通常很大);
  • 操作快捷键:按 “空格” 翻下一页,按 “Enter” 翻一行,按 “q” 退出查看。
    小技巧:如果想从第 10 行开始查看,输more +10 test.txt;如果想搜索关键词,在查看时输 “/ 关键词”,按 “n” 找下一个。

3. tail:查看文件末尾内容,实时跟踪日志

tail 主要用来查看文件的末尾几行,尤其是跟踪日志文件(比如程序运行日志):

  • 基础用法:tail test.txt,默认显示文件最后 10 行;
  • 指定行数:tail -n 5 test.txt,显示最后 5 行(也可以简写为tail -5 test.txt);
  • 实时跟踪:tail -f /var/log/nginx/access.log-f是 “follow” 的缩写),会实时显示文件新增的内容,比如 nginx 的访问日志,有新请求时会立刻刷新,按 “Ctrl+C” 退出跟踪。
    场景:开发时调试程序,用tail -f跟踪日志,能实时看到程序输出的错误信息。

四、搜索筛选 “组合拳”:which、find、grep、wc、|—— 精准定位信息

当文件多了,需要快速找到某个文件或某段内容,这几个命令加上管道符 “|”,能组成强大的 “搜索筛选工具”。

1. which:查找命令的安装路径

which 用来查找某个命令的可执行文件路径,比如想知道ls命令在哪里:
which ls,会返回/bin/ls,说明ls命令的可执行文件在/bin目录下。
用途:判断命令是否安装(如果没安装,会提示 “no ls in (...)”),或确认命令的版本路径(比如系统有多个python,用which python看当前用的是哪个)。

2. find:按路径、名称、大小等查找文件

find 是 Linux 中最强大的文件搜索命令,可以按路径、文件名、大小、修改时间等多种条件搜索:

  • 按名称查找:find /home -name "test*.txt",在/home目录下查找所有以 “test” 开头、以 “.txt” 结尾的文件(“*” 是通配符,代表任意字符);
  • 按类型查找:find /etc -type d -name "conf*",在/etc目录下查找以 “conf” 开头的文件夹(-type d代表目录,-type f代表文件);
  • 按大小查找:find /var -size +10M,在/var目录下查找大小超过 10MB 的文件(“+” 代表超过,“-” 代表小于,“10M” 是 10 兆,“10k” 是 10 千字节);
  • 按修改时间查找:find /home -mtime -7,在/home目录下查找近 7 天内修改过的文件(“-mtime -7” 代表 7 天内,“+7” 代表 7 天前)。
    小技巧:如果想查找后直接删除文件(谨慎使用!),可以加-delete参数,比如find /tmp -name "tmp*" -delete,删除/tmp下以 “tmp” 开头的文件。

3. grep:在文件中搜索关键词,“文本 grep 镜”

grep 是 “Global Regular Expression Print” 的缩写,用来在文件或命令输出中搜索关键词,是筛选信息的 “利器”:

  • 在文件中搜索:grep "error" /var/log/messages,在系统日志中查找包含 “error” 的行;
  • 忽略大小写:grep -i "Error" test.txt,搜索 “Error” 时不区分大小写(“error”“ERROR” 也会被找到);
  • 显示行号:grep -n "test" test.txt,搜索时显示匹配行的行号;
  • 反向搜索:grep -v "注释" config.conf,显示不包含 “注释” 的行(-v是 “invert match”,反向匹配)。

4. wc:统计文件的行数、字数、字节数

wc 是 “Word Count” 的缩写,用来统计文件的行数、单词数、字节数:

  • 基础用法:wc test.txt,会返回 3 个数字,分别是 “行数 单词数 字节数 文件名”;
  • 单独统计行数:wc -l test.txt(最常用,比如统计日志有多少行);
  • 单独统计单词数:wc -w test.txt
  • 单独统计字节数:wc -c test.txt
    场景:统计/etc/passwd文件有多少个用户(每个用户占一行),输wc -l /etc/passwd,返回的数字就是用户数。

5. |:管道符,把命令 “串联” 起来

管道符 “|” 是 Linux 的 “灵魂” 之一,它能把前一个命令的输出,作为后一个命令的输入,实现 “命令串联”:

  • 实例 1:ls -l /home | grep "test",先列出/home目录的长格式内容,再用grep筛选出包含 “test” 的行;
  • 实例 2:cat /var/log/messages | grep "error" | wc -l,先读取日志文件,筛选出 “error” 行,再统计这些行的数量(即错误日志有多少条);
  • 实例 3:ps aux | grep "nginx",先查看所有进程(ps aux),再筛选出包含 “nginx” 的进程(查看 nginx 是否在运行)。
    核心逻辑:管道符就像 “传送带”,把前一步的结果传给下一步,让多个命令协同工作,效率翻倍。

五、两个实用小命令:rm、echo—— 删除与输出

最后补充两个高频小命令,一个用来删除文件,一个用来输出内容,简单但关键。

1. rm:删除文件 / 文件夹,“小心驶得万年船”

rm 是 “Remove” 的缩写,用来删除文件或文件夹,这个命令很危险,删除后无法恢复,一定要谨慎!

  • 删除文件:rm test.txt,直接删除单个文件;
  • 强制删除:rm -f test.txt,如果文件不存在或权限不足,-f(force)会强制删除,不提示;
  • 删除文件夹:rm -r docs,递归删除文件夹及里面的所有内容(和cp类似,删除文件夹必须加-r);
  • 强制删除文件夹:rm -rf docs-r+-f),强制删除文件夹,不提示(生产环境慎用!尤其不要输rm -rf /,会删除整个系统的文件,直接崩盘)。
    安全建议:删除前先用ls确认文件 / 文件夹是否正确,或者用rm -i(交互模式),删除时会提示 “是否删除”,避免误删。

2. echo:输出内容到终端,或写入文件

echo 主要用来输出字符串到终端,或通过重定向写入文件:

  • 输出到终端:echo "Hello Linux",终端会显示 “Hello Linux”;
  • 输出变量:echo $PATH,输出环境变量PATH的内容(Linux 中变量用 “$” 开头);
  • 写入文件:echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile,把 “export JAVA_HOME=...” 这行内容追加到/etc/profile文件末尾(“>>” 是追加,“>” 是覆盖,用 “>” 会清空文件原有内容,谨慎使用)。
    场景:配置环境变量时,用echo把配置语句写入/etc/profile,不用手动打开文件编辑,更高效。

总结:命令不是 “死记”,而是 “用会”

很多新手学 Linux 命令时,总想着把所有命令背下来,其实没必要。这 15 个命令覆盖了 “定位 - 创建 - 查看 - 搜索 - 删除” 的全流程,你可以先记住每个命令的核心用法,然后结合实际场景练习:比如创建一个文件夹,在里面新建文件,用cat写点内容,再用cp复制、mv改名,最后用find找到它 —— 练一遍比背十遍记得更牢。

Linux 的精髓在于 “命令组合”,比如tail -f 日志 | grep 关键词实时跟踪特定日志,ls -l | wc -l统计当前目录文件数,多尝试管道符和参数的组合,你会发现 Linux 操作其实很灵活。如果忘了某个命令的用法,输命令 --help(比如ls --help)或man 命令(比如man grep),系统会告诉你详细用法,这才是最靠谱的 “工具书”。

希望这篇指南能帮你跨过 Linux 命令的 “入门坎”,后续再学习权限管理、进程控制等进阶内容时,会更轻松。如果在练习中遇到问题,欢迎在评论区交流,咱们一起踩坑、一起进步!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐