# 基础-语法

# 文件操作

# 创建文件
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操作

mvLinux 中用于移动或重命名文件或目录的命令。它可以将文件从一个位置移动到另一个位置,或者重命名文件或目录。以下是 mv 命令的详细解释以及常用参数。基本语法:

mv [选项] 源文件或目录 目标文件或目录

常用选项:

参数 说明
-i 交互式移动,移动前提示用户确认。
-f 强制移动,忽略不存在的文件或目录,不提示确认。

# cp操作

cpLinux 中用于复制文件或目录的命令。它可以将文件从一个位置复制到另一个位置,或者将目录及其内容复制到另一个位置。以下是 cp 命令的详细解释以及常用参数。基本语法:

cp [选项] 源文件或目录 目标文件或目录

常用选项:

参数 说明
-r 递归复制,用于复制目录及其内容。
-i 交互式复制,复制前提示用户确认。

# find 与 grep操作

findLinux 中用于查找文件或目录的命令。它可以根据文件名、文件类型、文件大小、文件权限等条件查找文件或目录。以下是 find 命令的详细解释以及常用参数。基本语法:

find [选项] 路径 表达式

常用选项:

参数 说明
-name 根据文件名查找。
-type 根据文件类型查找。
-size 根据文件大小查找。
-perm 根据文件权限查找。
-exec 执行命令。
-print 显示结果。

grepLinux 中用于搜索文本的命令。它可以根据指定的模式搜索文件中的内容,并输出匹配的行。以下是 grep 命令的详细解释以及常用参数。基本语法:

grep [选项] 模式 文件

常用选项:

参数 说明
-i 忽略大小写。
-n 显示行号。
-r 递归搜索。
-E 使用扩展正则表达式。
-A 显示匹配行后几行。
-B 显示匹配行前几行。
-C 显示匹配行前后几行。

findgrep的区别是:find 是查找文件,grep 是查找文本。

findgrep 结合使用,可以查找文件中的特定内容。

find /path -name "*.txt" | grep "pattern"

# rm操作

rmLinux 中用于删除文件或目录的命令,全称为 remove。它是一个非常强大但危险的命令,因为删除的文件或目录通常无法恢复。以下是 rm 命令的详细解释以及常用参数。基本语法:

rm [选项] 文件或目录

常用选项:

参数 说明
-f 强制删除,忽略不存在的文件或目录,不提示确认。
-i 交互式删除,删除前提示用户确认。
-r 或 -R 递归删除,用于删除目录及其内容。
-v 显示详细信息,输出每个被删除的文件或目录。
-d 删除空目录,类似于 rmdir。
--help 显示帮助信息。
--version 显示版本信息。

# ls操作

lsLinux 中用于列出目录内容的命令。它可以根据文件类型、文件权限、文件大小等条件列出目录内容。以下是 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 文件或目录的名称。

# 压缩与解压

tarLinux 中用于压缩和解压文件的命令。它可以将文件或目录压缩为 .tar.gz 文件,或者解压 .tar.gz 文件。以下是 tar 命令的详细解释以及常用参数。基本语法:

tar [选项] 文件或目录

常用选项:

参数 说明
-c 创建新的归档文件。
-x 解压归档文件。
-z 使用 gzip 压缩或解压文件。
-v 显示详细信息,输出每个被压缩或解压的文件。
-f 指定归档文件名。
-j 使用 bzip2 压缩或解压文件。
-t 列出归档文件的内容。
-u 更新归档文件。
-r 递归处理目录。

unzipLinux 中用于解压 .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

killLinux 中用于终止进程的命令。以下是 kill 命令的详细解释以及常用参数。基本语法:

kill [选项] 进程ID

常用选项:

参数 说明
-9 强制终止进程。
-l 列出所有进程。
-s 发送信号。
-n 指定信号数量。
-w 等待进程终止。
-f 显示进程的完整信息。
-i 交互式终止进程。
-r 递归终止进程。
-a 终止所有进程。

# ps

psLinux 中用于显示进程信息的命令。以下是 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

ifconfigLinux 中用于显示和配置网络接口信息的命令。以下是 ifconfig 命令的详细解释以及常用参数。基本语法:

ifconfig [选项]

常用选项:

参数 说明
-a 显示所有网络接口。
-s 显示网络接口的摘要信息。

# ping

pingLinux 中用于测试网络连接的命令。以下是 ping 命令的详细解释以及常用参数。基本语法:

ping [选项] 目标

常用选项:

参数 说明
-c 指定发送的回显请求数。
-w 指定等待每个回复的时间(毫秒)。
-i 指定发送的间隔时间(秒)。
-s 显示统计信息。
-r 显示路由信息。
-n 不解析主机名。
-l 显示本地主机地址。

# 下载工具

wgetLinux 中用于下载文件的命令。以下是 wget 命令的详细解释以及常用参数。基本语法:

wget [选项] URL

常用选项:

参数 说明
-O 指定保存的文件名。
-c 断点续传。
-b 后台下载。
-q 安静模式。

curlLinux 中用于传输数据的命令。以下是 curl 命令的详细解释以及常用参数。基本语法:

curl [选项] URL

常用选项:

参数 说明
-O 指定保存的文件名。
-c 断点续传。
-b 后台下载。
-q 安静模式。

curlwget 都是 Linux 中常用的命令行工具,用于从网络下载文件或与服务器进行交互。尽管它们的功能有重叠,但在设计目标和使用场景上有一些显著的区别。以下是 curlwget 的主要区别:

特性 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:网络调试工具,可以用于端口扫描、文件传输等。

tcpdumpLinux 中用于抓取和分析网络数据包的命令。以下是 tcpdump 命令的详细解释以及常用参数。基本语法:

tcpdump [选项]

常用选项:

参数 说明
-i 指定网络接口。
-w 指定保存的文件名。
-r 读取保存的文件。
-n 不解析主机名。
-X 显示十六进制和 ASCII 码。
-c 指定发送的回显请求数。
-w 指定等待每个回复的时间(毫秒)。
-i 指定发送的间隔时间(秒)。

telnetLinux 中用于连接到远程计算机的命令。以下是 telnet 命令的详细解释以及常用参数。基本语法:

telnet [选项] 主机名/IP

常用选项:

参数 说明
-e 指定终端类型。
-l 指定登录名。
-n 不解析主机名。
-X 显示十六进制和 ASCII 码。
-c 指定发送的回显请求数。

ncLinux 中用于网络调试的命令。以下是 nc 命令的详细解释以及常用参数。基本语法:

nc [选项] 主机名/IP 端口

常用选项:

参数 说明
-e 指定终端类型。
-l 指定登录名。
-n 不解析主机名。
-X 显示十六进制和 ASCII 码。
-c 指定发送的回显请求数。

# 服务管理 systemctl

systemctlLinux 中用于管理服务的命令。以下是 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 系列发行版(如 CentOSFedora)的软件包管理工具,而 aptDebian 系列发行版(如 Ubuntu)的软件包管理工具。

yum [选项] [命令]

常用选项:

参数 说明
-y 自动确认安装。
-q 安静模式。
-v 显示详细信息。
-h 显示帮助信息。
-e 显示错误信息。
-d 显示调试信息。
-c 显示配置信息。
-f 显示文件信息。
-i 显示安装信息。

常用命令:

命令 说明
install 安装软件包。
remove 删除软件包。
update 更新软件包。
list 列出软件包。
info 显示软件包信息。
search 搜索软件包。
clean 清理软件包。
check-update 检查更新。
makecache 生成缓存。

aptDebian 系列发行版的默认软件包管理工具,而 yumRed Hat 系列发行版的默认软件包管理工具。

apt [选项] [命令]

常用选项:

参数 说明
-y 自动确认安装。
-q 安静模式。
-v 显示详细信息。
-h 显示帮助信息。
-e 显示错误信息。
-d 显示调试信息。
-c 显示配置信息。
-f 显示文件信息。
-i 显示安装信息。

常用命令:

命令 说明
install 安装软件包。
remove 删除软件包。
update 更新软件包。
list 列出软件包。
info 显示软件包信息。
search 搜索软件包。
clean 清理软件包。
check-update 检查更新。
makecache 生成缓存。

yumapt 的主要区别

特性 yum (Yellowdog Updater Modified) apt (Advanced Package Tool)
适用系统 基于 RPM 的系统(如 CentOSRHELFedora 基于 DEB 的系统(如 DebianUbuntu
包管理格式 RPMRed Hat Package Manager DEBDebian 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 的系统(如 CentOSRHELFedora),命令简单,支持插件和历史回滚。
  • apt:主要用于基于 DEB 的系统(如 DebianUbuntu),命令直观,依赖解决能力强。

# 其它常用命令

# 查看系统信息
uname -a

# 查看系统版本
cat /etc/redhat-release

# 查看CPU信息
lscpu

# 查看内存信息
free -h

# 查看硬盘信息
lsblk

# 查看硬盘使用情况
df -h

# 查看硬盘分区
fdisk -l