SRE学习第一周
1、简单总结计算机发展相关历史,详细总结服务器硬件和计算机分类相关知识。
计算机发展历史:
- 电子管时代:第一代计算机(1945-1957)
- 晶体管时代:第二代计算机(1958-1964)
- 集成电路时代:第三代计算机(1965-1970)
- 大规模集成电路时代:第四代计算机(1972-至今)
- 量子计算机/生物计算机:第五代计算机(可能己经开始了)
一个完整的计算机系统由硬件(Hardware)系统和软件(Software)系统两大部分组成 。
以冯诺依曼体系结构为例,计算机由运算器,控制器,存储器,输入设备和输出设备五大部份组成 。计算机处理的数据和指令一律用二进制数表示。顺序执行程序的每一条指令。
进制转换:
常用进制为二进制,八进制,十进制,十六进制
# 进制转换命令
echo "obase=XX;ibase=XX;转换的数" | bc
计算机分类:
- 按规模分:超级计算机,大型计算机,小型计算机,微型计算机
- 按功能和角色分:服务器和客户机,服务器包括(Web 服务器、数据库服务器、文件服务器、中间件应用服务器、日志服务器、监控服务器等等 )
- 服务器按外形分:塔式服务器,刀片服务器,机架服务器
服务器硬件组成包括:CPU,主板,内存,硬盘,网卡,远程管理卡,阵列卡,电源、显卡等
软件包括底层操作系统和各种应用程序
操作系统分类:
- 服务器OS:RHEL,CentOS,Rocky,Ubuntu,Windows Server,AIX
- 桌面OS:Windows 10,Mac OS,Fedora
- 移动设备OS:Andriod,IOS,AliOS,HarmonyOS
3、结合man命令总结linux常用基本命令用法
man 命令
man 是一个外部命令,基本质就是读取特定文件,进行输出,其读取的文件一般位于/usr/share/man/目录下
man手册常见章节
- 可执行程序或 shell 命令
- 系统调用(内核提供的函数)
- 库调用(程序库中的函数)
- 特殊文件(通常位于 /dev)
- 文件格式和规范,如 /etc/passwd
- 游戏
- 杂项
- 系统管理命令(通常只针对 root 用户)
- 内核AP
man命令常见用法
Usage: man [OPTION...] [SECTION] PAGE...
4、总结linux文件系统相关知识
文件目录结构
文件类型标识符
| 文件类型 | 标识符 | 说明 |
|---|---|---|
| 普通文件 | - | |
| 目录文件 | d | directory |
| 符号链接文件 | l | link |
| 块设备文件 | b | block |
| 字符设备文件 | c | char |
| 管道文件 | p | pipe |
| 套接字文件 | s | socket |
root@debian124:~# ls -l /run
total 28
drwxr-xr-x 2 avahi avahi 80 Jul 27 18:14 avahi-daemon
drwxr-xr-x 2 root root 80 Jul 27 18:13 blkid
drwxr-xr-x 2 root root 80 Jul 27 18:13 console-setup
drwx--x--x 5 root root 140 Jul 27 18:15 containerd
drwxr-xr-x 6 root root 120 Aug 4 18:30 credentials
-rw-r--r-- 1 root root 4 Jul 27 18:14 crond.pid
---------- 1 root root 0 Jul 27 18:14 crond.reboot
drwxr-xr-x 3 root lp 100 Aug 4 00:00 cups
drwxr-xr-x 3 root root 80 Jul 27 18:14 dbus
drwx------ 8 root root 180 Jul 27 18:15 docker
-rw-r--r-- 1 root root 3 Jul 27 18:15 docker.pid
srw-rw---- 1 root docker 0 Jul 27 18:14 docker.sock
drwx--x--x 3 root Debian-gdm 60 Jul 27 18:14 gdm3
文件操作命令
显示当前操作目录:pwd
绝对路径与相对路径:
绝对路径:
以正斜杠/ 即根目录开始;描述完整的文件的位置路径;可用于任何想指定一个文件名的时候
相对路径:
不以斜线开始,而是以当前所在的位置开始;一般情况下,是指相对于当前工作目录的路径,特殊场景下,是相对于某目录的位置;可以作为一个简短的形式指定一个文件名
更换目录:cd
列出目录:ls
查看文件状态:stat
查看文件类型:file
文件通配符:
* #匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
? #匹配任何单个字符,一个汉字也算一个字符
~ #当前用户家目录
. #当前工作目录
~+ #当前工作目录
~- #前一个工作目录
~yang #用户yang家目录
[0-9] #匹配数字范围
[a-z] #匹配一个小写字母
[A-Z] #匹配一个大写字母
[yang] #匹配列表中的任何的一个字符
[^yang] #匹配列表中的所有字符以外的字符
[^a-z] #匹配列表中的所有字符以外的字符
创建空文件和刷新时间 : touch
复制文件和目录: cp
移动和重命名文件: mv
删除文件: rm
显示目录树 tree
创建目录 mkdir
删除空目录 rmdir
5、总结操作系统概念相关视频的知识点
接口:
操作系统通过接口的方式,建立了用户与计算机硬件的沟通方式。用户通过调用操作系统的接口来使用
计算机的各种计算服务。
操作系统一般会提供两个重要的接口,来满足用户的一些一般性的使用需求:
命令行:实际是一个叫shell的终端程序提供的功能,该程序底层的实质还是调用一些操作系统提供
的函数
窗口界面:通过图形窗口程序接收来自操作系统的消息,比如:鼠标、键盘动作,进而做出一些响应
API:
应用程序编程接口,API定义了源代码和库之间的接口,因此同
样的源代码可以在支持这个API的任何系统中编译
系统调用system call 和函数库 Library function
系统调用:就是调用操作系统所提供的API来实现某些功能的行为,硬件资源都是由操作系统统一管理,
当程序需要调用硬件某些功能的时候,只能通过调用操作系统提供的API来实现,这就是系统调用
(System Call)
库函数:将提供一些特定功能的代码进行封装,只暴露出一些函数,比如说JSON库(专门用来处理json
格式的数据),网络库(专门处理网络相关的业务),提供给第三方调用,那这些函数,就称为库函
数。库函数在Ring3 层工作,在某些情况下,调用库函数最终也会发展为系统调用
用户空间和内核空间
用户空间:
用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃,内核也不受影响,只能执行简单的运算,不能直接调用系统资源,必须通过系统接口( system call),才能向内核发出指令
内核空间:
是 Linux 内核的运行空间,可以执行任意命令,调用系统的一切资源
服务器三大操作系统:Windows Linux Unix
6、总结常用命令部分的命令使用和演示
见3+4
7、总结通配符,管道,重定向,inode知识点
文件通配符:
* #匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
? #匹配任何单个字符,一个汉字也算一个字符
~ #当前用户家目录
. #当前工作目录
~+ #当前工作目录
~- #前一个工作目录
~yang #用户yang家目录
[0-9] #匹配数字范围
[a-z] #匹配一个小写字母
[A-Z] #匹配一个大写字母
[yang] #匹配列表中的任何的一个字符
[^yang] #匹配列表中的所有字符以外的字符
[^a-z] #匹配列表中的所有字符以外的字符
管道:
command1|command2|command3
将命令1的输出结果作为命令2的输入,依此类推
注意:STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现
command1 2>&1 | command2
command1 |& command2
# 3重管道
root@debian124:~# echo $PATH | tr ':' '\n' | sort
/bin
/sbin
/usr/bin
/usr/local/bin
/usr/local/sbin
/usr/sbin
# 标准输出和标准错误输出同时使用管道
root@debian124:~# ls fstab null 2>&1 | tr 'a-z' 'A-Z'
LS: CANNOT ACCESS 'NULL': NO SUCH FILE OR DIRECTORY
FSTAB
标准输出 (stdout)错误 (stderr)重定向
STDOUT和STDERR默认是使用当前终端,但也可以重定向到指定终端或指定文件
#覆盖操作符,如果文件存在,会被覆盖
> #把STDOUT重定向到文件
1> #同上
2> #把STDERR重定向到文件
&> #把标准输出和错误都重定向
>& #和上面功能一样,建议使用上面方式
#追加操作符,在原有文件的基础上追加内容
>> #追加标准输出重定向至文件
1>> #同上
2>> #追加标准错误重定向至文件
标准输入重定向
tr命令
用于转换字符、删除字符和压缩重复的字符。它从标准输入读取数据并将结果输出到标准输出
tr [OPTION]... SET1 [SET2]
#常用选项
-c|-C|--complement #用SET2替换SET1中没有包含的字符
-d|--delete #删除SET1中所有的字符,不转换
-s|--squeeze-repeats #压缩SET1中重复的字符,即删除重复的字符
-t|--truncate-set1 #将SET1用SET2替换,SET2中不够的,就不处理
标准多行重定向
使用 "<<终止词" 命令从键盘把多行重导向给STDIN,直到终止词位置之前的所有文本都发送给STDIN,有时被称为就地文本(here documents),其中终止词可以是任何一个或多个符号,比如:!,@,$, EOF(End Of File),magedu等,其中EOF比较常用
root@debian124:~# cat > test.txt <<EOF
> 123
> 456
> 789
> EOF
浙公网安备 33010602011771号