文章目錄
這裏是一段防爬蟲文本,請讀者忽略。
本文原創首發於CSDN,作者IDYS
博客首頁:https://blog.csdn.net/weixin_41633902/
本文鏈接:https://blog.csdn.net/weixin_41633902/article/details/105678252
- Linux的文件系統
首先我們來了解兩個Linux的標準規範
- LSB
LSB: Linux Standard Base (Linux標準規範)是一個在Linux基金會結構下對Linux發行版的聯合項目,其目標使Linux操作系統符合軟件系統架構,或文件系統架構標準的規範及標準 —— 簡單點說就是定義Linux文件系統架構規範的一個標準
- FHS
FHS:Filessystem Heirache Standard(文件系統層次結構標準)定義Linux操作系統中的主要目錄及目錄內容。
- 根文件系統
下面內容主要講解linux根文件系統(linux root filesystem)下的目錄結構
- linux根文件系統下的主要目錄有
/etc,/usr,/var,/root,/home,/dev
# 查看linux根目錄下內容的命令
ls /
- 查看結果如下:
[root@dayuanshuai ~]# ls /
bin dev home lib lost+found mnt proc sbin srv tmp usr
boot etc img lib64 media opt root selinux sys usb var
- 對根文件系統下目錄的概述:
/boot
引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放於此目錄
/bin
供所有用戶使用的基本命令:不能關聯至獨立分區,OS啓動即會用到的程序
/sbin
管理類的基本命令:不能關聯至獨立分區,OS啓動即會用到的程序
/lib
基本共享庫文件,以及內核模塊文件(lib/modules)
/lib64
專用於x86_64系統上的輔助共享庫文件存放位置
/etc
配置文件目錄(存放的配置文件都爲純文本文件)
-
/etc/opt
- 存放 /opt 目錄下的配置文件
-
/etc/X11
- 存放 X Windows 系統的配置文件
-
/etc/passwd
- 存放系統用戶信息文件
-
/etc/passwd
- 存放磁盤掛載信息文件
/home
普通用戶的家目錄,當使用useradd創建用戶時,默認會在/home下創建一個與用戶同名的文件夾,同時會複製 /etc/skel/ 下的文件到該目錄下
在CentOS中,當創建新用戶時,默認會將/etc/skel下的隱藏文件全部複製到該用戶的家目錄下。所以在你創建用戶時,你會在該用戶的家目錄下發現一些隱藏文件。
# 查看隱藏文件的命令
ls -a
/root
管理員的家目錄
- 普通用戶實現root權限的方法
-
對/etc/sudoers文件,進行配置。實現對用戶的授權
-
執行sudo命令,然後輸入該用戶自己的密碼
/media
掛載便捷式移動設備的目錄
-
當我們需要掛載一些移動設備時
比如需要掛載光驅設備時,我們可以創建/media/cdrom文件夾,然後將光驅設備掛載到該文件夾上。同樣的,掛載usb設備時,創建 /media/usb文件夾,然後掛載
# 掛載光驅設備,請注意,使用該命令之前,請確定光驅已經插入
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
/mnt
臨時文件系統的掛載點
/dev
設備文件及特殊文件存放目錄
-
b:block device 塊設備(隨機訪問設備)
-
c:character device 字符設備(線性訪問設備)
/opt
第三方應用程序的安裝位置
/srv
系統上允許的服務用到的數據
/tmp
臨時文件存放位置
/usr
usr並不是代表user的意思,它的全名是Unix System Resource 即Unix系統資源,它是系統幫助文檔以及源碼包安裝的位置。universal shared,read-only data 全局共享只讀數據:(一般來說安裝完系統後佔用磁盤空間最大目錄)
-
/usr/bin
-
/usr/sbin
-
/usr/lib
-
/usr/include
- C程序的頭文件(header files)
-
/usr/share:結構化的獨立的數據
-
/usr/local:第三方應用程序的安裝位置,在此目錄下又有以下這些目錄
- bin,sbin,lib,lib64,etc,share
/var
存放可變數據文件(variable data files),此目錄下的子目錄有
-
cache:應用程序緩存數據目錄
-
lib:應用程序狀態信息
-
local:專用於爲/usr/local 下的應用程序存儲可變數據
-
lock:鎖文件
-
log:日誌目錄及文件
-
opt:專用於爲/opt下的應用程序存儲可變數據
-
run:運行中的進程相關的數據,通常用於存儲進程PID文件
-
spool:應用程序數據池
-
tmp:保存系統兩次重啓之間產生的臨時數據
-
mail:用戶郵箱文件
/proc
用於輸出內核與進程信息相關的虛擬文件系統
/sys
用於輸出當前系統上硬件設備相關信息的虛擬文件系統
/lost+found
Linux上ext文件系統格式化後默認產生的路徑
/selinux
security enhanced Linux,selinux相關的安全策略等信息的存儲位置
- Linux上的應用程序的組成部分
二進制程序
/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
庫文件
/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
配置文件
/etc,/etc/DIRECTORY,/usr/local/etc
幫助文件
/usr/share/man,/usr/share/doc,/usr/local/share/man,/usr/local/share/doc
- Linux下的文件類型
-
- (f):普通文件
-
d:目錄文件
-
b:塊設備文件
-
c:字符設備文件
-
l:符號鏈接文件(軟連接)
-
p:管道文件:fist in,fist out
-
s:套接字文件:socket
- Linux下基本的系統管理類命令
- 關機或重啓命令
-
halt,poweroff 關機
-
reboot 重啓
- -f:強制,不調用shutdown
- -p:切斷電源
-
shutdown:
- shutdown [OPTION] … TIME [MESSAGE]
- -r:reboot(重啓)
- -h:halt(關機)
- -c:cancel(取消)
- TIME:
- now 立刻
- +m:相對時間表示法,從命令提交開始多久之後:例如 +3
- hh:mm:絕對時間表示,指明具體時間
#linux下shutdown命令演示
shutdown -r now # 立即重啓
shutdown -h now # 立即關機
shutdown -h +5 "shutdown in 5 minutes" # 五分鐘後關機,並向所有的登錄用戶發送"shutdown in 5 minutes"信息
- 用戶信息查看命令
- whoami:顯示當前登錄有效用戶
[root@dayuanshuai local]# whoami
root
- who:系統當前所有的登錄會話
[root@dayuanshuai local]# who
root tty1 2020-03-27 22:28
root pts/2 2020-03-31 10:03 (192.168.200.1)
- w:系統當前所有的登錄會話及所做的操作
[root@dayuanshuai local]# w
12:49:59 up 2 days, 23:51, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Fri22 22:51m 0.07s 0.07s -bash
root pts/2 192.168.200.1 10:03 0.00s 0.24s 0.10s w
Others
- Macos(unix)資源回收能力好,節省電源,幾年不關機都沒事。然而Microsoft的系統資源回收能力弱,用幾天就必須重啓。
- bash基礎特性及基礎命令
- bash的基礎特性
命令歷史
-
history
- 環境變量:
- HISTSIZE:命令歷史記錄
- HISTFILE:~/.bash_history
- HISTFILESIZE:命令歷史文件記錄歷史的條數
- 環境變量:
-
history -d OFFSET 刪除某天曆史命令,OFFSET代表偏移位
[dayuanshuai@dayuanshuai ~]$ history
..... # 前面的命令歷史就不一一例舉了
641 ls -al /etc
642 ls -al /etc | wc -l
643 find /etc/ | grep "^/etc/[^/]*$" | wc -l
644 find /etc/ | grep "^/etc/[^/]*$"
645 ls
646 exit
647 history
[dayuanshuai@dayuanshuai ~]$ history -d 645 #刪除第645條命令歷史,也就是ls命令
[dayuanshuai@dayuanshuai ~]$ history
....
641 ls -al /etc
642 ls -al /etc | wc -l
643 find /etc/ | grep "^/etc/[^/]*$" | wc -l
644 find /etc/ | grep "^/etc/[^/]*$"
645 exit
646 history
647 history -d 645
648 history
# 可以看到ls命令歷史被刪除了
- history -c 清空緩存中的歷史命令
[xiao@dayuanshuai ~]$ history
.... #前面的歷史省略
19 rm a
20 ls
21 exit
22 ls
23 pwd
24 exit
25 ls
26 whoami
27 history
[xiao@dayuanshuai ~]$ history -c
[xiao@dayuanshuai ~]$ history #使用history -c 命令後再來查看,發現緩存中的歷史命令均已經刪除
1 history
- history #:顯示歷史中最近的#條命令
[xiao@dayuanshuai ~]$ history
1 history
2 whoami
3 ps
4 top
5 wc -l /etc/passwd
6 history
[xiao@dayuanshuai ~]$ history 3 #查看最近三條命令
5 wc -l /etc/passwd
6 history
7 history 3
- -a:手動追加 —— 將緩存區中的歷史命令手動追加到
~/.bash_history
中
[xiao@dayuanshuai ~]$ history
1 history
2 whoami
3 ps
4 top
5 wc -l /etc/passwd
6 history
7 history 3
8 ls -al
9 history
[xiao@dayuanshuai ~]$ history -a
[xiao@dayuanshuai ~]$ cat ~/.bash_history #這個時候查看你就會發現命令已經被追加至~/.bash_history
- 調用歷史中的命令:
-
!#重複執行第#條命令
-
!!:執行上一條命令
-
!string:最近一條以string開頭的命令
-
[xiao@dayuanshuai ~]$ history
.... # 前面命令省略
52 whoami
53 exit
54 cat ~/.bash_history
55 history -a
56 cat ~/.bash_history
57 ps
58 ls
59 history
60 history -a
61 cat ~/.bash_history
62 history
63 history -a
64 history
[xiao@dayuanshuai ~]$ !58 #可以看到已經執行第58條命令 ls
ls
- 調用上一條命令的最後一個參數
- !$
- ESC,.
- Alt + .
[xiao@dayuanshuai ~]$ touch call.txt
[xiao@dayuanshuai ~]$ echo "call " > !$ #通過 !# 調用 上一條命令的最後一個參數(call.txt)
echo "call " > call.txt
[xiao@dayuanshuai ~]$ cat call.txt #可以看到call已經被添加進去了
call
先按 ESC 然後再按 . 就會出現上一條命令的最後一個參數,比如:
先執行 touch ABC.TXT
後在鍵盤上進入 echo “call” > ESC .
就會顯示 echo “call” > ABC.TXT的結果
-
控制命令歷史的記錄方式
設置環境變量:HISTCONTROL 來選擇命令歷史的記錄方式,其參數分別有下列三種
- ignoredups:忽略重複的命令:連續且相同方爲“重複”
- ignorespace:忽略所有以空白開頭的命令
- ignoreboth:ignoredups,ignorespace 也就是前面兩種方式的合
[xiao@dayuanshuai ~]$ echo $HISTCONTROL
ignoredups
[xiao@dayuanshuai ~]$ history
90 whoami
91 whoami
92 history
93 whoami
94 history
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ history #可以看到連續輸入了四次ls,但是緩存中的命令歷史只記錄一次ls命令
91 whoami
92 history
93 whoami
94 history
95 ls
96 history
[xiao@dayuanshuai ~]$ HISTCONTROL=ignorespace
[xiao@dayuanshuai ~]$ echo $HISTCONTROL
ignorespace
[xiao@dayuanshuai ~]$ w
15:10:31 up 3 days, 2:11, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Fri22 25:12m 0.07s 0.07s -bash
root pts/0 192.168.200.1 13:07 0.00s 0.13s 0.00s w
[xiao@dayuanshuai ~]$ history #因爲w前面加入了空格,所以並沒有加入命令歷史
97 HISTCONTROL=ignorespace
98 echo $HISTCONTROL
99 ls
100 whoami
101 history
-
修改環境變量的方式:export 變量名=“值”
- 變量賦值:把賦值符號後面的數據存儲於變量名指向的內存空間
說明:export 方式修改變量的值只對當前的shell及其子shell起作用。換個終端開啓另外一個shell之後就不起作用了。
命令補全
- bash執行命令:
- 內部命令:bash內置的命令有cd、set、umask等,查看一個命令的類型可以通過type查看
[xiao@dayuanshuai ~]$ type cd
cd is a shell builtin
- 外部命令:bash根據PATH環境變量定義的路徑,自左向右在每個路徑搜尋以給定命令名命名的文件,第一次找到的命令即爲要執行的命令
-
直接補全:Tab,用戶給定的字符串只有一條唯一對應的命令,如果以用戶給定的字符串爲開頭的命令不唯一,則再次按Tab鍵會給出列表
- 路徑補全:把用戶給出的字符串當作路徑開頭,並在其指定的上級目錄下搜索以指定的字符串開頭的文件名
- 如果唯一:則直接補全- 如果不唯一:再次按Tab鍵,給出列表
[xiao@dayuanshuai ~]$ ls /etc/sys #路徑補全的例子 sysconfig/ sysctl.d/ system-release-cpe sysctl.conf system-release
-
命令行展開
- ~:展開爲用戶的主目錄
- ~USERNAME:展開爲指定用戶的主目錄
- ~:展開爲用戶的主目錄
- 路徑補全:把用戶給出的字符串當作路徑開頭,並在其指定的上級目錄下搜索以指定的字符串開頭的文件名
-
{}可承載一個以逗號分隔的列表,並將其展開爲多個路徑
[xiao@dayuanshuai ~]$ ls
[xiao@dayuanshuai ~]$ touch file{1..4}.txt
[xiao@dayuanshuai ~]$ ls
file1.txt file2.txt file3.txt file4.txt
-
命令的執行結果狀態
成功
失敗
bash使用特殊變量$?保存一條命令的執行狀態結果:
0:成功
1-255:失敗
[xiao@dayuanshuai ~]$ echo $?
0
[xiao@dayuanshuai ~]$ sdfsadf
-bash: sdfsadf: command not found
[xiao@dayuanshuai ~]$ echo $? #通過echo $? 即可查看上一條命令的執行是否成功
127
- 目錄管理、操作類命令
- cd、pwd、ls
- mkdir,rmdir
- mkdir /etc/a/b/c/d;mkdir [OPTIONS] /path/to/somethere
- 對於mkdir 來說目錄和文件是一類東西,是不可以重名的。所以在Linux的同一目錄下目錄名和文件名不能重名
- - p 創建目錄,如果重名不會報錯,同時可以遞歸創建目錄
- -v 可以顯示目錄的創建詳細過程
- - m MORE:創建目錄時直接指定權限
[xiao@dayuanshuai ~]$ mkdir file
[xiao@dayuanshuai ~]$ touch file
[xiao@dayuanshuai ~]$ ls -l #可以看到,我們創建了一個名叫file的目錄,之後又創建一個file的文件,最後顯示目錄下只有一個名爲file的目錄 —— 因爲同一目錄下目錄名和文件名不能重名
總用量 4
drwxrwxr-x. 2 xiao xiao 4096 3月 31 15:39 file
[xiao@dayuanshuai ~]$ mkdir -m 644 dire #創建一個目錄,其權限爲644
[xiao@dayuanshuai ~]$ ls -ld dire #查看該目錄權限,發現該目錄權限即爲644
drw-r--r--. 2 xiao xiao 4096 3月 31 15:46 dire
- rmdir 刪除空目錄
- rmdir [OPTION]… [DIRECTORY]
- -p 遞歸刪除空目錄
- tree 顯示樹狀文件結構
- -d 僅顯示目錄
- -L 顯示樹狀結構可達到的層級
[root@dayuanshuai ~]# tree -d -L 2 /home/ #查看/home目錄下的目錄,層級爲2層
/home/
├── dayuanshuai
│ ├── day04
│ ├── day1
│ ├── day2
│ ├── day3
│ └── day4
└── xiao
├── dire
└── file
9 directories
- 文件查看類命令
cat,tac,more,less,tail,head
- more [OPTION] FILE…
- -d:顯示翻頁及退出提示
- -num 一次顯示的行數
- +num 從第num行開始顯示
[root@dayuanshuai tmp]# ls -l /etc | grep --color "^-" | sort -n -t' ' -k 6 #將/etc/目錄下的文件按大小進行分類
-rw-r-----. 1 root root 3181 6月 7 2017 sudo-ldap.conf
-r-xr-----. 1 root root 3756 3月 29 16:56 sudoers
-rw-r--r--. 1 root root 4113 11月 29 2017 DIR_COLORS.lightbgcolor
-rw-r--r--. 1 root root 4439 11月 29 2017 DIR_COLORS
-rw-r--r--. 1 root root 4940 3月 22 2017 man.config
-rw-r--r--. 1 root root 5139 11月 29 2017 DIR_COLORS.256color
-rw-r--r--. 1 root root 6455 1月 12 2010 protocols
-rw-r--r--. 1 root root 8120 8月 31 2019 kdump.conf
-rw-r--r--. 1 root root 12288 8月 31 2019 aliases.db
-rw-r--r--. 1 root root 26168 9月 16 2019 ld.so.cache
-rw-r--r--. 1 root root 641020 3月 22 2017 services
#現在我們知道該目錄佔用磁盤空間最大的文件是services文件
[root@dayuanshuai tmp]# more -5 /etc/services #一次顯示五行
# 進入文件視圖模式之後的基本操作
空格 翻頁
enter 默認向下翻一行
3 enter 向下翻3行
b 向上翻1頁
-
less
- less [OPTIONS…] FILE…
[root@dayuanshuai tmp]# less /etc/services
#進入文件視圖界面下的基本操作 —— 不需要記住太多,記太多你記不住。同時頁掌握不牢靠。夠用就行。
空格 向下翻一頁
b 向上翻一頁
d 向屏幕下方移動半屏
u 向屏幕上方移動半屏
G 移動到最後一行
g 移動到第一行
q 退出
170g 移動到第170行
/STRING 在文本中向下查找字符串
?STRING 在文本中向上查找字符串
n 正向重複前一個搜索
N 反向重複前一個搜索
[root@dayuanshuai tmp]# less -N /etc/services #進入文件視圖模式時,顯示其行號
- head
- head [OPTION]… [FILE]…
- -c #:獲取前#字節
- -n #:指定獲取前#行
- head [OPTION]… [FILE]…
[root@dayuanshuai tmp]# head -10 /etc/services 顯示該文件的前十行
- tail
- tail [OPTION]… [FILE]…
- -c #:指定獲取後#字節
- -n #:指定獲取後#行
- -#:指定獲取後#行
- -f:跟蹤顯示文件新追加的內容
[root@dayuanshuai tmp]# tail -5 /etc/services #顯示文件最後5行
blp5 48129/udp # Bloomberg locator
com-bardac-dw 48556/tcp # com-bardac-dw
com-bardac-dw 48556/udp # com-bardac-dw
iqobject 48619/tcp # iqobject
iqobject 48619/udp # iqobject
- 文件的時間戳管理工具
- touch
- 文件:metadata,data
- 查看文件狀態:stat
- 三個時間戳:
- access time:訪問時間,簡寫atime
- modify time:修改時間,mtime
- change time:改變時間,ctime
- touch命令
- touch [OPTION]… FILE…
- -a:only atime(修改了atime也修改了ctime)
- -m:only mtime(修改了mtime也修改了ctime)
- -t STAMP:
- [[CC]YY]MMDDhhmm[.ss]
- -c:如果文件不存在,則不予創建
- touch -r a b 將b的時間戳更新爲和a一樣的時間戳
- touch [OPTION]… FILE…
[xiao@dayuanshuai ~]$ stat a.txt #查看文件狀態信息
File: "a.txt"
Size: 2 Blocks: 8 IO Block: 4096 普通文件
Device: 803h/2051d Inode: 261693 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 501/ xiao) Gid: ( 501/ xiao)
Access: 2020-03-31 17:27:29.602775058 +0800
Modify: 2020-03-31 17:27:29.602775058 +0800
Change: 2020-03-31 17:27:29.602775058 +0800
[xiao@dayuanshuai ~]$ touch -a -t 200011121223.30 a.txt #修改文件的訪問信息
[xiao@dayuanshuai ~]$ stat a.txt #再次查看發現,文件訪問時間已經變成我們設置的時間
File: "a.txt"
Size: 2 Blocks: 8 IO Block: 4096 普通文件
Device: 803h/2051d Inode: 261693 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 501/ xiao) Gid: ( 501/ xiao)
Access: 2000-11-12 12:23:30.000000000 +0800
Modify: 2020-03-31 17:27:29.602775058 +0800
Change: 2020-03-31 17:28:27.296778801 +0800
[xiao@dayuanshuai ~]$ touch -r a.txt b.txtt #將b.txt的時間戳更新爲和a.txt一樣
[xiao@dayuanshuai ~]$ stat b.txtt
File: "b.txtt"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: 803h/2051d Inode: 261694 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 501/ xiao) Gid: ( 501/ xiao)
Access: 2000-11-12 12:23:30.000000000 +0800
Modify: 2020-03-31 17:34:33.034770458 +0800
Change: 2020-03-31 17:35:41.047772633 +0800
- 練習
- 創建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b
[root@dayuanshuai ~]# mkdir -p /tmp/x/{y1,y2}/{a,b}
[root@dayuanshuai tmp]# tree -d -L 2 /tmp/x/
/tmp/x/
├── y1
│ ├── a
│ └── b
└── y2
├── a
└── b
6 directories
- 如何創建x_m,y_m,x_n,y_n
[xiao@dayuanshuai ~]$ mkdir {x,y}_{m,n}
[xiao@dayuanshuai ~]$ ls
x_m x_n y_m y_n
- 如何創建/tmp/bin,/tmp/sbin,/tmp/usr,/tmp/usr/bin,/tmp/usr/sbin
[xiao@dayuanshuai tmp]$ mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}
[root@dayuanshuai tmp]# tree -d /tmp/ #可以看到創建成功
/tmp/
├── bin
├── sbin
└── usr
├── bin
└── sbin
5 directories
- 擴展
執行history命令查看歷史命令時,讓其顯示時間
- 方法一:臨時生效
[xiao@dayuanshuai ~]$ HISTTIMEFORMAT='%F %T' #複製變量
[xiao@dayuanshuai ~]$ history #查看命令
185 2020-03-31 17:35:41touch -r a.txt b.txtt
186 2020-03-31 17:35:46stat b.txtt
187 2020-03-31 17:36:58stat a.txt
188 2020-03-31 17:37:04touch c.txt
189 2020-03-31 17:37:19stat c.txt
190 2020-03-31 17:37:32touch -r a.txt c.txt
191 2020-03-31 17:37:35stat c.txt
192 2020-03-31 17:37:39stat a.txt
193* 2020-03-31 17:42:34unset HISTT
194 2020-03-31 17:42:39history
195 2020-03-31 17:43:39unset HISTTIMEFORMAT
196 2020-03-31 17:43:43history
197 2020-03-31 17:49:32HISTTIMEFORMAT='%F %T'
198 2020-03-31 17:49:38history
199 2020-03-31 17:50:26history
# 現在可以看到命令前面的均有時間戳了
[xiao@dayuanshuai ~]$ unset HISTTIMEFORMAT #取消命令前的時間戳
- 方法二:永久生效
編輯 ~/.bashrc文件
在文件末尾加入 export HISTTIMEFORMAT=’%F %T’
執行 source ~/.bashrc ,即可永久生效
- 取消命令前顯示時間戳的方法
- unset HISTTIMEFORMAT
- 編輯 ~/.bashrc文件
- 刪除export HISTTIMEFORMAT=’%F %T’
- 寫在最後的話:
- 無論每個知識點的難易程度如何,我都會盡力將它描繪得足夠細緻
- 歡迎關注我的CSDN博客,IDYS’BLOG
- 持續更新內容:運維 | 網工 | 軟件技巧
- 對於我文章的不足之處,歡迎您能批評指正!謝謝!
- 如果你有什麼疑問,或者是難題。歡迎評論或者私信我。你若留言,我必回覆!
- 雖然我現在還很渺小,但我會做好每一篇內容。謝謝關注!