N86第一周作业
1、计算机发展,服务器硬件相关知识
1.1、计算机发展相关
计算机发展历史 第一代计算机(1946-1957) 第一台计算机ENIAC(electronic numerical integrator and calculator 电子数字积分计算机)电子管时代 第二代计算机(1958-1964) 晶体管时代 第三代计算机(1965-1970) 集成电路时代 第四代计算机(1971以后) 大规模集成电路时代 冯·诺依曼体系 1946年美籍匈牙利数学家冯·诺依曼于提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。冯·诺依曼体系的要点是: 数字计算机的数制采用二进制,bit 位, byte 字节 1 byte =8 bit 计算机应该按照程序顺序执行 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成
1.2、服务器硬件相关知识
计算机的硬件五个组件 控制器: 指挥系统 运算器: 数学和逻辑运算 存储器: 存储信息 输入设备: 接收外部信息 输出设备: 输出计算机内部信息到外部设备 计算机分类 按规模划分:超级计算机、大型计算机、小型计算机、微型计算机 按功能和角色划分:服务器Server和客户机client PC服务器常见的三种外型:塔式服务器、刀片式服务器、机架式服务器 数据中心相关硬件 服务器,网络设备和存储设备 服务器硬件组成 服务器硬件---CPU CPU:Central Processing Unit,即中央处理器。由控制器和运算器构成,是整个计算机系统中最重要的部分 CPU 指令集分类: CISC:Complex Instruction Set Computer,复杂指令集 RISC:Reduced Instruction Set Computer,精减指令集 CPU类型:X86:CISC、ARM:Acorn RISC Machine 高通,华为麒麟、RISC-V 阿里玄铁910、MIPS 龙芯、Power:IBM、Powerpc:apple,ibm,moto、Ultrasparc :Sun、Alpha:HP、安腾:comp 按照CPU体系架构来区分,服务器主要分为两类:x86服务器、非x86服务器 服务器硬件---主板 主板mainboard,安装在机箱内,是计算机最基本的也是最重要的部件之一 服务器硬件---内存 内存是介于CPU 和外部存储之间,是CPU 对外部存储中程序与数据进行高速运算时存放程序指令、数据 和中间结果的临时场所,它的物理实质就是一组具备数据输入输出和数据存储功能的高速集成电路 内存是CPU能直接寻址的存储空间,由半导体器件制成。 计算公式:内存带宽=内存总线频率×数据总线位数/8 服务器硬件---硬盘 常见的磁盘接口种类: IDE:Integrated Drive Electronics,电子集成[驱动器,早期家用电脑常用接口 SCSI:Small Computer System Interface,小型计算机系统接口,早期的服务器常用接口 SATA:Serial ATA (Advanced Technology Attachment 高技术配置),家用电脑常用的接口 SAS:Serial Attached SCSI,是目前服务器上主流的接口 光纤通道:Fiber Channel,高性能服务器上采用的接口 M.2 :固态硬盘接口,性能更强 结构分类: 机械硬盘HDD(Hard Disk Drive)、固态硬盘SSD(Solid State Drives ) 服务器硬件---网卡 服务器都在主板上集成了网卡,传输速率为1Gbps,即千兆网卡 特殊应用需要高端网卡,如光纤网卡,Infiniband网卡等,传输速率能达到10Gbps、20Gbps,即万兆网卡 服务器硬件---相关其它硬件 服务器硬件---远程管理卡 服务器硬件---阵列卡 服务器硬件---电源 服务器硬件---显卡 服务器硬件---热插拔技术 服务器硬件---机柜 机架式服务器-机架及其配件
2、制作Vmware、rocky 8.5、ubuntu 22.04教程
2.1、mac安装Vmware Fusion步骤
官网地址:https://customerconnect.vmware.com/ 注册获取免费LICENSE KEYS 双击打开下载的dmg安装包
双击VMware Fusion图标,安装
2.2、rocky 安装
官网镜像下载地址 https://download.rockylinux.org/pub/rocky/8/isos/aarch64/Rocky-8.9-aarch64-minimal.iso 国内下载地址 https://mirror.sjtu.edu.cn/rocky/9.3/isos/aarch64/Rocky-aarch64-minimal.iso
(1)打开VMware Fusion软件,点击创建新的虚拟机
(2)选择 从光盘或映像中安装 点击继续
(3)选择下载的光盘映像,点击继续
(4)自定义创建的虚拟机路径及名称,点击完成
(5)进行虚拟机配置
点击处理器和内存,配置选择完成后点击显示全部
选择CD/DVD
配置磁盘
配置网络
点击启动磁盘
(6)确认全部配置完成后点击重新启动
(7)启动Rocky服务器
(8)等待加载结束,选择合适的语言,点击继续
(9)软件选择:最小安装;安装目的地:默认自动分区;网络和主机名:打开连接,配置网卡名称和IP地址;root密码:配置好;
(10)配置完成后点击开始安装
(11)等待安装完成,点击重启系统
2.3、ubuntu 22.04安装
(1)打开VMware Fusion软件,点击创建新的虚拟机
(2)选择 从光盘或映像中安装 点击继续
(3)选择下载的光盘映像,点击继续
(4)自定义创建的虚拟机路径及名称,点击完成
(5)进行虚拟机配置,参考rocky配置
(6)确认全部配置完成后进入启动磁盘点击重新启动
(7)前面默认,代理填写https://mirrors.aliyum.com/ubuntu,添加第一个用户,开启SSH,等待重启
2.4、通过FinalShell连接
下载安装FinalShell
创建ssh连接,配置相关设置
3、man命令使用
通过man命令总结linux常用基本命令用法,以及查看帮助文档的方法。
列出所有帮助 man -a keyword 搜索man手册 #列出所有匹配的页面,使用 whatis 数据库 man -k keyword 相当于 whatis man -f keyword 打印man帮助文件的路径 man -w [章节] keyword man man NAME man - an interface to the system reference manuals SYNOPSIS man [man options] [[section] page ...] ... man -k [apropos options] regexp ... man -K [man options] [section] term ... man -f [whatis options] page ... man -l [man options] file ... man -w|-W [man options] page ... 1 Executable programs or shell commands #命令执行程序帮助 2 System calls (functions provided by the kernel) #系统调用 3 Library calls (functions within program libraries) #函数库帮助 4 Special files (usually found in /dev) #设备特殊文件帮助 5 File formats and conventions, e.g. /etc/passwd #格式帮助 6 Games #游戏帮助 7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) #杂项,包 8 System administration commands (usually only for root) #系统管理员命令 9 Kernel routines [Non standard] #内核运行时 Linux常用基本命令用法 man date NAME date - print or set the system date and time SYNOPSIS date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] DESCRIPTION Display the current time in the given FORMAT, or set the system date. Mandatory arguments to long options are mandatory for short options too. -d, --date=STRING display time described by STRING, not 'now' man ip NAME ip - show / manipulate routing, network devices, interfaces and tunnels SYNOPSIS ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename OBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token | macsec | vrf | mptcp | ioam | stats } OPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] | -iec | -f[amily] { inet | inet6 | link } | -4 | -6 | -B | -0 | -l[oops] { maximum-addr-flush-attempts } | -o[neline] | -rc[vbuf] [size] | -t[imestamp] | -ts[hort] | -n[etns] name | -N[umeric] | -a[ll] | -c[olor] | -br[ief] | -j[son] | -p[retty] } man ls #查询ls用法 NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION -a, --all #查询全部,不忽略.开头的 do not ignore entries starting with . -d, --directory #查看目录 list directories themselves, not their contents -h, --human-readable #输出大小 with -l and -s, print sizes like 1K 234M 2G etc. -l use a long listing format #长格式 ls用法 ls -a ls -l ls -h ls -d NAME echo - display a line of text SYNOPSIS echo [SHORT-OPTION]... [STRING]... echo LONG-OPTION echo用法 echo '1' >> 1.txt echo '1' cd [-L|[-P [-e]] [-@]] [dir] cd 用法 cd /root type: type [-afptP] name [name ...] type用法 type echo 内部命令查看帮助文档方法 help command 例: help history
4、linux文件系统相关知识
结合操作演示文件操作常见的命令
文件系统的目录结构 tree / 文件和目录被组织成一个单根倒置树结构 文件系统从根目录下开始,用“/”表示 根文件系统(rootfs):root filesystem 标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL 以 . 开头的文件为隐藏文件 路径分隔的 / 文件名最长255个字节 包括路径在内文件名称最长4095个字节 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用 每个文件都有两类相关数据:元数据:metadata,即属性, 数据:data,即文件内容
显示当前路径 pwd 切换目录 cd 列出文件夹下内容 ls ll -h
查看文件状态 stat 文件相关信息:metadata, data 每个文件有三个时间戳: access time 访问时间,atime,读取文件内容 modify time 修改时间,mtime,改变文件内容(数据) change time 改变时间,ctime,元数据发生改变
确定文件内容 file [options] <filename>... 常用选项: -b 列出文件辨识结果时,不显示文件名称 -f filelist 列出文件filelist中文件名的文件类型 -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符 -L 查看对应软链接对应文件的文件 --help 显示命令在线帮助
文本格式转换 dos2unix #windows文本转换为Linux文本 unix2dos #Linux文本转换为windows文本
#显示支持字符集编码列表 iconv -l
文本默认的编码ANSI
* 匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件 ? 匹配任何单个字符,一个汉字也算一个字符 ~ 当前用户家目录 ~mage 用户mage家目录 [0-9] 匹配数字范围 [a-z] 一个字母 [A-Z] 一个字母 [wang] 匹配列表中的任何的一个字符 [^wang] 匹配列表中的所有字符以外的字符 [^a-z] 匹配列表中的所有字符以外的字符 . 和 ~+ 当前工作目录 ~- 前一个工作目录 [:digit:]:任意数字,相当于0-9 [:lower:]:任意小写字母,表示 a-z [:upper:]: 任意大写字母,表示 A-Z [:alpha:]: 任意大小写字母 [:alnum:]:任意数字或字母 [:blank:]:水平空白字符 [:space:]:水平或垂直空白字符 [:punct:]:标点符号 [:print:]:可打印字符 [:cntrl:]:控制(非打印)字符 [:graph:]:图形字符 [:xdigit:]:十六进制字符 创建目录 mkdir d{1..5}
ls -a *
创建空文件 touch test.txt
cp(copy)命令可以实现文件或目录 常用选项 -i 如果目标已存在,覆盖前提示是否覆盖 -n 不覆盖,注意两者顺序 -r, -R 递归复制目录及内部的所有内容 -a 归档,相当于-dR --preserv=all,常用于备份功能 -d --no-dereference --preserv=links 不复制原文件,只复制链接名 --preserv[=ATTR_LIST timestamp: links xattr context all -p 等同--preserv=mode,ownership,timestamp -v --verbose -f --force -u --update 只复制源比目标更新文件或目标不存在的文件 -b 目标存在,覆盖前先备份,默认形式为 ,只保留最近的一个备份 --backu
移动和重命名文件 mv 命令可以实现文件或目录的移动和改名 同一分区移动数据,速度很快:数据位置没有变化 不同分区移动数据,速度相对慢:数据位置发生了变化 格式: mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 常用选项: -i 交互式 -f 强制 -b 目标存在,覆盖前先备份 利用 rename 可以批量修改文件名
删除文件 rm 使用 rm 命令可以删除文件和目录 常用选项: -i 交互式 -f 强制删除 -r 递归 --no-preserve-root 删除/
显示目录树 tree 常见选项: -d: 只显示目录 -L level:指定显示的层级数目 -P pattern: 只显示由指定wild-card pattern匹配到的路径
创建目录 mkdir 常见选项: -p: 存在于不报错,且可自动创建所需的各目录 -v: 显示详细信息 -m MODE: 创建目录时直接指定权限
删除空目录 rmdir 常见选项: -p 递归删除父空目录 -v 显示详细信息 注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树
5、linux安全模型
资源分派: Authentication:认证,验证用户身份 Authorization:授权,不同的用户设置不同权限 Accouting|Audition:审计 当用户登录成功时,系统会自动分配令牌 token,包括:用户标识和组成员等信息 1.1 用户 Linux中每个用户是通过 User Id (UID)来唯一标识的 管理员:root, 0 普通用户:1-60000 自动分配 系统用户:1-499 (CentOS 6以前), 1-999 (CentOS 7以后) 对守护进程获取资源进行权限分配 登录用户:500+ (CentOS6以前), 1000+(CentOS7以后) 给用户进行交互式登录使用 1.2 用户组 Linux中可以将一个或多个用户加入用户组中,用户组是通过Group ID(GID) 来唯一标识的。 管理员组:root, 0 普通组: 系统组:1-499(CentOS 6以前), 1-999(CentOS7以后), 对守护进程获取资源进行权限分配 普通组:500+(CentOS 6以前), 1000+(CentOS7以后), 给用户使用 1.3 用户和组的关系 用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组 用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组 范例: [root@centos8 ~]#id postfix uid=89(postfix) gid=89(postfix) groups=89(postfix),12(mail) 1.4 安全上下文 Linux安全上下文Context:运行中的程序,即进程 (process),以进程发起者的身份运行,进程所能够 访问资源的权限取决于进程的运行者的身份 比如:分别以root 和wang 的身份运行/bin/cat /etc/shadow,得到的结果是不同的,资源能否能被访问,是由运行者的身份决定,非程序本身 范例: [wang@centos8 ~]$cat /etc/shadow cat: /etc/shadow: Permission denied [root@centos8 ~]#cat /etc/shadow root:$6$zsrWEC56PrKifAEz$hylCuGySe.H6l6O2MRvbtqy/VZgnZbau.y57dE85.YHq03MTJVV4UvQ VIDcYA1IJzbgpWE0vTU.BtPHLbNBNn0:18246:0:99999:7::: bin:*:18027:0:99999:7::: daemon:*:18027:0:99999:7::: adm:*:18027:0:99999:7::: lp:*:18027:0:99999:7:::
6、权限,属性及ACL相关命令及选项
chown 命令可以修改文件的属主,也可以修改文件属组 格式 chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE... 用法说明: OWNER #只修改所有者 OWNER:GROUP #同时修改所有者和属组 :GROUP #只修改属组,冒号也可用 . 替换 --reference=RFILE #参考指定的的属性,来修改 chgrp 命令可以只修改文件的属组 格式 chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... -R 递归 文件的权限主要针对三类对象进行定义 owner 属主, u group 属组, g other 其他, o 注意: 用户的最终权限,是从左向右进行顺序匹配,即,所有者,所属组,其他人,一旦匹配权限立即生效,不再向 右查看其权限 r和w权限对root 用户无效 只要所有者,所属组或other三者之一有x权限,root就可以执行 每个文件针对每类访问者都定义了三种常用权限 每个文件针对每类访问者都定义了三种权限 r Readable 4 w Writable 2 x eXcutable 1 对文件的权限: r 可使用文件查看类工具,比如:cat,可以获取其内容 w 可修改其内容,文件的是否被删除和文件的权限无关 x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行) 修改文件权限chmod 格式 chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... #参考RFILE文件的权限,将FILE的修改为同RFILE chmod [OPTION]... --reference=RFILE FILE... 说明: 模式法格式 MODE:who opt permission who:u,g,o,a opt:+,-,= permission:r,w,x 修改指定一类用户的所有权限 u= g= o= ug= a= u=,g= 修改指定一类用户某个或某个权限 u+ u- g+ g- o+ umask 的值可以用来保留在创建文件权限 实现方式: 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶 数不变 新建目录的默认权限: 777-umask 非特权用户umask默认是 002 root的umask 默认是 022 查看umask umask #模式方式显示 umask –S #输出可被调用 umask –p 修改umask umask # 范例: umask 002 umask u=rw,g=r,o= 持久保存umask 全局设置: /etc/bashrc 用户设置:~/.bashrc 特殊权限 SUID 作用于二进制可执行文件上,用户将继承此程序所有者的权限 SGID 作用于二进制可执行文件上,用户将继承此程序所有组的权限作于于目录上, 此目录中新建的文件的所属组将自动从此目录继承 STICKY 作用于目录上,此目录中的文件只能由所有者自已来删除 前提:进程有属主和属组;文件有属主和属组 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组 进程访问文件时的权限,取决于进程的发起者 二进制的可执行文件上SUID权限功能: 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为原程序文件的属主 SUID只对二进制可执行程序有效 SUID设置在目录上无意义 SUID权限设定: chmod u+s FILE... chmod 4xxx FILE chmod u-s FILE... 二进制的可执行文件上SGID权限功能: 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属组为原程序文件的属组 SGID权限设定: chmod g+s FILE... chmod 2xxx FILE chmod g-s FILE.. 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权 在目录设置Sticky 位,只有文件的所有者或root可以删除该文件 sticky 设置在文件上无意义 Sticky权限设定: chmod o+t DIR... chmod 1xxx DIR chmod o-t DIR... 特殊权限数字法 SUID SGID STICKY 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 权限位映射 SUID: user,占据属主的执行权限位 s:属主拥有x权限 S:属主没有x权限 SGID: group,占据属组的执行权限位 s: group拥有x权限 S:group没有x权限 Sticky: other,占据other的执行权限位 t:other拥有x权限 T:other没有x权限 设定文件特殊属性 设置文件的特殊属性,可以访问 root 用户误操作删除或修改文件 不能删除,改名,更改 chattr +i file 只能追加内容,不能删除,改名 chattr +a file 只能追加内容,不能删除,改名 chattr +a file 显示特定 lsattr ACL权限功能 ACL:Access Control List,实现灵活的权限管理 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限 CentOS7 默认创建的xfs和ext4文件系统具有ACL功能 CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加 tune2fs –o acl /dev/sdb1 mount –o acl /dev/sdb1 /mnt/test ACL生效顺序: 所有者,自定义用户,所属组|自定义组,其他 ACL相关命令 setfacl 可设置ACL权限 getfacl 可查看设置的ACL权限 mask 权限 mask只影响除所有者和other的之外的人和组的最大权限 mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission) 用户或组的设置必须存在于mask权限设定范围内才会生效 范例: setfacl -m mask::rx file --set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样 只是添加ACL就可以
7、vim常见操作
1)如何打开文件。并在打开文件(命令模式)之后如何退出文件。 vim [OPTION]... FILE... 常用选项 +# 打开文件后,让光标处于第#行的行首,+默认行尾 +/PATTERN 让光标处于第一个被PATTERN匹配到的行行首 -b file 二进制方式打开文件 -d file1 file2… 比较多个文件,相当于 vimdiff -m file 只读打开文件 -e file 直接进入ex模式,相当于执行ex file -y file Easy mode (like "evim", modeless),直接可以操作文件,ctrl+o:wq|q! 保存和不保存退出 命令模式 --- :wq 或者 :q! (保存退出 或者 不保存退出) 2)打开文件(命令模式)之后,进入插入模式。并在插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。 插入模式 --- 按ESC键-----> 命令模式 命令模式 --- :wq 或者 :q! (保存退出 或者 不保存退出) 3)打开文件(命令模式)之后,进入插入模式,编写一段话,"马哥出品,必属精品", 之后从插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。 touch magedu.txt #提前创建文件,也可以不提前创建,vim也会自动创建 vim magedu.txt #打开文件并进入命令模式 #点击键盘字母i进入插入模式 #输入内容 马哥出品,必属精品 #输入完成后 按ESC键 重新回到命令模式 #命令模式 下 输入:wq 保存文件并退出
4)使用cat命令验证文件内容,是刚刚自己写的内容
5)(可选),命令模式下,光标在单词,句子上进行前后,上下跳转。行复制粘贴。行删除。