1. 按系列羅列Linux的發(fā)行版,并描述不同發(fā)行版之間的聯(lián)系與區(qū)別
Linux分支參考鏈接:
https://github.com/FabioLolix/LinuxTimeline
slackware: SUSE Linux Enterprise Server(SLES), OpenSuse桌面, MINIS, etc.
Debian:deepin, Kali, Ubuntu, Linux Mint, etc.
Redhat:Red Hat Enterprise, CentOS, Fedora, etc.
Alpine:一個面向安全應用的輕量級Linux發(fā)行版
ArchLinux:遵循K.I.S.S.原則(keep it simple and stupid), Manjaro, etc.
Gentoo:不提供傳統(tǒng)安裝程序,需下載源代碼在本機上編譯安裝軟件。GentooX, etc.
LFS:Linux From scratch 自制Linux
Android:kernel+busybox(工具集)+Java虛擬機
聯(lián)系:都是基于Linux內核實現(xiàn),都需遵守GNU的GPL開源協(xié)議。
區(qū)別:不同發(fā)行版是基于不同版本的內核+基礎軟件+協(xié)議的基礎上打包組合而成的。
2. 安裝CentOS7.9和ubuntu操作系統(tǒng),創(chuàng)建一個自己名字的用戶名,并可以正常登錄,將主要步驟截圖
CentOS7.9系統(tǒng)安裝主要設置:

CentOS-1.png

CentOS-2.png

CentOS-3.png

CentOS-4.png

CentOS-5.png

CentOS-6.png

CentOS-7.png
Ubuntu18.04.6 系統(tǒng)安裝主要設置:

ubuntu-1 welcome_page.png

ubuntu-2.png

ubuntu-3 custom_disk.png

ubuntu-4 custom_disk.png

ubuntu-5 custom_disk.png

ubuntu-8 final_setting.png

ubuntu-9 final_display.png

ubuntu-10 final_complete.png
#安裝完畢后啟動網卡自動獲取ip地址
#執(zhí)行命令如下:
ip a #查看網卡名稱
ip link set eth0 up #啟動網卡,網卡編號為 eth0
dhclient eth0 #啟動dchp自動獲取地址
3. 配置環(huán)境變量,實現(xiàn)執(zhí)行history的時候可以看到執(zhí)行命令的時間
系統(tǒng)變量:在 /etc/bashrc 或者 /etc/profile 中添加如下環(huán)境變量:
export HISTTIMEFORMAT="%F %T"
用戶變量:在 ~/.bash_profile 添加如下:
export HISTTIMEFORMAT="%F %T"
效果如下:

histtimeformat.png
4. 總結Linux哲學思想
- 一切皆文件:不僅是常見的文件和目錄,硬件設備均可視為文件對待
- 小型,單一用途的程序:為了減小資源開銷,保證高效運行,Linux通過許多單一用途的小程序來應對日常單一的任務,盡可能通過單一功能的小程序來完成。
- 鏈接程序,共同完成復雜的任務:通過shell腳本或管道符等方式將簡單的小程序組合起來實現(xiàn)所需的復雜功能。
- 避免令人困惑的用戶界面: 推行命令行界面,不像復雜的桌面系統(tǒng),命令行界面可以通過清晰明了的命令來實現(xiàn)排查錯誤,處理效率高。
- 配置數(shù)據(jù)存儲在文本中:在Linux里面,所有的配置信息都保存在文本配置文件里面,用戶可以通過修改文本來實現(xiàn)配置修改,而不是像Windows保存在用戶看不懂的二進制文件中。
5. 總結Linux常用命令使用格式,并用實例說明。例如echo、screen、date、ifconfig、export等命令
命令使用格式:
COMMAND [OPTIONS...] [ARGUMENTS...]
COMMAND [COMMAND] [COMMAND] ...
echo [參數(shù)] [字符串]
echo "$VAR_NAME" #用變量值替換,弱引用
echo '$VAR_NAME' #變量不會替換,強引用
#輸出 1-10
[root@centos8 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
#弱引用,輸出變量值
[root@centos8 ~]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#使用反引號執(zhí)行命令
[root@centos8 ~]# echo `ls`
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
screen [參數(shù)]
#創(chuàng)建screen新會話
[root@centos8 ~]# tty
/dev/pts/0
[root@centos8 ~]# screen -S test-one #創(chuàng)建screen會話 test-one
[root@centos8 ~]# tty
/dev/pts/1
#顯示所有會話
[root@centos8 ~]# screen -ls
There are screens on:
35397.test-two (Detached)
35347.test-one (Attached)
2 Sockets in /run/screen/S-root.
#恢復會話
screen -r test-one
#結束screen會話
[root@centos8 ~]# screen -d 36081.test-one #將會話離線
[root@centos8 ~]# screen -ls
There is a screen on:
36081.test-one (Detached)
1 Socket in /run/screen/S-root.
[root@centos8 ~]# kill -9 36081 #結束進程
[root@centos8 ~]# screen -ls
There is a screen on:
36081.test-one (Dead ???)
Remove dead screens with 'screen -wipe'.
1 Socket in /run/screen/S-root.
[root@centos8 ~]# screen -wipe #清除會話
There is a screen on:
36081.test-one (Removed)
1 socket wiped out.
No Sockets found in /run/screen/S-root.
[root@centos8 ~]# screen -ls #驗證會話結束-1
No Sockets found in /run/screen/S-root.
[root@centos8 ~]#
[root@centos8 ~]# tty #驗證會話結束-2
/dev/pts/0
date [OPTION] [+FORMAT]
#顯示當前時間
[root@centos8 ~]# date
Sat Nov 20 10:23:49 CST 2021
#顯示utc時間
[root@centos8 ~]# date -u
Sat Nov 20 03:16:44 UTC 2021
#顯示自1970-01-01 00:00:00 UTC以來的秒數(shù)
[root@centos8 ~]# date +%s
1637378605
#指定全日期全時間格式輸出
[root@centos8 ~]# date +"%F %T"
2021-11-20 11:24:18
#顯示硬件時間
[root@centos8 ~]# clock
2021-11-20 11:25:53.768870+08:00
#顯示當前時區(qū)信息
[root@centos8 ~]# timedatectl status
Local time: Sat 2021-11-20 11:27:20 CST
Universal time: Sat 2021-11-20 03:27:20 UTC
RTC time: Sat 2021-11-20 03:27:18
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
##
ifconfig [參數(shù)]
#簡要查看網絡接口信息
[root@centos8 ~]# ifconfig -a -s
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 186823 0 0 0 193945 0 0 0 BMRU
lo 65536 30871 0 0 0 30871 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
virbr0-nic 1500 0 0 0 0 0 0 0 0 BM
[root@centos8 ~]#
#臨時關閉指定網絡接口
ifconfig ens33 down
#臨時開啟指定網絡接口
ifconfig ens33 up
export [參數(shù)]
#列出當前shell環(huán)境變量
[root@centos8 ~]# export -p
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-sMyZ4R3BXo,guid=171f3beedc7e07c61f8f9c816198ae75"
declare -x DISPLAY="localhost:10.0"
declare -x GDK_BACKEND="x11"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
...
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_DATA_DIRS="/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="13"
#設置變量 var_test 并賦值
[root@centos8 ~]# export var_test=666
[root@centos8 ~]# echo $var_test
666
[root@centos8 ~]#
6. 描述Linux發(fā)行版的系統(tǒng)目錄名稱命名規(guī)則以及用途
命名規(guī)則
1、名稱區(qū)分大小寫
2、以 . 開頭的為隱藏文件
3、文件名最長 255 字節(jié)
4、路徑分隔用 /
5、包括路徑在內文件名稱最長4095字節(jié)
6、名稱不能包含斜杠和NUL
/boot: 引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放在此目錄
/bin: 所有用戶使用的基本命令;不能關聯(lián)至獨立分區(qū),OS啟動即會用到的程序
/dev:設備文件及特殊文件存儲位置
b:block device,隨機訪問
c:character device,線性訪問
/etc: 配置文件目錄
/home:普通用戶家目錄
/lib: 啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)
/lib64: 專用于x86_64系統(tǒng)上的輔助共享文件存放位置
/media:便攜式移動設備掛載點
/mnt:臨時文件系統(tǒng)掛載點
/opt:第三方應用程序的安裝位置
/proc:用于輸出內核與進程信息相關的虛擬文件系統(tǒng)
/root:管理員家目錄
/sbin: 管理類的基本命令;不能關聯(lián)至獨立分區(qū),OS啟動會用到的程序
/selinux:security enhanced Linux, selinux相關的安全策略等信息存儲位置
/srv:系統(tǒng)上運行的服務用到的數(shù)據(jù)
/sys:用于輸出當前系統(tǒng)上硬件設備相關信息的虛擬文件系統(tǒng)
/tmp:臨時文件存儲位置
/usr:universal shared,read-only data 全局共享且只讀數(shù)據(jù)
bin:保證系統(tǒng)擁有完整功能而提供的應用程序
include:c程序的頭文件(header file)
lib:32位使用
lib64:只存在64位系統(tǒng)
sbin:
share:結構化獨立的數(shù)據(jù),例如doc,man
local:第三方應用程序的安裝位置
bin, etc, lib, lib64, sbin, share
/var:variable data files 變量數(shù)據(jù)文件
cache:應用程序緩存數(shù)據(jù)目錄
local:專用于為/usr/local下的應用程序存儲可變數(shù)據(jù)
lock:鎖文件
log:日志目錄及文件
opt:專用于為/opt下的應用程序存儲可變數(shù)據(jù)
run:運行中的進程相關數(shù)據(jù),通常用于存儲進程pid文件
spool:應用程序數(shù)據(jù)池