1、Linux的各系列发行版,不同发行版之间的联系与区别。
linux发展至今主流的有三大版本,分别为:Debian,RedHat,SUSE。
Debian——是社区类linux的典范,是迄今为止最遵循GUN规范的Linux系统。最早于1993年,由Ian Murdock创建。分为三个版本分支:stable,testing和unstable。
unstable为最新测试版本,其中包含最新的软件包,同时会出现很多的bug,适合桌面用户。
testing的版本都经过unstable中的测试,相对稳定一点,同时也支持了不少新的技术(SMP)
stable一般只适用服务器,上面软件包版本可能过低,但是相对比较稳定,安全性高。
Ubuntu是基于Debian的unstable版本加强而来,拥有Debian所有的优点,以及几乎完美的Linux桌面系统。根据桌面系统选择的不同可以分为,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu
RedHat——是红帽公司研发的Linux,包含Fedora,RHEL,Centos和Oracle多种版本
Fedora相对于RHEL打包了更多的软件包。CentOS用于活动,演示和实验,因为它是对最终用户免费提供的,并具有比Fedora的一个更长的发布周期(通常每隔半年左右发布一个新版本)
SUSE—— SUSE Linux Enterprise Server (SLES), 和openSUSE 之间的关系类似于 Fedora, Red Hat Enterprise Linux, 和CentOS的关系。
2、安装Centos7.6操作系统
第一项为安装,第二项为检测软件包并安装,第三项为单机排错适用
自检开始安装。
选择语言
1表示时区选择,2表示键盘,3表示语言,4表示安装源,5表示安装内容选项,默认最小安装,如果需要安装安装桌面则选择。每次修改点击Done完成修改。
6表示磁盘分区选项,默认自动分区。建议手动分区时当前硬盘大小200G为例,建议选择/boot分区大小1G,/ 根分区大小100G,/data 分区大小50G,sawp分区大小为内存的1.5~2倍,当前为例选择4G。7表示Kdump,是在系统奔溃,死锁,死机时候用户转储存内存运行参数的一个工具,默认打开。
8表示网络选择,默认关闭状态,可修改为打开模式,点击Done完成修改,左下角可修改主机名称。9表示安全策略。
点击下一步之后进入安装界面:可修改root密码,创建用户及密码
创建了一个luo的用户
所有软件包安装完毕出现reboot按钮,点击之后重启系统,到此centos7安装就全部完成。初次进入图形界面,系统会引导进行简单设置。
未安装图形界面,到此系统安装完成。。。
3、配置环境变量,实现执行history的时候可以看到执行命令的时间:
与history相关的shell变量如下所示:
查看history的HISTTIMEFORMAT参数值,系统显示为空
使用set查看当前系统变量未出现HISTTIMEFORMAT的变量
创建HISTTIMEFORMAT参数,赋值为"%F %T" HISTTIMEFORMAT="%F %T " %F显示为年月日,%T显示为时间。
[root@Centos-7 ~]# echo $HISTTIMEFORMAT
%F %T
再次执行history,时间已显示。
4、总结Linux哲学思想。
Linux哲学思想主要有5个:
A,一切皆文件:不仅普通文件,目录,字符设备,块设备,套接字设备在Unix和Linux中都以文件被对待。
B,提供很多小型的单一用途的程序:Linux中提供的程序和可执行文件一般功能单一,短小精干,从而保证Linux的高效运行。
C,连接程序,共同完成复杂功能:由于每一个Linux命令功能简单,用户想要实现复杂的任务时,可以通过连接多个简单的程序实现复杂的功能。
D,避免令人困扰的用户界面:相对于Windows的图形界面,Linux使用字符界面,相对单一,资源消耗小,出现问题可通过简洁的命令交互方式进行排错。
E,配置数据存储在文本当中:Linux及各种应用程序的配置文件都存储在文本配置当中,无论什么配置只需要修改器配置文本即可。配置文本时文本形式只需任意一种文本编辑器修改即可。
5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
echo——用于在shell中打印shell变量的值,或者直接输出指定的字符串
语法:echo(选项)(参数) 选项:-e:激活转义字符。 使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
“>”重定向,清空所有内容只更新一行
“>>”追加重定向,逐行添加
示例:echo "11111"
示例:echo "hello world" > f1.txt
说明:将"hello world"重定向到当前目录下面的f1.txt里面,f1.txt未创建的话,创建该文件添加"hello world"该行。如果f1.txt文件存在,则覆盖该文件。
示例:echo "test" >> f1.txt
date —— 打印或设置系统日期和时间
根据指定格式显示当前时间或设置系统时间.
-d, --date=STRING
显示由 STRING 指定的时间, 而不是当前时间
-f, --file=DATEFILE
显示 DATEFILE 中每一行指定的时间, 如同将 DATEFILE 中的每行作为 --date 的参数一样
-I, --iso-8601[=TIMESPEC] 按照 ISO-8601 的日期/时间格式输出时间.
TIMESPEC=`date' (或者不指定时)仅输出日期,等于 `hours', `minutes', 或`seconds' 时按照指定精度输出日期及时间.
-r, --reference=FILE
显示 FILE 的最后修改时间
-R, --rfc-822
根据 RFC-822 指定格式输出日期
-s, --set=STRING
根据 STRING 设置时间
-u, --utc, --universal
显示或设置全球时间(格林威治时间)
--help
显示本帮助文件并退出
--version
显示版本信息并退出
格式 FORMAT 控制着输出格式. 仅当选项指定为全球时间时本格式才有效。 分别解释如下:
%%
文本的 %
%a
当前区域的星期几的简写 (Sun..Sat)
%A
当前区域的星期几的全称 (不同长度) (Sunday..Saturday)
%b
当前区域的月份的简写 (Jan..Dec)
%B
当前区域的月份的全称(变长) (January..December)
%c
当前区域的日期和时间 (Sat Nov 04 12:02:33 EST 1989)
%d
(月份中的)几号(用两位表示) (01..31)
%D
日期(按照 月/日期/年 格式显示) (mm/dd/yy)
%e
(月份中的)几号(去零表示) ( 1..31)
%h
同 %b
%H
小时(按 24 小时制显示,用两位表示) (00..23)
%I
小时(按 12 小时制显示,用两位表示) (01..12)
%j
(一年中的)第几天(用三位表示) (001..366)
%k
小时(按 24 小时制显示,去零显示) ( 0..23)
%l
小时(按 12 小时制显示,去零表示) ( 1..12)
%m
月份(用两位表示) (01..12)
%M
分钟数(用两位表示) (00..59)
%n
换行
%p
当前时间是上午 AM 还是下午 PM
%r
时间,按 12 小时制显示 (hh:mm:ss [A/P]M)
%s
从 1970年1月1日0点0分0秒到现在历经的秒数 (GNU扩充)
%S
秒数(用两位表示)(00..60)
%t
水平方向的 tab 制表符
%T
时间,按 24 小时制显示(hh:mm:ss)
%U
(一年中的)第几个星期,以星期天作为一周的开始(用两位表示) (00..53)
%V
(一年中的)第几个星期,以星期一作为一周的开始(用两位表示) (01..52)
%w
用数字表示星期几 (0..6); 0 代表星期天
%W
(一年中的)第几个星期,以星期一作为一周的开始(用两位表示) (00..53)
%x
按照 (mm/dd/yy) 格式显示当前日期
%X
按照 (%H:%M:%S) 格式显示当前时间
%y
年的后两位数字 (00..99)
%Y
年(用 4 位表示) (1970...)
%z
按照 RFC-822 中指定的数字时区显示(如, -0500) (为非标准扩充)
%Z
时区(例如, EDT (美国东部时区)), 如果不能决定是哪个时区则为空
示例:
[root@Centos-7 ~]# date 显示当前时间
Sat Nov 30 19:16:39 CST 2019
[root@Centos-7 ~]# date -s 20201129 //设置成20201129,这样会把具体时间设置成空00:00:00
Sun Nov 29 00:00:00 CST 2020
[root@Centos-7 ~]# date -s 19:24:30 //设置具体时间,不会对日期做更改
Sun Nov 29 19:24:30 CST 2020
[root@Centos-7 ~]# date -s "19:25:50 2019-11-29" //这样可以设置全部时间
Fri Nov 29 19:25:50 CST 2019
[root@Centos-7 ~]# date +%Y%m%d 获取当前日期格式为yyyymmdd
20191129
[root@Centos-7 ~]# date -d "1 day ago" +"%Y%m%d" 获取前一天的日期格式为yyyymmdd
20191128
补充用法:
#date +%Y%m%d#显示当天年月日
#date +%Y%m%d --date="+1 day"#显示后一天的日期
#date +%Y%m%d --date="-1 day"#显示前一天的日期
#date +%Y%m%d --date="-1 month"#显示上一月的日期
#date +%Y%m%d --date="+1 month"#显示下一月的日期
#date +%Y%m%d --date="-1 year"#显示前一年的日期
#date +%Y%m%d --date="+1 year" #显示下一年的日期
ifconfig ——是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。也可以把 它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址
语 法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>][io_addr][irq][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
参数:
up 启动指定网络设备/网卡
down 关闭指定网络设备/网卡
-arp 设置指定网卡是否支持ARP协议
-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a 显示全部接口信息
-s 显示摘要信息(类似于 netstat -i)
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
<硬件地址> 配置网卡最大的传输单元
mtu<字节数> 设置网卡的最大传输单元 (bytes)
netmask<子网掩码> 设置网卡的子网掩码
tunel 建立隧道
dstaddr 设定一个远端地址,建立点对点通信
-broadcast<地址> 为指定网卡设置广播协议
-pointtopoint<地址> 为网卡设置点对点通讯协议
multicast 为网卡设置组播标志
示例:
[root@Centos-7 ~]# ifconfig 显示激活的网口信息,网口为down的话不显示。
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.37.3 netmask 255.255.255.0 broadcast 192.168.37.255
inet6 fe80::20c:29ff:fe60:f90f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:60:f9:0f txqueuelen 1000 (Ethernet)
RX packets 10599 bytes 13298514 (12.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2708 bytes 294730 (287.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@Centos-7 ~]# ifconfig ens33 查看对应网口的信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.37.3 netmask 255.255.255.0 broadcast 192.168.37.255
inet6 fe80::20c:29ff:fe60:f90f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:60:f9:0f txqueuelen 1000 (Ethernet)
RX packets 10628 bytes 13301098 (12.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2731 bytes 299074 (292.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@Centos-7 ~]# ifconfig ens33 up 激活网口ens33
[root@Centos-7 ~]# ifconfig ens33 down 关闭网口ens33
[root@Centos-7 ~]# ifconfig ens33 192.168.37.4 给ens33接口配置IP地址
[root@Centos-7 ~]# ifconfig ens33 192.168.37.3 netmask 255.255.255.0 broadcast 192.168.37.255 给ens33网口配置IP地址,子网掩码,广播地址
export ——显示和设置环境变量值
[root@Centos-7 ~]# export
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="Centos-7.localdomain"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x
…………
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="192.168.37.1 50312 22"
declare -x SSH_CONNECTION="192.168.37.1 50312 192.168.37.3 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="8"
示例:
[root@Centos-7 ~]# NAME=luo 默认创建的变量为普通变量,作用域只在当前shell进程中
[root@Centos-7 ~]# echo $NAME
luo
[root@Centos-7 ~]# bash 重新打开一个新的shell进程
[root@Centos-7 ~]# echo $NAME 查看变量NAME显示为空
[root@Centos-7 ~]# exit
[root@Centos-7 ~]# echo $NAME
luo
[root@Centos-7 ~]# export NAME 将变量NAME设置为环境变量
[root@Centos-7 ~]# echo $NAME
luo
[root@Centos-7 ~]# bash 重新打开一个新的shell,查看变量NAME,可以显示。
[root@Centos-7 ~]# echo $NAME
luo
Screen——是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
screen -S luo 创建一个名字为luo的会话
[root@Centos-7 ~]# screen -S luo
[root@Centos-7 ~]# screen -ls
There are screens on:
1766.luo (Attached)
1650.pts-0.Centos-7 (Detached)
2 Sockets in /var/run/screen/S-root.
[root@Centos-7 ~]#vi test.txt 进行编辑。使用Ctrl+a+d离开当前会话
hello world!
~
~
[detached from 1766.luo]
[root@Centos-7 ~]# screen -ls
There are screens on:
1766.luo (Detached)
1650.pts-0.Centos-7 (Detached)
2 Sockets in /var/run/screen/S-root.
[root@Centos-7 ~]#
[root@Centos-7 ~]# screen -r 1766 使用screen -r 1766重新进入会话
[root@Centos-7 ~]# screen -r 1766
hello world!
~
离开时的操作还存在,可以继续操作。