Linux 基础命令
命令基本格式
- 选项:以
- 或 -- 开头,用于修改命令的行为。
- 参数:命令操作的对象,如文件名、目录名等。
1. 文件与目录操作
| 命令 |
说明 |
常用示例 |
ls |
列出目录内容 |
ls -l 长格式显示
ls -a 显示所有文件(包括隐藏文件)
ls -lh 以人类可读方式显示文件大小 |
cd |
切换工作目录 |
cd /home/user 进入指定目录
cd .. 返回上一级目录
cd ~ 或 cd 返回家目录 |
pwd |
显示当前工作目录的绝对路径 |
pwd |
mkdir |
创建目录 |
mkdir dir 创建单个目录
mkdir -p a/b/c 递归创建多级目录 |
rmdir |
删除空目录 |
rmdir emptydir |
touch |
创建空文件或更新文件时间戳 |
touch file.txt 创建空文件 |
cp |
复制文件或目录 |
cp file1 file2 复制文件
cp -r dir1 dir2 递归复制目录
cp -i file1 file2 覆盖前提示 |
mv |
移动或重命名文件/目录 |
mv oldname newname 重命名
mv file /path/to/dir/ 移动文件 |
rm |
删除文件或目录 |
rm file 删除文件
rm -r dir 递归删除目录
rm -f file 强制删除(不提示) |
find |
在目录树中查找文件 |
find / -name "*.txt" 按名称查找
find . -type f -size +10M 查找大于10M的文件 |
locate |
快速查找文件(需更新数据库) |
locate filename 需要先 sudo updatedb |
2. 文件内容查看与处理
| 命令 |
说明 |
常用示例 |
cat |
连接并显示文件内容 |
cat file.txt 显示全部内容
cat file1 file2 > file3 合并文件 |
more |
分页显示文件内容(只能向下翻页) |
more longfile.txt 空格翻页,q退出 |
less |
分页显示(可上下翻页,功能更强) |
less longfile.txt 按 / 搜索,n下一个 |
head |
显示文件开头几行 |
head -n 20 file.txt 显示前20行
head -c 100 file 显示前100字节 |
tail |
显示文件结尾几行 |
tail -n 30 file.txt 显示最后30行
tail -f logfile 实时跟踪文件更新 |
grep |
在文件中搜索文本 |
grep "pattern" file 搜索包含 pattern 的行
grep -i "pattern" file 忽略大小写
grep -r "pattern" /path 递归搜索目录 |
wc |
统计行数、单词数、字符数 |
wc -l file 统计行数
wc -w file 统计单词数
wc -c file 统计字节数 |
sort |
对文件内容排序 |
sort file.txt 按字母排序
sort -n file.txt 按数值排序
sort -r file.txt 逆序排序 |
uniq |
报告或忽略重复行(常与 sort 配合) |
sort file.txt | uniq 去重
sort file.txt | uniq -c 统计重复次数 |
3. 权限管理
| 命令 |
说明 |
常用示例 |
chmod |
修改文件或目录的权限 |
chmod 755 file 设置 rwxr-xr-x
chmod u+x file 给所有者增加执行权限
chmod -R 644 dir 递归修改目录下所有文件 |
chown |
修改文件或目录的所有者和所属组 |
chown user file 改变所有者
chown user:group file 同时改变所有者和组
chown -R user:group dir 递归修改 |
chgrp |
修改文件或目录的所属组 |
chgrp group file |
umask |
设置默认创建文件的权限掩码 |
umask 022 设置默认权限 755/644 |
4. 用户与组管理
| 命令 |
说明 |
常用示例 |
whoami |
显示当前用户名 |
whoami |
id |
显示当前用户信息(UID、GID等) |
id |
useradd |
创建新用户 |
sudo useradd -m newuser 创建用户并创建家目录 |
passwd |
修改用户密码 |
passwd 修改当前用户密码
sudo passwd username 修改其他用户密码 |
userdel |
删除用户 |
sudo userdel username
sudo userdel -r username 同时删除家目录 |
groupadd |
创建新组 |
sudo groupadd newgroup |
su |
切换用户 |
su - username 切换到目标用户并加载环境 |
sudo |
以其他用户(通常是 root)执行命令 |
sudo command |
5. 进程管理
| 命令 |
说明 |
常用示例 |
ps |
显示当前进程快照 |
ps aux 显示所有进程
ps -ef 显示完整格式
ps -ef | grep ssh 查找特定进程 |
top |
动态显示进程资源占用 |
top 按 q 退出 |
htop |
top 的增强版(需安装) |
htop |
kill |
终止进程 |
kill PID 发送 TERM 信号
kill -9 PID 强制杀死进程 |
pkill |
按名称终止进程 |
pkill firefox |
jobs |
列出后台作业 |
jobs |
bg |
将暂停的作业放到后台运行 |
bg %1 |
fg |
将后台作业调到前台 |
fg %1 |
6. 系统信息
| 命令 |
说明 |
常用示例 |
uname |
显示系统信息 |
uname -a 显示所有信息
uname -r 显示内核版本 |
df |
显示磁盘分区使用情况 |
df -h 以人类可读方式显示 |
du |
估算文件或目录的磁盘使用量 |
du -sh /home 显示目录总大小
du -h --max-depth=1 显示当前目录下各子目录大小 |
free |
显示内存使用情况 |
free -h 显示人类可读的内存和交换分区 |
date |
显示或设置系统时间 |
date 显示当前时间
date -s "2025-01-01 12:00" 设置时间(需权限) |
cal |
显示日历 |
cal 显示本月日历
cal 2025 显示全年日历 |
uptime |
显示系统运行时间和负载 |
uptime |
which |
显示命令的绝对路径 |
which ls 输出 /bin/ls |
whereis |
查找命令的二进制、源码和手册页 |
whereis ls |
7. 网络命令
| 命令 |
说明 |
常用示例 |
ping |
测试网络连通性 |
ping -c 4 google.com 发送4个包 |
ifconfig |
显示或配置网络接口(较旧) |
ifconfig 显示所有接口 |
ip |
现代网络配置工具 |
ip addr show 显示IP地址
ip link set eth0 up 启用接口 |
netstat |
显示网络连接、路由表等 |
netstat -tuln 显示监听端口 |
ss |
netstat 的替代工具,更快 |
ss -tuln |
wget |
下载文件 |
wget https://example.com/file.zip |
curl |
传输数据工具(支持多种协议) |
curl -O https://example.com/file.zip 下载文件
curl -I https://example.com 显示响应头 |
ssh |
远程登录 |
ssh user@host
ssh -p 2222 user@host 指定端口 |
scp |
通过 SSH 复制文件 |
scp file.txt user@host:/remote/path/
scp -r dir user@host:/remote/path/ 递归复制目录 |
8. 压缩与打包
| 命令 |
说明 |
常用示例 |
tar |
打包和解包工具(常与压缩结合) |
打包:tar -cvf archive.tar dir/ 解包:tar -xvf archive.tar 打包并压缩 gzip:tar -czvf archive.tar.gz dir/ 解压 gzip:tar -xzvf archive.tar.gz 压缩 bzip2:tar -cjvf archive.tar.bz2 dir/ |
gzip / gunzip |
压缩 / 解压 .gz 文件 |
gzip file 压缩为 file.gz
gunzip file.gz 解压 |
zip / unzip |
处理 .zip 文件 |
zip -r archive.zip dir/ 递归压缩目录
unzip archive.zip 解压 |
9. 软件包管理(以 Debian/Ubuntu 和 CentOS/RHEL 为例)
| 发行版 |
命令 |
说明 |
常用示例 |
| Debian/Ubuntu |
apt |
高级包管理工具 |
sudo apt update 更新软件源
sudo apt install package 安装
sudo apt remove package 卸载
sudo apt upgrade 升级所有包 |
|
dpkg |
底层包管理 |
dpkg -i package.deb 安装本地 deb 包
dpkg -l 列出已安装包 |
| CentOS/RHEL |
yum |
包管理器(旧) |
sudo yum install package
sudo yum remove package
sudo yum update |
|
dnf |
yum 的下一代 |
用法与 yum 类似 |
|
rpm |
底层包管理 |
rpm -ivh package.rpm 安装
rpm -qa 列出所有已安装包 |
10. 其他实用命令
| 命令 |
说明 |
常用示例 |
echo |
输出文本 |
echo "Hello World"
echo $PATH 显示环境变量 |
printf |
格式化输出 |
printf "Name: %s\n" "John" |
man |
查看命令手册 |
man ls 查看 ls 的详细帮助 |
history |
显示命令历史 |
history 列出历史命令
!100 执行历史中第100条命令 |
clear |
清屏 |
clear 或按 Ctrl+L |
alias |
创建命令别名 |
alias ll='ls -l' 取消别名 unalias ll |
11. 管道与重定向
| 符号 |
说明 |
示例 |
| |
管道:将前一个命令的输出作为后一个命令的输入 |
ls -l | grep ".txt" |
> |
输出重定向(覆盖) |
echo "text" > file.txt |
>> |
输出重定向(追加) |
echo "more" >> file.txt |
< |
输入重定向 |
sort < file.txt |
2> |
重定向错误输出 |
command 2> error.log |
&> |
重定向标准输出和错误 |
command &> all.log |
小贴士
- 大多数命令支持
--help 选项查看简要帮助,如 ls --help。
- 使用
man 命令获取详细手册。
- 命令和文件名可以使用
Tab 键自动补全。
- 使用
Ctrl+C 终止当前运行的程序,Ctrl+Z 暂停当前程序(可用 fg 恢复)。
本手册涵盖了日常使用中最常见的 Linux 命令,掌握它们可以应对绝大多数基础操作。实际使用中可根据需要查阅更详细的文档。