前言

在服务器运维、嵌入式开发、云计算等领域,Linux 凭借其开源稳定、高效灵活的特性占据着核心地位。对于初学者而言,命令行操作是打开 Linux 世界的钥匙,摆脱图形界面的依赖,熟练掌握核心命令,能大幅提升工作效率。

本文将围绕Linux 基本操作、Linux 命令介绍、系统操作类命令、目录与文件管理命令四大核心方向,结合实战示例,手把手教你玩转 Linux 基础操作,告别 “终端恐惧症”。

Linux基本操作

常用快捷键

熟练运用快捷键大幅提升了工作效率,是Linux运维工程师必不可缺的技能,所以我们优先从快捷键开始

终端控制类

  • Ctrl + L:清屏(等价于 clear 命令)
  • Ctrl + D:退出当前 Shell / 终端会话(等价于 logout
  • Ctrl + C:强制终止当前正在运行的命令或进程
  • Ctrl + Z:将当前进程挂起(放到后台),可配合 fg 恢复到前台

历史命令类

  • ↑ / ↓:上翻 / 下翻历史命令
  • Ctrl + R:反向搜索历史命令(输入关键词后自动匹配,回车执行)
  • !!:重复执行上一条命令(例如 sudo !! 用管理员权限执行上一条命令)
  • !n:执行历史中第 n 条命令(history 可查看编号)

补全与提示类

  • Tab:自动补全命令、文件名、目录名(按一次补全,按两次显示所有候选)
  • Alt + .:自动插入上一条命令的最后一个参数(非常实用,比如 ls /tmp 后,再输入 cd Alt + . 就会自动补全 /tmp

设置命令别名

1. 临时设置别名(仅当前终端有效)

直接在终端输入 alias 自定义别名='原命令' 即可创建临时别名,关闭终端后别名会失效。

# 把 ls -alh 简化为 ll(最常用的别名之一)
alias ll='ls -alh'

# 把查看磁盘空间的 df -h 简化为 dfh
alias dfh='df -h'

# 把强制删除目录的 rm -rf 简化为 rmd(注意:rm 命令慎用,别名仅简化输入)
alias rmd='rm -rf'

设置后直接输入 ll,就会执行 ls -alh 命令,效果完全一致。

2. 查看已设置的别名
  • 查看所有别名:直接输入 alias 回车,终端会列出当前所有生效的别名。
  • 查看指定别名:alias 别名,例如 alias ll,会显示 ll='ls -alh'
3. 删除别名

如果想取消某个别名,使用 unalias 别名 即可:

# 删除 ll 别名
unalias ll

二、永久设置别名(所有终端、重启后仍生效)

临时别名仅在当前终端会话有效,想要永久生效,需要把别名写入配置文件:

1. 针对当前用户生效(推荐)

编辑用户家目录下的 .bashrc 文件(如果是 zsh 终端则编辑 .zshrc):

# 打开配置文件(用 vim 编辑器)
vim ~/.bashrc
2. 添加别名配置

在文件末尾添加自定义别名(示例):

# 基础目录查看别名
alias ll='ls -alh'
alias la='ls -A'
alias l='ls -CF'

# 系统监控别名
alias dfh='df -h'          # 人性化显示磁盘空间
alias freeh='free -h'      # 人性化显示内存使用
alias psg='ps aux | grep' # 快速过滤进程

# 目录跳转别名
alias cdh='cd /home'       # 快速跳转到 home 目录
alias cdd='cd ~/Documents' # 快速跳转到文档目录
3. 生效配置文件

添加完成后,保存并退出 vim(按 Esc → 输入 :wq → 回车),然后执行以下命令让配置立即生效:

source ~/.bashrc

如果不执行 source,则需要重新打开终端才会生效。

三、注意事项

  1. 别名名称不要和系统原有命令重名(比如不要把别名设为 ls),否则会覆盖原命令。
  2. 如果别名包含特殊字符(如 |*),需要用单引号 ' ' 包裹,避免终端提前解析。
  3. 若想删除永久别名,只需编辑 .bashrc 文件,删除对应的 alias 行,再执行 source ~/.bashrc 即可。

固定静态 IP 地址

如果我们有两台虚拟机需要组网进行通讯,那么尝试启动CentOS7-Base查看IP会发现CentOS7Base的IP地址原本应该是安装时的192.168.160.128,但是由于被CentOS7Clone占用,所以IP地址变化为192.168.160.129了

配置静态IP地址

1.首先修改网卡接口配置文件

我们只需要通过MobaXterm定位到此文件进行修改,注意,由于此文件没有扩展名,双击打开可能需要选择编辑软件

右键ifcf-ens33文件选择Open with default text editor

这四个配置项是设置静态 IP 的核心参数,每个都有明确的作用:

  1. IPADDR:虚拟机的静态 IP 地址,是它在网络中的唯一标识。
  2. NETMASK:子网掩码,用于划分局域网范围,这里表示前 3 段 IP 为网络标识。
  3. GATEWAY:默认网关,是虚拟机访问外网的 “出口”。
  4. DNS1:首选 DNS 服务器,负责把域名翻译成 IP 地址。

IPADDR前三位一定要和本机的子网字段相同,

修改后保存文件

2.重启网络服务使配置文件生效

配置文件修改完成必须重启网络服务才能生效,重启命令如下

service network restark

由于IP地址已经变化所以重启的话连接会卡死

3.修改MobaXterm连接信息

由于IP地址已经变化,我们需要修改MobaXterm配置的连接信息,最好将会话名称也改为虚拟机名称

4.重新输入密码登录

由于连接信息中已经变化,所以MobaXterm会当作新连接,需要重新输入密码,步骤不在赘述

5.检测网络连接是否正常

有时候配置错误会导致虚拟机无法连接互联网,我们可以通过ping命令测试一下

Linux命令介绍

Linux 命令数量繁多,但核心常用命令仅有数十个,根据功能可分为目录与文件管理类、系统操作类、权限管理类、文本处理类等,本文重点讲解后续两大核心分类。

命令的组成要素

完整的 Linux 命令通常由三部分组成,部分简单命令可省略选项或参数:

  • 命令主体:命令的核心名称,决定命令的基本功能(如 ls 用于列出目录内容)。
  • 选项:修饰命令的执行方式,分为短选项(-l-a,单横线 + 单个字母)和长选项(--help,双横线 + 单词)。
  • 参数:命令的操作对象,如文件、目录、进程 ID 等(如 ls /home 中,/home 就是参数)。

2.2 帮助文档查询

遇到不懂的命令,无需死记硬背,Linux 自带帮助工具:

  • 命令 --help:查看命令的简要帮助信息(如 ls --help)。
  • man 命令:查看命令的详细手册(如 man top),按 q 退出手册。

系统操作类命令

系统操作类命令主要用于查看系统状态、管理进程、监控资源,是运维和开发人员排查问题、维护系统稳定的必备工具。

3.1 系统信息查看命令

命令 核心功能 常用示例
uname 查看系统内核信息 uname -a(显示完整内核版本、主机名等)
df 查看磁盘空间使用情况 df -h(以 KB/MB/GB 人性化显示)
free 查看内存(物理 / 交换)使用情况 free -h(直观显示内存占用、剩余量)
cat /etc/os-release 查看系统发行版信息 cat /etc/os-release(区分 Ubuntu、CentOS 等)

3.2 进程管理命令

进程是 Linux 系统中运行的程序实例,进程管理命令用于查看、启动、终止进程

  1. ps:查看进程快照(静态)

    • 常用组合:ps aux(显示所有用户的所有进程详细信息)。
    • 搭配过滤:ps aux | grep java(查找所有 Java 进程)。
  2. top:实时监控进程(动态)

    • 功能:实时显示进程的 CPU 使用率、内存占用、PID 等,相当于 Linux 的 “任务管理器”。
    • 常用操作:q(退出)、P(按 CPU 排序)、M(按内存排序)。
  3. kill:终止指定进程

    • 语法:kill [信号] 进程PID
    • 常用信号:-9(强制终止,用于无响应进程)。
    • 示例:kill -9 1234(强制终止 PID 为 1234 的进程)。

3.3 系统开关机命令

注意:此类命令需管理员权限,生产环境中慎用关机 / 重启命令!

  • 关机:sudo shutdown -h now(立即关机)、sudo shutdown -h 10(10 分钟后关机)。
  • 重启:sudo reboot(立即重启)、sudo shutdown -r now(等效重启命令)。
  • 关机并关闭电源:shutdown -p 
  • 关闭电源:poweroff

3.4日期控制命令

Linux 中日期和时间控制的核心命令,这些命令常用于日志记录、脚本编写、系统时间校准等场景

查看日期 / 时间(date 命令)

date 是最常用的日期时间命令,无需权限,直接执行即可查看 / 格式化输出系统时间。

基础用法(查看当前时间)
date
# 输出示例:Thu Feb 26 20:25:10 CST 2026
格式化输出(实用场景:日志命名、脚本)

通过 +%参数 自定义输出格式,常用参数如下:

参数 含义 示例
%Y 4 位年份 2026
%m 2 位月份 02
%d 2 位日期 26
%H 24 小时制小时 20
%M 分钟 25
%S 10
%F 快捷格式(年 - 月 - 日) 2026-02-26
%T 快捷格式(时:分: 秒) 20:25:10

实战示例

# 输出 "2026-02-26 20:25:10"
date "+%F %T"

# 输出 "20260226_202510"(适合日志文件名)
date "+%Y%m%d_%H%M%S"
修改系统时间(需 root 权限)

修改系统时间需要 sudo 或 root 身份,修改后建议同步到硬件时钟,避免重启失效。

1. 直接修改时间(格式:年 - 月 - 日 时:分: 秒)

# 修改为 2026年2月26日 20:30:00
sudo date -s "2026-02-26 20:30:00"

2. 单独修改年 / 月 / 日 / 时 / 分

sudo date -s "2026-02-26"  # 仅改日期
sudo date -s "20:30:00"    # 仅改时间
timedatectl命令
标准语法格式
timedatectl [OPTIONS] [COMMAND]
一、可选 OPTIONS(参数)
选项 说明
-h/--help 查看命令帮助信息
--version 查看命令版本号
二、核心 COMMAND(指令)
指令 功能描述 示例
status(可省略) 查看系统时间、时区、NTP 同步等状态 timedatectl / timedatectl status
list-timezones 列出所有可用时区(可搭配 grep 过滤) timedatectl list-timezones | grep Shanghai
set-timezone 设置系统时区 timedatectl set-timezone Asia/Shanghai
set-time 手动设置系统时间(需先禁用 NTP) timedatectl set-time "2026-02-26 21:30:00"
set-ntp 启用 / 禁用自动 NTP 时间同步(true/false) timedatectl set-ntp true

3.5信息输出命令

echo命令的核心功能是在终端输出指定的字符串、变量内容或特殊字符,常用于脚本调试、内容输出、文件写入等场景。

一、echo 命令核心作用

echo 命令的核心功能是在终端输出指定的字符串、变量内容或特殊字符,常用于脚本调试、内容输出、文件写入等场景。

二、基础语法与常用用法
1. 基本输出(直接打印字符串)

这是最基础的用法,直接输出指定文本。

2. 输出变量内容

echo 可以解析并输出环境变量、自定义变量的值,变量前需加 $

输出系统变量
输出自定义变量

3. 输出特殊字符(转义 / 不转义)
  • -e 参数:开启转义功能,识别 \n(换行)、\t(制表符)等转义字符;
  • -e:直接输出所有字符,不解析转义。

4. 输出内容到文件(覆盖 / 追加)

结合重定向符号,可将输出内容写入文件:

  • >:覆盖文件原有内容;
  • >>:追加内容到文件末尾。

目录与管理命令

一、核心目录操作命令(高频使用)

1. 查看当前目录:pwd

作用:Print Working Directory,打印当前所在的绝对路径,避免操作时 “迷路”。

pwd
# 输出示例:/home/yourname(当前在你的家目录)
2. 切换目录:cd

作用:Change Directory,切换到指定目录,是最常用的命令之一。

# 1. 切换到绝对路径(从根目录开始)
cd /usr/local

# 2. 切换到相对路径(相对于当前目录)
cd test  # 进入当前目录下的 test 文件夹

# 3. 快捷切换(重点)
cd ~     # 切换到当前用户的家目录(等同于 cd /home/用户名)
cd ..    # 切换到上一级目录(父目录)
cd -     # 切换到上一次所在的目录(来回切换超实用)
cd /     # 切换到系统根目录
3. 查看目录内容:ls

作用:List,列出目录下的文件 / 子目录,搭配参数可展示更多信息。

# 基础用法:列出当前目录内容
ls

# 常用参数(组合使用更高效)
ls -l        # 以详细列表形式展示(包含权限、大小、修改时间等)
ls -a        # 显示隐藏文件/目录(以 . 开头的,比如 .bashrc)
ls -lh       # -l + -h:大小以 KB/MB 人性化显示(替代字节数)
ls -lt       # 按修改时间排序(最新的在最前)
ls -R        # 递归列出所有子目录内容(查看目录树)

# 示例:查看 /usr 目录下的详细人性化信息,包含隐藏文件
ls -alh /usr
4. 创建目录:mkdir

作用:Make Directory,创建空目录,支持批量 / 层级创建。

# 1. 创建单个目录
mkdir testdir

# 2. 批量创建多个目录
mkdir dir1 dir2 dir3

# 3. 层级创建目录(关键:-p 参数)
# 若 parentdir 不存在,直接创建会报错,-p 会自动创建父目录
mkdir -p parentdir/childdir/granddir
5. 删除目录:rmdir / rm -rf

作用:删除目录,注意区分 “空目录” 和 “非空目录”。

# 1. rmdir:仅能删除空目录(几乎不用,限制大)
rmdir testdir

# 2. rm -rf:强制删除非空目录(核心用法,务必谨慎!)
# -r:递归删除所有内容;-f:强制删除,不提示
rm -rf testdir  # 删除单个非空目录
rm -rf dir1 dir2  # 批量删除

# ⚠️ 致命警告:绝对不要执行 rm -rf / (删除系统所有文件)
# 建议:删除前先用 ls 确认目录路径,避免输错!
6.查看文件常用命令
1.cat命令文件所有内容

cat命令是Linux和Unix系统中常用的文本文件查看和处理工具主要用于查看内容以及合并文件内容

输出文件内容

合并文件内容

将两个文件内容合并到另一个文件

2.less命令分页查看文件内容

less命令允许用户向前后翻页,搜索文本,以及执行其他许多操作,而不需要完全加载整个文件到内存中

1. 基本打开文件

# 打开单个文件
less filename.txt

# 打开多个文件(按 :n 切换下一个,:p 切换上一个)
less file1.txt file2.txt

2. 核心交互操作(打开文件后)

操作键 功能说明
空格键 向下翻一整页
PageDown 向下翻一整页(等同空格键)
PageUp 向上翻一整页
回车键 向下翻一行
方向键↑/↓ 向上 / 下翻一行
d 向下翻半页
u 向上翻半页
G 跳转到文件末尾
g 跳转到文件开头
数字 + G 跳转到指定行(如 100G 到第 100 行)
/ 关键词 向下搜索 “关键词”(如 /error 找错误)
? 关键词 向上搜索 “关键词”
n 跳转到下一个搜索结果
N 跳转到上一个搜索结果
q 退出 less(最关键)
3.tail命令监控日志文件变化

tail 命令,这是查看文件末尾内容的核心工具,尤其适合实时监控日志文件(比如应用运行日志、系统日志)

1.显示文件尾部指定行数

2.实时监控文件变化

tail -f anaconda-ks.cfg

tail命令添加-f命令,tail会持续监控anaconda-ks.cfg文件的新增的内容

新建窗口echo命令结合重定向符号追加新的内容到anaconda-ks.cfg

返回查看tail命令结果可以发现内容已经实时显示出来了

二、进阶目录 / 文件管理命令

1. 复制目录 / 文件:cp

作用:Copy,复制文件 / 目录,目录需加 -r 参数。

# 1. 复制文件
cp file1.txt /tmp/file1_copy.txt

# 2. 复制目录(必须加 -r)
cp -r testdir /tmp/testdir_copy

# 3. 强制覆盖(-f)+ 保留属性(-p)
cp -rfp testdir /tmp/  # -p 保留文件的修改时间、权限等
2. 移动 / 重命名目录 / 文件:mv

作用:Move,既可以移动文件 / 目录,也可以重命名。

# 1. 重命名(同一目录下移动 = 重命名)
mv olddir newdir  # 把 olddir 改名为 newdir
mv file.txt newfile.txt

# 2. 移动目录/文件到指定路径
mv testdir /tmp/  # 把 testdir 移动到 /tmp 目录下
mv file.txt /tmp/testdir/  # 移动文件到目标目录

目录重命名

显示移动过程

3. 查看目录大小:du

作用:Disk Usage,查看目录 / 文件占用的磁盘空间。

# 基础用法:查看当前目录下各子目录大小(单位:KB)
du

# 常用参数
du -h        # 人性化显示(KB/MB/GB)
du -sh       # -s:汇总当前目录总大小;-h:人性化
du -lh --max-depth=1  # 只显示当前目录下一级子目录的大小(不递归)

# 示例:查看 /var 目录的总大小
du -sh /var
4. 查找目录 / 文件:find

作用:按条件查找目录 / 文件,功能强大。

# 1. 按名称查找(精准匹配)
find /home -name "testdir"  # 在 /home 下找名为 testdir 的目录/文件

# 2. 按类型查找(d = 目录,f = 文件)
find /usr -type d -name "bin"  # 只找目录类型的 bin 目录

# 3. 按大小查找
find /tmp -type d -size +100M  # 找 /tmp 下大于 100MB 的目录
5.rm删除文件或目录

Linux 中 rm 命令(删除文件 / 目录),这是日常操作高频但风险极高的命令(删错文件 / 目录可能无法恢复)

一、rm 命令核心作用

rm(Remove)用于删除文件或目录,默认只能删文件,删目录需加 -r 参数;核心风险点:Linux 中删除后无回收站,除非有备份,否则无法恢复

二、基础用法(按场景分类,安全优先)

1. 删除文件(最基础,谨慎!)

# 1. 删除单个文件(会提示确认,按 y 确认/n 取消)
rm filename.txt

# 2. 强制删除单个文件(无提示,直接删)
rm -f filename.txt

# 3. 删除多个文件(空格分隔)
rm file1.txt file2.log file3.sh

# 4. 通配符删除(按规则删文件,高频但易误删!)
rm *.log  # 删除当前目录下所有 .log 后缀的文件
rm test*  # 删除以 test 开头的所有文件

⚠️ 通配符避坑:rm * 会删除当前目录下所有文件,绝对不要在根目录 / 或重要目录(如 /usr/etc)执行!

2. 删除目录(必须加 -r 参数)

rm 默认不支持删目录,必须加 -r(递归删除目录及所有子内容),结合 -f 强制删除无提示:

# 1. 删除空目录(两种方式,推荐第二种)
rmdir empty_dir       # 仅能删空目录(无风险)
rm -r empty_dir       # 也能删空目录(通用)

# 2. 删除非空目录(核心用法,必谨慎!)
rm -r test_dir        # 删除目录+所有内容,会逐行提示确认
rm -rf test_dir       # 强制删除(无提示,最快但风险最高)

# 3. 批量删除多个目录
rm -rf dir1 dir2 temp_dir
三、关键参数汇总(清晰好记)
参数 功能说明 适用场景 风险等级
无参数 删除文件,会提示确认 删单个不重要文件
-f 强制删除,无任何提示 批量删已知安全的文件 / 目录
-r 递归删除目录及所有子内容 删目录(空 / 非空)
-rf 强制递归删除(无提示) 删非空目录(高频) 极高
-i 交互式删除(每步都提示确认) 删重要文件 / 目录,降低误删
6.vi/vim命令编辑文件

Linux 中 vi/vim 编辑器的核心用法,这是后端开发 / 运维必备技能(修改配置、编辑脚本、查看代码都要用到)。

3 种基础模式

vim 最核心的是模式切换:

模式 作用 进入方式 关键操作
命令模式(Normal) 控制光标、复制 / 删除 / 跳转、执行命令 打开文件默认进入;按 Esc 退出其他模式 移动光标、yy 复制、dd 删除、:wq 保存等
插入模式(Insert) 编辑文本(输入内容) 命令模式按 i/a/o 等键 打字输入内容,按 Esc 切回命令模式
末行模式(Command) 保存、退出、搜索替换、设置行号 命令模式按 : / ? 等键 :w 保存、:q 退出、:set nu 显示行号等

实现文档编辑

步骤1:打开编辑器时首先进入的是命令模式,使用vi编辑器打开d.txt文件

vi d.txt

步骤2:在命令模式下按下字母i/a/o则进入插入模式

步骤3:输入内容,然后按下ESC键返回命令模式

步骤4:在英文模式下输入英文冒号“:”进入底行模式,然后输入wq命令写入内容存盘退出

步骤5:检查文件是否编写成功

三、目录权限管理(关键)

Linux 中目录权限决定了 “能否进入、能否查看内容、能否创建文件”,核心命令是 chmod/chown

# 1. 修改目录权限(chmod)
chmod 755 testdir  # 所有者可读可写可执行,其他用户可读可执行(最常用)
chmod -R 755 testdir  # 递归修改目录及所有子目录/文件权限

# 2. 修改目录所属用户/组(chown)
chown user:group testdir  # 把 testdir 归属给 user 用户和 group 组
chown -R user:group testdir  # 递归修改

至此Linux的基本命令已经学习完毕,下面是我整理的一个脑图

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐