1,Linux目前有三大主流发行版,分别为:Debian,Redhat,SUSE。
Debian是包括Ubuntu在内许多发行版的上游,而Ubuntu是Linux mint及其他发行版的上游。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。最早有IAN MURDOCK 于1993年创建,分为三个版本分支branch:stable,testing 和 unstable。其中,unstable为最新的测试版,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较稳定。也支持了不少新技术,比如 SMP等。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常高。Debian最具特色的是apt-get/dpkg包管理方式,其实Redhat的yum也是在模仿Debian的apt方式,但在二进制文件发行方式中,apt应该是最好的。
Ubuntu是基于Debian的unstable版本加强而来的,可以这么说,Ubuntu是一个拥有Debian所有优点。以及自己所加强的优点近乎完美的Linux桌面系统,根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的KUbuntu,以及基于Xfc的Xubuntu。特点是界面友好,容易上手,对硬件支持非常全面。
Redhat Linux系列是红帽公司研发的Linux发行版,包括Fedora,RHEL,centos和oracle Linux多种版本。相比RHEL,Fedora打包了显著的更多软件包,其中一个原因是,多样化的社区参与Fedora的建设,它不止是一个公司,在这个过程中,centos用于活动,演示和实验,因为它是对最终用户免费提供,并具有比Fedora的一个更长的发布周期,通常每隔半年左右发布一个新版本。
SUSE,SUSE Linux Enterprise server(SLES), 和 open SUSE之间的关系类似于Fedora,red hat enterprise Linux,和centos的关系。
Linux内核使用三种不同的版本编号方式。
第一种方式用于1.0版本之前(包括1.0)。第一个版本是0.01,紧接着是0.02, 0.03, 0.10, 0.11, 0.12, 0.95, 0.96, 0.97, 0.98, 0.99,和之后的1.0。
第二种方式用于1.0之后到2.6,数字由三部分“A.B.C”,A代表主版本号,B代表次主版本号,C代表较小的末版本号,有时也称修正号。
第三种方式从2004年2.6.0版本开始,使用一种“time-based”的方式。3.0版本之前,是一种“A.B.C.D”的格式。七年里,前面两个数字A.B及2.6保持不变,C随着新版本的发布而增加,D代表一些bug修复,安全更新,添加新特性和驱动次数。3.0版本之后是“A.B.C”格式,B随着新版本的发布而增加,C代表一些bug修复,安全更新等,第三种方式中不在使用偶数代表稳定版,奇数代表开发版的命名样式,举个例子:3.7.0代表的不是开发版,而是稳定版。
2,Linux安装不在详述网上也有很多类似教程,个人觉得比较重要的有两点,一是虚拟机设置网络时要选择NAT模式,二是在安装Linux期间最好开启网卡设置,且注意观察IP字段是否与虚拟机的IP在同一个网段下,否则可能导致不能远程访问Linux,也不能ping同主机和外网。
3,配置环境变量,例如实现history的时候可以看到执行命令的时间,
输入#export HISTTIMEFORMAT='%F %T ',重启后此命令失效
如需永久显示执行时间需要修改.bash.rc文件,该文件在/root目录下
打开.bashrc文件
在文件中写入以下文本
输入source .bashrc立即生效
4,Linux哲学思想:
a,一切皆文件,是Unix/Linux的基本哲学思想之一。不仅是普通文件,目录,字符设备,块设备,套接字等在Unix/Linux中都是以文件被对待。
b,提供很多小型的单一用途程序和可执行文件,一般功能单一,短小精悍,不太复杂,从而保证了Linux可以高效运行。Linux中常见的工具也就是几百个,掌握这些命令,基本可以玩转Linux了。
c,连接小程序,共同完成复杂的功能,在保证简单功能高效性的同时,复杂程序也必然是高效的。
d,避免令人困惑的用户界面,对于使用Windows过程中故障和问题,比如莫名其妙的无法上网等,一般人选择的会是重启计算机,实在不行就重装系统。因为Windows使用图形界面,相对较复杂背后的代码。最重要的是Windows不是开源系统,所以一般人根本没办法从代码层解决问题。但是Linux就不一样了,通常使用字符界面,相对比较单一,资源消耗较小,最重要的是开源,出现问题都可以通过简洁的命令实现排错,修改系统配置,一切都是简洁明了为基础。
e,配置数据储存在文本中,Linux及各种应用的配置文件都存放在文本配置文件当中,无论什么配置修改都只需要修改其配置文件即可,配置文件时文本形式的只需要任意一款文本编辑器修改即可,而不是类似于Windows那样保存在注册表中,并且Windows的注册表需要专门的二进制或十六进制的编辑器才可以编辑,修改比较复杂。
5,Linux常用命令和格式,
COMMAND [OPTIONS...] [ARGUMENTS...]
中括号表示可以省略,每个部分之间有一个或多个空格。
COMMAND: 命令,表示可以执行命令,常见的命令有二进制格式文件,或者脚本程序文件(本身是一定格式的文本文件,但需要由解释器解释才能运行),如:ls
OPTIONS:即选项,可以用来调整命令的运行特性
[] 中括号中的内容表示可以省略,一般命令都支持一个或多个选项
选项分为三种风格:
1、UNIX风格选项:用一个短横线(dash)开始,后面跟一个字母,又称段选项,支持多个选项进行组合,如:-a,-lh
2、GNU风格选项:用两个短横线开始,后面跟一个单词,一般不支持多个选项组合,又称长选项,如:--all,--verbose
3、BSD风格选项,一个字母,但前面不加短横线,支持多个选项组合,支持此风格的命令相对上面两种风格来说不太多。如:a,aux
ARUMENTS: 参数,表示命令的作用对象,比如文件名,用户名,网卡名等,有的命令支持有多个参数,参数间使用空白字符分隔。
常见命令简洁格式:
显示内核版本:#uname -r
显示操作系统发行版:#cat /etc/os-release
显示操作系统发行版:#cat /etc/redhat-release
显示当前主机的名称,及主机名:#hostname
显示CPU型号:#lscpu
显示内存大小:#free -h
查看硬盘和分区情况:#lsblk
注销用户身份,退出系统:#exit
执行quit命令,退出当前程序:#bc #quit 退出当前程序
重启计算机命令:
Init 6
reboot
shutdown -r now
关机命令:
Init 0
halt
pweroff
shutdown -h now
切换字符和图形界面模式
查看当前工作模式:#runlevel
切换运行模式:#runlevel #init 3 #runlevel #init 5 #runlevel
#systemctl isolate multi-user.target #runlevel
#systemctl isolate graphical.target #runlevel
说明:init 3 表示切换成字符模式,在centos 7版本中和systemctl isolate multi-user.target 相同效果。init 5 表示切换成图形模式,在centos 7版本中和systemctl isolate graphical.target 相同效果。
显示日期和时间命令:date 命令,显示和设置系统时间,可用下面两种格式
date [OPTIONS]... [+FORMAT]:显示日期时间。
date [MMDDhhmm[[CC]YY][.ss]]:设定日期时间。
FORMAT格式说明:
%F:日期,显示为数字,格式为:2021-12-26
%D:显示英制格式,月日年,显示格式为:12/26/21
%T:时间,显示为数字,格式为:20:20:20
%Y:年份,只显示完整年份数字(4位数字),显示格式为:2021
[MMDDhhmm[[CC]YY][.ss]]设置时间格式说明:
MM:表示月份,DD:表示日期,hh:表示小时,mm:表示分钟
CC:表示当前用四位数字书写年份时的前两个数字
YY:表示当前用四位数字书写年份时的后两个数字
.ss 表示秒钟,注意点号不能省略
显示默认格式日期:#date
显示日期:#date +%F
显示日期和时间:#date "+%F %T"
显示昨天的日期:#date -d ‘-1 day’ +%F
设置时间为:2021年1月2日3点4分5秒:#date 010203042021.5
设置当前时间为明年的日期:#date -s '1 year' +%F
设置当前月历:#cal
提示:1752年9月的日历显示结果没有问题,确实是少了3-13这几天,各中原因请自行搜索。
hwclock/clock 命令:操作硬件时钟
-s --hctosys:表示以硬件时间为准,设定系统时间
-w --systohc:表示以系统时间为准,设定硬件时间
显示硬件时钟:#hwclock
以硬件时钟为准调整系统时钟:#hwclock -s #clock;date
显示当前登录有效用户:#whoami
显示系统当前所有的登录会话:#who
显示系统当前所有的登录会话及所做的操作:#w
显示字符:echo 会将字符串显示在标准输出即屏幕上。
语法格式:echo [SHORT-OPTION] [STRING]
-n:表示不自动附加换行符,即都在一行显示。
-e:启用转义符,使能转义符\
显示指定的字符串:#echo 'welcome to Linux'
显示当前使用的HOSTNAME变量的值: #echo $HOSTNAME