Linux的常用命令总结
命令分类 | 命令 | 核心功能 | 常用选项及说明 | 示例 | |
---|---|---|---|---|---|
文件 / 目录操作 | ls | 列出当前或指定目录下的文件 / 目录 | - l :以长格式显示(含权限、大小、修改时间等)- a :显示隐藏文件(以. 开头)- h :大小以 “KB/MB/GB” 人性化显示 | - ls -l :长格式列出当前目录文件- ls -ah /home :显示/home 下所有文件(含隐藏)并人性化显示大小 | |
cd | 切换当前工作目录 | - 无选项,直接跟目录路径 - ~ :快速切换到用户主目录- .. :切换到上级目录- . :当前目录 | - cd /usr/local :切换到/usr/local - cd ~ :回到自己的主目录- cd .. :从/home/user 回到/home | ||
pwd | 显示当前工作目录的绝对路径 | 无常用选项 | - pwd :若当前在用户主目录,输出/home/your_username | ||
mkdir | 创建新目录 | - p :递归创建多级目录(父目录不存在时自动创建)- m :创建时指定目录权限(如755 ) | - mkdir test :在当前目录创建test 目录- mkdir -p /a/b/c :一次性创建a 、a/b 、a/b/c 三级目录 | ||
rm | 删除文件或目录(慎用,删除后难恢复) | - f :强制删除(不提示确认)- r :递归删除目录及内容(删除目录必须加此选项) | - rm file.txt :删除file.txt (会提示确认)- rm -rf dir :强制删除dir 目录及所有子内容(无提示) | ||
cp | 复制文件或目录 | - r :递归复制目录及内容(复制目录必须加此选项)- i :覆盖前提示确认- v :显示复制过程 | - cp file1.txt /home :将file1.txt 复制到/home 目录- cp -r dir1 dir2 :将dir1 目录及内容复制为dir2 | ||
mv | 移动文件 / 目录,或重命名(同一目录下移动即重命名) | - i :覆盖前提示确认- v :显示移动过程 | - mv file.txt /tmp :将file.txt 移动到/tmp 目录- mv oldname.txt newname.txt :将文件重命名为newname.txt | ||
touch | 创建空文件,或更新文件的修改时间(若文件已存在) | 无常用选项 | - touch newfile.txt :创建空文件newfile.txt - touch existing.txt :更新existing.txt 的修改时间为当前时间 | ||
系统信息 / 管理 | uname | 显示系统内核信息 | - a :显示完整系统信息(内核版本、主机名、硬件架构等)- r :仅显示内核版本 | - uname -a :输出类似Linux ubuntu 5.4.0-150-generic x86_64 GNU/Linux | |
top | 实时监控系统进程、CPU / 内存占用(动态刷新) | - 交互快捷键:q :退出P :按 CPU 占用排序M :按内存占用排序 | - 直接输入top :进入监控界面,按q 退出 | ||
ps | 查看当前系统的进程快照(静态显示某一时刻的进程) | - aux :显示所有用户的所有进程(最常用组合)- ef :显示进程树及父进程 ID | - `ps aux | grep python:查看所有与 python` 相关的进程 | |
kill | 终止指定进程(通过进程 ID,即 PID) | - 9 :强制终止进程(信号 9,无法被进程忽略)- 15 :默认信号(让进程正常退出) | - 先通过 `ps aux | grep java找到PID为1234的进程,再执行 kill -9 1234` 强制终止该 Java 进程 | |
df | 查看磁盘分区的空间使用情况 | - h :以 “KB/MB/GB” 人性化显示- T :显示分区的文件系统类型(如 ext4、xfs) | - df -h :查看所有分区的空间使用,输出类似/dev/sda1 20G 5.2G 14G 28% / | ||
free | 查看系统内存使用情况(物理内存、交换内存) | - h :人性化显示(如 MiB、GiB)- m :以 MB 为单位显示 | - free -h :输出类似Mem: 7.7Gi 2.1Gi 4.3Gi 0.1Gi 1.3Gi 5.4Gi | ||
用户 / 权限管理 | sudo | 以超级用户(root)权限执行命令(需当前用户在 sudoers 列表中) | - s :切换到 root 用户的 shell- u :指定以某个用户的身份执行命令 | - sudo apt install vim :以 root 权限安装vim 编辑器- sudo -u user1 ls /home/user1 :以user1 身份查看其主目录 | |
su | 切换用户(默认切换到 root,需输入目标用户密码) | - 后跟用户名:切换到指定用户 - - :切换用户时同时加载其环境变量(推荐) | - su - :切换到 root 并加载 root 的环境- su - user2 :切换到user2 用户 | ||
chmod | 修改文件 / 目录的权限(读 r=4、写 w=2、执行 x=1, Owner/Group/Other) | - 数字模式:如755 (Owner=rwx,Group=rx,Other=rx)- 符号模式:如 chmod u+x file (给 Owner 加执行权限) | - chmod 755 script.sh :让脚本所有者可读写执行,其他用户只读执行- chmod o-w file.txt :取消其他用户对file.txt 的写权限 | ||
chown | 修改文件 / 目录的所有者和所属组 | - R :递归修改目录及子内容的所有者- 格式: chown 所有者:所属组 文件 | - chown user1:user1 file.txt :将file.txt 的所有者和组改为user1 - chown -R user2:group2 dir :递归修改dir 目录的所有者和组 | ||
网络操作 | ping | 测试与目标主机的网络连通性(发送 ICMP 数据包) | - c :指定发送数据包的次数(避免无限循环)- i :指定数据包发送间隔(秒) | - ping -c 4 baidu.com :向百度发送 4 个数据包,测试连通性 | |
ifconfig | 查看 / 配置网络接口信息(如 IP 地址、MAC 地址,部分系统需安装 net-tools) | - 无选项:显示所有激活的网络接口 - 接口名:显示指定接口信息(如 ifconfig eth0 ) | - ifconfig :输出类似eth0: inet 192.168.1.100 netmask 255.255.255.0 | ||
ip | 替代ifconfig 的新一代网络配置命令(功能更全,默认预装) | - addr :查看所有网络接口的 IP 地址- link :查看网络接口的 MAC 地址 | - ip addr :查看所有接口的 IP 信息- ip link show eth0 :查看eth0 的 MAC 地址 | ||
curl | 从网络下载文件或发送 HTTP 请求(命令行工具) | - O :保存文件时使用原文件名- L :自动跟随 HTTP 重定向 | - curl -O https://example.com/file.zip :下载file.zip 并保留原文件名- curl https://example.com :查看该网站的 HTML 内容 | ||
文件内容查看 | cat | 查看文件内容(适合小文件,直接输出所有内容) | - n :显示行号- A :显示所有特殊字符(如换行符$ 、制表符^I ) | - cat -n test.txt :显示test.txt 的内容并带行号- cat file1.txt file2.txt :合并显示两个文件的内容 | |
more | 分页查看文件内容(适合大文件,只能向下翻页) | - 交互快捷键:空格 :翻一页Enter :翻一行q :退出 | - more /var/log/syslog :分页查看系统日志文件 | ||
less | 分页查看文件内容(功能比more 强,支持上下翻页、搜索) | - 交互快捷键:↑↓ :上下翻行/关键词 :搜索关键词q :退出 | - less /etc/passwd :查看用户配置文件,可搜索 “root” 关键词 | ||
grep | 在文件或命令输出中搜索关键词(强大的文本过滤工具) | - i :忽略大小写- n :显示匹配行的行号- r :递归搜索目录下所有文件 | - grep -n "error" log.txt :在log.txt 中搜索 “error” 并显示行号- grep -r "import" /home/code :递归搜索/home/code 下所有含 “import” 的文件 | ||
head | 查看文件的前 N 行(默认前 10 行) | - n :指定查看的行数(如-n 5 或直接-5 ) | - head test.txt :查看test.txt 前 10 行- head -5 /etc/profile :查看/etc/profile 前 5 行 | ||
tail | 查看文件的后 N 行(默认后 10 行,常用於监控日志) | - n :指定查看的行数- f :实时监控文件更新(日志新增内容会实时显示) | - tail -10 /var/log/auth.log :查看认证日志后 10 行- tail -f /var/log/nginx/access.log :实时监控 Nginx 访问日志 |