Linux基本操作:6w字搞定Linux手把手教程(一)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux基本操作:6w字搞定Linux手把手教程(一)
Linux是一种开源电脑操作系统内核。

它是一个用C语言写成,符合POSIX标准的类Unix操作系统。

Linux最早是由芬兰Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。

该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

linux其实很常见,它的安全性也很好,因为它得体积很小也经常被广泛得应用到小的家电中去。

Linux得功能也十分得强大,被广泛的应用于智能设备、后台服务器、云计算、大数据等。

学习好它十分的重要。

它的基本的目录主要是这样的:
/:/是根目录.Unix 和 Linux 中,没有盘符. 只有一个硬盘,一个根.
/bin :系统的常用命令目录. 包括控制台命令, 系统可执行文件, 系统的核心二进制文件等.
/etc:发布目录, 相当于 windows 系统中的 windows 目录, 保存系统中的所有核心内容. 要求控制权限高, 建议不要随便读写.
/usr :用户目录, 相当于 windows 系统中的 program files 目录. 常用于安装系统所有用户共用的软件,资源的.
/root :root 根用户的用户目录 . 相当于 windows 系统中的C:/users/administrator 目录.
/home :保存其他用户主目录的目录. 如: Linux 系统中有oldlu 用户. 那么一定有/home/oldlu 目录存在. 代表用户的主目录.
/var :系统运行过程的数据目录.
Linux命令这么多,该怎么从入门到精通?其实,这个事情非常的simple,博智互联给大家整理了这篇非常完整的文章。

文章非常的长,非常考验一个人耐心和毅力。

衷心希望对你有所收获!
本文将由一个Linux命令概览开始,说明Linux命令的方方面面。

如果你读完这部分还是一头雾水,那么就证明需要按照下面的小白教程去学习了,内容涵盖了:如何挑选Linux发行版、如何安装Linux系统,按照主题学习Linux系统的命令等。

1. Linux命令概览
这部分是给稍微有点Linux经验的同学准备的,如果你是初学者,请跳过此part直接进入第二部分。

1.1目录操作
工作中,最常打交道的就是对目录和文件的操作。

linux提供了相应的命令去操作他,并将这些命令抽象、缩写。

1.1.1 基本操作
可能是这些命令太常用了,多打一个字符都是罪过。

所以它们都很短,不用阿拉伯数字,一个剪刀手就能数过来。

看命令。

mkdir 创建目录make dircp 拷贝文件copymv 移动文件moverm 删除文件 remove
例子:
# 创建目录和父目录a,b,c,dmkdir -p a/b/c/d# 拷贝文件夹a到/tmp目录cp -rvf a/ /tmp/# 移动文件a到/tmp目录,并重命名为bmv -vf a /tmp/b# 删除机器上的所有文件rm -rvf /
1.1.2 漫游
linux上是黑漆漆的命令行,依然要面临人生三问:我是谁?我在哪?我要去何方?
ls 命令能够看到当前目录的所有内容。

ls -l能够看到更多信息,判断你是谁。

pwd 命令能够看到当前终端所在的目录。

告诉你你在哪。

cd 假如你去错了地方,cd命令能够切换到对的目录。

find find命令通过筛选一些条件,能够找到已经被遗忘的文件。

至于要去何方,可能就是主宰者的意志了。

1.2 文本处理
这是是非常非常加分的技能。

get到之后,也能节省更多时间来研究面向对象。

小姐姐味道已经输出了“最常用的vim、sed、awk技巧系列”。

1.2.1 查看文件
cat
最常用的就是cat命令了,注意,如果文件很大的话,cat命令的输出结果会疯狂在终端上输出,可以多次按ctrl+c终止。

# 查看文件大小du -h file# 查看文件内容cat file
less
既然cat有这个问题,针对比较大的文件,我们就可以使用less 命令打开某个文件。

类似vim,less可以在输入/后进入查找模式,然后按n(N)向下(上)查找。

有许多操作,都和vim类似,你可以类比看下。

tail
大多数做服务端开发的同学,都了解这么命令。

比如,查看nginx的滚动日志。

tail -f access.log
tail命令可以静态的查看某个文件的最后n行,与之对应的,head命令查看文件头n行。

但head没有滚动功能,就像尾巴是往外长的,不会反着往里长。

tail -n100 access.loghead -n100 access.log
1.2.1 统计
sort和uniq经常配对使用。

sort可以使用-t指定分隔符,使用-k指定要排序的列。

下面这个命令输出nginx日志的ip和每个ip的pv,pv最高的前10
# 2019-06-
26T10:01:57+08:00|nginx001.server.ops.pro.dc|100.116.222.80|1 0.31.150.232:41021|0.014|0.011|0.000|200|200|273|-
|/visit|sign=91CD1988CE8B313B8A0454A4BBE930DF|-|-
|http|POST|112.4.238.213awk -
F'|' '{print $3}' access.log | sort | uniq -c | sort -nk1 -r | head -n10 1.2.3 其他
grep
grep用来对内容进行过滤,带上--color参数,可以在支持的终端可以打印彩色,参数n则输出具体的行数,用来快速定位。

比如:查看nginx日志中的POST请求。

grep -rn --color POST access.log
推荐每次都使用这样的参数。

如果我想要看某个异常前后相关的内容,就可以使用ABC参数。

它们是几个单词的缩写,经常被使用。

A after 内容后n行 B before 内容前n行 C count? 内容前后n行
就像是这样:
grep -rn --color Exception -A10 -B2 error.log
diff
diff命令用来比较两个文件是否的差异。

当然,在ide中都提供了这个功能,diff只是命令行下的原始折衷。

对了,diff和patch还是一些平台源码的打补丁方式,你要是不用,就pass吧。

1.3压缩
为了减小传输文件的大小,一般都开启压缩。

linux下常见的压缩文件有tar、bzip2、zip、rar等,7z这种用的相对较少。

.tar 使用tar命令压缩或解压
.bz2 使用bzip2命令操作
.gz 使用gzip命令操作
.zip 使用unzip命令解压
.rar 使用unrar命令解压
最常用的就是.tar.gz文件格式了。

其实是经过了tar打包后,再使用gzip压缩。

创建压缩文件
tar cvfz archive.tar.gz dir/
解压
tar xvfz. archive.tar.gz
快去弄清楚它们的关系吧。

1.4 日常运维
开机是按一下启动按钮,关机总不至于是长按启动按钮吧。

对了,是shutdown命令,不过一般也没权限-.-!。

passwd命令可以用来修改密码,这个权限还是可以有的。

mount
mount命令可以挂在一些外接设备,比如u盘,比如iso,比如刚申请的ssd。

可以放心地看小电影了。

mount /dev/sdb1 /xiaodianying
chown
chown 用来改变文件的所属用户和所属组。

chmod 用来改变文件的访问权限。

这两个命令,都和linux的文件权限777有关。

示例:
# 毁灭性的命令chmod 000 -R /# 修改a目录的用户和组为 xjjchown -R xjj:xjj a# 给a.sh文件增加执行权限(这个太常用了)chmod a+x a.sh
yum
假定你用的是centos,则包管理工具就是yum。

如果你的系统没有wget命令,就可以使用如下命令进行安装。

yum install wget -y
systemctl
当然,centos管理后台服务也有一些套路。

service命令就是。

systemctl兼容了service命令,我们看一下怎么重启mysql服务。

推荐用下面这个。

service mysql restartsystemctl restart mysqld
对于普通的进程,就要使用kill命令进行更加详细的控制了。

kill 命令有很多信号,如果你在用kill -9,你一定想要了解kill -15以及kill -3的区别和用途。

su
su用来切换用户。

比如你现在是root,想要用xjj用户做一些勾当,就可以使用su切换。

su xjjsu - xjj
-可以让你干净纯洁的降临另一个账号,不出意外,推荐。

1.5 系统状态概览
登陆一台linux机器,有些命令能够帮助你快速找到问题。

这些命令涵盖内存、cpu、网络、io、磁盘等。

uname uname命令可以输出当前的内核信息,让你了解到用的是什么机器。

uname -a
ps
ps命令能够看到进程/线程状态。

和top有些内容重叠,常用。

# 找到java进程ps -ef|grep java
top 系统状态一览,主要查看。

cpu load负载、cpu占用率。

使用内存或者cpu最高的一些进程。

下面这个命令可以查看某个进程中的线程状态。

top -H -p pid
free
top也能看内存,但不友好,free是专门用来查看内存的。

包括物理内存和虚拟内存swap。

df
df命令用来查看系统中磁盘的使用量,用来查看磁盘是否已经到达上限。

参数h可以以友好的方式进行展示。

df -h
ifconfig
查看ip地址,不啰嗦,替代品是ip addr命令。

ping
至于网络通不通,可以使用ping来探测。

(不包括那些禁ping 的网站)
netstat虽然ss命令可以替代netstat了,但现实中netstat仍然用的更广泛一些。

比如,查看当前的所有tcp连接。

netstat -ant
此命令,在找一些本地起了什么端口之类的问题上,作用很大。

1.6 工作常用
还有一些在工作中经常会用到的命令,它们的出现频率是非常高的,都是些熟面孔。

export
很多安装了jdk的同学找不到java命令,export就可以帮你办到它。

export用来设定一些环境变量,env命令能看到当前系统中所有的环境变量。

比如,下面设置的就是jdk了。

export PATH=$PATH:/home/xjj/jdk/bin
有时候,你想要知道所执行命令的具体路径。

那么就可以使用whereis命令,我是假定了你装了多个版本的jdk。

crontab
这就是linux本地的job工具。

不是分布式的,你要不是运维,就不要用了。

比如,每10分钟提醒喝茶上厕所。

*/10 * * * * /home/xjj/wc10min
date date命令用来输出当前的系统时间,可以使用-s参数指定输出格式。

但设置时间涉及到设置硬件,所以有另外一个命令叫做hwclock。

xargs xargs读取输入源,然后逐行处理。

这个命令非常有用。

举个例子,删除目录中的所有class文件。

find . | grep .class$ | xargs rm -rvf#把所有的rmvb文件拷贝到目录ls *.rmvb | xargs -n1 -i cp {} /mount/xiaodianying
1.7 网络
linux是一个多作业的网络操作系统,所以网络命令有很多很多。

工作中,最常和这些打交道。

ssh
这个,就不啰嗦了。

你一定希望了解ssh隧道是什么。

你要是想要详细的输出过程,记得加参数-v。

scp
scp用来进行文件传输。

也可以用来传输目录。

也有更高级的sftp 命令。

scp a.txt 192.168.0.12:/tmp/a.txtscp -
r a_dir 192.168.0.12:/tmp/
wget
你想要在服务器上安装jdk,不会先在本地下载下来,然后使用scp传到服务器上吧(有时候不得不这样)。

wget命令可以让你直接使用命令行下载文件,并支持断点续传。

wget -c http://oracle.fuck/jdk2019.bin
mysql
mysql应用广泛,并不是每个人都有条件用上navicat的。

你需要了解mysql的连接方式和基本的操作,在异常情况下才能游刃有余。

mysql -u root -p -h 192.168.1.2
不要觉得复杂,命令是有限的,但激情无限;都会也不要骄傲,一个vim就够折腾一辈子。

捷径就是总结,深入只有探索。

白马过隙,终会行云流水,手到擒来。

物是人非,年华易老。

唯有时光,不会辜负。

2. 挑选一个Linux发行版
和Linux比较像的还有Unix,但如果你是一个二三十岁的小青年,你接触到可能只有Linux的世界了。

从手机,到服务器上广泛使用的centos,到漂亮的桌面发行版ubuntu,甚至是风靡全球的树莓派,到处都是linux的身影。

2.1 你需要知道这些linux历史
知道一点相关操作系统的历史,是能够陶冶情操的。

GNU/Linux 是为了抵制一些商业公司的垄断行为而发展起来的,凝结了一代互联网人向往自由的心血。

和其他Unix比起来,Linux其实很年轻。

直到1991年,一个叫Linus Torvalds的芬兰年轻人才开始开发我们现在所知道的Linux内核。

Linux的吉祥物是企鹅,这个吉祥物直到1996年才确定,所以你会经常看到一些搞笑的图片。

如果你是90后,那这只小企鹅几乎和你一般大,还是个年轻的小伙。

Linux的发展历程比较的复杂。

经过一次次的过关斩将,Linux走到今天确属不易。

关于其发展历史,你可以通过下面的链接,查看高清图片。

20年的时间,对软件行业来说,是一段非常漫长的时光,有多少的风光已经物是人非。

高清见图片(1t.click/aUnx) 。

可以看到,linux只占了那可怜的一小块。

这就像人类的出现,在生命的长河中,微不足道,但却是一个质的飞跃。

你可能注意到,在前面的描述中,说的是GUN/Linux,而不仅仅是Linux。

Linux本身只是一个内核,作用有限,只有和GNU联合起来,拥有完整的生态才会发挥它的作用。

谈到上面区别的原因,是为了记住Richard Stallman在1983年发起的GNU计划。

他同时是smalltalk语言的发明者,被公认的第二个面向对象的语言。

我在早些年,还研究过一段时间。

哦,他还编写了一个巨无霸编辑器,Emacs。

只有一个人被捧成神,他才会有能量折磨你。

针对于Linux历史,我们不做过多介绍。

下面介绍几个经典的发行版本。

2.2 精选版本介绍
现在的Linux发行版本,已经有上千个,你要是喜欢、而且多金,你也可以做一个。

如何在这其中,找到最合适的版本,是需要经过一番折腾的。

很多发行版本,其实是很小众的。

这不像是哲学领域的某些东西,真理掌握在少数人手中。

只有获得良好发展,并得到认可的Linux发行版,才有它的价值,可以说是彻头彻尾的实用主义。

但这东西又像女朋友,刚开始感觉风采迥异,各有千秋,到最后了解到是一样的庸俗不堪。

但有人就是喜欢Linux相关的工作,一干就是一辈子...
我可以先说一下自己的历程。

刚开始,接触的是红帽redhat,当时还没有分什么企业版。

用了一段时间以后,又切换成更稳定的slackware。

但是slackware上的程序更新实在太慢了,于是又切换成readhat血统的fedora,这个版本的软件保鲜度很高。

其间,又尝试了其他几个linux版本,最终,在2013年前后,换成了滚动升级的archlinux,直到现在。

要我个人做个推荐的话:
1、个人用户(技术),桌面版用ubuntu=>archlinux。

2、企业用户,服务器,使用centos。

2.3 主要起源
这么多Linux版本,其实有两条主线。

debian系列和redhat系列。

很多发行版本,其实是二次翻新,很多就直接拿这两个基础系列进行改造。

正所谓:操作系统千千万,都是帽子和大便。

debian
下面这个屎一样的图表,就是debian。

呃呃呃,和大便只差一个字母。

Debian计划是一个致力于创建一个自由操作系统的合作组织。

它的特点是:稳定、安全,到现在为止,已经发展了20多年了。

我们所熟悉的ubuntu,就是基于debian改进的。

redhat
红帽是一家商业公司,涉足Linux比较早,现在对个人提供一些红帽认证之类的证书。

现在云主机使用较多的centos,包括红帽公司的RHEL,占据了大部分服务器市场。

近期,centos 8推出了centos
stream滚动版本,看起来更像是一个正常的操作系统。

2.4 典型版本
我们看一下处于不同层次的几个典型版本。

从应用方面来说,linux有桌面、服务器、研究用等用途。

2.4.1、ubuntu
ubuntu的出现,对Linux的推广有不可磨灭的贡献。

它是一个易于安装的桌面版本(也有服务器版本),界面非常漂亮。

ubuntu是基于debian系统的unstable分支修改的,包管理软件是apt-get。

它的创建者是Mark Shuttleworth,南非企业家,世界上第二名自资的太空游客。

我想,无论是太空还是ubuntu,这都是梦想吧。

2.4.2、centos
centos是目前最流行的服务器版本。

它是RHEL源代码再编译的产物,主要是为了绕开一些法律问题。

在包管理,甚至稳定性上,与红帽企业版没什么差别。

2.4.3、archlinux
archlinux采用滚动升级的模式进行发行,尽全力提供最新的稳定版本。

刚开始安装,arch只提供一个基本的系统,甚至连界面都没有,对初学者不是很友好。

但是,archlinux是非常干净的系统。

很多软件,只有你需要的时候才会安装。

它的软件和理念通常都是最新的,定制化非常强,深得许多Linux爱好者的喜爱。

2.4.4、gentoo
上面的archlinux,提供了编译后的软件包。

用户在安装软件时,只需要下载、解压即可。

gentoo将这个过程更近一步,可以说更加的变态。

它下载的是软件的源代码,然后在本地进行编译,然后安装。

这通常非常的蛋疼,因为下载、编译会花费非常长的时间,但它有一个非常大的优点,就是稳定。

这个系统比较底层,对技能要求更多,不太推荐。

2.4.5 、LFS
LFS的全拼是“linux from scratch”,意思是从零构建一个linux 系统。

它有一个非常详细的安装文档,教你怎样编译内核,编译引导程序,编译和配置必要的软件。

这是一个疯狂而必要的过程。

如果你想要自己的Linux之上更上层楼,跟着文档做一遍是受益无穷的。

你需要经过多次交叉编译,最终使用chroot命令切换到新系统进行后续操作。

想做一个自己的发行版么?从这开始吧。

2.4.6、kali
kali linux是一个非常专业的发行版。

如果你在做渗透方面的工作,将是一个非常好的选择。

发行版的安装包非常大,包含了常见的破解工具,渗透工具,攻击工具。

这非常的危险,我曾用它暴力破解了非常多的wifi密码,成功的窥视了邻居的隐私。

还是非常好用的。

3. 安装一个清爽的Linux系统
工欲善其事,必先利其器。

你可能会想到买一台云主机练练手,但那毕竟要花点银子,我们可以自己安装一个。

我们在上面提到,目前使用最广泛的,就是centos。

不论你是自建机房,还是使用类似于阿里云这样的云端环境,大多数都会提供centos的安装。

你可能会找到多种安装虚拟机的方式。

本小节,将使用虚拟双网卡的方式,准备一个纯洁的环境。

这一小节,图片很多。

以阿里云为例,默认第一位就是CentOS,提供了从7.6版本到旧版本的多个镜像。

3.1 下载
下面的文章,我们就以CentOS 7稳定版本为基础环境。

centos 很流行,所以镜像也有很多。

国内,我们从上海交大下载,速度应该会快一些。

/centos/7/isos/x86_64/CentOS-7-
x86_64-Minimal-1908.iso
如果交大哪天不维护了。

可以从这里找:
/7/isos/x86_64/CentOS-7-
x86_64-Minimal-1908.iso
为了让大家学到更多的知识,我们使用最小化的系统ISO。

最小化的iso不到1GB,而预装了很多软件的dvd有4.3GB的大小。

我们就用这个减肥版。

3.2 安装Linux
要想快速学习、体验Linux,最便捷的方式,就是使用虚拟机进行安装。

目前,最流行的虚拟机,一个是VMware,一个是VirtualBox。

在MacOS上还有一个Parallels Desktop。

其中,VirtualBox免费而且跨平台,能够满足我们的需求。

接下来,将一步步引导你进行安装。

(1) 点击新建,开启安装旅程。

(2) 填写名称,版本。

然后点击继续。

(3)按照你的机器配置,选择内存
我的机器是8GB内存的,就分配给虚拟机2GB,这个已经足够用了。

(4) 创建一个虚拟磁盘
点击继续后,将弹出一个对话框。

我们不用多管,一直点继续,知道对话框消失。

这非常的粗暴。

(5) 接下来,点击设置。

(6) 切换到Storage选项,选择我们下载的iso
(7) 点击启动,开始安装。

使用方向键切换,使得高亮聚焦在Install CentOS 7上。

点击确定,开始安装。

(8) 弹出一个安装界面
接下来的步骤有点多,如果我们没有特别的介绍,那么直接continue就ok了。

(9) 接下来,配置磁盘分区
依然保持默认,并按按钮Done退出。

(10) 配置用户
linux上默认的用户名为root。

接下来我们设置root用户的密码为123456。

由于这是一个弱密码,所以需要点击两次确定退出。

(11) 等待安装完毕,进行重启
(12) 安装成功
3.3 联网
这个时候,我们安装的虚拟机,还不能联网,无法把自己的意念传达出去。

由于我们没有对虚拟机进行任何设置,所以使用的是默认的NAT模式。

将光标聚焦到命令行窗口,然后输入命令dhclient。

等待几秒钟,执行ping 测试以下网络,可以看到能够正常访问网络了。

上面黑漆漆的窗口,就是我们现在的Linux界面。

有人觉得很丑,就像是在玩dos,但像我这种不可救药的人,却觉得格外的亲切。

接下来的命令,我们不会再截图,而使用高亮的代码块表示。

为了不至于让人晕头转向,请先看下图。

3.4 外部访问虚拟机
由于NAT模式的特点,我们的虚拟机能够访问外网,但无法被外部发现。

酒香竟怕巷子深。

为了解决这个问题,我们需要再添加一块网卡。

在做这些更改之前,需要首先关闭虚拟机。

可以强制关闭机器,也可以在命令行中输入:
shutdown -h now
虚拟机关闭后,再次点击设置,切换到网络适配器选项卡。

如图,添加一个新的网络适配器,适配器类型为Host-only Adapter。

通过这块网卡,我们的宿主机就能够访问它了。

再次启动虚拟机,执行dhclient命令后,执行ip addr查看主机的ip地址。

可以看到,我们现在有两块网卡,两个ip地址。

记录下192打头的网络地址,我们会使用外部的程序,比如XShell、SecureCRT等,进行连接。

比如,我这里的ip地址是:192.168.99.100。

不废话,看图。

小提示:关于虚拟网卡的网段,如果有差异。

你可以在全局设置里,改成和我一样的。

3.5 远程连接
你可能已经体验到,通过虚拟机自带的命令行界面进行输入,局限性非常大。

通过远程连接,可以把终端界面切换到我们熟悉的操作模式,如果能够显示彩色的终端,那再好不过了。

下面介绍几个工具,一般的,使用xshell的居多。

Windows
XShell 你可能在公司内,见过你的SRE同事,运指如飞,命令字符如流水一般撒过屏幕。

即使非常繁杂,难以记忆的密码,也能瞬间输入。

他可能用的就是xshell。

SecureCRT 比较老的一款产品,使用也较多。

MobaXterm MobaXterm就是一单文件纯绿色软件,下载过来exe包直接运行即可,不需要任何的安装过程。

它们都有免费版和专业版之分。

无力购买的话,就找找破解版。

但是注意,盗版汉化的ssh客户端,有些别有用心的人会在软件中植入木马,窃取你的密码、证书,这种情况已经发生过很多次。

MacOS
对于macos用户来说,简单的很。

直接使用iTerm,输入命令行即可。

比如使用下面的命令连接我们的机器。

***************.99.100
Linux
唔,你都已经是Linux环境了,还折腾个啥虚拟机呢?直接用吧。

推荐使用XShell、SecureCRT、iTerm等工具,通过ssh进行远程连接。

对于一些命令拷贝、验证来说,要方便快捷的多。

4. 对Linux命令行有个初步了解
万事开头难。

面对黑漆漆的Linux窗口,要勇敢的走出第一步。

不要怕输错了什么,系统健壮的很。

命令行通常会拥有比图形界面更高的效率,更加重要的是它可以做自动化之类的小工具,这使得生产
力产生质的飞跃。

现在,你已经安装好了centos,并远程连接上了它。

我们拥有了它,但并不能了解它的脾气。

接下来,让我们进入Linux命令行的世界。

和我签订契约吧,少年。

本小节会使用非常详细的演进方式,来看一下一个命令,是怎样生成和执行的。

4.1、简单尝试
好啦,我们现在就在终端里了。

什么叫做终端呢?你在很多黑客电影里,看到的黑漆漆的界面就是,它提供了一个可以输入字符串的交互式界面,至于那些闪光的、扫描机一样的东西,是不存在的。

尝试输入些什么吧。

比如:jdsjf。

[root@localhost ~]# jdsjf-bash: jdsjf: command not found 我们再次把这张图贴一下。

怎么回事?命令的输出翻译成中文,就是“找不到命令”的意思。

什么叫命令?就是我们上面随便输入的字符串jdsjf。

然后,我们看下提示中其他一些有用的东西。

相关文档
最新文档