Linux 基本命令

Linux 命令是用户与 Linux 系统交互的核心工具,通过命令行(Shell)向系统发送指令,实现对文件、进程、硬件、网络等各种资源的管理和控制。

Linux 基本命令

Linux 命令通常格式为:命令 [选项] [参数](选项以 - 开头,可选;参数是操作对象,如文件名)。

Linux 命令的选项可以组合使用,这也是提高操作效率的常用方式,核心分「短选项组合」和「长短选项搭配」两种情况:

比如 ls 命令,-l 是查看详细信息,-a 是显示隐藏文件,单独用是 ls -lls -a,组合起来直接写 ls -la(短选项可连写,不用加空格);再比如 rm 命令,-r 是删除目录,-f 是强制删除,组合成 rm -rf 就能快速删除目录及内容(注意谨慎使用)。

如果是「长选项」(以 -- 开头),比如 rm --recursive --force,效果和 rm -rf 一样,长选项也能和短选项搭配,比如 ls -l --all,本质都是对选项功能的叠加。

以下是最常用的基础命令:

1. 文件 / 目录操作命令
1. ls

全名list(列出) 功能:列出指定目录中的文件 / 子目录(默认显示当前目录)。

最常见选项

  • -llong(长格式)------ 显示文件详细信息(权限、所有者、大小、修改时间等)。
  • -aall(全部)------ 显示所有文件,包括隐藏文件(文件名以 . 开头的文件,如 .bashrc)。
  • -hhuman-readable(人类可读)------ 配合 -l 使用,文件大小以 K/M/G 等单位显示(而非字节)。
2. cd

全名change directory(切换目录)功能:切换到指定目录(路径)。

常用 "符号选项"(cd 无传统 "- 选项",但有特殊符号表示目标目录):

  • ~:表示当前用户的主目录(如 /home/book)。例:cd ~ → 切换到自己的主目录。
  • ..:表示 "上一级目录"。例:cd .. → 从当前目录切换到其父目录(如从 /home/book/home)。
  • .:表示 "当前目录"(一般省略,如 cd ./test 等价于 cd test)。
3. pwd

全名print working directory(打印工作目录)功能 :显示当前所在目录的绝对路径(从根目录 / 开始的完整路径)。无选项

4. mkdir

全名make directory(创建目录)功能:创建新的空目录。

最常见选项

-pparents(父目录)------ 递归创建多级目录(若父目录不存在则自动创建)。例:mkdir -p a/b/c → 一次性创建 a 目录,以及其下的 b 目录,再其下的 c 目录(无需手动先创建 ab)。

5. rm

全名remove(删除)功能:删除文件或目录(危险操作,需谨慎)。

最常见选项

-rrecursive(递归)------ 删除目录及其下所有内容(默认 rm 只能删文件,不能删目录)。例:rm -r test → 删除 test 目录及其中所有文件 / 子目录。

-fforce(强制)------ 强制删除,不提示确认(即使文件是只读的)。例:rm -f file.txt → 直接删除 file.txt,不弹出 "是否删除" 的提示。

组合 -rf :强制递归删除(最常用但最危险,慎用!)。例:rm -rf test → 强制删除 test 目录及所有内容,无任何提示。

6. cp

全名copy(复制)功能:复制文件或目录到指定位置。

最常见选项

-rrecursive(递归)------ 复制目录及其下所有内容(默认 cp 只能复制文件,不能复制目录)。例:cp -r dir1 /home/book → 将 dir1 目录及其中所有内容复制到 /home/book 下。

-iinteractive(交互)------ 若目标位置已存在同名文件,会提示是否覆盖(避免误删)。例:cp -i file.txt /tmp → 若 /tmp 已有 file.txt,会提示 "是否覆盖?"。

7. mv

全名move(移动)功能:移动文件 / 目录到新位置,或给文件 / 目录重命名(本质是 "移动到同一目录下并改名")。

最常见选项

-iinteractive(交互)------ 若目标位置存在同名文件,提示是否覆盖(防止误操作)。例:mv -i old.txt /tmp → 若 /tmp 已有 old.txt,会提示确认。

重命名用法 :当源和目标在同一目录时,就是重命名。例:mv old.txt new.txt → 将 old.txt 改名为 new.txt(同一目录下)。

8. touch

作用:创建空文件(若文件已存在,会更新其 "最后修改时间",不会删除内容)。

用法:touch 文件名

示例

touch note.txt # 在当前目录创建空文件 note.txt

touch /home/book/docs/plan.md # 在指定目录创建空文件 plan.md

touch a.txt b.txt c.txt # 一次性创建多个空文件(a.txt、b.txt、c.txt)

2. 文件内容查看命令
1. cat

全名concatenate(连接、拼接)

核心功能:读取文件内容并打印到终端,默认一次性输出所有内容(适合短文件,长文件会刷屏)。

最常用选项

  • -nnumber(编号)------ 显示内容时给所有行加上行号(包括空行)。

例:cat -n /etc/hosts → 查看 hosts 文件并显示每行的行号。

  • -bnumber-nonblank(非空行编号)------ 只给非空行加行号(空行不编号)。

例:cat -b notes.txt → 查看笔记文件,仅有效内容行带编号。

2. more

全名more(更多)

核心功能 :分页显示长文件内容(适合内容超过一屏的文件),只能向下翻页

常用操作(无传统 "- 选项",靠按键交互)

  • 空格键:向下翻一屏;
  • Enter 键:向下翻一行;
  • q 键:退出查看。

例:more /var/log/dmesg → 分页查看系统启动日志(内容较长,逐屏浏览)。

3. less

全名less(更少,取自 "less is more" 的设计理念)

核心功能 :比 more 更灵活的分页工具,支持上下翻页、搜索,适合复杂浏览长文件。

高频交互操作

  • ↑/↓ 方向键:上下翻一行;
  • 空格键:向下翻一屏;
  • b 键:向上翻一屏;
  • / 关键词 :向下搜索 "关键词"(如 /error 搜索包含 error 的行);
  • n 键:跳转到下一个匹配的关键词;
  • N 键:跳转到上一个匹配的关键词;
  • q 键:退出查看。

例:less /var/log/syslog → 分页查看系统日志,可搜索 "warning" 定位警告信息。

4. head

全名head(头部)

核心功能 :显示文件的开头部分内容(默认前 10 行)。

最常用选项

  • -n 数字number(行数)------ 指定显示前 N 行(-n 可省略,直接写数字,如 head -5 等价于 head 5)。

例 1:head -3 /etc/passwd → 显示用户配置文件的前 3 行(查看前几个用户)。

例 2:head 6 README.md → 显示 README 的前 6 行(快速了解文件开头)。

5. tail

全名tail(尾部)

核心功能 :显示文件的结尾部分内容(默认后 10 行),尤其适合监控动态更新的文件(如日志)。

最常用选项

  • -n 数字:指定显示后 N 行(同 head-n 可省略)。

例:tail -4 /var/log/auth.log → 显示认证日志的最后 4 行(查看最近的登录记录)。

  • -ffollow(跟随)------ 实时跟踪文件新增内容(文件更新时自动显示新行,按 Ctrl+C 退出)。

例:tail -f /var/log/nginx/access.log → 实时监控 Nginx 的访问日志(用户请求时会实时输出新记录)。

总结:如何选?

  • 短文件(1-2 屏)→ cat(快速全览);
  • 长文件(需翻页)→ less(功能最全,优先用);
  • 只看开头 / 结尾几行 → head/tail
  • 实时监控日志 → tail -f(核心场景)。

这些命令是查看配置文件、日志的必备工具,记住 -n(指定行数)和 less 的搜索功能,基本能覆盖大部分场景~

3. 系统信息命令
1. uname

全名unix name(Unix 名称)

核心功能:显示当前系统的内核及硬件架构相关信息。

最常用选项

  • -aall(全部)------ 显示完整系统信息(最常用),输出包含:内核名称 主机名 内核版本 内核编译时间 硬件架构 操作系统

例:uname -a → 输出如 Linux ubuntu 5.4.0-91-generic 2023-10-01 x86_64 GNU/Linux(分别对应:内核是 Linux,主机名 ubuntu,内核版本 5.4.0-91,x86_64 架构,系统是 GNU/Linux)

2. df

全名disk free(磁盘空闲)

核心功能:查看系统磁盘分区的空间使用情况(总容量、已用、可用、挂载点)。

最常用选项

  • -hhuman-readable(人类可读)------ 以 K、M、G 为单位显示(默认是字节,不直观)。例:df -h → 输出示例:

    复制代码
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1       20G   8G   12G   40% /
    /dev/sdb1       100G  30G  70G   30% /data

    (含义:/dev/sda1 分区总大小 20G,已用 8G,挂载在根目录 /

3. du

全名disk usage(磁盘使用)

核心功能 :查看单个文件或目录的磁盘占用大小(与 df 不同:df 看分区整体,du 看具体文件 / 目录)。

最常用选项

  • -ssummary(汇总)------ 只显示目录的总大小(不列出子目录细节)。
  • -hhuman-readable(人类可读)------ 以 K、M、G 为单位显示。
  • 组合 -sh :显示目录总大小(最常用)。例:du -sh /home/book → 输出 5.2G /home/book(表示 book 用户主目录总占用 5.2G)。
4. top / htop

全名top 取自 "table of processes"(进程表格);htoptop 的增强版(无特定全名,强调 "更人性化")。

核心功能:实时监控系统进程的资源占用(CPU、内存、运行状态等),动态刷新。

最常用操作(无传统 "- 选项",靠交互按键)

  • top (基础工具,系统自带):
    • q:退出监控;
    • P(大写):按 CPU 占用率排序(默认,快速找最耗 CPU 的进程);
    • M(大写):按内存占用率排序;
    • k:输入进程 ID(PID)后按回车,可杀死指定进程(需谨慎)。
  • htop (增强版,需安装:sudo apt install htop):
    • 优势:支持鼠标操作、颜色区分进程状态、更直观的界面;
    • 操作类似 top,但可直接用方向键选中进程,按 F9 选择信号杀死进程。
5. ps

全名process status(进程状态)

核心功能 :查看系统当前运行的进程快照(某一时刻的静态状态,非实时刷新,与 top 互补)。

最常用选项组合

  • aall(所有用户的进程,包括其他用户);

  • uuser-oriented(显示用户相关信息,如用户名、CPU / 内存占用率);

  • x:包括无终端(tty)的进程(如后台服务)。

  • 组合 ps aux :显示系统所有进程的详细快照(最常用)。例:ps aux | grep ssh → 用管道(|)结合 grep 筛选与 ssh 相关的进程,输出包含:

    plaintext

    复制代码
    root      1234  0.0  0.1  12345  6789 ?        Ss   09:00   0:00 /usr/sbin/sshd

    (含义:root 用户运行的 sshd 进程,PID 是 1234,CPU 占用 0.0%)

总结场景:

  • 查系统版本 / 架构 → uname -a
  • 查磁盘分区空间 → df -h
  • 查文件夹大小 → du -sh 目录路径
  • 实时监控耗资源进程 → tophtop
  • 查某一时刻的进程快照 → ps aux | grep 关键词
4. 用户与权限管理命令
  • useradd/userdel:创建 / 删除用户(需 root 权限);

例:sudo useradd newuser(创建 newuser 用户)。

  • passwd:修改用户密码;

例:passwd newuser(修改 newuser 的密码)。

  • su/sudo:切换用户 / 临时获取 root 权限(su - 切换到 root,sudo 命令 以 root 权限执行命令);

例:sudo rm /tmp/file(以 root 权限删除 /tmp/file)。

  • chmod:修改文件 / 目录权限(权限分读 r(4)、写 w(2)、执行 x(1),格式:chmod [用户/组/其他]±=权限 文件名);

例:chmod u+x script.sh(给文件所有者添加执行权限);chmod 755 file(所有者可读可写可执行,组和其他用户可读可执行)。

  • chown:修改文件 / 目录的所有者(需 root 权限);

例:sudo chown book:book file.txt(将 file.txt 的所有者和所属组改为 book)。

5. 网络相关命令
  • ping:测试网络连通性(ping -c 4 baidu.com 发送 4 个数据包);

例:ping baidu.com(测试与百度服务器的连通性)。

  • ifconfig/ip:查看 / 配置网络接口(ifconfig 较老,ip addr 更推荐);

例:ip addr(显示所有网卡的 IP 地址等信息)。

  • netstat/ss:查看网络连接(netstat -tuln 显示监听的 TCP/UDP 端口);

例:ss -tuln(查看当前系统监听的端口)。

6.查找命令
1.which

专门用于查找系统中可执行命令 所在路径的工具,它会在环境变量 PATH(存储命令搜索路径的变量)中搜索指定命令的位置。

核心功能:告诉你 "某个命令(如 lsgcc)实际存放在硬盘的哪个目录"。

语法:which 命令名

示例:

复制代码
which ls   # 查找ls命令的位置,输出:/bin/ls
which gcc  # 查找gcc编译器的位置,输出:/usr/bin/gcc
which python3  # 查找python3的位置,输出:/usr/bin/python3

特点:

  • 只找可执行命令(二进制文件或脚本),不找普通文件 / 目录;
  • 只在 PATH 变量定义的目录(如 /bin/usr/bin)中搜索;
2.find

find 是 Linux 中最灵活的文件查找工具,可根据路径、文件名、大小、修改时间、权限等多种条件,在指定目录(及子目录)中搜索文件或目录。

核心功能:

  • 从指定目录开始,递归查找符合条件的文件 / 目录(支持复杂筛选)。

基本语法:

复制代码
find [查找起始路径] [筛选条件] [操作]

常用筛选条件(高频):

条件 含义 示例
-name "文件名" 按文件名匹配(支持通配符) find /home -name "*.txt" → 在 /home 下找所有 .txt 文件
-type f/d 按类型筛选:f 是文件,d 是目录 find /etc -type d -name "conf*" → 在 /etc 下找以 conf 开头的目录
-size +N/-N 按大小筛选:+N 大于 N,-N 小于 N(单位:k/K、m/M、g/G) find /var -size +100M → 在 /var 下找大于 100M 的文件
-mtime +N/-N 按修改时间筛选:+N 早于 N 天前,-N 晚于 N 天内 find ~ -mtime -3 → 在当前用户主目录下找 3 天内修改过的文件

实用示例:

  1. 在当前目录(.)及子目录中,查找所有 .sh 后缀的脚本文件:

    复制代码
    find . -name "*.sh"
  2. /tmp 目录中,查找 1 小时内修改过的普通文件(非目录):

    复制代码
    find /tmp -type f -mmin -60  # -mmin 按分钟,-60 表示60分钟内
  3. 查找 /usr/local 下权限为 755 的目录:

    复制代码
    find /usr/local -type d -perm 755
3.通配符

通配符是一类特殊字符,用于模糊匹配文件名或路径 ,在 lsfindcp 等涉及文件操作的命令中频繁使用,核心作用是 "批量匹配符合规则的文件"。

常用通配符及含义:

通配符 含义 示例
* 匹配任意个字符(包括 0 个) *.txt → 匹配所有以 .txt 结尾的文件(如 a.txtfile123.txt
? 匹配单个字符 file?.log → 匹配 file1.logfilea.log(文件名中 "?" 位置是 1 个任意字符)
[abc] 匹配括号内的任意一个字符 [1-3].txt → 匹配 1.txt2.txt3.txt- 表示范围)
[!abc][^abc] 匹配不在括号内的字符 [!a-z].txt → 匹配不以小写字母开头的 .txt 文件(如 1.txtA.txt

通配符在命令中的使用:

  1. 结合 ls 批量查看文件:

    复制代码
    ls *.py   # 列出当前目录所有 .py 后缀的文件
    ls doc_?.pdf  # 列出 doc_1.pdf、doc_x.pdf 等(文件名中间有1个任意字符)
  2. 结合 find 查找文件(注意:find 中用 -name 时,通配符通常需要用引号包裹,避免被 Shell 提前解析):

    复制代码
    find /data -name "report_[0-9]*.csv"  # 查找 /data 下以 report_数字 开头的 .csv 文件
  3. 结合 cp 批量复制文件:

    复制代码
    cp /home/book/photo_*.jpg ./images/  # 把 /home/book 下所有 photo_ 开头的 .jpg 复制到当前 images 目录
4.grep
  • 全名Global Regular Expression Print(全局正则表达式打印)
  • 核心功能 :在文件或输入文本中,搜索匹配指定模式(字符串或正则表达式)的行,并输出这些行。

最常用选项:

选项 功能 示例
-i 忽略大小写(匹配时不区分大写和小写) grep -i "error" log.txt → 查找 log.txt 中包含 "error" 或 "ERROR" 的行
-n 显示匹配行的行号 grep -n "warning" app.log → 输出包含 "warning" 的行及其行号(如 5: WARNING: low memory
-r 递归搜索目录下的所有文件 grep -r "config" /etc → 在 /etc 目录及子目录中,查找所有包含 "config" 的文件及内容
-v 反向匹配(输出不包含模式的行) grep -v "debug" run.log → 输出 run.log 中所有不包含 "debug" 的行
5. wc
  • 全名Word Count(单词计数)
  • 核心功能 :统计文本的行数、单词数、字节数(默认输出这三个数值)。

最常用选项:

选项 功能 示例
-l(小写 L) 只统计行数 wc -l file.txt → 输出 file.txt 的总行数(如 156 表示 156 行)
-w 只统计单词数(以空格 / 标点分隔的字符串) wc -w poem.txt → 输出 poem.txt 中的单词总数
-c 只统计字节数(包含所有字符,包括换行符) wc -c data.bin → 输出二进制文件 data.bin 的大小(字节)
6.管道符(|
  • 核心作用 :将前一个命令的输出 ,直接作为后一个命令的输入,实现 "命令串联",让简单命令组合成强大的功能。
  • 形象理解:像 "管道" 一样传递数据,前一个命令的 "输出" 是后一个命令的 "输入"。
相关推荐
巴渝小禹3 小时前
【Ubuntu】ubuntu虚拟机磁盘不够扩容后开机黑屏-解决方案
linux·ubuntu
老黄编程3 小时前
08-ubuntu如何获取发行版代号
linux·运维·ubuntu
草莓熊Lotso3 小时前
Linux 权限管理进阶:从 umask 到粘滞位的深度解析
linux·运维·服务器·人工智能·ubuntu·centos·unix
尘似鹤5 小时前
linux驱动学习---有些节点不会生成platform_device,怎么访问它们
linux
iCxhust5 小时前
windows环境下在Bochs中运行Linux0.12系统
linux·运维·服务器·windows·minix
七七七七078 小时前
【计算机网络】深入理解ARP协议:工作原理、报文格式与安全防护
linux·服务器·网络·计算机网络·安全
lhxcc_fly12 小时前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat
摇滚侠12 小时前
Spring Boot3零基础教程,Spring Boot 应用打包成 exe 可执行文件,笔记91 笔记92 笔记93
linux·spring boot·笔记
yuanManGan12 小时前
走进Linux的世界:初识操作系统(Operator System)
android·linux·运维