# 基础-语法
# 文件操作
# 创建文件
touch filename.txt
# 创建目录
mkdir dirname
# 复制文件
cp source.txt destination.txt
# 移动/重命名文件
mv oldname.txt newname.txt
# 删除文件
rm filename.txt
# 删除目录
rm -r dirname
# 查看文件内容
cat filename.txt
# 分页查看文件内容
less filename.txt
# 查找文件
find /path -name "*.txt"
# 查看当前目录
pwd
# 列出目录内容
ls
# 列出详细信息 列出详细信息,包括权限、所有者、大小等。
ls -l
# 列出隐藏文件
ls -a
# 压缩文件 将目录压缩为 .tar.gz 文件。
tar -czvf archive.tar.gz dirname
# 解压文件 解压 .tar.gz 文件。
tar -xzvf archive.tar.gz
# 压缩为 .zip 将文件压缩为 .zip 文件。
zip archive.zip file1 file2
# 解压 .zip 文件。
unzip archive.zip
# mv操作
mv 是 Linux 中用于移动或重命名文件或目录的命令。它可以将文件从一个位置移动到另一个位置,或者重命名文件或目录。以下是 mv 命令的详细解释以及常用参数。基本语法:
mv [选项] 源文件或目录 目标文件或目录
常用选项:
| 参数 | 说明 |
|---|---|
| -i | 交互式移动,移动前提示用户确认。 |
| -f | 强制移动,忽略不存在的文件或目录,不提示确认。 |
# cp操作
cp 是 Linux 中用于复制文件或目录的命令。它可以将文件从一个位置复制到另一个位置,或者将目录及其内容复制到另一个位置。以下是 cp 命令的详细解释以及常用参数。基本语法:
cp [选项] 源文件或目录 目标文件或目录
常用选项:
| 参数 | 说明 |
|---|---|
| -r | 递归复制,用于复制目录及其内容。 |
| -i | 交互式复制,复制前提示用户确认。 |
# find 与 grep操作
find 是 Linux 中用于查找文件或目录的命令。它可以根据文件名、文件类型、文件大小、文件权限等条件查找文件或目录。以下是 find 命令的详细解释以及常用参数。基本语法:
find [选项] 路径 表达式
常用选项:
| 参数 | 说明 |
|---|---|
| -name | 根据文件名查找。 |
| -type | 根据文件类型查找。 |
| -size | 根据文件大小查找。 |
| -perm | 根据文件权限查找。 |
| -exec | 执行命令。 |
| 显示结果。 |
grep 是 Linux 中用于搜索文本的命令。它可以根据指定的模式搜索文件中的内容,并输出匹配的行。以下是 grep 命令的详细解释以及常用参数。基本语法:
grep [选项] 模式 文件
常用选项:
| 参数 | 说明 |
|---|---|
| -i | 忽略大小写。 |
| -n | 显示行号。 |
| -r | 递归搜索。 |
| -E | 使用扩展正则表达式。 |
| -A | 显示匹配行后几行。 |
| -B | 显示匹配行前几行。 |
| -C | 显示匹配行前后几行。 |
find 与 grep的区别是:find 是查找文件,grep 是查找文本。
find 与 grep 结合使用,可以查找文件中的特定内容。
find /path -name "*.txt" | grep "pattern"
# rm操作
rm 是 Linux 中用于删除文件或目录的命令,全称为 remove。它是一个非常强大但危险的命令,因为删除的文件或目录通常无法恢复。以下是 rm 命令的详细解释以及常用参数。基本语法:
rm [选项] 文件或目录
常用选项:
| 参数 | 说明 |
|---|---|
| -f | 强制删除,忽略不存在的文件或目录,不提示确认。 |
| -i | 交互式删除,删除前提示用户确认。 |
| -r 或 -R | 递归删除,用于删除目录及其内容。 |
| -v | 显示详细信息,输出每个被删除的文件或目录。 |
| -d | 删除空目录,类似于 rmdir。 |
| --help | 显示帮助信息。 |
| --version | 显示版本信息。 |
# ls操作
ls 是 Linux 中用于列出目录内容的命令。它可以根据文件类型、文件权限、文件大小等条件列出目录内容。以下是 ls 命令的详细解释以及常用参数。基本语法:
ls [选项] 文件或目录
常用选项:
| 参数 | 说明 |
|---|---|
| -l | 列出详细信息。 |
| -a | 列出所有文件,包括隐藏文件。 |
| -h | 显示文件大小以人类可读的格式。 |
| -R | 递归列出目录内容。 |
| -r | 逆序列出文件。 |
| -t | 按修改时间排序列出文件。 |
| -S | 按文件大小排序列出文件。 |
ls -l查询结果示例:
-rw-r--r-- 1 user group 4096 Oct 1 10:00 file.txt
drwxr-xr-x 2 user group 4096 Oct 1 10:00 mydir
lrwxrwxrwx 1 user group 10 Oct 1 10:00 link -> file.txt
ls -l 的输出通常包含 7 个字段,从左到右依次为:
| 字段 | 示例 | 说明 |
|---|---|---|
| 文件类型和权限 | -rw-r--r-- | 文件类型和权限信息。 |
| 硬链接数 | 1 | 文件或目录的硬链接数量。 |
| 所有者 | user | 文件或目录的所有者。 |
| 所属组 | group | 文件或目录的所属组。 |
| 大小 | 4096 | 文件或目录的大小(单位为字节)。 |
| 最后修改时间 | Oct 1 10:00 | 文件或目录的最后修改时间。 |
| 名称 | file.txt | 文件或目录的名称。 |
# 压缩与解压
tar 是 Linux 中用于压缩和解压文件的命令。它可以将文件或目录压缩为 .tar.gz 文件,或者解压 .tar.gz 文件。以下是 tar 命令的详细解释以及常用参数。基本语法:
tar [选项] 文件或目录
常用选项:
| 参数 | 说明 |
|---|---|
| -c | 创建新的归档文件。 |
| -x | 解压归档文件。 |
| -z | 使用 gzip 压缩或解压文件。 |
| -v | 显示详细信息,输出每个被压缩或解压的文件。 |
| -f | 指定归档文件名。 |
| -j | 使用 bzip2 压缩或解压文件。 |
| -t | 列出归档文件的内容。 |
| -u | 更新归档文件。 |
| -r | 递归处理目录。 |
unzip 是 Linux 中用于解压 .zip 文件的命令。以下是 unzip 命令的详细解释以及常用参数。基本语法:
unzip [选项] 文件
常用选项:
| 参数 | 说明 |
|---|---|
| -l | 列出归档文件的内容。 |
| -t | 列出归档文件的内容。 |
# 权限管理
chmod 755 filename.txt # 设置文件权限为rwxr-xr-x
chmod u+rwx file.txt # 给所有者添加读、写、执行权限
chmod g-rw file.txt # 移除所属组的读、写权限
chmod o=r file.txt # 设置其他用户的权限为只读
# 数字模式
chmod 755 file.txt # 所有者:读 + 写 + 执行,所属组和其他用户:读 + 执行
chmod 644 file.txt # 所有者:读 + 写,所属组和其他用户:只读
# 使用 chown 命令修改文件或目录的所有者和所属组。
chown user:group file.txt # 修改所有者和所属组
chown user file.txt # 仅修改所有者
chown :group file.txt # 仅修改所属组
# 修改文件所有者
chown user:group filename.txt
# 修改文件所属组
chgrp groupname filename.txt
#使用 ls -l 命令查看文件或目录的权限
ls -l
# 示例
#-rw-r--r-- 1 user group 4096 Oct 10 12:34 file.txt
#drwxr-xr-x 2 user group 4096 Oct 10 12:34 dir
# 解释
# -rw-r--r-- 表示文件类型和权限
# 1 表示硬链接数
# user 表示所有者
# group 表示所属组
# 4096 表示文件大小
# Oct 10 12:34 表示最后修改时间
# file.txt 表示文件名
# dir 表示目录名
# 文件权限表示
-rw-r--r-- 表示文件类型和权限, 可拆成四部分:- rw- r-- r--
第一位表示文件类型
-表示文件-表示文件d表示目录l表示链接b表示块设备c表示字符设备p表示命名管道s表示套接字
权限字符分为三组,每组 3 个字符,分别表示:
- 所有者权限:第
2-4个字符。 - 所属组权限:第
5-7个字符。 - 其他用户权限:第
8-10个字符。
Linux 中的每个文件和目录都有三组权限,分别对应三类用户:
- 所有者(Owner):文件或目录的创建者。
- 所属组(Group):文件或目录所属的用户组。
- 其他用户(Others):除所有者和所属组外的其他用户。
每组权限包括以下三种:
- 读(r):允许读取文件内容或列出目录中的文件。
- 写(w):允许修改文件内容或在目录中创建/删除文件。
- 执行(x):允许执行文件或进入目录
权限用符号表示:
- r:读权限(值为 4)
- w:写权限(值为 2)
- x:执行权限(值为 1)
权限也可以用数字表示,例如:
- 7:读 + 写 + 执行(4 + 2 + 1)
- 6:读 + 写(4 + 2)
- 5:读 + 执行(4 + 1)
# 进程管理
# 查看PID
ps aux | grep process_name
# 查看进程
ps aux
# 终止进程
kill PID
# 强制终止进程
kill -9 PID
# 后台运行进程
command &
# kill
kill 是 Linux 中用于终止进程的命令。以下是 kill 命令的详细解释以及常用参数。基本语法:
kill [选项] 进程ID
常用选项:
| 参数 | 说明 |
|---|---|
| -9 | 强制终止进程。 |
| -l | 列出所有进程。 |
| -s | 发送信号。 |
| -n | 指定信号数量。 |
| -w | 等待进程终止。 |
| -f | 显示进程的完整信息。 |
| -i | 交互式终止进程。 |
| -r | 递归终止进程。 |
| -a | 终止所有进程。 |
# ps
ps 是 Linux 中用于显示进程信息的命令。以下是 ps 命令的详细解释以及常用参数。基本语法:
ps [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| -e | 显示所有进程。 |
| -f | 显示进程的完整信息。 |
| -l | 显示进程的详细信息。 |
| -u | 显示进程的详细信息。 |
| -x | 显示所有进程。 |
| -w | 显示所有进程。 |
| -r | 显示所有进程。 |
| -a | 显示所有进程。 |
# 网络操作
# 查看网络接口
ifconfig
# 测试网络连接
ping google.com
# 下载文件
wget http://example.com/file.zip
# 下载文件并重命名
curl -O http://example.com/file.zip
# 传输文件
scp file.txt user@remote:/path
telnet example.com 80 # 测试 example.com 的 80 端口
nc example.com 80 # 连接到 example.com 的 80 端口
tcpdump -i eth0 # 抓取 eth0 接口的网络包
tcpdump port 80 # 抓取 80 端口的网络包
systemctl start sshd # 启动 SSH 服务
systemctl stop sshd # 停止 SSH 服务
systemctl restart sshd # 重启 SSH 服务
# ifconfig
ifconfig 是 Linux 中用于显示和配置网络接口信息的命令。以下是 ifconfig 命令的详细解释以及常用参数。基本语法:
ifconfig [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| -a | 显示所有网络接口。 |
| -s | 显示网络接口的摘要信息。 |
# ping
ping 是 Linux 中用于测试网络连接的命令。以下是 ping 命令的详细解释以及常用参数。基本语法:
ping [选项] 目标
常用选项:
| 参数 | 说明 |
|---|---|
| -c | 指定发送的回显请求数。 |
| -w | 指定等待每个回复的时间(毫秒)。 |
| -i | 指定发送的间隔时间(秒)。 |
| -s | 显示统计信息。 |
| -r | 显示路由信息。 |
| -n | 不解析主机名。 |
| -l | 显示本地主机地址。 |
# 下载工具
wget 是 Linux 中用于下载文件的命令。以下是 wget 命令的详细解释以及常用参数。基本语法:
wget [选项] URL
常用选项:
| 参数 | 说明 |
|---|---|
| -O | 指定保存的文件名。 |
| -c | 断点续传。 |
| -b | 后台下载。 |
| -q | 安静模式。 |
curl 是 Linux 中用于传输数据的命令。以下是 curl 命令的详细解释以及常用参数。基本语法:
curl [选项] URL
常用选项:
| 参数 | 说明 |
|---|---|
| -O | 指定保存的文件名。 |
| -c | 断点续传。 |
| -b | 后台下载。 |
| -q | 安静模式。 |
curl 和 wget 都是 Linux 中常用的命令行工具,用于从网络下载文件或与服务器进行交互。尽管它们的功能有重叠,但在设计目标和使用场景上有一些显著的区别。以下是 curl 和 wget 的主要区别:
| 特性 | curl | wget |
|---|---|---|
| 设计目标 | 数据交互,支持多种协议 | 文件下载,支持 HTTP/HTTPS/FTP |
| 协议支持 | HTTP、HTTPS、FTP、SFTP、SCP、SMTP、POP3、IMAP 等 | HTTP、HTTPS、FTP |
| 输出处理 | 默认输出到终端,需手动保存文件 | 默认保存文件到本地 |
| 递归下载 | 不支持 | 支持 |
| 断点续传 | 支持(需手动启用,使用 -C -) | 支持(默认启用,使用 -c) |
| 后台下载 | 不支持 | 支持(使用 -b) |
| 功能扩展 | 支持发送复杂 HTTP 请求(如 POST、PUT、DELETE) | 专注于文件下载 |
| 调试能力 | 支持查看请求和响应头,适合调试 API | 主要用于下载,调试能力有限 |
| 保存文件 | 需使用 -o 或 -O 选项保存文件 | 自动保存文件 |
| 递归下载 | 不支持 | 支持(使用 -r) |
| 镜像网站 | 不支持 | 支持(使用 -m 和 -r) |
| 命令行选项 | 选项丰富,适合复杂场景 | 选项较少,专注于下载 |
| 常用场景 | 调试 API、发送 HTTP 请求、下载单个文件 | 批量下载、递归下载、镜像网站 |
curl:更适合与服务器进行数据交互、调试 API 或发送复杂请求。wget:更适合下载文件、递归下载或镜像网站。
# 网络调试
tcpdump:抓包工具,可以捕获和分析网络数据包。telnet:远程登录工具,可以用于远程登录到其他计算机。nc:网络调试工具,可以用于端口扫描、文件传输等。
tcpdump 是 Linux 中用于抓取和分析网络数据包的命令。以下是 tcpdump 命令的详细解释以及常用参数。基本语法:
tcpdump [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| -i | 指定网络接口。 |
| -w | 指定保存的文件名。 |
| -r | 读取保存的文件。 |
| -n | 不解析主机名。 |
| -X | 显示十六进制和 ASCII 码。 |
| -c | 指定发送的回显请求数。 |
| -w | 指定等待每个回复的时间(毫秒)。 |
| -i | 指定发送的间隔时间(秒)。 |
telnet 是 Linux 中用于连接到远程计算机的命令。以下是 telnet 命令的详细解释以及常用参数。基本语法:
telnet [选项] 主机名/IP
常用选项:
| 参数 | 说明 |
|---|---|
| -e | 指定终端类型。 |
| -l | 指定登录名。 |
| -n | 不解析主机名。 |
| -X | 显示十六进制和 ASCII 码。 |
| -c | 指定发送的回显请求数。 |
nc 是 Linux 中用于网络调试的命令。以下是 nc 命令的详细解释以及常用参数。基本语法:
nc [选项] 主机名/IP 端口
常用选项:
| 参数 | 说明 |
|---|---|
| -e | 指定终端类型。 |
| -l | 指定登录名。 |
| -n | 不解析主机名。 |
| -X | 显示十六进制和 ASCII 码。 |
| -c | 指定发送的回显请求数。 |
# 服务管理 systemctl
systemctl 是 Linux 中用于管理服务的命令。以下是 systemctl 命令的详细解释以及常用参数。基本语法:
systemctl [选项] 服务名
常用选项:
| 参数 | 说明 |
|---|---|
| -l | 列出所有服务。 |
| -e | 列出所有服务。 |
| -s | 启动服务。 |
| -t | 停止服务。 |
| -r | 重启服务。 |
| -k | 发送信号。 |
| -p | 显示服务状态。 |
| -f | 显示服务状态。 |
| -c | 显示服务状态。 |
将新服务添加到系统中,例如将 nginx 添加到系统中:
sudo systemctl enable nginx
# 软件包管理
# 安装软件包
apt install package_name
# 更新软件包
apt update && apt upgrade
# 删除软件包
apt remove package_name
# 查看软件包信息
apt show package_name
# 安装软件包
yum install package_name
# 更新软件包
yum update
# 删除软件包
yum remove package_name
# yum和apt区别
yum 是 Red Hat 系列发行版(如 CentOS、Fedora)的软件包管理工具,而 apt 是 Debian 系列发行版(如 Ubuntu)的软件包管理工具。
yum [选项] [命令]
常用选项:
| 参数 | 说明 |
|---|---|
| -y | 自动确认安装。 |
| -q | 安静模式。 |
| -v | 显示详细信息。 |
| -h | 显示帮助信息。 |
| -e | 显示错误信息。 |
| -d | 显示调试信息。 |
| -c | 显示配置信息。 |
| -f | 显示文件信息。 |
| -i | 显示安装信息。 |
常用命令:
| 命令 | 说明 |
|---|---|
| install | 安装软件包。 |
| remove | 删除软件包。 |
| update | 更新软件包。 |
| list | 列出软件包。 |
| info | 显示软件包信息。 |
| search | 搜索软件包。 |
| clean | 清理软件包。 |
| check-update | 检查更新。 |
| makecache | 生成缓存。 |
apt 是 Debian 系列发行版的默认软件包管理工具,而 yum 是 Red Hat 系列发行版的默认软件包管理工具。
apt [选项] [命令]
常用选项:
| 参数 | 说明 |
|---|---|
| -y | 自动确认安装。 |
| -q | 安静模式。 |
| -v | 显示详细信息。 |
| -h | 显示帮助信息。 |
| -e | 显示错误信息。 |
| -d | 显示调试信息。 |
| -c | 显示配置信息。 |
| -f | 显示文件信息。 |
| -i | 显示安装信息。 |
常用命令:
| 命令 | 说明 |
|---|---|
| install | 安装软件包。 |
| remove | 删除软件包。 |
| update | 更新软件包。 |
| list | 列出软件包。 |
| info | 显示软件包信息。 |
| search | 搜索软件包。 |
| clean | 清理软件包。 |
| check-update | 检查更新。 |
| makecache | 生成缓存。 |
yum 和 apt 的主要区别
| 特性 | yum (Yellowdog Updater Modified) | apt (Advanced Package Tool) |
|---|---|---|
| 适用系统 | 基于 RPM 的系统(如 CentOS、RHEL、Fedora) | 基于 DEB 的系统(如 Debian、Ubuntu) |
| 包管理格式 | RPM(Red Hat Package Manager) | DEB(Debian Package) |
| 配置文件 | /etc/yum.conf 和 /etc/yum.repos.d/ | /etc/apt/sources.list 和 /etc/apt/sources.list.d/ |
| 缓存管理 | 自动清理缓存,需手动清理使用 yum clean all | 自动清理缓存,需手动清理使用 apt clean |
| 依赖解决 | 自动解决依赖 | 自动解决依赖 |
| 命令语法 | yum install <package> | apt install <package> |
| 更新包列表 | yum check-update | apt update |
| 升级所有包 | yum update | apt upgrade |
| 删除包 | yum remove <package> | apt remove <package> |
| 删除包及配置文件 | yum erase <package> | apt purge <package> |
| 搜索包 | yum search <keyword> | apt search <keyword> |
| 查看包信息 | yum info <package> | apt show <package> |
| 安装本地包 | yum localinstall <package.rpm> | dpkg -i <package.deb> |
| 仓库管理 | 通过 /etc/yum.repos.d/ 添加仓库 | 通过 /etc/apt/sources.list 添加仓库 |
| 插件支持 | 支持插件(如 yum-plugin-fastestmirror) | 支持插件(如 apt-transport-https) |
| 历史记录 | yum history | apt list --installed |
| 回滚操作 | yum history undo <id> | 不支持直接回滚,需手动操作 |
yum:主要用于基于RPM的系统(如CentOS、RHEL、Fedora),命令简单,支持插件和历史回滚。apt:主要用于基于DEB的系统(如Debian、Ubuntu),命令直观,依赖解决能力强。
# 其它常用命令
# 查看系统信息
uname -a
# 查看系统版本
cat /etc/redhat-release
# 查看CPU信息
lscpu
# 查看内存信息
free -h
# 查看硬盘信息
lsblk
# 查看硬盘使用情况
df -h
# 查看硬盘分区
fdisk -l
← 运维 CPU、GPU、内存 →