內容選單標籤

2020年11月7日 星期六

CentOS8


此篇已經重新謄錄完成!!

可以作廢。


------------------------------

            以下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

# ls -al /sys




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
# ls -l
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"


# man ip

# ip addr
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




# man nmtui
# nmtui

//先進行 PieTTY 設定:選項 --> 亞洲語系修正 --> Unicode 亞洲寬符號字元 (取消)











------------------------------------------------------------ 路由