Linux的常用命令总结
目录
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 访问日志 |