阿里云的ECS是阿里提供的一种线上云服务器的解决方案。这个专栏讲的服务器部署以及下文中的文件系统都是基于CentOS8.1系统。
本文就初始化后的阿里云CentOS为切入点,讲述
一、Linux文件系统
二、在不进行二次配置之前,CentOS给了我们哪些
一、Linux文件系统
1.1 /bin目录
bin是binary的缩写,存放的是系统的可执行文件或者说二进制文件。
1.2 /boot目录
boot是启动的意思,顾名思义,这里存放的是linux系统启动时用到的一些文件。
1.3 /dev目录
dev是device的缩写,存放linux系统下的设备文件。在Linux一切皆文件的思想中,访问该目录下某个文件,相当于访问某个设备。
1.4 /etc目录
etc,系统配置文件存放的目录。接下来的服务器配置博客中Java环境的配置会涉及到这个文件,那就不足为奇了。
1.5 /home目录
home是当前登录用户的个人目录。对比一下Windows系统,对应的文件夹应该就是Users文件夹下的以用户登录账户名命名的文件夹了。那么在这里,通过ls命名查看当前
home
为空就很好理解了,当前系统中用户刚刚登录进来,还没有配置自己的home
文件夹。
1.6 /lib目录
lib是library的缩写,翻译成中文就是函数库。那么这里就是Linux系统用到的函数库。为什么会有这么一个文件夹存在呢?在我们使用Linux的时候,不可避免的会安装各种第三方服务或应用。系统在运行这个服务或应用时,需要调用一些额外的参数。所以我们安装的很多第三方的服务或应用都会把一些资源或文件库放到
lib
文件夹里。
1.7 /lib64目录
上面讲了lib目录,那么怎么又有一个lib64呢?它和lib目录又有什么区别呢?
先从第一个方面讲,64是当前服务器x64架构,如果是lib32则为X86架构。下面的图可以印证我的说法。
另一方面呢,lib64里存放的都是bin目录和sbin目录下可执行文件需要的函数库。换一种方式说,lib64存放的是系统级别的函数库,而lib目录就只是存放用户级别的函数库。
1.8 /media目录
在Linux下挂载多媒体设备会把设备信息文件添加到这个文件夹里。
1.9 /mnt目录
mnt
目录是Linux的挂载目录,在没有media目录之前,软盘、光盘的挂载都是在该目录下。随着社会的发展,出现了MP3、MP4等多媒体设备。那么media
文件夹就产生了。目前比较普遍的操作是把mnt目录用于镜像文件和硬盘设备的挂载,而media
目录用于光盘、U盘、多媒体的挂载。
1.10 /opt目录
opt是optional的缩写,用于系统额外添加的软件。
1.11 /proc目录
proc
是process单词的缩写,顾名思义啊,这里存放的是内核向进程发送信息的一些参数或文件。这个文件夹里的内容跟其他文件夹最大的不同是,proc
目录内容存放在内存中。在上面的图片中,我们可以看到的是一下奇奇怪怪哒数字和一下由英文单词命名的文件。这些数字代表的其实就是进程的ID。
1.12 /root目录
root
目录可以和home
目录放到一起讲,这里的root
就是系统管理员的home
目录。验证过程参考1.20
1.13 /run目录
1.14 /sbin目录
前面说到bin目录是放置二进制文件的目录。
sbin
呢,可以理解为system_bin,翻译成中文就是存放系统二进制文件的目录。换一种方式说,sbin
是给root系统管理员使用的二进制文件存放路径。普通用户只能查但不能设置和使用该目录。
1.15 /srv目录
服务启动之后需要访问的数据目录。
1.16 /sys目录
sys目录同样也是一个内存级别的目录,用来存放全局设备的。
1.17 /tmp目录
正在执行的程序临时存放文件的目录,任何人都可以访问。
1.18 /usr目录
usr目录是应用程序存放目录:
/usr/bin
存放应用程序/usr/share
存放共享数据/usr/lib
存放不能直接运行的,却是许多程序运行所必需的一些函数库文件/usr/local
存放软件升级包/usr/share/doc
系统说明文件存放目录/usr/share/man
程序说明文件存放目录
1.19 /var目录
放置系统执行过程中经常变化的文件:
/var/log
如随时更改的日志文件/var/log/message
所有的登录文件存放目录/var/spool/mail
邮件存放的目录/var/run
程序或服务启动
1.20 ~目录
在登录到ECS后默认进入到是~目录,而不是/目录。那么,什么是~目录呢?
~
目录又可以叫做用户的我的文档目录,如果是root账户,那么~目录就是/root目录;如果是其他用户就是/home目录。
就让我们验证一下吧:上图中,用root账户登录到ECS后,通过
ls
命令查看当前root到我的文档中并没有任何文件。此时,创建一个luehning
文件夹再分别来到/home
和/root
文件夹中查看是否有之前创建的luehning
文件夹。结论:
~
目录在root账户里就是/root
文件夹。
二、在不进行二次配置之前,CentOS给了我们哪些
先讲述一下我的 思路。在拿到一台服务器后,先查看一下当前服务器端口号的使用情况是非常有必要的。然后在去一些安装软件的常用路径下看一下目前都安装了什么软件。最后通过常用的查询版本号的命令查看一下目标软件的当前版本号
2.1 查询端口号的占用情况
这个命令展示给我们的从左到右分别是
- proto 协议
- recv-Q 接收包大小
- send-Q 发送包大小
- Local Address 本地地址
- Foreign Address 外网地址
- State 状态
- PID/Program name 进程id/应用名
举个栗子,进程ID 1136!
从列表中不难看出,进程1136是一个外网任意地址发送到服务器5355端口号,具有tcp协议和tcp6协议的当前为监听状态的应用,应用名为systemd-resolv。一下是systemd-resolv的英文说明:
- systemd-resolved is a system service that provides network name resolution to local applications. It implements a caching and validating DNS/DNSSEC stub resolver, as well as an LLMNR resolver and responder.*
同样还有sshd在22端口、chronyd在323端口。
sshd服务 用于远程连接服务器的,默认端口为22端口。延伸一点,ssh命令和scp命令都是sshd服务里的。关于sshd我们以后单独开一篇文章再讲,这里假装它有一个链接。
chronyd 又是什么呢?chron是一个英文词根啦,大概的意思是 年代或者时间。在这里就意味着这是一个多服务器之间时间同步服务。
大家可能会想到同步和异步。英文单词又是什么呢?
同步:syn(相同的) + chron(时间) = synchron
异步:a (否定关系) + synchron(同步) = asynchron
综上,在没有二次配置的centOS服务器中,默认开启啦三个服务,分别是用来映射网络dns名到服务器服务的systemd-resolv、可以远程连接服务器的sshd以及跨服务器之间时间同步服务chronyd。
2.2 默认安装了什么软件
2.3 查看版本的常用命令
未完继续