初级部分
什么Linux?
发布时间:1991年10月5日
Linux用于服务器操作系统比较多,通常被认为是一套操作系统,实际上它是一系列Linux内核基础上开发的操作系统的总称。日常所见比较多的Ubuntu、企业常用的centos其实都是Linux系统,基于Linux内核搞出来的,都可以视为Linux系统大家族的成员
为什么要使用Linux
1、开源
为什么这么多的的设备都选择使用 Linux?因为它是开源软件(open source software),具有不同的含义。
使用一个安全的操作系统工作变得必不可少的事,而 Linux 恰好满足了这个需求。因为它是开源的, 任何人都可以查看代码并研究来判定是否有一些潜在的能够造成安全风险的缺陷。
2、多用户、多任务、多线程
Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰,就像手机开了助手一样,同时登陆多个qq账号,当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,单凭多用户而言就完爆其他操作系统。
3、稳定性和高效性
你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,因为它继承了Unix卓越的稳定性和高效性。正因为它的稳定才获得了众多用户的青睐,因为它的高效,它的使用范围更加广阔,然而Linux还可以提供一些高可靠性的服务,比如:LNMP、虚拟化、数据库服务等等。
4、安全性和SELinux
全性相比其他系统也要安全很多,由于Linux拥有相当庞大的用户和开源社区支持,因此能很快发现系统漏洞,并迅速发布安全补丁及时更新,同时还具有很强的“免疫力”特点,很少受到病毒攻击,对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。
不过,利用Linux自带防火墙(iptables,firewalld)、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性,让黑客们无机可乘,同时还有安全增强机制SElinux,在linux内核中提供强制访问控制,功能非常全面,能够很好保护系统和服务,不过很多人喜欢把它关闭,这相对安全性就不是很好了。
还有Tcp_wrappers也能够提供很好的网络服务访问控制,Linux系统对于用户和文件管理权限的管理也是相当出色的,能够很好的控制权限,保证文件的机密性,也是其他系统无法比拟,所以Linux系统在一定程度上是坚不可摧的。
5、性能优势
由于Linux要保证其稳定性,所以并没有像其它操作系统一样内核如此臃肿庞大、漏洞百出,随着Linux内核的不断更新,不断提升着优势,Linux操作系统能把服务器的硬件优势体现的淋漓尽致,因为Linux系统吸取了Unix系统近1/4世纪发展的经验,最主要的是Linux开放源代码,保证系统稳定性,更好的调用硬件功能,同时还提供了丰富的系统资源工具top,freee,df,vmstat,dmesg,iostat,sar,uptime等,方便查看资源的利用率。
Linux操作系统和Windows操作系统
Linux系统的搭建
Linux之VMware Workstation16 pro上安装redhat_日积月累-CSDN博客
重置root密码的方法
Linux之重置密码的两种方法_日积月累-CSDN博客
Linux目录的结构
Linux开机过程
- BIOS 上电自检(POST)
- 引导装载程序 (GRUB2)
- 内核初始化
- 启动 systemd,其是所有进程之父。
Linux操作系统的启动过程_星辉领域-CSDN博客_linux系统启动过程
硬链接与软链接
文件类型分类
普通文件:用于存放数据、程序等信息的文件。
目录文件:是由文件系统中一个目录所包含的目录项组成的文件。
链接文件:又称符号链接文件, 用于不同目录下文件的共享。实际上它指向另一个文件。
设备文件:用于与I/O设备提供连接的一种文件,分为
块设备文件:表示磁盘、光盘等
字符设备文件:联系着按照字符进行操作的终端、键盘等设备。
管道文件:主要用于在进程间传递数据。 套接字文件 :套接字(socket)文件通常用于网络数据连接。
进程
程序: 二进制文件,静态 /bin/date, /usr/sbin/httpd,/usr/sbin/sshd, /usr/local/nginx/sbin/ngix
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
程序和进程的区别
程序是静态的,它只是一组指令的集合,不具有任何的运行意义。而进程是程序运行的动态过程• 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程• 进程还具有并发性和交往性,而程序却是封闭的
进程和线程的区别
• 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
• 线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行
w 查看当前系统信息
静态查看进程
ps注:ps -aux 不同于 ps aux常用选项 :
-a :显示所有用户的进程
-u :显示用户名和启动时间
-x :显示 没有控制终端的进程
-e :显示所有进程,包括没有控制终端的进程
-l :长格式显示
-w:宽行显示,可以使用多个 w 进行加宽显示
动态查看进程top
磁盘管理
1、查看磁盘信息(块设备)信息:lsblk
2、创建分区分区的两种格式:
1)MBR分区MBR(Master Boot Record,主引导记录)是传统的分区机制,使用BIOS引导的PC设备,寻址空间只有32bit长,最大支持2.19TB支持的分区数量:4个主分区或3个主分区1个扩展分区
MBR分区类型:
1>主分区(primary partition)一块硬盘最多4个主分区,主分区不可以再进行二次分区。可以用来引导、启动操作系统 ,同时,主分区可以直接建立文件系统,如windows的NTFS,存放数据。
2>扩展分区(extended partition)一块硬盘最多一个,加主分区最多4个,不能创建文件系统,可以划分逻辑分区。
3>逻辑分区(logical partition)可以创建文件系统,存放数据,同时,逻辑分区的数量没有限制。
2)GPT分区GPT(GUID Partition Table,全局唯一标识分区表)是一种比MBR分区更先进、更灵活的磁盘分区模式优点:
①在默认情况下,GPT最多可支持128个分区。
②支持大于2.2TB的总容量及大于2.2TB的分区,最大支持18EB(1EB=1024PB,1PB=1024TB,1TB=1024GB)。
③GPT分区表自带备份。
④向后兼容MBR。GPT分区表上包含保护性的MBR区域。
分区工具:
fdisk只能用于MBR分区,gdisk,parted可以用于GPT分区。fdisk大多数运维工作人员已经习惯这个交互模式。
parted命令在创建删除分区使用命令比较方便,可划分大于2TB的分区,但是功能不是太完善,没有备份还原命令。
gdisk在分区上命令和fdisk风格一样, 使用方便,学习难度低且功能强大,推荐使用。
命令部分
文件操作
查看文件系统类型命令:ls -l
新建文件:touch
查看文件内容:
cat:从第一行开始显示文本内容(适用于内容较少的)
more:一页一页的显示文本内容(适用于内容较多的)
less:与 more 类似,但是比 more 更好的是,它可以往前翻页!
head:只看文本的前面几行
tail:只看文本的后面几行
复制(copy)文件或目录--cp命令
删除(remove)文件或目录--rm命令
为文件或目录建立链接(Link)——ln命令
目录操作
查看当前的工作目录(Print Working Directory)——pwd命令
切换工作目录(Change Directory)——cd命令
列表(list)显示目录内容——ls命令
创建目录(make directory)——mkdir命令
统计目录及文件的空间占用情况——du命令
vi操作文件
管道
管道操作符——“|”
输入/输出重定向
“>”、“>>”称为输出重定向操作符,“<”、“<<”称为输入重定向操作符。
压缩和解压缩
unzip命令
tar归档命令
用户管理
1.添加新用户——useradd命令
2.为用户账号设置密码——passwd命令
3.修改用户属性——usermod命令
4.删除用户账号——userdel命令
5.用户间切换——su(substitute user)命令
用户组管理
1.创建用户组——groupadd命令
2.添加/删除组成员——gpasswd命令
3.修改用户组属性——groupmod命令
4.删除组账户——groupdel命令
文件权限
设置文件权限
1.修改文件或目录的权限—chmod(change mode)命令
命令格式 1:chmod [-选项] [ugoa] [+-=] [rwx] 文件或目录...
命令格式2:chmod [-选项] nnn 文件或目录...
2.修改文件或目录的属主和属组—chown(change owner)命令
服务部分
防火墙
linux 查看并对外开放端口(防火墙拦截处理) - Sunny_star - 博客园 (cnblogs.com)
linux访问控制(二)防火墙基础和netfilter模块简述_chinaltx的博客-CSDN博客_linux网络访问控制方法
ssh连接建立过程原理(端口:22)
远程连接协议的端口、远程连接工具类型
ssh连接的原理 - 一个有故事的devops - 博客园 (cnblogs.com)
远程连接工具: PuTTY、SSH、Xshell、 VNC、secureCRT、xmanager等等
crontab(计划任务)
周期性计划任务文件格式说明
minute: 表示分钟,可以是从0到59之间的任何整数。*/1
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“/1”表示每两小时执行一次。同 时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
邮件服务
端口 协议
25 smtp:发送邮件
110 pop3: 接收邮件
143 imap:接收邮件
基于安全
995 pop3s
993 imaps
465 smtps
dns域名解析协议(端口:UDP53)
dns解析过程、资源记录类型
Linux之DNS配置及案例_日积月累-CSDN博客
samba服务
实现文件共享的端口 445
nfs
实现文件共享
ftp文件传输协议
端口
- TCP20 命令端口
- TCP21 数据端口
工作方式
主动方式:数据是通过server器主动建立响应
被动方式:数据服务端基于被动方式相应
lvm
面试问得不多,但是实际应用多
web服务
http端口:80
https端口:443
https的建立过程
-
在使用HTTPS是需要保证服务端配置正确了对应的安全证书
-
客户端发送请求到服务端
-
服务端返回公钥和证书到客户端
-
客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端
-
服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密
-
客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户
-
SSL加密建立