1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
主流Linux发行版分三大系:Debian系、RedHat系和Slackware系;
Debian系
Ubuntu是基于Debian,以桌面应用为主的Linux发行版,Ubuntu每六个月(即每年的四月与十月)发布一个新版本,长期支持(LTS)版本每两年发布一次。普通版本一般只支持9个月,但LTS版本一般能提供5年的支持。
Mint是一种基于Ubuntu的Linux发行版,被很多爱好者誉为“最好的桌面应用系统”,就像是 Linux 世界中的 macOS,非常适合个人日常办公或开发电脑使用。
Deepin,深度操作系统,是武汉深之度科技有限公司开发的开源操作系统。它是基于Debian的稳定版本的一个Linux发行版。它可以运行在个人计算机和服务器上,并免费提供给个人用户使用。
Kali Linux 是基于Debian的Linux发行版,设计用于数字鉴识和渗透测试。拥有超过600个预装的渗透测试程序。
RedHat系
RHEL:Red Hat Enterprise Linux是一个由Red Hat公司开发的商业市场导向的Linux发行版,每18个月发布一个新版本。
CentOS:Community Enterprise Operating System社区企业操作系统,它是来自于Red Hat Enterprise Linux(RHEL)依照开放源代码规定发布的源代码所编译而成,后被RedHat收购成为RedHat公司下的另一个企业版产品,自RedHat被IBM公司收购后CentOS开发团队于2020年12月8日宣布,传统的CentOS 8将仅维护至2021年底,之后仅维护CentOS Stream,使其变为滚动发行的散布版。
Fedora:由Fedora项目社群开发、红帽公司赞助,目标是创建一套新颖、多功能并且自由(开放源代码)的操作系统,它是许多新技术的测试平台,被认为可用的技术最终会加入到RHEL中,每6个月发布一个新版本。
Rocky: 随着CentOS即将成为一个CentOS Stream滚动版后,CentOS创始人之一Gregory Kurtzer为首,8小时内250人啸聚网络,计划以创建RockyLinux(Rocky为已经逝世的另外一个CentOS创始人)取代CentOS。
中标麒麟:中标软件
Slackware系
suse是一家总部位于德国的软件公司,创立于1992年,以提供企业级Linux为主要业务,SUSE提供了名为SUSE Linux Enterprise的企业级Linux发行版,并参与包括openSUSE在内的多个开源项目的开发。
其他系
ArchLinux:轻量简洁
Gentoo:极致性能,不提供传统意义的安装程序
LFS: Linux From scratch 自制Linux,只是一个说明书
Android: kernel+busybox(工具集)+java虚拟机
不同发行版之间的联系
所有发行版都使用Linus的内核,都遵循GNU/GPL协定;
不同发行版之间的区别
不同发行版运作方式不同,有社区维护,有商业公司进行维护;
不同发行版的内核、库、程序不同;
不同发行版的包管理机制不同:Debian系用dpkg,apt进行软件包管理,RedHat系用rpm,yum,dnf进行包管理等。
2、安装Centos7.9和ubuntu操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图。
1)创建CentOS7虚拟机
- 主页–>创建新的虚拟机–>自定义
- 我稍后安装操作系统
- 选择客户端操作系统:客户机操作系统选择【Linux】,版本选择【CentOS 7 64位】
- 命名虚拟机及虚拟机存放路径
- 处理器配置:数量1,内核数4
- 内存配置:2G
- 网络类型:NAT模式
- 选择磁盘:创建新虚拟磁盘
- 指定磁盘容量:200G,将虚拟机存储为单个文件
- 自定义硬件
- 给虚拟光驱加入映像文件
- 创建虚拟机配置完成
2)安装CentOS 7.9系统
- 加电开机
- 选择第一项,安装CentOS 7
- 设置语言
- 设置时区
- 软件包选择:Server with GUI
- 设置系统分区:
- 分区规划:
- / :100G
- /boot:1G
- /data:50G
- swap:4G
- 配置网络和主机名
- 开始安装
- 设置root用户密码
- 创建普通用户及密码
- 安装完成后:重启
- 第一次启动
- 许可协议
- 进入登录界面, 登录系统
- 初始化桌面环境
- 进入系统桌面
3)创建Ubuntu虚拟机同CentOS7创建方法类似(省略)
4)安装Ubuntu18.04.5
- 选择语言
- 选择安装Ubuntu 服务
- 选择安装过程的语言
- 选择国家和地区
- 选择No,不检测键盘布局
- 选择键盘布局
- 设置主机名
- 创建用户
- 设置用户密码
- 确定位置和时区
- 自定义分区
- 分区规划: 和CentOS7分区规划一致
- 选中磁盘进行分区
- 创建空的分区表用于创建新分区
- 创建/根分区:100G
- 选择默认主分区
- 默认从开始处划分新分区
- 选中剩余的FREE SPACE,继续创建/boot分区: 1G
- 选中挂载点
- 选择/boot为挂载点
- 选中剩余的FREE SPACE,继续创建/data数据分区: 50G
- 选择挂载点
- 选择手动输入
- 输入/data为挂载点
- 选中剩余的FREE SPACE,继续创建swap交换分区: 4G
- 修改文件系统
- 选择SWAP文件系统类型
- 完成所有分区设置并确定写入磁盘
- 设置HTTP 代理为空
- 不自动更新软件
- 安装 SSH服务(用向下箭头键选择SSH服务,然后用空格键选中,中括号会出现一个*星号代表已选择)
- 安装GRUB启动程序
- 安装完成,reboot
- 进入登录界面,输入账号和密码进行系统登录
3、配置环境变量,实现执行history的时候可以看到执行命令的时间。
- 设置【HISTTIMEFORMAT】变量,加入【%F %T】参数(仅临时生效)
[root@centos7 ~]# HISTTIMEFORMAT="%F %T "
[root@centos7 ~]# history
1 2021-08-28 11:16:01 ip a sh
2 2021-08-28 11:17:57 ping 10.0.0.2
3 2021-08-28 11:18:27 systemctl stop firewalld
4 2021-08-28 11:21:16 ping www.baidu.com
5 2021-08-28 11:22:15 HISTTIMEFORMAT="%F %T "
6 2021-08-28 11:22:19 history
- 持续生效,需写入配置文件
[root@centos7 ~]# HISTTIMEFORMAT="%F %T " >> /etc/profile.d/histtimeformat.sh
4、总结Linux哲学思想。
- 一切皆文件
- 由众多单一目的的小程序组成
- 尽量避免跟用户交互
- 使用纯文本文件保存配置信息
5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
1)echo命令:显示一行文本
格式:echo [SHORT-OPTION]… [STRING]…
选项:-n 不自动换行; -e 启用\字符的解释功能
-e选项所支持的\字符串:
\a 发出警告声
\b 退格键
\c 最后不加上换行符
\e escape,相当于\033,跟提示符颜色相关
\n 换行且光标移至行首
\t 插入Tab
\ 插入\字符
\0nnn 插入\nnn(八进制)所代表的ASCII字符
\xHH 插入HH(十六进制)所代表的ASCII字符
范例:
# 不自动换行,显示字符
[root@centos7 ~]# echo -n "hello world."
hello world.[root@centos7 ~]#
# 以红色显示字符
[root@centos7 ~]# echo -e "\e[1;31mhello world\033[0m"
hello world
# 以十六进制字符显示LIU
[root@centos7 ~]# echo -e "\x4C\x49\x55"
LIU
2)screen命令:实现会话管理
安装:yum -y install screen (默认screen没有安装)
常见用法:
- 创建新screen会话: screen -S [会话名称]
- 加入screen会话: screen -x [会话名称]
- 关闭screen会话: exit
- 剥离当前screen会话: Ctrl+a,d
- 显示所有已打开的screen会话: screen -ls
- 恢复某个screen会话: screen -r [会话名称]
3)date命令:显示和设置系统日期或时间
格式: date [OPTION]… [+FORMAT]
选项: -d STRING 显示字符串所指的日期与时间; -s 设置时间
范例:
# 显示当前日期
[root@centos7 ~]# date
Sat Aug 28 12:04:18 CST 2021
[root@centos7 ~]# date +"%Y/%m-%d %H:%M:%S"
2021/08-28 12:04:42
# 显示昨天日期
[root@centos7 ~]# date -d "yesterday"
Fri Aug 27 12:05:32 CST 2021
[root@centos7 ~]# date -d "-1 day"
Fri Aug 27 12:05:41 CST 2021
# 显示明天日期
[root@centos7 ~]# date -d "1 day"
Sun Aug 29 12:06:25 CST 2021
# 修改日期
[root@centos7 ~]# date -s "2021/12/31"
Fri Dec 31 00:00:00 CST 2021
# 修改时间
[root@centos7 ~]# date -s "12:30:00"
Fri Dec 31 12:30:00 CST 2021
# 距离1970年1月1日至今所经过的秒数
[root@centos7 ~]# date +%s
1640925038
[root@centos7 ~]# date -d @1640925038 +%F\ %T
2021-12-31 12:30:38
4)ifconfig命令:显示或配置网络接口
安装:yum -y install net-tools
格式:ifconfig [网络接口] [参数]
范例:
# 显示ens33网络接口IP地址
[root@centos7 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.152 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::8fdf:4736:8804:1816 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b9:6b:32 txqueuelen 1000 (Ethernet)
RX packets 359582 bytes 537787191 (512.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 147865 bytes 8942677 (8.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 设置ens33网络接口IP地址(临时生效)
[root@centos7 ~]# ifconfig ens33 10.0.0.150 netmask 255.255.255.0
[root@centos7 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.150 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::8fdf:4736:8804:1816 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b9:6b:32 txqueuelen 1000 (Ethernet)
RX packets 359586 bytes 537788460 (512.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 147962 bytes 8960836 (8.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
5)export命令:用于设置或显示环境变量
格式:export [-fn] [name[=value] …]
范例:
# 显示所有环境变量
[root@centos7 ~]# export | more
declare -x DISPLAY="localhost:10.0"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="centos7.node1.com"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
... ...
# 设置环境变量
[root@centos7 ~]# export DISPLAY=10.0.0.1:0.0
6、描述Linux发行版的系统目录名称命名规则以及用途。
- 文件和目录被组织成一个单根倒置树结构
- 文件系统从根目录下开始,用"/"表示
- 标准Linux文件系统,文件名称大小写敏感
- 以点"."开头的文件为隐藏文件
- 路径以斜杠"/"分隔
- 文件名最长255个字节
- 包括路径在内文件名称最长4095个字节
- 蓝色–>目录,绿色–>可执行文件,红色–>压缩文件,浅蓝色–>链接文件,灰色–>其他文件
- 除了斜杠和NULL所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用
Linux的文件系统依照FHS标准:FHS Filesystem Hierarchy Standard - /boot: 存放引导文件,内核文件,引导加载器grub
- /bin: 存放所有用户使用的基本命令,不能独立分区,OS启动即会用到的程序
- /sbin: 管理类的基本命令,不能独立分区,OS启动即会用到的程序
- /lib:启动时程序依赖的基本共享库文件以及内核模块文件"/lib/modules"
- /lib64:专用于x86_64系统上的共享库文件
- /etc:配置文件目录
- /home:普通用户家目录
- /root:管理员家目录
- /media: 便携设备挂载点
- /mnt: 设备文件设备挂载点
- /dev:设备文件目录
- /opt:第三方应用程序安装位置
- /srv: 系统上运行的服务用的数据目录
- /tmp: 临时目录
- /usr:通用共享只读数据目录
- /usr/bin:同/bin
- /usr/sbin:同/sbin
- /usr/lib::同/lib
- /usr/lib64:同/lib64
- /usr/include: c程序头文件
- /usr/share: 结构化独立的数据,如:doc,man等
- /usr/share/local: 第三方应用程序的安装位置
- /var:经常发生变化的数据文件目录
- /var/cache: 应用程序缓存数据目录
- /var/lib: 应用程序状态信息数据
- /var/local: 专用于/usr/local下的应用程序存储可变数据
- /var/lock:锁文件
- /var/log: 日志目录
- /var/opt:专用于/opt下应用程序存储可变数据
- /var/run:运行中的进程相关数据,常用于存储进程PID
- /var/spool:应用程序数据池
- /proc:用于输出内核与进程信息相关的虚拟文件系统
- /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
- /selinux: security enhanced linux,SELinux相关的安全策略等信息的存储位置