1.列出Linux 的主要发行版本,并描述不同版本之间的联系与区别

Linux的发行版的演化可访问:http://futurist.se/gldt/

    redhat系列:

    redhat: RHEL: RedHat Enterprise Linux 红帽公司包装发行linux+GNU+安装程序、服务收费

    Centos: Conmmunity Enterprise Operating System  社区企业级操作系统(已经被红帽公司收购)  去掉了红帽公司的标识重新编译打包

    Fedora: 每6和月发行一个新版,追求新功能

    Debian系列:

    ubuntu 是完全由自由软件组成的类unix 操作系统,其包含的多数软件使用GNU通用公共许可(GPL)协议授权,并由Debian计划的参与者组织成团队进行打包,开发与维护

    Slackware系列:

    SUSE Linux Enterprise Server  企业版

    OpenSuse  桌面版

2.安装CentOS-7.9和ubuntu-18.04.5,创建一个自己名字的用户,并可以正常登录操作系统,将主要步骤截图

CentOS-7.9

上下键 选择 Install Centos 7

第一周_linux

保持默认

第一周_linux_02

这里要进行选择相应的配置:时区 语言支持 键盘布局 软件选择(最小化安装) 磁盘分区布局 网络配置主机名 kdump 

每配置完一项 点击 左上角的 Done

第一周_linux_03

时区 选择 亚洲上海  日期和时间可以进行调整

语言支持把 简体中文也选择上

第一周_linux_04

最小化安装 右侧 可以勾选软件包组 

第一周_linux_05

选择磁盘 选择手工分区 默认是自动分区

第一周_linux_06

选择标准分区 不使用 lvm 

第一周_linux_07

/boot  1G  注意文件系统 用 ext4 默认是xfs

第一周_linux_08

第一周_linux_09

交换分区 2G 

第一周_linux_10

/分区 100G

第一周_linux_11

/data 分区 50G

第一周_linux_12

分区完成查看

第一周_linux_13

Accept Changes

第一周_linux_14

关闭  kdump  不勾选 Enable kdump

第一周_linux_15

配置主机名称  网卡 ON

网卡自动获取了IP地址 是因为有DHCP 服务器 自动分配了IP地址

第一周_linux_16

网卡开机自启动

第一周_linux_17

给网卡 ens32 配置ipv4 静态地址 网关 DNS

第一周_linux_18

第一周_linux_19

点击 右下角 Begin Installtation 

第一周_linux_20

软件包开始安装  点击 root password   设置 root  用户 口令   点击 user creation 创建新用户  

第一周_linux_21

root 用户口设置

第一周_linux_22

创建一个普通用户 gonghairong

第一周_linux_23

软件包安装完成 重启操作系统

第一周_linux_24

普通用户 gonghairong 登录

第一周_linux_25

ubuntu  安装过程比较复杂

ubuntu-18.04.5  

默认 English 

第一周_linux_26

选择不安装更新

第一周_linux_27

默认

第一周_linux_28

手工配置网卡

第一周_linux_29

默认DHCP服务器自动分配了IP地址 选择 ens32 网卡 Edit IPv4 手工配置网卡

第一周_linux_30

配置静态IP地址

第一周_linux_31

查看配置结果  网卡 ens32  static  地址

第一周_linux_32

代理 不配置 默认

第一周_linux_33

空格键 选择 Custom storage lagout  自定义分区

第一周_linux_34

选择 200G的磁盘 ADD GPT Partition

第一周_linux_35

创建第一个分区 /boot  1G  文件系统 ext4

第一周_linux_36

/swap 分区 2G

第一周_linux_37

/分区 100G 文件系统 xfs

第一周_linux_38

/data 分区 50G 文件系统 xfs 

图忘截了  方法与  / 分区方法一样 

分区完成之后 查看下没有问题了  Done

第一周_linux_39

Continue

第一周_linux_40

创建普通用户  ubuntu  默认不让 root 用户直接登陆 需要创建一个普通用户 sudo -i 到root 用户

第一周_linux_41

这里 空格键 选择 Install OpenSSH  Server 不要直接 Done 

第一周_linux_42

默认

第一周_linux_43

这里开始安装系统

第一周_linux_44

完成安装 重启系统

第一周_linux_45

普通用户 gonghairong  登录系统

第一周_linux_46

普通用户 sudo -i  切换到 root  管理员用户 需要提供普通用户 gonghairong 的密码

第一周_linux_47

 

3.配置环境变量,实现执行 history命令的时候可以看到执行命令的时间

    临时生效 
    [root@centos79 ~]# export HISTTIMEFORMAT="[%F %T ]  "

    写入文件永久生效 vi 新建文件 写入如下配置      ESC 键     :wq 保存退出
    [root@centos79 ~]# vi /etc/profile.d/env.sh

    export HISTTIMEFORMAT="[%F %T ]  "

    [root@centos79 ~]# chmod u+x  /etc/profile.d/env.sh

4.总结Linux哲学思想

    1.一切皆文件(硬件也是文件)
    2.小型、单一的用途的程序
    3.链接程序、共同完成复杂任务
    4.命令行字符界面
    5.配置数据存储在文件中

5.总结Linux常用命令使用格式,并用实例说明,例如 echo  date  ifconfig export  screen 等命令

echo [-neE] [arg ...]

      -n  不附加换行符
      -e  启用对以下反斜线转义的解释
           \b 退格键
           \t 水平制表符
           \n  换行光标移至行首

[root@centos79 ~]# echo -e "www.qq.com.cn\bqq"
www.qq.com.cqq

[root@centos79 ~]# echo -e   "magedu is good\nhairong is ok  "
magedu is good
hairong is ok

[root@centos79 ~]# echo -e "www.qq.com\tqq"
www.qq.com      qq

显示当前PATH环境变量
[root@centos79 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

显示当前使用的 shell 
[root@centos79 ~]# echo $SHELL
/bin/bash

date [OPTION]... [+FORMAT]
      
      -d --date=STRING 显示由 STRING 描述的时间,而不是“现在”    
                 %F  %F 完整日期; 与 %Y-%m-%d 相同
                 %T  时间; 与 %H:%M:%S 相同
                 %Y  年
                 %m  月
                 %d  日
                 %H  时
                 %M  分
                 %S  秒

[root@centos79 ~]# echo $(date +%F)
2021-08-24

[root@centos79 ~]# echo $(date +%F'-'%T)
2021-08-24-01:43:07

[root@centos79 ~]# echo $(date +%Y-%m-%d-%H-%M-%S)
2021-08-24-01-43-41

[root@centos79 ~]# echo $( date -d "1days" +%F_%T)
2021-08-25_01:45:19

[root@centos79 ~]# echo $( date -d "-1days" +%F_%T)
2021-08-23_01:45:28

[root@centos79 ~]# echo $( date -d "-1year" +%F_%T)
2020-08-24_01:45:58

查看所有的网卡
[root@centos79 ~]# ifconfig -a

查看网卡 ens32
[root@centos79 ~]# ifconfig ens32

导出变量 LANG 
[root@centos79 ~]# export LANG=en

查看cpu 信息 
[root@centos79 ~]# lscpu

[root@centos79 ~]# cat /proc/cpuinfo

查看内存大小
[root@centos79 ~]# free -m

[root@centos79 ~]# cat /proc/meminfo

查看磁盘和分区
[root@centos79 ~]# lsblk

[root@centos79 ~]# cat /proc/partitions

查看系统架构
[root@centos79 ~]# arch
x86_64

查看内核版本
[root@centos79 ~]# uname -r
3.10.0-1160.el7.x86_64

查看系统发行版本
[root@centos79 ~]# cat /etc/redhat-release

[root@centos79 ~]# cat /etc/os-release

[root@centos79 ~]# cat /etc/issue

[root@centos79 ~]# lsb_release -a

用于找出哪个包提供了某些功能或文件
[root@centos79 ~]# yum provides lsb_release

安装软件包
[root@centos79 ~]# yum install redhat-lsb-core

显示硬件时钟
[root@centos79 ~]# clock

以系统时间为准 校正硬件时钟
[root@centos79 ~]# clock -w

以硬件时钟为准 校正系统时钟
[root@centos79 ~]# clock -s

时区配置文件
[root@centos79 ~]# ll /etc/localtime

显示当前时间设置
[root@centos79 ~]# timedatectl status

显示已知时区
[root@centos79 ~]# timedatectl list-timezones

设置系统时区 亚洲/上海
root@ubuntu1804:~# timedatectl set-timezone  Asia/Shanghai

关机
[root@centos79 ~]# shutdown

重启
[root@centos79 ~]# reboot

10分钟后关机
[root@centos79 ~]# shutdown +10

取消 10分钟后的关机
[root@centos79 ~]# shutdown -c

11点20分关闭机器
[root@centos79 ~]# shutdown 11:20

查看当前所在的终端
[root@centos79 ~]# tty
/dev/pts/3

显示系统当前所有的登录会话及所做的操作
[root@centos79 ~]# w

显示系统当前所有的登录会话
[root@centos79 ~]# who

登录系统时候的提示信息
[root@centos79 ~]#cat /etc/motd

打印与当前有效用户id关联的用户名
[root@centos79 ~]# whoami
root

设置主机名 临时生效
[root@centos79 ~]# hostname  centos79.mgedu.org

查看主机名
[root@centos79 ~]# hostname
centos79.mgedu.org

设置主机名永久生效 写入配置文件/etc/hostname
[root@centos79 ~]# hostnamectl set-hostname centos79.mgedu.org

[root@centos79 ~]# cat /etc/hostname
centos79.mgedu.org

查看命令是内部命令还是外部命令
[root@centos79 ~]# type hostname
hostname is hashed (/usr/bin/hostname)

[root@centos79 ~]# type cd
cd is a shell builtin

显示hash  缓存
[root@centos79 ~]# hash

查看系统中的命令别名
[root@centos79 ~]# alias

创建别名netcfg
[root@centos79 ~]# alias netcfg='cd /etc/sysconfig/network-scripts'

取消命令别名
[root@centos79 ~]# unalias netcfg

查看当前工作目录
[root@centos79 network-scripts]# pwd
/etc/sysconfig/network-scripts

回到家目录
[root@centos79 network-scripts]# cd
[root@centos79 ~]#

切换到指定用户的家目录
[root@centos79 ~]# cd ~gonghairong

 ..  当前目录的上一级目录

 .   当前目录

 cd  .. 切换到上级目录

 cd  -  在当前目录与上次所在的目录之间来回切换

!*   引用上个命令的全部参数

 ESC 键  .   应用上个命令的最后一个参数

 `` 命令扩展

 () 命令扩展

 {} 扩展

 []  可选择项只能选其一

[root@centos79 ~]# echo  `hostname `
centos79.mgedu.org

[root@centos79 ~]# echo $(ls -l)

1到10 
[root@centos79 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10

1到10 步长为2 
[root@centos79 ~]# echo {1..10..2}
1 3 5 7 9

小写字母a-z
[root@centos79 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

命令历史
[root@centos79 ~]# history

清空命令历史
[root@centos79 ~]# history -c

列出文件 
ls [OPTION]... [FILE]...
    -l  长格式显示
    -R 递归列出子目录
    -t 根据修改时间排序
    -r 倒序
    -S 根据文件大小排序
    -d 只列出目录本身
    -h 以人类可读格式打印尺寸 K M G 
    -a 列出隐藏文件 以 . 开头的文件是隐藏文件
    -A  列出隐藏文件 但不显示 .  .. 
    -1 每行列出一个文件
    -F 将指示符(*/=>@| 之一)附加到条目

列出文件 以长格式显示 根据文件的修改时间排序 最新改变的文件显示在最底下
[root@centos79 ~]# ls -lrth 

[root@centos79 ~]# ls -ld /etc/
drwxr-xr-x. 82 root root 8192 Aug 24 09:14 /etc/

只列出隐藏文件
[root@centos79 ~]# ls   -d .*

[root@centos79 ~]# ls -1
abc.txt
anaconda-ks.cfg
a.txt

[root@centos79 ~]# ls -ldF mgedu
drwxr-xr-x. 2 root root 6 Aug 24 09:36 mgedu/

查看命令的简单帮助
[root@centos79 ~]# whatis echo

内部命令查看帮助 
[root@centos79 ~]# help cd

外部命令查看帮助
[root@centos79 ~]# hostname --help

[root@centos79 ~]# man ls

6.描述Linux发行版本的系统目录名称命名规则以及用途。

Linux 文件和目录被组织成一个倒置的树型结构,文件系统从根目录下开始 用 "/" 表示

Linux的文件系统分层结构: FHS  Filesystem Hierarchy Standard 

参考文档:https://www.pathname.com/fhs/

    /boot 引导文件存放目录,内核文件vmlinuz、引导加载器(bootloader grub)都存放在此目录下

    /bin  所有用户使用的基本命令

    /sbin 管理类的基本命令

    /lib  启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

    /lib64 专用于x86_64 系统上的辅助共享文件存放位置

    /etc/ 配置文件目录

    /home/USERNAME 普通用户的家目录

    /root  管理员 root 用户的家目录

    /media  便携式移动设备挂载点

    /mnt 临时文件系统挂载点

    /dev 设备文件及特殊文件的存放位置
        b: block device  块设备文件 随机访问 例如磁盘
        c: character device  字符设备,线性访问 例如键盘

    /opt 第三方应用程序的安装位置

    /srv 系统上运行的服务用到的数据

    /tmp 临时文件存储位置

    /usr/include : C 程序包含的头文件

    /var 存放变化的数据 例如日志

    /run 系统运行时的数据

    /proc  用于输出内核与进程信息相关的虚拟文件系统

    /sys 用于输出当前系统上硬件设备相关信息虚拟文件系统