此篇已經重新謄錄完成!!
可以作廢。
------------------------------
以下20201106研習
------------------------------
# uname -a
Linux centos8.kk 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# rpm -q centos-release
centos-release-8.2-2.2004.0.1.el8.x86_64
------------------------------升級與補強
# dnf -y install wget
# wget http://ftp.kh.edu.tw/APPL/dnf/CentOS8/fix-yum_repo-CentOS8.sh
# ls -l
-rw-r--r--. 1 root root 1838 10月 19 10:58 fix-yum_repo-CentOS8.sh
# chmod 755 fix-yum_repo-CentOS8.sh
# ls -l
-rwxr-xr-x. 1 root root 1838 10月 19 10:58 fix-yum_repo-CentOS8.sh
------------------------------修正套件庫來源及增加 epel 套件庫來源
# ./fix-yum_repo-CentOS8.sh
# dnf -y update
------------------------------讓設備自動定期更新套件
# dnf -y install dnf-automatic
# cp /etc/dnf/automatic.conf /etc/dnf/automatic.conf.bk
# dnf install vim
# vim /etc/dnf/automatic.conf
...
apply_updates = yes
# systemctl status dnf-automatic.timer
● dnf-automatic.timer - dnf-automatic timer
Loaded: loaded (/usr/lib/systemd/system/dnf-automatic.timer; disabled>
Active: inactive (dead)
# systemctl enable dnf-automatic.timer
# systemctl start dnf-automatic.timer
# systemctl status dnf-automatic.timer
● dnf-automatic.timer - dnf-automatic timer
Loaded: loaded (/usr/lib/systemd/system/dnf-automatic.timer; enabled;>
Active: active (waiting) since Sun 2020-11-08 22:48:24 CST; 3s ago
------------------------------看更新紀錄,知道那些套件更新
# cat /var/log/dnf.rpm.log
# tail /var/log/dnf.rpm.log
# tail -2 /var/log/dnf.rpm.log
# more /var/log/dnf.rpm.log
# cat /var/log/dnf.rpm.log | more
# cat /var/log/dnf.rpm.log | grep Installed
# grep Installed /var/log/dnf.rpm.log
------------------------------簡易指令說明
# ip --help
# ip -help
# ip -h
# man ip //詳細使用手冊
# ip address show //路由表複雜時比 ifconifg 效能較佳
# ip route show
------------------------------檔案目錄簡介
# dnf -y install tree
# tree -L 1 / // 1: 第1層 /: 根目錄
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
/proc 是一種虛擬文件系統。儲存的是當前核心運行狀態的一系列特殊文件,用戶可以通過這些文件查看有關系統硬體及當前正在運行進程的信息。
# cat /proc/cpuinfo
# ls /proc/1
# ps -aux
/run 程式或服務啟動後會將其 PID 放置於此,正在執行
# ls /run
# cat /run/sshd.pid
/opt 第3方程式放在此
# ls /srv
Linux 根目錄 /
Windows 根目錄 \
FileTable 指到 inode 起始點。inode 是 block 的 index
inode 類似 windows 動態磁區。本即樹狀架構,永遠不用重整磁區。
愈亂效果才會出來。搜尋平均使用效率高。
windows 之前的 FAT32 需要重整。
MBR --> FileTable --> 磁區
主機愈忙,檔案系統碎片愈高,沒時間重整。
是主機的用途來設定 block 大小,如:郵件 2K~8K、資料庫 1K~2K。
block 愈小, inode 愈多,愈占空間。與空間的運作效能有關。
磁區格式化完成,inode 完成對應到 block
FileTable 此架構在記憶體內
不用停機,有彈性,利於線上作業
新增檔案,找可用的空 inode 連結至此
刪除檔案,切斷檔案與原 inode 連結,並重新標示為可用。若建立新檔案使用到這個 inode,原 block 資料會被新檔覆蓋。
1. inode
2. link:
soft link 檔名指到原檔的 inode。 似捷徑。
hard link 再找一個空 inode 連到原 block。 有副本。
# cp anaconda-ks.cfg anaconda-ks.cfg_bk
# ln -s anaconda-ks.cfg_bk SoftLink.cfg
# ls -l
-rw-------. 1 root root 1263 11月 13 14:13 anaconda-ks.cfg_bk
lrwxrwxrwx. 1 root root 18 11月 13 14:14 SoftLink.cfg -> anaconda-ks.cfg_bk
# rm -f anaconda-ks.cfg_bk
lrwxrwxrwx. 1 root root 18 11月 13 14:14 SoftLink.cfg -> anaconda-ks.cfg_bk
出現錯誤
# link anaconda-ks.cfg_bk HardLink.cfg
# ls -l
# rm -f anaconda-ks.cfg_bk
# ls -l
-rw-------. 1 root root 1263 11月 13 13:59 HardLink.cfg
沒出現錯誤
建立 hard link 的 inode 仍連結到原 anaconda-ks.cfg_bk 所在的 block
3. mount 將一磁區 inode、block 給一個目錄使用
//分割區使用狀況及掛載狀態
# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 1.9G
0 1.9G 0% /dev
tmpfs 1.9G
0 1.9G 0% /dev/shm
tmpfs 1.9G 9.0M
1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 1.7G
16G 10% /
/dev/sda1 976M 184M 726M 21%
/boot
tmpfs 376M 0 376M 0% /run/user/0
目錄獨立分開,即使爆了不會影響其他目錄。 /var/log
//磁區。LVM 可動態調整的 partition
# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc2c9c20c
所用裝置 可開機 Start 結束 磁區 Size Id 類型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM
# du -h /var/log
0 /var/log/private
8.0K /var/log/sssd
8.0K /var/log/tuned
152K /var/log/audit
3.1M /var/log/anaconda
3.4M /var/log
------------------------------檔案系統權限
Owner
Group
Other
r 100 4
w 010 2
x 001 1
每一個檔案均有一個 Owner,僅有 root 與 owner 可以更改檔案存取保護模式 --> chmod
只有 root 可以更改檔案的 Owner 與 Group -->chown
# ls -l /etc/shadow
----------. 1 root root 654 11月 11 10:24 /etc/shadow
//全關,只有 root 可以改
# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 33600 4月 7 2020 /usr/bin/passwd
密碼在系統檔中,本應只有 root 可以改
為了方便使用者可以自行設定密碼,所以改由使用者執行
即暫時將使用者身分提升至 root,完成工作後再自動降回使用者身分
但若故意將密碼設的太長造成溢位,無法完成設定密碼工作,就會一直在 root 身分
------------------------------打包、壓縮、解壓縮
# dnf install tar
//c:打包 v:顯示運作過程 f:指定檔案名稱 z:壓縮
# tar cvfz test.tar.gz anaconda-ks.cfg1 anaconda-ks.cfg2 anaconda-ks.cfg3
# ls
anaconda-ks.cfg2 test.tar.gz
anaconda-ks.cfg1 anaconda-ks.cfg3
# mkdir test
# mv test.tar.gz test
# cd ./test
//x:解開 tar
# tar xvfz test.tar.gz
# ls
------------------------------
參照舊資料,綜合應用
------------------------------
HostOS:
windows10 192.168.2.100 MAC Address 24-4B-FE-E8-E6-06
GuestOS:
CentOS8.2 192.168.2.103
------------------------------------------------------------ Windows10 企業版,無法 ping
Windows 系統 --> 控制台 --> Windows Defender 防火牆 --> 進階設定 --> 輸入規則 -->
檔案及印表機共用 (回應要求 - ICMPv4-In) - 私人 --> 右鍵 -->啟用規則
# ping 172.31.145.100
PING 172.31.145.100 (172.31.145.100) 56(84) bytes of data.
64 bytes from 172.31.145.100: icmp_seq=1 ttl=128 time=0.513 ms
------------------------------------------------------------ 網卡
# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1eb5087f-ef0a-4aa0-8aef-bd99188bcca5"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="172.31.145.99"
PREFIX="24"
GATEWAY="172.31.145.254"
DNS1="163.28.136.14"
IPV6_PRIVACY="no"
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:77:e4:bc brd ff:ff:ff:ff:ff:ff //下圖3裝置
inet 172.31.145.99/24 brd 172.31.145.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::121b:84d9:9429:5d4c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:77:e4:bc brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
10126889 10294 0 0 0 0
TX: bytes packets errors dropped carrier collsns
266250 2270 0 0 0 0
# ip link set ens33 up //啟用網路介面卡 up:開 down:關
# man nmcli
# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已連線 ens33
# nmcli device connect ens33 //啟用網卡 停用網卡:disconnect
//先進行 PieTTY 設定:選項 --> 亞洲語系修正 --> Unicode 亞洲寬符號字元 (取消)
------------------------------------------------------------ 路由