Linux 常用命令大全
Linux 常用命令大全
Lynx Frost本文整理了 Linux 系统中文件操作、权限管理、系统监控、网络操作等高频命令,覆盖新手入门到日常运维场景,格式清晰可直接查阅。
一、文件与目录操作命令(最基础高频)
1. ls - 列出目录内容
功能:列出指定目录下的文件 / 目录,默认列出当前目录。核心参数:
-l(长格式):显示文件权限、所有者、大小、修改时间等详细信息。-a(all):显示所有文件(含隐藏文件,以.开头)。-h(human-readable):以人类可读格式显示文件大小(如 KB、MB)。-r(reverse):反向排序(默认按字母升序)。-t(time):按修改时间排序(最新在前)。
示例:
ls -lha # 长格式显示当前目录所有文件,含隐藏文件,大小人性化显示 |
2. cd - 切换工作目录
功能:切换当前终端的工作目录。核心用法:
cd 目录路径:切换到指定目录(绝对路径 / 相对路径)。cd ~或cd:切换到当前用户的家目录(如/home/ubuntu)。cd ..:切换到上级目录。cd -:切换到上一次所在的目录。
示例:
cd /etc/nginx # 绝对路径切换到nginx配置目录 |
3. pwd - 显示当前工作目录
功能:打印当前终端所在的绝对路径。
示例:
pwd # 输出如:/home/user/Documents |
4. mkdir - 创建目录
功能:创建新目录。核心参数:
-p(parents):递归创建多级目录(父目录不存在时自动创建)。-m(mode):创建时指定目录权限(如 755)。
示例:
mkdir test # 创建单个目录test |
5. rm - 删除文件 / 目录
功能:删除文件或目录,慎用(无回收站,删除后难恢复)。核心参数:
-f(force):强制删除(忽略不存在的文件,不提示)。-r(recursive):递归删除目录及目录内所有内容(删除目录必须用)。-i(interactive):删除前提示确认(默认部分系统启用)。
示例:
rm file.txt # 删除单个文件file.txt |
6. cp - 复制文件 / 目录
功能:复制文件或目录到指定位置。核心参数:
-r(recursive):递归复制目录(复制目录必须用)。-p(preserve):保留文件的权限、所有者、修改时间等属性。-f(force):强制覆盖目标文件(无需提示)。-a(archive):等价于-dR --preserve=all,适用于备份(保留所有属性 + 递归复制)。
示例:
cp file.txt /home/user/ # 复制file.txt到/home/user目录下 |
7. mv - 移动 / 重命名文件 / 目录
功能:移动文件 / 目录到指定位置,或重命名文件 / 目录。核心参数:
-f(force):强制覆盖目标文件(无提示)。-i(interactive):覆盖前提示确认。
示例:
mv file.txt newfile.txt # 重命名file.txt为newfile.txt |
8. touch - 创建空文件 / 修改文件时间戳
功能:创建空白文件,或更新文件的访问时间、修改时间(默认两者都更新)。核心参数:
-d(date):指定时间戳(如2024-01-01 10:00)。-m(modify):仅更新修改时间。-a(access):仅更新访问时间。
示例:
touch test.txt # 创建空文件test.txt |
9. cat - 查看文件内容
功能:连接并打印文件内容(适合查看小文件)。核心参数:
-n(number):显示行号。-b(number-nonblank):仅对非空行显示行号。-T(show-tabs):显示制表符(Tab)为^I。
示例:
cat /etc/hosts # 查看hosts文件内容 |
10. more/less - 分页查看大文件
功能:分页显示文件内容(适合大文件,避免内容刷屏)。核心区别:
more:仅支持向下滚动(空格翻页,Enter 换行,q 退出)。less:支持上下滚动、搜索(更灵活,/关键词搜索,n下一个,q退出)。
示例:
more /var/log/syslog # 分页查看系统日志(仅向下翻) |
11. head/tail - 查看文件首尾内容
功能:head查看文件开头部分,tail查看文件结尾部分。核心参数:
-n N:显示前 N 行(head)或后 N 行(tail),默认 10 行。-f(follow):实时跟踪文件更新(tail 专属,适合查看日志)。
示例:
head -5 /etc/passwd # 查看passwd文件前5行 |
12. find - 查找文件 / 目录
功能:按路径、名称、大小、时间等条件查找文件 / 目录。核心参数:
-name "文件名":按名称查找(支持通配符*、?)。-path "路径":按路径查找。-size [+/-]大小:按大小查找(如+100M大于 100MB,-10K小于 10KB)。-mtime [+/-]天数:按修改时间查找(如+7修改时间超过 7 天,-124 小时内修改)。-type f/d:指定查找类型(f 文件,d 目录)。-exec 命令 {} \;:对查找结果执行指定命令({}代指查找结果)。
示例:
find /home -name "*.txt" # 在/home目录下查找所有.txt文件 |
13. grep - 文本搜索工具
功能:在文件或命令输出中搜索匹配的字符串 / 正则表达式。核心参数:
-i(ignore-case):忽略大小写。-n(line-number):显示匹配行的行号。-v(invert-match):反向匹配(显示不包含关键词的行)。-r(recursive):递归搜索目录下所有文件。-E(extended-regexp):支持扩展正则表达式(无需转义+、|等)。
示例:
grep "error" /var/log/syslog # 在系统日志中搜索"error"字符串 |
二、文件权限与用户管理命令
1. chmod - 修改文件 / 目录权限
功能:修改文件或目录的访问权限(所有者、组用户、其他用户的读 / 写 / 执行权限)。权限表示:
- 数字法(常用):
r=4、w=2、x=1,权限组合为三者之和(如755= 所有者 rwx,组用户 rx,其他用户 rx)。 - 符号法:
u(所有者)、g(组用户)、o(其他用户)、a(所有用户);+(添加权限)、-(移除权限)、=(设置权限)。
示例:
chmod 755 script.sh # 设为所有者可读写执行,其他用户只读执行 |
2. chown - 修改文件 / 目录所有者
功能:修改文件或目录的所有者(需 root 权限或文件所有者)。核心用法:chown [所有者][:组] 文件/目录
示例:
sudo chown user:user file.txt # 将file.txt的所有者和组改为user |
3. chgrp - 修改文件 / 目录所属组
功能:单独修改文件或目录的所属组(chown可替代,但该命令更专注)。
示例:
chgrp users file.txt # 将file.txt的所属组改为users |
4. useradd - 创建新用户
功能:创建 Linux 系统用户(需 root 权限)。核心参数:
-m(create-home):自动创建用户家目录(如/home/用户名)。-s shell路径:指定用户登录 shell(如/bin/bash,默认/bin/sh)。-g 组名:指定用户初始组。-G 组名1,组名2:指定用户附加组。
示例:
sudo useradd -m -s /bin/bash newuser # 创建新用户newuser,自动创建家目录,登录shell为bash |
5. passwd - 修改用户密码
功能:修改当前用户或其他用户的密码(修改其他用户需 root 权限)。核心参数:
-l(lock):锁定用户(禁止登录)。-u(unlock):解锁用户。-d(delete):删除用户密码(登录无需密码)。
示例:
passwd # 修改当前用户密码(输入时密码不显示) |
6. userdel - 删除用户
功能:删除系统用户(需 root 权限)。核心参数:
-r(remove):递归删除用户家目录和邮件目录(默认仅删除用户账号)。
示例:
sudo userdel -r newuser # 彻底删除newuser用户及家目录 |
7. groupadd/groupdel - 组管理
功能:groupadd创建用户组,groupdel删除用户组(需 root 权限)。
示例:
sudo groupadd dev # 创建名为dev的用户组 |
8. id/whoami/w - 查看用户信息
id:显示当前用户的 UID、GID 及所属组。whoami:显示当前登录用户名。w:显示当前系统所有登录用户及他们的操作。
示例:
id # 输出如:uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom)... |
三、系统管理与进程命令
1. ps - 查看进程状态
功能:列出当前系统的进程信息。核心参数:
aux:显示所有用户的所有进程(最常用组合)。-ef:显示进程的父进程 ID(PPID)、进程 ID(PID)等详细信息。-u 用户名:仅显示指定用户的进程。
示例:
ps aux # 查看所有进程(USER用户名、PID进程ID、%CPU CPU使用率、%MEM内存使用率、COMMAND命令) |
2. top - 实时监控系统资源与进程
功能:实时动态显示系统 CPU、内存、进程等资源使用情况(默认每 3 秒刷新)。交互快捷键:
P:按 CPU 使用率排序(默认)。M:按内存使用率排序。N:按进程 ID(PID)排序。k:终止指定 PID 的进程。q:退出 top。
示例:
top # 启动实时监控 |
3. kill - 终止进程
功能:向进程发送信号,实现终止、重启等操作(需知道进程 PID,root 可终止任意进程)。核心信号:
-15(SIGTERM,默认):优雅终止进程(允许进程清理资源)。-9(SIGKILL):强制终止进程(立即杀死,无清理,慎用)。-1(SIGHUP):重启进程(部分服务如 nginx、apache 支持)。
示例:
kill 1234 # 向PID为1234的进程发送SIGTERM信号(优雅终止) |
4. systemctl - 系统服务管理(Systemd 系统)
功能:管理系统服务(启动、停止、重启、设置开机自启,适用于 Ubuntu 16.04+、CentOS 7+)。核心用法:
systemctl start 服务名 # 启动服务 |
示例:
sudo systemctl start nginx # 启动nginx服务 |
5. df - 查看磁盘空间使用情况
功能:显示文件系统的磁盘空间使用情况(总容量、已用、可用、挂载点)。核心参数:
-h(human-readable):人性化显示大小(KB/MB/GB)。-T(type):显示文件系统类型(如 ext4、xfs)。
示例:
df -h # 查看所有挂载的文件系统磁盘使用情况 |
6. du - 查看目录 / 文件磁盘占用
功能:计算文件或目录占用的磁盘空间(与df区别:df看文件系统整体,du看具体文件 / 目录)。核心参数:
-h:人性化显示大小。-s(summarize):仅显示总大小(不显示子目录详情)。-c(total):显示总计大小。
示例:
du -sh /home/user # 查看/home/user目录总占用空间 |
7. free - 查看内存使用情况
功能:显示系统内存(物理内存、交换分区)的使用情况。核心参数:
-h:人性化显示大小。-m:以 MB 为单位显示(默认 KB)。-g:以 GB 为单位显示。
示例:
free -h # 人性化显示内存使用情况 |
8. uname - 查看系统信息
功能:显示系统内核版本、主机名、硬件架构等信息。核心参数:
-a(all):显示所有系统信息(最常用)。-r:仅显示内核版本。-n:仅显示主机名。
示例:
uname -a # 输出如:Linux ubuntu 5.4.0-150-generic #167-Ubuntu SMP Wed May 24 15:51:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
9. hostname - 查看 / 修改主机名
功能:显示或临时修改系统主机名(永久修改需编辑配置文件)。
示例:
hostname # 显示当前主机名 |
10. date - 查看 / 修改系统时间
功能:显示或修改系统日期和时间。
示例:
date # 显示当前系统时间(如:Wed Oct 18 15:30:22 CST 2023) |
四、网络操作命令
1. ifconfig/ip - 网络接口配置
功能:查看或配置网络接口(IP 地址、子网掩码、MAC 地址等)。
ifconfig:传统命令(部分系统需安装 net-tools 包)。ip:新一代命令(功能更全,推荐使用)。
示例:
ifconfig # 查看所有网络接口信息 |
2. ping - 测试网络连通性
功能:向目标主机发送 ICMP 请求包,测试网络是否可达。核心参数:
-c 次数:指定发送包的次数(默认无限发送,Ctrl+C 终止)。-i 间隔:指定发送间隔(默认 1 秒)。-s 大小:指定数据包大小。
示例:
ping www.baidu.com # 测试与百度的连通性(无限发送) |
3. netstat/ss - 查看网络连接状态
功能:显示系统的网络连接、端口监听、进程关联等信息。
netstat:传统命令(需安装 net-tools 包)。ss:新一代命令(更快、功能更全)。
核心参数:-t(tcp):仅显示 TCP 连接。-u(udp):仅显示 UDP 连接。-l(listen):仅显示监听状态的端口。-n(numeric):显示 IP 和端口号(不解析域名)。-p(program):显示关联的进程 PID 和名称(需 root 权限)。
示例:
netstat -tlnp # 查看所有监听的TCP端口及关联进程 |
4. curl/wget - 网络下载工具
- curl:多功能网络工具,支持 HTTP/HTTPS/FTP 等协议,可下载文件、发送请求。
- wget:专注于文件下载(支持断点续传、后台下载)。
示例:
# curl用法 |
5. scp - 远程文件复制
功能:通过 SSH 协议在本地和远程主机之间复制文件 / 目录(加密传输)。核心参数:
-r:递归复制目录。-P 端口:指定远程主机 SSH 端口(默认 22)。
示例:
# 本地文件复制到远程主机 |
6. ssh - 远程登录
功能:通过 SSH 协议远程登录 Linux 主机(加密传输,安全)。核心参数:
-p 端口:指定远程主机 SSH 端口(默认 22)。-X:启用 X11 转发(远程图形界面)。
示例:
ssh user@remote-ip # 登录远程主机(默认端口22) |
五、压缩与解压命令
1. tar - 归档 / 压缩工具(最常用)
功能:将多个文件 / 目录归档为一个 tar 包,可结合 gzip/bzip2/xz 压缩。核心参数(记忆口诀:打包压缩czf,解压xzf):
-c(create):创建归档包。-x(extract):解压归档包。-z(gzip):用 gzip 压缩 / 解压(后缀.tar.gz或.tgz)。-j(bzip2):用 bzip2 压缩 / 解压(后缀.tar.bz2)。-J(xz):用 xz 压缩 / 解压(后缀.tar.xz)。-f(file):指定归档文件名(必须放在参数最后)。-v(verbose):显示压缩 / 解压过程。-C(directory):指定解压目录(默认当前目录)。
示例:
# 压缩(tar.gz格式) |
2. zip/unzip - ZIP 格式压缩 / 解压
功能:处理 ZIP 格式的压缩文件(跨平台兼容,Windows/Linux 通用)。
示例:
# 压缩(需安装zip包) |
3. gzip/gunzip - GZ 格式压缩 / 解压
功能:压缩单个文件(不能压缩目录),压缩后原文件删除(后缀.gz)。
示例:
gzip file.txt # 压缩file.txt为file.txt.gz(原文件删除) |
六、其他实用命令
1. history - 查看命令历史
功能:显示当前用户执行过的命令历史(默认保存 1000 条,可通过HISTSIZE调整)。
示例:
history # 查看所有命令历史 |
2. alias - 设置命令别名
功能:为常用命令设置简化别名(临时生效,永久生效需写入配置文件)。
示例:
alias ll='ls -lha' # 临时设置ll为ls -lha的别名 |
3. sudo - 临时获取 root 权限
功能:允许普通用户执行需 root 权限的命令(需在/etc/sudoers中配置权限)。
示例:
sudo apt update # 以root权限更新软件源(Debian/Ubuntu) |
4. apt/yum/dnf - 包管理命令
功能:Linux 系统软件包管理工具(自动解决依赖关系)。
apt:Debian/Ubuntu 系列系统(apt-get的简化版)。yum:CentOS 6/RHEL 6 系列(已逐步被 dnf 替代)。dnf:CentOS 7+/RHEL 7 + 系列(yum 的升级版)。
示例:
# Debian/Ubuntu(apt) |
5. echo - 输出字符串 / 变量
功能:在终端输出指定字符串或环境变量的值。
示例:
echo "Hello Linux" # 输出字符串 |
6. wc - 统计文本行数 / 字数 / 字节数
功能:统计文件或命令输出的行数(-l)、单词数(-w)、字节数(-c)。
示例:
wc -l file.txt # 统计file.txt的行数 |
七、命令行实用技巧
- 管道符
|:将前一个命令的输出作为后一个命令的输入ps aux | grep nginx # 筛选nginx进程
重定向
覆盖写入文件
ls > list.txt
追加写入文件
echo "test" >> list.txt
从文件读取输入
wc -l < file.txt
通配符
*:匹配任意多个字符(如*.txt所有.txt 文件)?:匹配单个字符(如file?.txt匹配 file1.txt、file2.txt)[]:匹配括号内的任意一个字符(如file[1-3].txt匹配 file1-3.txt)
快捷键
Tab:自动补全命令 / 文件名 / 目录名(高效必备)Ctrl+C:终止当前运行的命令Ctrl+D:退出当前终端 / 登录会话(等价于 exit)Ctrl+Z:暂停当前命令(用fg恢复到前台,bg放到后台)


