linux命令可参考每个命令的man手册详细选项说明:
bash
man command_name # 查看命令手册
command --help # 查看命令帮助信息
1. 文件和目录操作
1.1 目录导航
- pwd - 显示当前工作目录
bash
pwd
# 输出: /home/user
- cd - 切换目录
bash
cd /home # 切换到指定目录
cd .. # 返回上一级目录
cd ~ # 回到家目录
cd - # 切换到上一个工作目录
- ls - 列出目录内容
bash
ls # 列出当前目录文件
ls -l # 详细列表(权限、大小、时间等)
ls -a # 显示隐藏文件
ls -lh # 以人类可读格式显示文件大小
1.2 文件创建和查看
- touch - 创建空文件或更新文件时间戳
bash
touch file.txt # 创建空文件
- cat - 查看文件内容
bash
cat file.txt # 显示整个文件内容
cat file1.txt file2.txt > combined.txt # 合并文件
- more/less - 分页查看文件
bash
less large_file.txt # 可以上下滚动查看大文件
more file.txt # 向下翻页查看
- head/tail - 查看文件开头/结尾
bash
head -n 10 file.txt # 查看前10行
tail -f logfile.log # 实时监控日志文件
1.3 文件复制、移动和删除
- cp - 复制文件/目录
bash
cp file1.txt file2.txt # 复制文件
cp -r dir1 dir2 # 递归复制目录
- mv - 移动或重命名文件
bash
mv old_name.txt new_name.txt # 重命名
mv file.txt /home/user/ # 移动文件
- rm - 删除文件/目录
bash
rm file.txt # 删除文件
rm -r directory/ # 递归删除目录
rm -rf dangerous_dir/ # 强制递归删除(谨慎使用)
1.4 目录操作
- mkdir - 创建目录
bash
mkdir new_dir # 创建单个目录
mkdir -p a/b/c # 递归创建多级目录
- rmdir - 删除空目录
bash
rmdir empty_dir # 只能删除空目录
2. 文件权限和属性
2.1 权限管理
- chmod - 修改文件权限
bash
chmod 755 script.sh # 数字模式:所有者可读写执行,组和其他人可读执行
chmod u+x file.txt # 符号模式:给所有者添加执行权限
chmod g-w,o-r file.txt # 组去除写权限,其他人去除读权限
- chown - 修改文件所有者
bash
chown user:group file.txt # 修改所有者和组
chown user file.txt # 只修改所有者
chown -R user dir/ # 递归修改目录及子文件
- chgrp - 修改文件组
bash
chgrp groupname file.txt
2.2 文件属性查看
- ls -l - 查看详细权限信息
bash
ls -l file.txt
# 输出: -rwxr-xr-- 1 user group 1024 Jan 1 10:00 file.txt
- stat - 查看文件详细状态
bash
stat file.txt
3. 系统信息和监控
3.1 系统基本信息
- uname - 显示系统信息
bash
uname -a # 显示所有系统信息
uname -r # 显示内核版本
- hostname - 查看或设置主机名
bash
hostname # 查看当前主机名
hostname newname # 设置新主机名(需要root权限)
- date - 显示或设置日期时间
bash
date # 显示当前日期时间
date +"%Y-%m-%d" # 自定义格式输出
3.2 硬件和资源信息
- df - 磁盘空间使用情况
bash
df -h # 以人类可读格式显示磁盘使用情况
- du - 目录空间使用情况
bash
du -sh /home # 显示/home目录总大小
du -h --max-depth=1 # 显示当前目录下各子目录大小
- free - 内存使用情况
bash
free -h # 以人类可读格式显示内存使用
- top/htop - 进程监控
bash
top # 实时显示系统进程
htop # 更友好的交互式进程监控(需安装)
3.3 网络信息
- ifconfig/ip - 网络接口配置
bash
ifconfig # 显示网络接口信息(传统命令)
ip addr show # 现代替代命令
- ping - 测试网络连通性
bash
ping google.com # 测试到google的连通性
ping -c 4 host # 发送4个包后停止
- netstat/ss - 网络连接状态
bash
netstat -tuln # 显示监听的TCP/UDP端口
ss -tuln # netstat的现代替代品
- ps - 进程状态
bash
ps aux # 显示所有进程详细信息
ps -ef # 另一种显示格式
4. 进程管理
4.1 进程控制
- kill - 终止进程
bash
kill 1234 # 发送TERM信号终止进程ID为1234的进程
kill -9 1234 # 强制终止进程(SIGKILL)
- pkill/killall - 按名称终止进程
bash
pkill firefox # 终止所有firefox进程
killall nginx # 终止所有名为nginx的进程
- bg/fg - 后台/前台作业控制
bash
# Ctrl+Z 暂停当前进程
bg # 将暂停的进程放到后台运行
fg # 将后台进程调到前台
- jobs - 查看作业
bash
jobs # 显示当前shell的作业列表
4.2 进程优先级
- nice/renice - 设置进程优先级
bash
nice -n 10 command # 以较低优先级运行命令
renice -n 5 -p 1234 # 修改已运行进程的优先级
5. 文本处理和搜索
5.1 文本搜索
- grep - 文本搜索
bash
grep "pattern" file.txt # 在文件中搜索pattern
grep -r "pattern" /dir/ # 递归搜索目录
grep -i "PATTERN" file.txt # 忽略大小写
grep -v "pattern" file.txt # 反向匹配(不包含pattern的行)
- find - 文件查找
bash
find /home -name "*.txt" # 查找所有.txt文件
find . -type f -size +100M # 查找大于100MB的文件
find . -mtime -7 # 查找7天内修改的文件
- locate - 快速文件查找(基于数据库)
bash
locate filename
updatedb # 更新locate数据库
5.2 文本处理
- sort - 排序
bash
sort file.txt # 按字母顺序排序
sort -n numbers.txt # 按数值排序
sort -r file.txt # 逆序排序
- uniq - 去除重复行
bash
uniq file.txt # 去除相邻重复行
sort file.txt | uniq # 去除所有重复行
uniq -c file.txt # 统计重复行次数
- wc - 统计行数、字数、字符数
bash
wc file.txt # 显示行数、字数、字符数
wc -l file.txt # 只显示行数
- cut - 切割字段
bash
cut -d':' -f1 /etc/passwd # 以:为分隔符,取第一列
- awk/sed - 高级文本处理
bash
awk '{print $1}' file.txt # 打印每行的第一个字段
sed 's/old/new/g' file.txt # 全局替换old为new
6. 压缩和归档
6.1 tar 归档
- tar - 打包和解包
bash
tar -cvf archive.tar dir/ # 创建tar包
tar -xvf archive.tar # 解压tar包
tar -czvf archive.tar.gz dir/ # 创建gzip压缩的tar包
tar -xzvf archive.tar.gz # 解压gzip压缩的tar包
6.2 压缩工具
- gzip/gunzip - gzip压缩
bash
gzip file.txt # 压缩为file.txt.gz
gunzip file.txt.gz # 解压
- zip/unzip - zip压缩
bash
zip archive.zip file1 file2 # 创建zip文件
unzip archive.zip # 解压zip文件
- bzip2/bunzip2 - bzip2压缩
bash
bzip2 file.txt # 压缩(通常比gzip压缩率更高)
bunzip2 file.txt.bz2 # 解压
7. 用户和组管理
7.1 用户管理
- useradd/userdel - 添加/删除用户
bash
useradd -m username # 创建用户并创建家目录
userdel -r username # 删除用户及其家目录
- passwd - 修改密码
bash
passwd username # 修改指定用户密码
passwd # 修改当前用户密码
- su/sudo - 用户切换和权限提升
bash
su - username # 切换到指定用户
sudo command # 以root权限执行命令
sudo -i # 切换到root shell
7.2 组管理
- groupadd/groupdel - 添加/删除组
bash
groupadd groupname # 创建新组
groupdel groupname # 删除组
- groups/id - 查看用户组信息
bash
groups # 查看当前用户所属组
id username # 查看用户详细信息
8. 软件包管理
8.1 Debian/Ubuntu (APT)
bash
apt update # 更新软件包列表
apt upgrade # 升级已安装的软件包
apt install package_name # 安装软件包
apt remove package_name # 卸载软件包
apt search keyword # 搜索软件包
8.2 Red Hat/CentOS (YUM/DNF)
bash
yum install package_name # 安装软件包(CentOS 7及以下)
dnf install package_name # 安装软件包(CentOS 8+/Fedora)
yum update # 更新软件包
yum remove package_name # 卸载软件包
9. 网络和远程操作
9.1 远程连接
- ssh - 安全远程登录
bash
ssh user@hostname # 连接到远程主机
ssh -p 2222 user@host # 指定端口连接
- scp - 安全文件复制
bash
scp file.txt user@host:/path/ # 上传文件
scp user@host:/path/file.txt ./ # 下载文件
- rsync - 高效文件同步
bash
rsync -av /source/ /dest/ # 本地同步
rsync -av /local/ user@host:/remote/ # 远程同步
9.2 文件传输
- wget/curl - 下载文件
bash
wget http://example.com/file.zip
curl -O http://example.com/file.zip
10. Shell 和环境
10.1 环境变量
- echo - 显示变量值
bash
echo $HOME # 显示HOME环境变量
echo $PATH # 显示PATH环境变量
- export - 设置环境变量
bash
export MY_VAR=value # 设置环境变量
- env/printenv - 显示环境变量
bash
env # 显示所有环境变量
printenv PATH # 显示特定环境变量
10.2 历史和别名
- history - 命令历史
bash
history # 显示命令历史
!123 # 重新执行历史命令123
- alias/unalias - 命令别名
bash
alias ll='ls -la' # 创建别名
unalias ll # 删除别名
10.3 重定向和管道
- 重定向
bash
command > file.txt # 输出重定向到文件(覆盖)
command >> file.txt # 输出追加到文件
command 2> error.txt # 错误输出重定向
command < input.txt # 输入重定向
- 管道
bash
ls -l | grep ".txt" # 将ls输出传递给grep
ps aux | grep nginx | wc -l # 多级管道