1 一个完整计算系统的简要介绍
一个完整的计算机系统由硬件和软件两部分组成
2 进制的转换
进制转换工具主要使用bc完成,bc支持交互式和非交互式,控制转换前和转换后的进制模式是通过bc的ibase和obase实现的。
十进制与二进制转换
[root@rocky87 ~]# echo "ibase=10;obase=2;10"|bc
1010
[root@rocky87 ~]# echo "obase=10;ibase=2;10"|bc
2
十六进制与十进制转换
[root@rocky87 ~]# echo "obase=10;ibase=16;FA2"|bc
4002
[root@rocky87 ~]# echo "ibase=10;obase=16;4002"|bc
FA2
[root@rocky87 ~]#
3 VMware软件的安装
3.1 软件下载
下载链接:link
3.2 安装软件
运行下载好的exe,按照安装提示逐步向下执行。
主要是最后需要一个许可证,可百度搜索一个序列号校验。
4 GPL和MIT开源协议 区别
GPL:GNU通用许可协议
MIT:麻省理工学院许可协议
两者的目的均是为了开源,但受GPL约束的项目或者产品在使用了遵循GPL的代码或工具后可以自用,也可以分发,如果分发则所有人均可以使用你分发的产品或工具,即必须开源,并且可被修改,或者销售,并且同样受GPL的约束。
而MIT则是不必对代码进行开源,也可以开源,自由度要比GPL大,只是在发布时需要明确说明MIT许可。
5 安装rocky 8.5, ubuntu 22.04,并结合xshell说明如何通过虚拟IP登入系统
5.1 安装rocky
此处的兼容性选择要选esxi6.5 否则后面在启动虚拟机的时候会遇到磁盘和网卡识别的问题
![在这里插入图片描述](https://img-blog.csdnimg.cn/2ac992913fe54646ab13a02e153c7d12.png
选择英文
带有!图标的选项进行设置,然后开始安装系统
配置网卡
获取地址
登录成功
5.2 安装Ubuntu 20.04
创建虚拟机,客户机操作系统类型选Ubuntu
将硬件兼容修改为esxi6.5,否则无法引导系统安装
此处为快速安装选择最小化安装
采取DHCP动态分配地址
创建账号,设置主机名
安装sshd服务
配置登录IP及路由
root@ubuntu1804:~# cat /etc/netplan/00-installer-config.yaml
#This is the network config written by 'subiquity'
network:
ethernets:
eth0:
addresses: [10.0.0.5/24]
gateway4: 10.0.0.2
nameservers:
addresses: [114.114.114.114]
eth1:
dhcp4: no
dhcp6: no
addresses: [10.10.0.6/24]
routes:
- to: 10.30.0.0/16
via: 10.10.0.2
version: 2
renderer: networkd
root@ubuntu1804:~#
root@ubuntu1804:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:b0:c3:10 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feb0:c310/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:b0:c3:1a brd ff:ff:ff:ff:ff:ff
inet 10.10.0.6/24 brd 10.10.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feb0:c31a/64 scope link
valid_lft forever preferred_lft forever
root@ubuntu1804:~#
6 tab补全原理
tab可以实现命令,路径补全
6.1 命令补全
命令的子命令补全是由bash-completion工具包实现的
关于bash-completion
自动补全会依赖bash-completion在/etc/bash_competion.d/路径下的自动补全脚本,自动补全脚本主要通过compgen和complete命令以及bash内置的补全变量实现。
compgen -W
compgen -W <word list> <comp_word>
comp_word会在word list中进行匹配,匹配到的内容会存放到内置变量COMPREPLY数组中,其中word list可以预先定义好,comp_word是用户输入的字符串
complete -F
complete -F <func_name> <comp_cmd>
func_name是用户自定义的实现自动补全业务逻辑的函数名
comp_cmd是用户要使用的命令
complete的作用是将命令和func_name关联,从而能在用户使用
命令的时候输入子命令敲tab 可以关联到func_name函数里的业务逻辑中,进而输出匹配的待选项
查看支持子命令自动补全的命令
[root@rocky87 bash_completion.d]# complete
complete -F _minimal
complete -F _filedir_xspec freeamp
complete -F _filedir_xspec bibtex
complete -F _filedir_xspec lualatex
complete -F _filedir_xspec chromium-browser
complete -F _filedir_xspec zathura
complete -F _command time
complete -F _command do
complete -F _longopt chroot
complete -F _longopt tail
complete -F _filedir_xspec lrunzip
complete -F _filedir_xspec amaya
complete -F _longopt df
complete -F _known_hosts traceroute6
complete -F _filedir_xspec lzgrep
complete -u groups
complete -F _filedir_xspec lzless
complete -F _longopt bison
complete -F _filedir_xspec kdvi
complete -F _filedir_xspec lbzcat
complete -F _filedir_xspec lilypond
complete -F _command then
complete -F _filedir_xspec sxemacs
complete -F _filedir_xspec epdfview
complete -F _command aoss
...
6.2 路径补全
bash会根据PATH环境变量定义的路径从左往右搜索路径,第一次匹配到的命令即为选中要执行的命令。
因此也可以将自己写的脚本加执行权限放入PATH定义的路径下方便调用。
[root@rocky87 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@rocky87 ~]#