操作系统及linux知识总结——基础篇

1.什么是操作系统

人与硬件沟通的桥梁;
组成:硬件、内核、解释器(bash/dash/python)、软件应用程序

我们常见的linux系统,全称为GNU/Linux,GNU是一个自由的操作系统,是GNU计划的主要目标,GNU计划开发了大量的自由软件,基于GPL条款发布。只不过GNU内核还未完成完整功能开发。而当时正好Linux诞生了,且Linux兼容Unix并同样在GPL条款发布,所以Linux很快火了起来。因此,Linux系统往往被称为GNU/Linux。

所以普通的开发工作,掌握几种解析器是非常有必要的,至少要掌握bash的简单编写。如果要深度开发与优化系统,熟悉操作系统的内核也是重要的一步。

2.虚拟机配置

在这里插入图片描述

3.子网与私网的区别?

1.私有地址可以理解为内网IP,它是IP设计中取某些段规定这些是内网IP,用于局域网。
2.子网划分是指将大段的某段IP地址划分是若干小段,各小段之间不能直接通信,从而达到缩小广播域,减少广播风暴。而网络小了,相对安全性能提高,出来问题也能相对容易找出问题节点。
3.子网划分可以划分某段公网IP,也可以划分某段私有地址。

4.子网与子网掩码

子网掩码与ip地址对应,1为网络地址。
在这里插入图片描述
1.为了实现更小的广播域,需要子网划分。
2.避免主机过多而拥堵或过少而IP浪费,需要子网划分。
在这里插入图片描述
即内网ip地址和子网掩码可以计算得出网络地址。

5.NAT模式与桥接模式的区别

NAT模式:即地址转换协议,虚拟机链接主机,能不能上网取决于主机。上网时虚拟机ip转换为主机ip地址。
优点:不容易出现局域网中IP地址冲突
缺点:其它宿主机不能直接访问当前虚拟机

桥接模式:即虚拟机单独链接路由器(必须时路由器),能不能上网取决于上级子网能不能上网,与主机没有关系。ip是路由分配的。
优点:容易出现局域网中IP地址冲突
缺点:其它宿主机能直接访问当前虚拟机

6.公网与私网

在这里插入图片描述
内网要想和外部Internet链接就需要转换成公网唯一IP与外部链接,需要使用路由NAT转换。

7.32位与64位系统的区别?

1、数据处理能力不同:32位就是32bit即一次可以处理4个字节的数据;64位就是64bit即一次可以处理8个字节;
2、内存容量支持上限不同:32位的操作系统最多支持4GB的内存,实质是3.25GB;而64位系统理论上能够支持无限大小的内存,只要有相对应的产品和足够的内存插槽;
3、软件运行版本不同:64位的系统能够兼容32位的软件,但32位的不能向上兼容;

8.网卡名称

centos6之前默认为ethx,之后默认为ensxx

9.系统安装配置过程

网络:网卡(eth0)激活、静态配置网络:ip、子网掩码、网关、dns地址;动态配置:dhcp

磁盘分区:
1.通用分区方案
在这里插入图片描述
swap分区即预留的虚拟内存空间。

2.其它分区方案
在这里插入图片描述

10.系统安全的配置

在这里插入图片描述

11.时区配置

根据指定的NTP服务器对时。

12.系统软件的预安装

根据需求自行决定。

13.用户创建并设置密码

root与user用户

14.文件不小心删除怎么办?

linux系统可以通过快照进行备份,可以以时间和说明进行标记当前节点。

15.DNS域名服务器

几个常见的公共DNS地址:8.8.8.8、114.114.114.114、223.5.5.5、223.6.6.6

16.默认网关

定义:网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为 “192.168.1.1-192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为 “192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行 TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里(一个网络是192.168.2.0一个是192.168.1.0)。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此。

所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的 IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

默认网关:如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。

DHCP服务器会自动给网络中的电脑分配IP地址、子网掩码和默认网关

17.磁盘io

每次读取一个block都会进行一次磁盘io。可以怎么缓解磁盘io紧张呢?
1.扩大内存缓存和缓冲区,等buffer满了再写入磁盘,也可以定时写入磁盘。
2.扩大block块。由于数据块在硬盘上非连续存储,普通硬盘因为需要移动磁头,所以随机寻址较慢,读越多的数据块就增大了总的硬盘寻道时间。当硬盘寻道时间比io时间还要长的多时,那么硬盘寻道时间就成了系统的一个瓶颈。合适的块大小有助于减少硬盘寻道时间,提高系统吞吐量。
问题:扩大block有个问题?越大系统启动加载时间越久。而且大的block块可能会浪费磁盘空间,需要结合情况考虑。

ps:每个文件至少占用一个inode和一个block

18.软硬连接

软链接:inode号码不一样,相当于原文件的快捷方式,删除原文件后失去入口找不到磁盘中的文件存储内容。

硬链接:同一个分区中inode号码一样,相当于多创建了一个访问磁盘中文件内容的入口,删除原文件后,照样可以访问。但是修改文件后硬连接文件因为访问的还是磁盘中的文件,因此也是看到修改的内容(不能防止文件被修改,只能防止被删除,因此需要提前备份文件

系统中找硬连接文件命令:find -inum xxx
不能给目录创建硬连接!(不然cd…应该跳到哪个目录呢inode可是都一样的)

扩展:当linux系统不小心删除了重要的信息后,磁盘中的内容并没有删除,只是访问磁盘的inode信息入口被删除了,通过数据恢复公司操作可以在磁盘中找到数据恢复,因此当我们对重要的数据进行误删除操作时,尽量不要有其它操作,以防数据在磁盘中的信息有变化难以恢复。

19.xargs和exec的区别

在这里插入图片描述
说明:xargs会将前面的数据变成一行,配合cp等命令的-i/-t参数进行使用。-exec则会将数据一行一行的处理。
即:exec参数是一个一个传递的,传递一个参数执行一次命令;xargs一次将参数传给命令,可以使用-n控制参数个数。

ps:mtime查找内容修改指定日期范围的文件。-ctime为文件属性修改时间,atime为文件创建时间。

20.没有引号可以识别通配符信息

在这里插入图片描述

21.find与正则表达式

工作中经常需要使用到正则表达式,但是正常情况下我们使用的是通配符,find支持正则表达式**-regex**,在shell脚本中我们常用set -f 取消使用通配符开启正则表达式。

22.备份文件简化操作

在这里插入图片描述
即利用组合的方式来实现。
备份信息还原操作:cp test1.sh{.bak,}

ps:1.清空文件快捷方式>xxx.txt
2.输出到正确和错误可以将2>&1放在后面也可以用>&放在文件前面简写(工作中可用)

23.正则表达式与扩展正则表达式说明

+、|、()、{}、?属于扩展正则符号,grep和sed默认不支持扩展正则符号,需要使用参数grep -E/sed -r来支持,awk、egrep支持扩展正则符号。

ps:可以通过撬棍符号将扩展正则符号降级就不用参数来调用了。比如+、(xxx)等等。

ps:()的作用:后项引用前项。\1代表第一个括号的内容。
在这里插入图片描述
{}的作用:指定前面字符匹配的次数。

24.三剑客之一sed


在这里插入图片描述在这里插入图片描述
添加
在这里插入图片描述
测试:
在这里插入图片描述
删除
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述
修改
在这里插入图片描述
ps:企业实践中,i后面尽量跟.bak备份文件。i参数放在最后面。

特别注意:在这里插入图片描述
实践:
在这里插入图片描述
更专业的批量修改文件名称方法:
rename ‘s/.jpg/.txt/’ oldboy*.jpg

总结:
在这里插入图片描述

25.三剑客之一awk

结构:sed 【参数】 条件-处理方式 文件
例如:sed -n ‘3p’ test.txt(打印第三行)
结构:awk 【参数】 模式-动作 文件
例如:awk ‘/liyun/{print $1,$3}’ test.txt(打印liyun所在行的一三列)

特殊情况:当多个分隔符紧贴的时候可以通过[ :]+来表示空格和冒号各自都是分隔符或者一起组成的" :"也是分隔符。
在这里插入图片描述
测试:
当有多列情况时,想对某一列进行匹配可以使用$x~进行模式匹配。
在~前加"i"代表取反。

在这里插入图片描述

column -t可以令输出以表格的形式展示。
在这里插入图片描述

gsub可以替换信息:格式gsub(/需要替换信息/,”目标信息“,第几列进行修改)
在这里插入图片描述
BEGIN 的作用:进行计算、修改内置变量(FS\NF\NR)

-v参数可以指定变量

awk的统计分析能力:利用BEGIN和END和变量来实现
在这里插入图片描述

26.系统启动流程

centos6
在这里插入图片描述
centos7
在这里插入图片描述
ps:debian系统的启动流程参考https://www.pianshen.com/article/2168148574/

27.用户管理

权限问题:sh脚本没有可执行权限也可以执行的原因
在这里插入图片描述
普通用户能删除root用户创建文件的原因
在这里插入图片描述
ps:有读权限时,所有用户都可以读写
注意:
在这里插入图片描述
对于目录而言:读权限代表可以读取文件属性,写权限代表可以增删改查文件,执行权限代表可以进入目录中。

对于普通用户可以修改root用户创建文件的原因:可以理解为普通用户对自己的家目录是有绝对权限的。
在这里插入图片描述
演示:
在这里插入图片描述
常见问题:
1.以下情况是因为目录不具有执行权限,可以读取目录中存在文件,因此可以获得名称信息。但是由于不能进入目录所以获取不到目录中文件inode信息(属性存在inode中),因此显示???。
在这里插入图片描述
2.
在这里插入图片描述
3.在这里插入图片描述

28./etc/skel目录的作用

在这里插入图片描述
在这里插入图片描述

29.读写文件的原理

从根目录开始,查找目录/文件的inode信息定位到具体的block,如果目录没有执行权限则不能进入到目录中查看inode信息也就找不到下一个文件/目录的索引位置(inode存有索引和文件属性信息)。

30.系统用户权限相关

1.创建普通用户和虚拟用户
在这里插入图片描述
useradd参数的作用:
在这里插入图片描述
在这里插入图片描述
usermod主要参数:
在这里插入图片描述
userdel主要参数:
在这里插入图片描述
chown的主要参数:
在这里插入图片描述
查看用户信息:
在这里插入图片描述

在这里插入图片描述

31.权限相关

root赋予普通用户权限,普通用户用sudo执行指令
在这里插入图片描述
在这里插入图片描述
特殊权限位设置:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
给文件加锁,谁都不能修改:
在这里插入图片描述
相当于上锁后将钥匙藏起来。
在这里插入图片描述

32.定时任务

介绍:
在这里插入图片描述
特殊符号的意义:
在这里插入图片描述

一些结论:
在这里插入图片描述
实际操作:
在这里插入图片描述

注意事项:
在这里插入图片描述

33.磁盘

概念:在这里插入图片描述
结构:
在这里插入图片描述
在这里插入图片描述
raid类型:
效率高,不安全
在这里插入图片描述
效率低,更安全
在这里插入图片描述
效率较高,安全性较高。至少要三块磁盘,radi5阵列最多只能损坏一块磁盘。可以通过其它几个磁盘反推缺失的数据
在这里插入图片描述
raid10与raid01是组合方案,最终都是兼顾效率和安全来部署的。

MBR引导记录
在这里插入图片描述
磁盘分区操作方法:

1.分成四个主分区:
在这里插入图片描述
命令参数的功能:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.分成三个主分区加一个扩展分区
在这里插入图片描述
扩展分区不能直接使用,可以进一步分成逻辑分区。
在这里插入图片描述
此时保存分区操作生效,fdisk -l可以查看,分好区后需要执行以下操作
重要:需要让系统可以加载识别分区信息:partprobe /dev/sdb

第二步:格式化(创建文件系统)

  • mkfs -t xfs /dev/sbd
    在这里插入图片描述
    第三步:挂载磁盘
    在这里插入图片描述

如何开机自动挂载?
在这里插入图片描述
企业常见问题:

磁盘空间不足,不能添加内容:
在这里插入图片描述
原因一:block空间不足
解决方法:找到大文件删除。
在这里插入图片描述
ps:du查看目录大小
原因二:inode空间不足(df -i)
在这里插入图片描述
如何调整swap分区大小?
在这里插入图片描述

2021/5/6补充:
关于login shell和non-login shell的区别和环境变量的读取参考此文章:
https://blog.csdn.net/lws123253/article/details/89315218

2121/9/4:
linux执行文件的四种方式:
source file:当前bash执行,可以获取当前bash的变量
. file:当前bash执行,可以获取当前bash的变量
./file:启动子进程bash执行,文件中获取不到父进程bash变量。需要文件有可执行权限。
bash file:启动子进程bash执行,文件中获取不到父进程bash变量。
参考:https://blog.csdn.net/qq_36255988/article/details/100172528

此博文为个人实习后的学习总结,部分简单的知识没有系统化总结。仅供学习参考。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值