第一周

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的变量

C

创建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!

~                                                                                         

离开时的操作还存在,可以继续操作。                                       

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。