02Linux学前须知

BamB00 2019-11-08 00:00:00
Categories: Tags:

0x01 学前须知

0x011 Linux严格区分大小写

Linux是严格区分大小写的。

0x012 Linux一切皆文件

Linux中所有内容都是以文件的形式保存和管理,硬件设备也是文件。

0x013 Linux不靠扩展名区分文件类型

比如*.txt *.mp4 这些事扩展名,Windows都是靠扩展名去区分文件类型,但Linux不是,而是权限标识来确定文件类型。

但Linux中一些特殊文件还是要求写“扩展名”,并不是一定考扩展名来识别文件类型,写这些扩展名是为了帮助管理员来区分不同的文件类型。常见的扩展名有

0x014 Linux中所有的存储设备都必须挂载之后才能使用

Linux中所有的存储设备都有自己的设备文件名,这些设备文件必须在挂在之后才能使用(包括,硬盘,U盘,光盘),Windows是自动挂在。挂载其实就是给这些存储设备分配盘符,只不过Windows用英文字母显示,而Linux盘符则是一个已经建立的空目录。我们把这些空目录叫做挂载点(可以理解为Windows的盘符),把设备文件(如/dev/sdb)和挂载点(已经建立的空目录)连接过程叫做挂载

0x02 服务器学前须知

0x021 了解Linux目录结构

0x0211 根目录下的目录

目录 应放置的内容
/bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/etc 存放系统管理和配置文件 采用默认安装的服务配置文件全部都在此目录中,如用户信息,服务的启动脚本常用的服务器配置等。
/home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/usr 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。/usr/x11r6 存放x window的目录/usr/bin 众多的应用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc Linux文档 /usr/include linux下开发和编译应用程序所需要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库
/opt 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。 redhat 6 才出现,一些老工程师会习惯放在/usr/local目录下安装软件
/proc 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root 超级用户(系统管理员)的主目录(特权阶级^o^)
/sbin 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev 用于存放设备文件。
/mnt 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot 存放用于系统引导时使用的各种文件
/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp 用于存放各种临时文件,是公用的临时文件存储点。
/var 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里,当系统意外崩溃和机器意外关机,而产生的一些碎片存放在这里。当系统启动过程中Fsck工具会检查这里,并修复已经损坏的系统文件,这个目录只在每个分区中出现,例如/lost+found就是根目录的备份回复目录,/boot/lost+found /boot分区的备份恢复目录。
/selinux 限制root权限。
/srv 该目录存放一些服务启动之后需要提取的数据。
/sys 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

0x0212 /usr下的目录

目录 应放置的内容
/usr/bin/ 绝大部分的用户可使用的命令都放在这里。它与/bin的不同之处在于:是否与开机过程有关。
/usr/include/ C/C++等程序语言的头文件与包含文件放置处。
/usr/lib/ 包含各种应用软件的函数库、目标文件,以及不被一般用户惯用的执行文件或脚本。
/usr/local/ 系统管理员在本机自行安装自己下载的软件,建议安装到此目录,这样比较便于管理。
/usr/sbin/ 非系统正常运行所需要的系统命令。
/usr/share/ 放置共享文件的地方。
/usr/src/ 一般源码建议放置到这里,src可以视为source的缩写。而至于内核源码则建议放置到/usr/src/linux/目录 实际操作中更多手工下载的源码包放在/usr/local/src 目录中源码放在 /usr/src/kernels 中

0x0213 /var下的目录

目录 应放置的内容
/var/cache/ 放置应用程序本身运行过程中会产生的一些暂存文件。
/var/lib/ 程序本身执行过程中,需要使用到的数据文件放置目录。例如Mysql数据库保存在/var/lib/mysql
/var/lock/ 某些设备或文件资源一次只能被一个应用程序所使用,如果同时有程序使用该设备或文件资源时,就可能产生一些错误的情况,因此就要将该设备或文件资源上锁(lock),以确保该设备或文件资源只会给单一软件所使用。
/var/log/ 放置登录文件的目录。面比较重要的文件如/var/log/messages,/var/log/wtmp(记录登录者信息)等。
/var/mail/ 放置个人电子邮件信箱的目录。不过这个目录也被放置到/var/spool/mail/目录中,通常这两个目录是互为连接文件
/var/run/ 某些程序或服务启动后,会将他们的PID放置在这个目录下。
/var/spool/ 这个目录通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据。这些数据被使用后通常会被删除。例如/var/spool/mail/ 新收到的邮件队列保存位置,系统新收到的邮件会保存在这里。/var/spool/cron/ 系统定时任务队列位置,系统的计划任务会报错在这里
/var/www/html RPM包安装的Apache的网页目录在这里

0x022 远程服务器关机以及重启时的注意事项

远程服务器一般是不放在本地所以,千万千万不要关机,很麻烦滴,如果服务器被关机了,有时候只能打电话给当地的服务器管理人员帮你开机,所以只能重启不能关机

0x0221 远程服务器在重启前,要终止正在执行的服务

计算机的硬盘最怕在高速存储的时候断电和重启,会非常容易造成硬盘损坏。在重启前先你的服务,甚至可以考虑暂时断开对外提供的网络。

0x0222 重启命令的选用

建议使用shutdown -r now这个命令在重启时会正常保存和种植服务器正在运行的程序,是安全的重启命令,而且在重启前可以 执行几次sync命令,这条命令是数据同步命令,可以让暂时保存在内存中的数据同步到硬盘上

0x023 不要再服务器访问高峰运行高负载命令

这样会造成服务器响应缓慢甚至死机。

什么样的是高负载命令:比如大数据拷贝,大范围的硬盘扫描这类,就是PISK(硬盘)跑满,的时候就是高负载命令

什么时候是访问高峰区根据 公司服务器 但通常都是在4:00-5:00执行这些高负载命令,一般都是定时任务。

0x024 配置防火墙时不要把自己踢出服务器

防火墙的基本功能是: 数据包过滤(IP,MAC地址,端口号,协议类型,数据包中的数据)前四个一般防火墙软件都支持,数据包中的数据可能需要更高级的硬件层

Linux防火墙配置是完全靠手工命令完成的,配置规则和配置命令相对也比较复杂。

避免这种尴尬的配置: 在执行新的防火墙规则和配置时,先备份防火墙规则,写一个系统定时任务,让他每5分钟恢复防火墙规则,就算写错我们也可以有机会更改,等测试没有了问题再删除这个系统定时任务。

0x025 指定合理的密码规则并定期更新

为了应对暴力破解

密码设置需遵循

0x026 合理分配权限

服务器管理由一个简单的原则:给予用户最小的权限

0x027 定期备份重要数据和日志

备份的基本原则:不要把鸡蛋放在同一个篮子中