Linux 基础命令大全(入门必备)
# Linux 基础命令大全(入门必备)
Linux 命令是操作 Linux 系统的核心,以下整理了最常用的基础命令,涵盖文件操作、目录管理、系统信息、权限控制等核心场景,附带示例和说明,适合新手快速上手。
## 一、文件与目录操作(最常用)
### 1. 目录切换 `cd`
切换当前工作目录,是使用频率最高的命令。
```bash
cd /home # 切换到绝对路径 /home(从根目录开始)
cd Documents # 切换到相对路径 Documents(当前目录下的子目录)
cd .. # 切换到上一级目录
cd ~ # 切换到当前用户的家目录(如 root 用户是 /root,普通用户是 /home/用户名)
cd - # 切换到上一次所在的目录
```
### 2. 查看目录内容 `ls`
列出目录中的文件和子目录,常用参数可组合使用。
```bash
ls # 列出当前目录的文件(不含隐藏文件)
ls -l # 长格式显示(权限、所有者、大小、修改时间等),缩写为 ll
ls -a # 显示所有文件(含隐藏文件,以 . 开头的文件)
ls -lh # 长格式 + 人性化显示文件大小(如 K、M、G)
ls /home # 列出指定目录 /home 的内容
ls -lt # 按修改时间排序(最新的在前面)
```
### 3. 创建目录 `mkdir`
创建新的空目录。
```bash
mkdir test # 在当前目录创建 test 目录
mkdir -p dir1/dir2/dir3 # 递归创建多级目录(父目录不存在时自动创建)
mkdir docs pics # 同时创建多个目录(docs 和 pics)
```
### 4. 创建文件 `touch`
创建空文件,或更新已有文件的修改时间。
```bash
touch file.txt # 创建空文件 file.txt
touch note1.txt note2.txt # 同时创建多个文件
touch -d "2024-01-01" old.txt # 修改文件的修改时间为指定日期
```
### 5. 删除文件/目录 `rm`
删除文件或目录,**慎用 `rm -rf`,删除后无法恢复**。
```bash
rm file.txt # 删除文件(需确认,按 y 确认)
rm -f file.txt # 强制删除文件(无需确认,直接删除)
rm -r dir1 # 递归删除目录及其中所有内容(需确认)
rm -rf dir2 # 强制递归删除目录(无需确认,危险操作!)
rm -rf * # 强制删除当前目录下所有文件和目录(极度危险!)
```
### 6. 复制文件/目录 `cp`
复制文件或目录到指定位置。
```bash
cp file.txt /home/user/ # 复制 file.txt 到 /home/user/ 目录
cp file1.txt file2.txt # 复制 file1.txt 并命名为 file2.txt(当前目录)
cp -r dir1 /home/user/ # 递归复制目录 dir1 及所有内容到 /home/user/
cp -v file.txt docs/ # 复制时显示详细过程(-v 表示 verbose)
```
### 7. 移动/重命名文件 `mv`
移动文件/目录到指定位置,或给文件/目录重命名。
```bash
mv file.txt docs/ # 移动 file.txt 到 docs 目录
mv old.txt new.txt # 将 old.txt 重命名为 new.txt(当前目录)
mv dir1 /home/user/ # 移动目录 dir1 到 /home/user/
mv -v file.txt ../ # 移动文件并显示详细过程
```
### 8. 查看文件内容
#### (1)`cat`:查看文件全部内容(适合小文件)
```bash
cat file.txt # 直接显示文件所有内容
cat file1.txt file2.txt # 同时查看多个文件内容(拼接显示)
cat -n file.txt # 显示内容并标注行号
```
#### (2)`more/less`:分页查看文件(适合大文件)
```bash
more large.txt # 分页显示(按 Enter 下一行,按 q 退出)
less large.txt # 更灵活的分页(支持上下箭头滚动,按 q 退出)
```
#### (3)`head/tail`:查看文件头部/尾部内容
```bash
head file.txt # 查看文件前 10 行
head -n 5 file.txt # 查看文件前 5 行
tail file.txt # 查看文件后 10 行
tail -n 3 file.txt # 查看文件后 3 行
tail -f log.txt # 实时监控文件更新(常用于查看日志,按 Ctrl+C 退出)
```
### 9. 搜索文件内容 `grep`
在文件中搜索指定字符串,支持正则表达式。
```bash
grep "error" log.txt # 在 log.txt 中搜索 "error" 字符串
grep -i "Error" log.txt # 忽略大小写搜索(匹配 Error、ERROR 等)
grep -n "warning" log.txt # 搜索并显示匹配行的行号
grep -r "test" /home/ # 递归搜索 /home/ 目录下所有文件中的 "test"
grep -v "ignore" file.txt # 反向匹配(显示不包含 "ignore" 的行)
```
### 10. 查看文件路径 `pwd`
显示当前工作目录的绝对路径。
```bash
pwd # 示例输出:/home/user/Documents
```
## 二、系统信息与进程管理
### 1. 查看系统信息
#### (1)`uname`:查看系统内核信息
```bash
uname -a # 显示完整系统信息(内核版本、主机名、硬件架构等)
uname -r # 仅显示内核版本
```
#### (2)`hostname`:查看/设置主机名
```bash
hostname # 查看当前主机名
hostname new-hostname # 临时设置主机名(重启后失效)
```
#### (3)`df`:查看磁盘空间
```bash
df -h # 人性化显示磁盘分区使用情况(h=human)
df -T # 显示分区文件系统类型(如 ext4、xfs)
```
#### (4)`du`:查看目录/文件大小
```bash
du -sh dir1 # 显示目录 dir1 的总大小(s=summary,h=human)
du -h file.txt # 显示文件大小
du -h --max-depth=1 /home/ # 显示 /home/ 下一级目录的大小
```
### 2. 进程管理
#### (1)`ps`:查看当前进程
```bash
ps -ef # 显示所有进程的详细信息(常用)
ps aux # 以用户为中心显示进程信息
ps aux | grep "java" # 搜索与 java 相关的进程
```
#### (2)`top`:实时监控进程资源占用
```bash
top # 实时显示进程 CPU、内存占用(按 q 退出)
top -p 1234 # 仅监控 PID 为 1234 的进程
```
#### (3)`kill`:终止进程
```bash
kill 1234 # 终止 PID 为 1234 的进程(默认信号 15,正常终止)
kill -9 1234 # 强制终止进程(信号 9,无法拒绝,慎用)
killall java # 终止所有名为 java 的进程(按进程名终止)
```
## 三、用户与权限管理
### 1. 用户操作
#### (1)`useradd/userdel`:创建/删除用户
```bash
useradd testuser # 创建 testuser 用户(默认家目录 /home/testuser)
useradd -m testuser # 创建用户并自动创建家目录
userdel testuser # 删除用户(保留家目录)
userdel -r testuser # 彻底删除用户及家目录
```
#### (2)`passwd`:修改用户密码
```bash
passwd testuser # 管理员修改 testuser 的密码
passwd # 普通用户修改自己的密码(需输入原密码)
```
#### (3)`su/sudo`:切换用户权限
```bash
su root # 切换到 root 用户(需输入 root 密码)
su - testuser # 切换到 testuser 并加载其环境变量
sudo ls /root # 以 root 权限执行命令(普通用户需在 sudoers 列表中)
sudo -i # 切换到 root 环境(类似 su - root)
```
### 2. 权限管理
Linux 文件/目录的权限分为 3 类:所有者(u)、所属组(g)、其他用户(o),权限类型包括:读(r=4)、写(w=2)、执行(x=1)。
#### (1)`ls -l`:查看权限
```bash
ls -l file.txt # 示例输出:-rw-r--r-- 1 user user 1024 Jan 1 10:00 file.txt
# 权限解析:-rw-r--r-- → 所有者可读可写(rw-),所属组可读(r--),其他用户可读(r--)
```
#### (2)`chmod`:修改权限(数字法/符号法)
```bash
# 数字法(推荐,简洁):r=4、w=2、x=1,三者相加
chmod 644 file.txt # 所有者 rw-(6=4+2),所属组 r--(4),其他 r--(4)
chmod 755 dir1 # 所有者 rwx(7=4+2+1),所属组 r-x(5=4+1),其他 r-x(5)
chmod 777 file.txt # 所有用户都有 rwx 权限(危险,不推荐)
# 符号法(灵活):u=所有者,g=所属组,o=其他,a=所有;+添加权限,-删除权限,=设置权限
chmod u+x file.txt # 给所有者添加执行权限
chmod g-w file.txt # 给所属组删除写权限
chmod a=r file.txt # 给所有用户设置只读权限
```
#### (3)`chown`:修改文件所有者和所属组
```bash
chown user1 file.txt # 将 file.txt 的所有者改为 user1
chown user1:group1 file.txt # 改为 user1 所有,group1 所属组
chown -R user1 dir1 # 递归修改目录及内容的所有者
```
## 四、压缩与解压
### 1. tar 命令(常用,支持多种压缩格式)
`tar` 本身是打包命令,结合参数可实现压缩/解压,常用格式:
```bash
# 打包并压缩(tar.gz 格式,最常用)
tar -zcvf archive.tar.gz file1 dir1 # z=gzip 压缩,c=创建,v=显示过程,f=指定压缩包名
# 解压 tar.gz 格式
tar -zxvf archive.tar.gz # x=解压,解压到当前目录
tar -zxvf archive.tar.gz -C /home/user/ # 解压到指定目录 /home/user/
# 打包并压缩(tar.bz2 格式,压缩率更高)
tar -jcvf archive.tar.bz2 file1 dir1 # j=bzip2 压缩
# 解压 tar.bz2 格式
tar -jxvf archive.tar.bz2
```
### 2. zip/unzip 命令(跨平台兼容)
```bash
# 压缩为 zip 格式
zip archive.zip file1 dir1
zip -r archive.zip dir1 # 递归压缩目录
# 解压 zip 格式
unzip archive.zip
unzip archive.zip -d /home/user/ # 解压到指定目录
```
## 五、网络相关命令
### 1. `ping`:测试网络连通性
```bash
ping baidu.com # 测试与百度的连通性(默认无限发送,按 Ctrl+C 停止)
ping -c 4 baidu.com # 发送 4 个数据包后停止
```
### 2. `ifconfig/ip`:查看网络配置
```bash
ifconfig # 查看网卡信息(IP 地址、MAC 地址等,部分系统需安装 net-tools)
ip addr # 查看网卡 IP 信息(替代 ifconfig,更通用)
ip route # 查看路由表(网关信息)
```
### 3. `curl/wget`:下载文件
```bash
# curl(支持多种协议,默认输出内容到终端)
curl https://example.com/file.txt # 下载文件并显示内容
curl -O https://example.com/file.txt # 下载文件并保留原文件名
curl -L https://example.com/link # 跟随重定向下载
# wget(专门用于下载,自动保存文件)
wget https://example.com/file.txt
wget -c https://example.com/largefile.zip # 断点续传(适合大文件)
```
### 4. `netstat`:查看网络连接状态
```bash
netstat -tuln # 查看监听的 TCP/UDP 端口(t=TCP,u=UDP,l=监听,n=数字显示)
netstat -an | grep 8080 # 查看 8080 端口的连接状态
```
## 六、其他常用命令
### 1. `clear`:清空终端屏幕
```bash
clear # 快捷键:Ctrl+L(效果相同)
```
### 2. `history`:查看命令历史
```bash
history # 显示最近执行的命令列表(默认1000条)
!100 # 执行历史中第 100 条命令
!ls # 执行上一次以 ls 开头的命令
history -c # 清空命令历史
```
### 3. `man`:查看命令帮助文档
```bash
man ls # 查看 ls 命令的详细帮助(按 q 退出)
man chmod # 查看 chmod 命令的权限说明
```
### 4. `find`:搜索文件/目录(按名称、大小、时间等)
```bash
find /home -name "file.txt" # 在 /home 下搜索名为 file.txt 的文件(区分大小写)
find /home -iname "file.txt" # 忽略大小写搜索
find / -size +100M # 搜索根目录下大于 100M 的文件
find /home -mtime -7 # 搜索 /home 下最近 7 天修改过的文件
```
## 新手必备技巧
1. **命令补全**:按 `Tab` 键自动补全命令、文件名、目录名(连续按两次 Tab 显示可选列表)。
2. **快捷键**:
- `Ctrl+C`:终止当前命令(如 ping、tail -f)。
- `Ctrl+D`:退出当前终端或用户(等价于 exit)。
- `Ctrl+Z`:暂停当前命令(可用 `fg` 恢复到前台)。
3. **通配符**:
- `*`:匹配任意字符(如 `ls *.txt` 匹配所有 .txt 文件)。
- `?`:匹配单个字符(如 `ls file?.txt` 匹配 file1.txt、file2.txt)。
4. **管道符 `|`**:将前一个命令的输出作为后一个命令的输入(如 `ps aux | grep java`)。
以上命令覆盖了 Linux 日常使用的 90% 场景,建议先熟练掌握文件操作、权限管理、系统信息类命令,再逐步学习进阶用法。实际使用中可通过 `man 命令名` 查看详细参数,或通过搜索引擎查询具体场景的命令组合。
要不要我帮你整理一份**Linux基础命令速查手册**?可以按使用场景分类,方便你随时查阅和记忆。