一、文件与目录操作
1. ls
– 列出目录内容
语法:ls [选项] [目录]
常用选项:
选项 | 说明 |
---|---|
-a |
显示所有文件(包括隐藏文件,以 . 开头的文件) |
-l |
长格式显示(包含权限、所有者、大小、时间等详细信息) |
-h |
以人类可读的格式显示文件大小(如 KB/MB/GB) |
-d |
查看目录属性(而非目录内的文件) |
-r |
反向排序 |
-t |
按修改时间排序 |
示例:
bash
ls -alh /etc # 查看 /etc 目录下的所有文件(详细信息+可读大小)
ls -d */ # 仅列出当前目录下的子目录(`*/` 表示所有子目录)
2. cd
– 切换目录
语法:cd [目录路径]
特殊用法:
cd ~
:切换到当前用户的家目录(等价于 cd
)。
cd -
:切换回上一次目录(类似浏览器的 “后退”)。
cd ..
:切换到上级目录;cd ../..
:切换到上上级目录。
示例:
bash
cd /var/log # 切换到 /var/log 目录
cd ~/Documents # 切换到用户家目录下的 Documents 目录
3. mkdir
– 创建目录
语法:mkdir [选项] 目录名
常用选项:
-p
:递归创建多级目录(如父目录不存在则自动创建)。
示例:
bash
mkdir project # 创建名为 project 的目录
mkdir -p /data/logs/202505 # 递归创建 /data/logs/202505 目录
4. rm
– 删除文件 / 目录
语法:rm [选项] 文件/目录
常用选项:
选项 | 说明 |
---|---|
-f |
强制删除(不询问确认) |
-r |
递归删除目录及其内容(危险!慎用) |
-i |
交互式删除(删除前询问确认) |
示例:
bash
rm file.txt # 删除 file.txt(需确认)
rm -rf /temp/data # 强制递归删除 /temp/data 目录(谨慎使用!)
5. cp
– 复制文件 / 目录
语法:cp [选项] 源文件/目录 目标路径
常用选项:
选项 | 说明 |
---|---|
-r |
复制目录(递归复制) |
-p |
保留文件属性(如权限、时间戳) |
-v |
显示复制过程 |
示例:
bash
cp config.conf /backup/ # 复制文件到备份目录
cp -r /home/user/docs /mnt/data # 复制整个目录到 /mnt/data
6. mv
– 移动文件 / 重命名
语法:mv 源文件/目录 目标路径
场景说明:
移动文件:mv /tmp/log.txt /var/log/
重命名文件:mv old_name.txt new_name.txt
移动目录:mv project/ /opt/
示例:
bash
mv report.csv ~/Desktop/report_backup.csv # 移动并重命名文件
二、文件内容查看
1. cat
– 查看文件内容(适合小文件)
语法:cat [选项] 文件
常用选项:
-n
:显示行号。
-b
:显示行号(忽略空行)。
示例:
bash
cat /etc/hosts # 直接显示文件内容
cat -n script.sh # 显示文件内容并带行号
2. more/less
– 分屏查看大文件
语法:more 文件
或 less 文件
区别:
more
:只能向下翻页(按 Space
或 Enter
),无法回退。
less
:支持上下翻页(按 PageUp
/PageDown
)、搜索(输入 /关键词
)和退出(按 q
)。
示例:
bash
less /var/log/syslog # 分屏查看系统日志,支持搜索
3. head/tail
– 查看文件首尾内容
语法:head/tail [选项] 文件
常用选项:
-n N
:显示前 / 后 N 行(默认 10 行)。
-f
(tail
专用):实时跟踪文件更新(常用于日志监控)。
示例:
bash
head -n 5 /etc/passwd # 查看文件前 5 行
tail -f /var/log/apache2/access.log # 实时监控 Apache 访问日志
三、文件搜索与处理
1. grep
– 文本搜索(过滤匹配内容)
语法:grep [选项] "关键词" 文件
常用选项:
选项 | 说明 |
---|---|
-i |
忽略大小写 |
-v |
反向匹配(排除包含关键词的行) |
-n |
显示行号 |
-r |
递归搜索目录下的所有文件 |
示例:
bash
grep "ERROR" /var/log/app.log # 查找日志中包含 ERROR 的行
grep -r "api_key" /etc/ # 递归搜索 /etc/ 目录下包含 api_key 的文件
2. find
– 查找文件 / 目录(按路径、名称、时间等)
语法:find 搜索路径 [条件] [操作]
常用条件:
条件 | 说明 |
---|---|
-name "模式" |
按文件名匹配(支持通配符,如 *.txt ) |
-type f/d |
查找文件(f)或目录(d) |
-size +10M |
查找大于 10MB 的文件 |
-mtime -7 |
查找最近 7 天内修改的文件 |
示例:
bash
find /home/user -name "*.pdf" # 在 /home/user 下查找所有 PDF 文件
find /var/log -type f -size +50M # 查找 /var/log 下大于 50MB 的文件
find /tmp -mtime +30 -exec rm {} ; # 删除 /tmp 下 30 天未修改的文件
四、权限管理
1. chmod
– 修改文件权限
语法:chmod [选项] 权限模式 文件/目录
权限模式:
字母表示法:u
(所有者)、g
(所属组)、o
(其他用户)、a
(所有用户);+
(添加权限)、-
(移除权限)、=
(设置权限);权限包括 r
(读)、w
(写)、x
(执行)。
示例:chmod u+x script.sh
(给所有者添加执行权限)。
数字表示法:用 3 位数字表示权限(r=4
, w=2
, x=1
)。
示例:chmod 755 file.txt
(所有者:读 + 写 + 执行;组和其他用户:读 + 执行)。
示例:
bash
chmod -R 755 /var/www/html # 递归设置目录及子文件权限为 755
2. chown
– 修改文件所有者 / 所属组
语法:chown [选项] 所有者:所属组 文件/目录
常用选项:
-R
:递归修改目录及其内容。
示例:
bash
chown user:www-data /var/www/site.html # 设置所有者为 user,所属组为 www-data
chown -R root:root /etc/nginx/ # 递归设置目录所有者和组为 root
五、用户与系统管理
1. useradd/userdel
– 创建 / 删除用户
语法:
bash
useradd -m -s /bin/bash newuser # 创建用户并设置家目录和默认 shell
userdel -r olduser # 删除用户及其家目录
2. passwd
– 修改用户密码
语法:
bash
passwd # 当前用户修改自己的密码
sudo passwd user # 管理员为其他用户修改密码
3. sudo
– 以管理员权限执行命令
语法:sudo 命令
示例:
bash
sudo apt update # 管理员权限更新软件源
sudo reboot # 重启系统
六、系统信息与监控
1. top/htop
– 实时监控系统进程
top
常用操作:
按 P
:按 CPU 使用率排序。
按 M
:按内存使用率排序。
按 q
:退出。
htop
优势:可视化界面更友好,支持鼠标操作(需先安装:sudo apt install htop
)。
2. df
– 查看磁盘空间
语法:df [选项]
常用选项:
-h
:以人类可读格式显示(如 GB/MB)。
示例:
bash
df -h # 查看所有文件系统的磁盘使用情况
3. free
– 查看内存使用
语法:free [选项]
常用选项:
-h
:以人类可读格式显示。
示例:
bash
free -h # 查看物理内存和交换空间使用情况
七、网络操作
1. ping
– 测试网络连通性
语法:ping [选项] 目标地址
常用选项:
-c N
:发送 N 个数据包后停止。
-W N
:设置超时时间(秒)。
示例:
bash
ping -c 4 google.com # 发送 4 个 ICMP 包测试与谷歌的连接
2. ssh
– 远程连接服务器
语法:ssh [选项] 用户@服务器IP
示例:
bash
ssh user@192.168.1.100 # 远程连接服务器(默认端口 22)
ssh -p 2222 user@server # 连接指定端口(如 2222)
3. curl/wget
– 下载文件
curl
示例:
bash
curl -O https://example.com/file.zip # 下载文件并保留原名
curl -s https://api.github.com | json_pp # 静默下载并格式化 JSON
wget
示例:
bash
wget -c https://linux.org/linux.iso # 断点续传下载大文件
wget -r -p ./downloads https://example.com # 递归下载网站内容到 ./downloads
八、包管理(以 Debian/Ubuntu 为例)
1. apt
– 软件包管理
常用命令:
bash
sudo apt update # 更新软件源列表
sudo apt upgrade # 升级已安装的软件包
sudo apt install package # 安装软件包
sudo apt remove package # 移除软件包(保留配置文件)
sudo apt purge package # 彻底移除软件包(包括配置文件)
2. dpkg
– 手动管理 deb 包
语法:
bash
dpkg -i package.deb # 安装 deb 包
dpkg -r package # 移除已安装的包
九、进程管理
1. ps
– 查看进程
语法:ps [选项]
常用组合:
ps aux
:显示所有用户的进程(a
)、包含详细信息(u
)、使用 BSD 格式(x
)。
ps -ef
:显示进程树(-e
所有进程,-f
完整格式)。
2. kill
– 终止进程
语法:kill [信号] PID
常用信号:
信号 | 说明 |
---|---|
15 (默认) |
正常终止进程(推荐) |
9 |
强制终止进程(可能导致数据丢失) |
示例:
bash
kill 12345 # 正常终止 PID 为 12345 的进程
kill -9 67890 # 强制终止 PID 为 67890 的进程
十、压缩与解压缩
1. tar
– 打包压缩(支持 .tar.gz/.tar.bz2 等格式)
语法:tar [选项] 压缩包名 源文件/目录
常用选项:
选项 | 说明 |
---|---|
-c |
创建压缩包 |
-x |
解压缩 |
-z |
使用 gzip 压缩(.tar.gz) |
-j |
使用 bzip2 压缩(.tar.bz2) |
-v |
显示过程 |
-f |
指定文件名(必须最后一个选项) |
示例:
bash
tar -czvf backup.tar.gz /data # 压缩 /data 目录为 backup.tar.gz
tar -xzvf backup.tar.gz -C /backup # 解压到 /backup 目录(-C 指定路径)
2. zip/unzip
– ZIP 格式压缩
语法:
bash
zip -r archive.zip folder/ # 压缩 folder 目录(-r 递归压缩)
unzip archive.zip -d extract/ # 解压到 extract 目录(-d 指定路径)
十一、文本处理工具
1. sort
– 排序文本
语法:sort [选项] 文件
常用选项:
-n
:按数字排序。
-r
:反向排序。
-u
:去重。
示例:
bash
sort -n scores.txt # 按数字升序排列分数文件
sort -ru names.txt # 去重并反向排序名字列表
2. awk
– 文本分析与格式化
语法:awk '模式{动作}' 文件
示例:
bash
awk '{print $1}' /etc/passwd # 打印 /etc/passwd 文件的第一列(用户名)
awk -F: '$3 >= 1000 {print $1}' /etc/passwd # 按冒号分割,筛选 UID ≥ 1000 的用户
十二、系统服务管理(systemd)
1. systemctl
– 控制服务(适用于 CentOS 7+/Ubuntu 16.04+)
常用命令:
bash
systemctl start nginx # 启动 nginx 服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl status nginx # 查看服务状态
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 取消开机自启
十三、高级技巧:命令组合与管道
通过 |
(管道)和 >
(重定向)组合多个命令,实现复杂功能:
bash
ls -l /var/log | grep "error" | sort -nr # 查看 /var/log 下包含 error 的文件,按时间倒序排列
curl https://api.example.com/data | jq . # 用 jq 格式化 JSON 数据(需先安装 jq)
find /home -name "*.log" > log_files.txt # 将查找结果保存到 log_files.txt 文件
暂无评论内容