一、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
1.Linux发行系列
Debian
Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器
Linux Mint:基于Debian和Ubuntu的Linux发行版,致力于桌面系统对个人用户每天的工作更易用,更高效,且目标是提供一种更完整的即刻可用体验。
Slackware
suse:基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器。
OpenSUSE:由suse发展而来,旨在推进linux的广泛使用,主要用于桌面环境,用户界面非常华丽,而且性能良好
RedHat
RHEL(red hat enterprise Linux):Red Hat公司发布的面向企业用户的Linux操作系统。早起版本主要用于桌面环境,免费:
Fedora:基于Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用,而另外发行的Red Hat Enterprise Linux取代Red Hat Linux在商业应用的领域。Fedora的功能对于用户而言,它是一套功能完备、更新快速的免费操作系统,而对赞助者Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到Red Hat Enterprise Linux中。Fedora大约每六个月发布新版本
CentOS:基于Red hat Linux提供的可自由使用源代码的企业级Linux发行版本。每个版本的Centos都会获得十年的支持(通过安全更新的方式)。新版本的Centos大约每两年发行一次,而每个版本的Centos会定期(大概6个月)更新一次,以支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。
其他发行版本
Gentoo:基于linux的自由操作系统,基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点, Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西--你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版
ArchLinux:以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨
2.不同发行版之间的联系:
所有发行版都是使用Linux内核;都需要遵循GNU的GPL(General Public License)协定
3.不同发行版之间的区别:
发行版的本质区别,在于继承不同版本的内核,库、程序的组成。不同发行版几乎采用了不同包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系统,包文件以RPM为扩展名;Ubuntu系列,Debian系列使用基于DPKG包管理系统,包文件以deb为扩展名。)
程序包管理器:
把程序的组成文件打包成一个或有限个文件,可以安装、卸载、查询。
Debian程序管理命令:deb, apt-get
RedHat程序管理命令:rpm, yum --> dnf
S.u.S.E程序管理命令: rpm, zypper
ArchLinux:port
二、安装Centos7.6操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图。
1.选择 Install Centos 7
2.默认选择 English(US)
3.设置时间
4.选择你需要的安装模式
5.选择自己配置分区
6.创建挂载目录并分配空间
7.在安装过程中创建用户
8.设置root密码
9.等待安装完成后重启reboot
10.使用创建的用户登录Linux系统,centos7安装成功
三、配置环境变量,实现执行history的时候可以看到执行命令的时间。
[root@centos7 ~]# HISTTIMEFORMAT="%F %T"
四、总结Linux哲学思想。
一切都是一个文件(包括硬件)
小型,单一用途的程序
链接程序,共同完成复杂的任务
避免令人困惑的用户界面
配置数据存储在文本中
五、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
1.echo命令
功能:显示字符
语法:echo [-neE][字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
选项:
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
显示变量
echo "$VAR_NAME” 变量会替换,弱引用
echo '$VAR_NAME’ 变量不会替换,强引用启用
命令选项
-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成 一般文字输出\
a 发出警告声
\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033 (加颜色) echo -e '\033[43;31;5mmagedu\e[0m'
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
实例:
echo -n 123
echo 弱引用、强引用区别
echo -e "123\b456" 退格功能
echo -e "123123\c" 和 echo -e "123123\n"
echo -e "\0100" 和 echo -e "\x40" 打印出ASCII字符集中八进制和十六进制对应的字符
echo -e "\e[1;33m\x40\e[0m" 打字符赋予颜色
2.时间命令
Linux的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
相关命令
date 显示和设置系统时间
date +%s
date -d @1509536033
clock, hwclock: 显示硬件时钟
-s, --hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准,校正硬件时钟
时区:/etc/localtime
显示日历:cal –y
date命令详细用法:
命令参数 :
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
日期格式字符串列表 :
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
实例:
格式化输出
[root@centos7 ~]# date +"%Y-%m-%d"
2020-06-14
输出昨天的时间
[root@centos7 ~]# date -d "1 day ago" +"%Y-%m-%d"
2020-06-13
普通转格式
[root@centos7 ~]# date -d "2020-12-12" +"%Y/%m/%d %H:%M.%S"
2020/12/12 00:00.00
加减显示时间
[root@centos7 ~]# date -d "+1 day" +%Y%m%d
20200615
[root@centos7 ~]# date -d "-1 month" +%Y%m%d
20200514
[root@centos7 ~]# date -d "+1 year" +%Y%m%d
20210614
设定时间
[root@centos7 ~]# date -s 20200615
Mon Jun 15 00:00:00 CST 2020
[root@centos7 ~]# date -s 15:53:30
Mon Jun 15 15:53:30 CST 2020
[root@centos7 ~]# date -s "20200614 15:54:12"
Sun Jun 14 15:54:12 CST 2020
3.screen命令
screen命令:ssh连接断开也可保持screen会话不断
创建新screen会话
screen –S [SESSION]
加入screen会话
screen –x [SESSION]
退出并关闭screen会话
exit
剥离当前screen会话
Ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]
实例:
创建并命名screen会话
显示所有已经打开的screen会话
加入screen会话
4.ifconfig命令
ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。
参数:
add<地址>:设置网络设备IPv6的ip地址;
del<地址>:删除网络设备IPv6的IP地址;
down:关闭指定的网络设备;
<hw<网络设备类型 ><硬件地址>:设置网络设备的类型与硬件地址;
io_addr:设置网络设备的I/O地址;
irq:设置网络设备的IRQ;
media<网络媒介类型>:设置网络设备的媒介类型;
mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
mtu<字节>:设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
up:启动指定的网络设备;
-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
-promisc:关闭或启动指定网络设备的promiscuous模式;
IP地址:指定网络设备的IP地址; 网络设备:指定网络设备的名称。
实例:
显示网络设备信息
启动关闭指定网卡
[root@centos7 ~]# ifconfig ens33 down
[root@centos7 ~]# ifconfig ens33 up
5.export命令
export 命令用于设置或显示环境变量。
export 可新增,修改或删除环境变量,供后续执行的程序使用,对当前shell及其子shell生效。
参数:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
实例:
列出当前所有的环境变量
设定环境变量,且子shell中仍可使用当前环境变量