一、Linux发行版描述。
Linux发行版主要有三个分支:Slackware、Debian、Redhat;
(1) Slackware:
SUSE:基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器;
SUSE Linux Enterprise Server:企业服务器操作系统,是唯一与微软系统兼容的Linux操作系统;
OpenSuse:由suse发展而来,旨在推进linux的广泛使用,主要用于桌面环境,用户界面非常华丽,而且性能良好。
(2) Debian:三大发行版中唯一以社区形式运作,不以商业公司形式运作。是一个致力于创建自由操作系统的合作组织。而且debian开发者所创建的操作系统中绝大部分基础工具来自于GNU工程。
Ubuntu:是一个以桌面应用为主的linux操作系统。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统;
Linux mint:基于Debian和Ubuntu的Linux发行版,致力于桌面系统对个人用户每天的工作更易用,更高效,且目标是提供一种更完整的即刻可用体验;
(3) RedHat:
RHEL(RedHat Enterprise Linux):Red Hat公司发布的面向企业用户的Linux操作系统,是Redhat的一个重要节点。每18个月发行一个新版本;
CentOS:是一个基于Redhat linux 提供的可自由使用源代码的企业级linux发行版本。目前Centos已被收购,成为redhat旗下的一个组织。每个版本的Centos都会获得十年的支持(通过安全更新的方式)。新版本的Centos大约每两年发行一次,而每个版本的Centos会定期(大概6个月)更新一次,以支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。
中标麒麟:中标软件
Fedora:基于Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用。每6个月发行一个新版本,可视为Redhat的技术测试版,被认为可用的技术最终会加入到Red Hat Enterprise Linux中;
(4) 其它发行版本
Gentoo:基于linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点, Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西--你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版。
Aech Linux(或称Arch):遵循KISS原则,以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨
LFS:Linux From scratch 自制Linux
Android:kernel+busybox(工具集)+java虚拟机
二、Centos7.6(1810)安装
1.在vwware中新建一个自定义虚拟机,并在光驱中设置好ISO路径,准备安装;
2.虚拟机开机,会直接进入光盘安装系统,如下图:
3.选择第一项"Install CentOS7"进行安装界面,选择安装语言,直接 Continue 下一步,如下图:
4.之后会进行安装向导,对各个选项进行设置,如下图:
5.设置时区为中国shanghai,键盘类型为English(US),语言支持为English(United States)
6.在SOFEWARE下的SOFEWARE SELECTION中选择安装类型,此处选GNOME Desktop
7.在SYSTEM中的第一项INSTALLATION SOURCE中进行磁盘分区,如下图:
8.在SYSTEM中的第二项KDUMP中关闭KDUMP功能,默认开启,关闭时取消Enable kdump处的对勾,如下图
9.在SYSTEM中的第三项NETWORK&HOSTNAME中设置网络,网络可先开启DHCP或装完系统自己再设置也可,hostname也是一样,这里我设置成了centos7.localdomain,如下图
10.SYSTEM中的第四项SECURITY POLICY可先不设置,之后点击Begin Installation开始安装
11.安装过程中,可设置管理员root的密码以及新建一个普通用户,如下图
12.安装完成后,点击Reboot重启,重启后会进入一个许可信息的页面,接受即可,如下图
13.之后会进入登录界面,默认为普通用户登录,当然也可切换到管理员root登录,登录后进行一些简单的设置即可进入系统,如下图
三、配置环境变量,实现执行history命令时可以看到执行命令的时间
将环境变量HISTTIMEFORMART设置为HISTTIMEFORMAT="%F %T ",此时只会临时生效,如要生效需写入配置文件中,在/etc/profile.d/目录下新建一个 env.sh 文件,并写入HISTTIMEFORMAT="%F %T "即可永久生效,或写入/etc/profile文件中亦可。
[root@centos7 ~]# HISTTIMEFORMAT="%F %T " [root@centos7 ~]# history 1 2019-10-30 11:33:29 ifconfig 2 2019-10-30 11:33:29 ls 3 2019-10-30 11:33:29 ls / 4 2019-10-30 11:33:29 cd /data
history命令:
-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中(执行命令但不加入历史列表)
-s: 展开历史参数成一行,附加在历史列表中(不执行命令但加入历史列表,伪造历史)
[root@centos7 ~]# history 3 739 2019-10-30 11:50:35 cd /data 740 2019-10-30 11:50:40 cd 741 2019-10-30 11:50:53 history 3 [root@centos7 ~]# history -d 741 [root@centos7 ~]# history -p `hostname` centos7 [root@centos7 ~]# history 5 738 2019-10-30 11:50:31 ls 739 2019-10-30 11:50:35 cd /data 740 2019-10-30 11:50:40 cd 741 2019-10-30 11:51:15 history -d 741 742 2019-10-30 11:51:37 history 5 [root@centos7 ~]# history -s "rm -rf /*" [root@centos7 ~]# history 3 742 2019-10-30 11:51:37 history 5 743 2019-10-30 11:52:38 rm -rf /* 744 2019-10-30 11:52:43 history 3
命令历史相关的环境变量:
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT=“%F %T “ 显示时间
HISTIGNORE=“str1:str2*:... “ 忽略str1命令,str2开头的历史
环境变量:HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令
四、总结Linux哲学思想
(1) 一切皆文件
在Linux中,不仅普通的文件,目录、字符设备、块设备、 套接字等在Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。配置数据存储也都在文本中,无论什么配置修改都只需修改其配置文件即可。
(2) 小型,单一用途的程序,共同完成复杂功能
在Linux中,程序和可执行文件不要太复杂,每一个命令都是对应一个功能,通过不同的参数来完成不同的要求,通过繁多的小的命令来完成大型的要求,这样才能保证了linux内核的高效运行。
(3) 自由与分享
Linux是自由软件,当然它不是无限自由的,之所以它使用GNU的General Public License作为限制,是为了让更多的人享受这种修改和其他权利,是为了更好的实现最大自由化。Linux kernel在经过不断的发展过程中,从最初的很小容量的操作方式成为了炙手可热的操作系统,不得不承认,内核源代码的共享和互联网上的协作开发是其走向成功的重要途径。在英文单词中,“share”是一个很重要的词语,分享技术,分享每个人对内核的认识和修改。
五、常用命令的使用
(1) echo:显示字符
选项:
-E (默认)不支持解释功能
-n 不自动换行
-e 启用字符的解释功能
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出,如
a 发出警告声
退格键
c 最后不加上换行符号
e escape,相当于 33
换行且光标移至行首
回车,即光标移至行首,但不换行
插入tab
\ 插入字符
[root@centos7 ~]# echo -n "hello world ";echo "welcome" hello world welcome [root@centos7 ~]# echo -ne "hello world";echo "welcome" hello worlwelcome
(2) screen:创建会话
创建新screen会话:screen –S [SESSION]
加入screen会话:screen –x [SESSION]
退出并关闭screen会话: exit
剥离当前screen会话:Ctrl+a,d
显示所有已经打开的screen会话: screen -ls
恢复某screen会话: screen -r [SESSION]
[root@centos7 ~]# screen -S help #创建一个新会话 [root@centos7 ~]# screen -ls #显示会话 There is a screen on: 9166.help (Attached) 1 Socket in /var/run/screen/S-root. [root@centos7 ~]# screen -x help #在另一窗口可加入会话 [root@centos7 ~]# screen -r help #恢复会话
(3) date:显示和设置系统时间
date [OPTIONS] [+FORMAT]
常用选项:
-s:设置时间 如 date -s "2019-10-30 13:00:00"
-d:指定字符串时间并显示,如date -d "2019-10-20 11:23:45"
常用时间格式:
%F:显示日期,格式为2019-10-30,类似%Y-%m-%d
%T:显示时间,格式为12:20:23,类似%H:%M:%S
%Y:显示年份,如2019
%y:显示年,如19
%m:显示月,01-12
%M:显示分钟,00-59
%d:显示日,01-31
%D:显示日期,格式为10/30/19,类似%m/%d/%y
%H:显示小时,00-23
%I:显示小时,00-12
%S:显示秒,00-59
%s:显示秒数,从1970-01-01 00:00:00 UTC到目前经过的秒数,时间戳
%w:显示周,0-6,0代表星期日
%W:显示当前周是一年中的第几周
[root@centos7 ~]# date Wed Oct 30 13:18:16 CST 2019 [root@centos7 ~]# date -s "2019-10-20 11:23:45" Sun Oct 20 11:23:45 CST 2019 [root@centos7 ~]# date "+%F %T" 2019-10-30 13:19:23
hwclock:显示硬件时钟
-s, --hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准,校正硬件时钟
(4) ifconfig:查看当前网卡配置信息,启用或禁用网卡
ifconfig IFNAME up|down 启用或禁用网卡(临时生效)
[root@centos7 ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.236.134 netmask 255.255.255.0 broadcast 172.16.236.255 inet6 fe80::518d:c0dd:264:2a93 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:0b:44:fb txqueuelen 1000 (Ethernet) RX packets 127 bytes 13941 (13.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 225 bytes 23446 (22.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.214.7 netmask 255.255.0.0 broadcast 192.168.255.255 inet6 fe80::20c:29ff:fe0b:4405 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:0b:44:05 txqueuelen 1000 (Ethernet) RX packets 4487 bytes 387383 (378.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2449 bytes 559177 (546.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@centos7 ~]# ifconfig eth0 down
(5) export:设置或显示环境变量
export [-fnp] [变量名称]="变量值"
-f:代表[变量名称]中为函数名称
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中
-p:列出所有的shell赋予程序的环境变量
[root@centos7 ~]# export -p #查看系统的环境变量 declare -x HISTCONTROL="ignoredups" declare -x HISTSIZE="1000" declare -x HOME="/root" declare -x HOSTNAME="centos7" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s" declare -x LOGNAME="root" ...... [root@centos7 ~]# export NAME=xiaoming [root@centos7 ~]# echo $NAME xiaoming