CentOS(Community Enterprise Operating System),当前国内最常见的Linux发行版本之一,基于RHEL商业版免费源代码去掉所有红帽商标和标识进行重新编译发布的社区版本。通常被认为是RHEL的免费克隆版,同样配备了稳定的Linux内核和软件包,虽说是社区项目,但其作为RHEL的免费替代品同样获得了众多企业及经验丰富的Linux管理员的认可,拥有长达7-10年的安全更新。
但目前来看,上述优势将一去不复返。CentOS8将于2021年结束更新,后续不再支持社区版本。取而代之的是CentOS Stream。之前CentOS作为RHEL的下游版本拥有良好的稳定性及全面的测试,之后的CentOS Stream则是RHEL的上游/开发分支版本,用来作为Fedora和RHEL之间的缓冲版本,发行方式也改为滚动发行,CentOS Stream 系统会先于RHEL系统进行相关的运行测试,这将使其稳定性大打折扣。至于其是否还适合于企业生产环境,还有待于观察。毕竟可能存在频繁更新修复等情况,不利于系统及业务稳定运行。不过也有好消息,CentOS 创始人 Gregory Kurtzer 发起了一个新的社区版的企业操作系统项目Rocky Linux,旨在与 RHEL 100% 兼容,将 CentOS 延续下去。
Fedora ,作为RedHat Linux9.0的后续版本,由红帽赞助面向社区的发行版本,为Linux爱好者设计,可看做RHEL的上游测试平台,是RadHat系列中最具创新性的分发版本。
Debian ,Debian是迄今为止最遵循GNU规范的Linux系统,可以称之为社区类Linux的典范,社区内拥有大批开源爱好者活跃其中。Debian主要有三个主要分支(如果包括增加稳定性的experimental分支算在内的话是四个分支):unstable(或称sid),testing和stable。由于渐进集成和封装的稳定特性,随着项目的完善的质量控制机制一起,使Debian运行起来极其稳定,非常适合用于服务器。但同时由于这种冗长而复杂的开发风格也暴露出一些缺点:Debian的稳定版本并不是特别新,新的稳定版本每1-3年才会发布一次,就此导致以Debian为基础的二次开发发行版非常丰富。
ubuntu ,Debian系列中最受欢迎的二次开发发行版本,社区非常活跃。除了在服务器、云计算硬件上获得支持,甚至在一些移动设备、IoT设备上同样支持,可以说市场应用相当全面。在个人及商业用途都有不俗的市场占有率,对于新手来说非常友好,是最适合作为桌面系统的Linux发行版本。有固定的发布周期和支持期,LTS版本具有5年安全更新的长期支持。由于其社区活跃,官方和用户贡献了丰富的文档可供学习参考。与CentOS的沉稳相比,ubuntu通常会选择使用更新的内核以及更高的新技术支持度。
deepin ,是由武汉深之度科技有限公司在Debian基础上开发的Linux系统,其包含深度桌面幻境(DDE)和近30款深度原创应用,及数款来自开源社区的应用软件。另外,通过深度商店还能够获得近千款应用软件的支持。深度操作系统由专业的操作系统研发团队和深度技术社区共同打造,其名称来自深度技术社区名称“deepin”一词,意思是对人生和未来深刻的追求和探索。同时其也拥有商业发行版本UOS,主要开发工作由 Deepin 团队完成,UOS 与 Deepin 的关系就像是 Fedora 和 Redhat RHEL 那样。
Kali Linux ,基于Debian的一款衍生版,旨在用于渗透测试。用于Debian的所有Binary软件包都可以安装到Kali Linux上,随系统带有许多的渗透测试工具,无论是Wifi、数据库还是其他工具,都设计成立马可以使用,在网络安全方面应用较为广泛。
Parrot OS ,同样基于Debian开发,涉及核心是安全与隐私,同样集成很多安全工具,与Kali Linux作用类似。
SUSE ,基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器。
OpenSUSE , 由SUSE发展而来,旨在推进linux的广泛使用,主要用于桌面环境,拥有精美的桌面环境和优秀的系统管理工具,且性能良好。
Gentoo ,基于linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。由于它近乎无限的适应性,可把Gentoo称作元发行版。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。连Gentoo社区都觉得Gentoo安装和使用起来很困难。不过它被认为是最佳学习对象,可以进而了解Linux操作系统的内部运作原理。
Arch Linux ,轻量简洁,遵循K.I.S.S.原则( keep it simple and stupid )。它拥有“滚动更新”的特性,只需要安装一次,然后保持一直更新,不要从头安装新的系统。这都要感谢其强大的包管理器和一个总是最新的软件库。因此,Arch Linux的“发行版“很少,而且现在只限于一个基本的安装光盘,只有在基本系统发生相当大的变化时,才会发行新的安装介质。
Android ,Android(安卓)它的内核就是Linux,也算是一种Linux发行版。
安装ubuntu18.04
安装CentOS7.9
(过程略)
方法1:修改/etc/profile 文件 ,添加命令
export HISTTIMEFORMAT="%F %T "
方法2:在/etc/profile.d文件夹下创建.sh后缀的脚本文件并写入命令
export HISTTIMEFORMAT="%F %T "
效果:
一切皆文件。为提高资源管理效率,几乎所有的资源系统都抽象为文件形式,包括但不限于目录、字符设备、块设备、硬件设备等。
小型且单一用途的程序,一个程序只做一件事。
链接程序,组合小程序共同完成复杂的任务。
避免令人困惑的用户界面。
配置数据存储于文本之中。
命令格式:
命令使用格式:#COMMAND [OPTIONS...] [ARGUMENTS...]
COMMAND :命令;一个可执行的二进制程序文件
OPTIONS:参数选项;指定命令运行的特性,有两种选项:短选项-r,长选项--help。
ARGUMENTS:对象;命令作用的对象,不同命令的作用对象不同,可以是文件,目录,硬件设备等。
注:
1.区分大小写
2.如果同一命令在运行时使用多个短选项,可将多个短选项合并,如:-r -f 可合并为 -rf,长选项一般不能合并
3.命令,参数选项和对象之间都要有一个或多个空格做间隔
常用命令:
echo
作用:输出字符串或变量提取后的值。
格式:echo [OPTION] [STRING]
选项:
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
示例:
bear@ubuntu1804:~$ echo hahaha
hahaha
bear@ubuntu1804:~$ echo \$PATH
$PATH
bear@ubuntu1804:~$ echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
screen
作用:实现会话管理,如:新建会话,共享会话等。
用法示例:
screen –S [SESSION] //创建新screen会话
screen –x [SESSION] //加入screen会话
exit //退出并关闭screen会话
Ctrl+a,d //剥离当前screen会话
screen -ls //显示所有已经打开的screen会话
screen -r [SESSION] //恢复某screen会话
date
作用:显示或设定系统的日期和时间。
格式:date [OPTION] +[FORMAT]
选项:
-d “字符串”:显示字符串所指日期与时间,必须有双引号。
-s “字符串”:设置为字符串所指日期与时间,必须有双引号。
示例:
bear@ubuntu1804:~$ date +"%Y-%m-%d"
2021-08-27
bear@ubuntu1804:~$ date -d "today" +"%Y-%m-%d"
2021-08-27
ifconfig
作用:显示当前有效网络接口的状态。
示例:
export
作用:用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。
格式:export [options] [arguments]=[value]
示例:
bear@ubuntu1804:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
bear@ubuntu1804:~$ export PATH="$PATH:/data"
bear@ubuntu1804:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/data
history
作用:控制历史命令,打印、清空、再一次执行等。
格式:history [options] [arguments]
示例:
bear@ubuntu1804:~$ history
1 ifcpnfig
2 ifconfig
3 ping 10.0.0.1
4 ping 10.0.0.2
5 ping 10.0.0.3
6 cd /etc/
7 ls
bear@ubuntu1804:~$ history 5
39 echo $PATH
40 export PATH="$PATH:/data"
41 echo $PATH
42 history
43 history 5
bear@ubuntu1804:~$ !43
history 5
39 echo $PATH
40 export PATH="$PATH:/data"
41 echo $PATH
42 history
43 history 5
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录 /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序 /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序 /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules) /lib64:专用于x86_64系统上的辅助共享库文件存放位置 /etc:配置文件目录 /home/USERNAME:普通用户家目录 /root:管理员的家目录 /media:便携式移动设备挂载点 /mnt:临时文件系统挂载点 /dev:设备文件及特殊文件存储位置 /opt:第三方应用程序的安装位置 /srv:系统上运行的服务用到的数据 /tmp:临时文件存储位置 /usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录 bin: 保证系统拥有完整功能而提供的应用程序 sbin: lib: 32位使用 lib64:只存在64位系统 include: C程序的头文件(header files) share:结构化独立的数据,例如doc, man等 local:第三方应用程序的安装位置 /var:var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 cache: 应用程序缓存数据目录 lib: 应用程序状态信息数据 local:专用于为/usr/local下的应用程序存储可变数据 lock: 锁文件 log: 日志目录及文件 opt: 专用于为/opt下的应用程序存储可变数据 run: 运行中的进程相关数据,通常用于存储进程pid文件 spool: 应用程序数据池 tmp: 保存系统两次重启之间产生的临时数据 /proc: 用于输出内核与进程信息相关的虚拟文件系统 /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统 /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置