# 第一周: ## 安裝虛擬機: ### 到ftp.iij.ad.jp下載 CentOS-7-x86_64-LiveKDE-1810.iso。 ![](https://i.imgur.com/2YrnHYe.png) ## 下載好之後,到VirtualBox的網站下載最新版本的安裝包及擴展包,如果是Winodws就把該圖有打勾的2個部分都下載 ![](https://i.imgur.com/XMfqO10.jpg) ### 安裝好之後,點到介面內的新增,並跟著圖標進行動作,持續點選Next ![](https://i.imgur.com/EkgMNs2.png) ### 這邊的步驟為: ### extension pack (File->Tools->Extension Pack Manager) ![](https://i.imgur.com/tZoJQ5u.jpg) ### 後續啟動虛擬機,並點選 CentOS 桌面左下角的開始圖標(application),開始進行 Install。 ![](https://i.imgur.com/SH4LeGP.png) ### 在安裝過程中,管理員的密碼要設定成centos。 ### 這邊的步驟為: ### 使用者的名稱、密碼要設定成 user ![](https://i.imgur.com/5VXkZCW.png) ### 都安裝好後,再從 VirtualBox 裡面移除原本的光碟檔,再次重新登入,確認是否設定成功。 ### windows: ipconfig linux:ifconfig,可以看到ip位址 ![](https://i.imgur.com/2l89cN0.jpg) ### VMWARE和virtual box在NAT上會有所不同 ![](https://i.imgur.com/L65vLiU.jpg) ### 課程其他資源: https://www.bilibili.com/video/BV1U14y1G7UJ?p=1&vd_source=f74a220251f63c0d2381f8c51b2cbdee https://www.bilibili.com/video/BV1Ug411k71N/?spm_id_from=333.999.0.0&vd_source=f74a220251f63c0d2381f8c51b2cbdee https://hackmd.io/@jenny126/CentOS7/%2F2vZs_D8GRv29KdIQiiv95g https://www.bilibili.com/video/BV1z54y1z7yN/?spm_id_from=333.337.search-card.all.click&vd_source=f74a220251f63c0d2381f8c51b2cbdee # 第二周: ## VirtualBox中 Window是無法看到裡面的,會在VirtualBox中 Window多設定一張網路卡,設定host only模式,主要是為了在host下可以與VM進行通訊 ![](https://hackmd.io/_uploads/HyhDCUeD3.png) ## 設定NAT流程: ### 到CentOS 在 VirtualBox 下方的網路卡設定,在介面卡1設定``NAT網路卡``,而在介面卡2設定僅```限主機介面卡```,然後點選VirtualBox Host-Only Ethernet Adapter。如果找不到此介面卡,就要到檔案-->工具-->Network Manager自己去做增加等動作,新增時要勾選DHCP Server。 ## 終端機指令: ### #是超級使用者的提示符號。 ### $是一般使用者的提示符號。 ### cd指令代表change directory ### cd ~指令可以回到主文件夾。 ### cd -指令可以回到上一次路徑。 ### ~符號代表主文件夾。例如在 Windows 底下,user的家目錄為 C:\Users\。 ### pwd指令代表print work directory,用於將當前工作目錄的完整路徑輸出到標準輸出 ### clear指令可以清除終端機畫面的內容。 ### kill -9 [pid]指令可以移除背景處理程序。 ### echo $? 指令可以顯示上一個命令的執行結果,這個狀態碼是一個整數,通常是0表示成功,非零值表示錯誤。 ### sudo指令可以在執行階段切換成管理者 ### ifconfig指令等於 Windows 底下的ipconfig。 ![](https://i.imgur.com/aqhyEai.jpg) ![](https://i.imgur.com/oN65fND.jpg) ![](https://i.imgur.com/MTMtumd.jpg) ![](https://i.imgur.com/ENtg3IN.jpg) ### 如果顯示ifconfig: command not found的錯誤,就輸入sudo yum install net-tools來進行安裝。之所以使用yum是因為在 CentOS 底下沒有apt。 ## 關閉防火牆: ### 1.輸入 su 進入超級使用者。 ### 2.輸入 sudo yum install gedit 安裝 gedit 套件。 ### 3.close selinux (gedit /etc/selinux/config) ### save -> close -> reboot ### 4.輸入 getenforce 進行確認。 ### 5.輸入 systemctl stop firewalld 停止防火牆,用於保護電腦免受潛在的網絡攻擊。 ### 6.輸入 systemctl disable firewalld 關閉防火牆,關閉後會禁止它在系統啟動時自動啟動。 ### 7.輸入 systemctl status firewalld 檢查防火牆,可以檢查firewalld服務是否正在運行以及是否出現任何錯誤。 ![](https://i.imgur.com/Y5zPLxy.jpg) ![](https://i.imgur.com/KfbCi7c.png) ![](https://i.imgur.com/fBpdxYs.png) ![](https://i.imgur.com/J9jxRxw.png) ![](https://i.imgur.com/ncuySe6.png) ## 和遠端進行登入操作: ### 1.輸入 sudo yum install openssh-server -y 安裝套件。 ### 2.輸入 systemctl start sshd 此指令是啟動 OpenSSH 伺服器(sshd)服務,OpenSSH 是一個用於安全遠程登錄和文件傳輸的套件 ### 3.輸入 systemctl status sshd 檢查伺服器,會顯示SSH服務(sshd)的當前狀態和相關信息。 ![](https://i.imgur.com/PtX7XK1.png) ## ssh server install: yum install openssh-server -y ## 下載 PuTTY: https://www.putty.org/ ## 下載 WinSCP: https://winscp.net/eng/download.php ### 在 PuTTY 下輸入 CentOS 對外主機的 IP 位址,然後點Open就可以進行登入再操作 ![](https://i.imgur.com/Rbt2oT9.png) ### 在 WinSCP 下輸入 CentOS 對外主機的 IP 位址,然後點登入,登入後就可以進行檔案傳輸。 ![](https://i.imgur.com/7iRx9qI.png) ## 網頁伺服器流程: ### 1.輸入 sudo yum install httpd -y 安裝套件。 ### 2.輸入 systemctl start httpd 啟動伺服器。 ### 3.輸入 systemctl status httpd 檢查伺服器。 ### 4.輸入 cd /var/www/html 前往該資料夾。 ### 5.輸入 echo "hi" > hi.htm 寫入檔案。 ### 6.回到本機瀏覽器。 ### 7.輸入 虛擬機 IP 位址 + 檔案名 來進行確認。 ![](https://i.imgur.com/IlwXxIS.png) ![](https://i.imgur.com/SWqsYKx.png) ## 參考連結: https://www.putty.org/ https://winscp.net/eng/download.php ### 最後顯示結果: ![](https://i.imgur.com/l8TUhrK.png) # 第三週: ### 架設網站IPv6 ### 設定網路卡介面: ### 勾選並選擇Bridged Adapter ![](https://i.imgur.com/JdJaFHt.png) ![](https://i.imgur.com/jIYE7D0.png) ## 檢查防火牆的流程: ![](https://i.imgur.com/MiiUeTC.png) ## 啟動伺服器的流程: ![](https://i.imgur.com/vtbiCsX.png) ![](https://i.imgur.com/SV2DbBl.png) ## 架設ChatGPT機器人: https://mrmad.com.tw/chatgpt-line-robot-creation-teaching ![](https://i.imgur.com/vNqQE7l.png) ## C語言用gedit編寫,再使用gcc來去編譯 ![](https://i.imgur.com/y3gJKpl.png) # 第四週: ## 建立快照: ### 網址: https://quietbo.com/2021/07/04/virtualbox-%E9%82%84%E5%8E%9F%E4%B9%8B%E5%89%8D%E7%9A%84%E5%82%99%E4%BB%BD%E8%88%87%E9%82%84%E5%8E%9F%E6%96%B9%E5%BC%8F-%E5%BF%AB%E7%85%A7-%E5%BF%85%E5%AD%B8/ ## 安裝 Wget: ![](https://i.imgur.com/oWwpov9.png) ## 安裝 Conda操作流程: ### wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh ``` bash Miniconda3-latest-Linux-x86_64.sh press q enter yes press enter enter no /home/user/miniconda3/bin/conda config --set auto_activate_base false cd gedit .bashrc export PATH=$PATH:/home/user/miniconda3/bin restart konsole ``` ![](https://i.imgur.com/Mzud243.png) ![](https://i.imgur.com/9ODaxQf.png) ![](https://i.imgur.com/TIOsEqb.png) ![](https://i.imgur.com/zQIFdgN.png) ![](https://i.imgur.com/emJIO1O.png) ![](https://i.imgur.com/NQnOMHq.png) ![](https://i.imgur.com/ZsgDJfO.png) ![](https://i.imgur.com/RQSbJQk.png) ![](https://i.imgur.com/WRZ2dxh.png) ![](https://i.imgur.com/0SvSIXe.png) ![](https://i.imgur.com/lSRvedM.png) ![](https://i.imgur.com/TJVpbz4.png) ## 建立環境: ### 1.conda init 初始化命令 ### 2.conda create -n py310 python=3.10 安裝Python 3.10版本 ### 3.restart konsole ![](https://i.imgur.com/RSDwhlH.png) ![](https://i.imgur.com/bI4mmtE.png) ## 安裝FFmpeg流程: https://sysadminxpert.com/install-ffmpeg-on-centos-7/ ![](https://i.imgur.com/WapuYtA.png) ## 安裝VLC: ### yum install vlc ## 安裝 Whisper: ### 1.yum install git ### 2.conda activate py310 ### 3.pip install git+https://github.com/openai/whisper.git ### 4.pip install pytube ## 下載程式: ### 1.touch subtitle.py ### 2.gedit subtitle.py ### 3.copy from https://raw.githubusercontent.com/smallko/test-whisper/main/gen_sub.py ### 4.paste ## 執行程式: ### python subtitle.py ![](https://i.imgur.com/EfJAyvD.png) ## 放各種音頻和視頻格式: ### vlc ## 編輯字幕: ### gedit p4switch1.srt ### 教學影片: https://zhuanlan.zhihu.com/p/360889789?utm_id=0 ## 第一章: ## 1-3 自由軟體: ## 通用公共授權GPL: ### GPL要求軟體在重新散佈或修改時,必需提供原始程式碼 ## Apache軟體: ### 與GPL不同的點是允許再授權 ### 可以拿別人的來修改,修改後不需要再散佈出去 ## 1-4 國際認證: ### LPIC、RHCE、NCLP ## 第2章: ## 虛擬機器軟體: ### VMWare、VirtualBox、Hyper-V(Windows)、kvm(linux) ## 期中考考題: ### 在Linux系統必要的分割區有2個: ### 跟目錄[/]、swap 虛擬記憶體 ![](https://i.imgur.com/YnqeXPC.png) # 第五周: ## 期中考: ### Linux安裝時要有2個分割區: / (根目錄)、swap ### 一般使用者:$ ### 超級使用者:# ### Linux 管理者名稱: root ### Windows 管理者名稱: administrator ![](https://i.imgur.com/2IBPQ1S.png) ### 0.0.0.0代表任一介面的ip ### 快捷鍵: 連結: https://blog.csdn.net/qq_45083975/article/details/105274397 ![](https://i.imgur.com/jPiOTxt.png) ## clear(清除畫面內容) ## 常用指令: ### chmod (change mode) +x (excutable) ![](https://i.imgur.com/YJHI5U9.png) ### touch可以用來產生一個空白的檔案 ### dmesg | more: ### 可以分頁檢視dmesg的資訊 ![](https://i.imgur.com/Q0rjuqt.png) ### netstat: ### 用於顯示和分析網絡連接和網路統計信息的命令行工具 ![](https://i.imgur.com/W1t1e8k.png) ### uname: ### 用於顯示系統的相關信息 ![](https://i.imgur.com/HOXcfAf.png) ### hostnamectl: ### 用於設置、顯示和修改主機名稱以及相關的設置。 ![](https://i.imgur.com/jd7cNHw.png) ### PS1: ![](https://i.imgur.com/9sLA4II.png) ### 參考連結: https://blog.gtwang.org/linux/how-to-make-a-fancy-and-useful-bash-prompt-in-linux-1/ ### echo pts: ![](https://i.imgur.com/m6V1BNX.png) ### fg: ### 在前景中執行工作 ![](https://i.imgur.com/F2LGi9P.png) ### ls: ### 用於列出目錄內的文件和子目錄。 ![](https://i.imgur.com/48FkHW7.png) ### 更新密碼: 連結: https://www.unixmen.com/reset-root-password-centos-7/ ![](https://i.imgur.com/FHBwF3A.jpg) ### 更改主機名稱: ![](https://i.imgur.com/rQg0qYc.jpg) ### Linux 裡面第一支被執行的應用程式 (pid(process id) = 1): ### (早期系統)old: init ### (新系統)new: systemd # 第6周: ## /lib ### 動態函式庫: lib 開頭, .so.* 結尾 ### 靜態函式庫: lib 開頭, .a 結尾 ## /mnt: ### 掛載設備的目標目錄 ![](https://i.imgur.com/O8PaUgm.png) ## 4-2 ### ls: ![](https://i.imgur.com/VrnRTqR.png) ![](https://i.imgur.com/4ZzDU7D.png) ### cd: ### 變更至其他目錄 ![](https://i.imgur.com/7nRuelC.png) ### 特殊目錄: ![](https://i.imgur.com/IMkyqpB.png) ### touch: ### 用於創建空白文件或者更新現有文件的時間戳記 ![](https://i.imgur.com/MJdYlBF.png) ![](https://i.imgur.com/5l2WHUr.png) ![](https://hackmd.io/_uploads/H1P_Rwevh.png) ![](https://i.imgur.com/Dl4nTwY.png) ![](https://i.imgur.com/eCOoS0r.png) ### pipe: ### 用於在命令行界面上將多個指令連接在一起,以實現更複雜的操作和功能 ![](https://i.imgur.com/bomsUI8.png) ### cat: ### 用於連接文件並打印它們的內容 ![](https://i.imgur.com/XDdSfRO.png) ![](https://i.imgur.com/uIMoZD3.png) ### 顯示前五行,挑最後三行並顯示出來 ![](https://i.imgur.com/NXbNKal.jpg) ### 2個大於是追加(append): ![](https://i.imgur.com/XHgGmmC.png) # 第9周: ## 1.Linux 每一個目錄下都有「. 」「.. 」目錄,其意義分別代表甚麼? ### Ans: .為目前目錄 、 ..為上一層目錄 ## 2.宇元(char)設備所用的符號是? ### Ans: c ## 3. 區场(block)設備所用的符號是? ### Ans: b ## 4. 只要顯示a.txt的最前面三行,可以使用甚麼指令? ### Ans: head -n 3 a.txt ## 5. Linux 為家目錄訂定了一個符號,其符號為? ### Ans: ~ ## 6.若要拷貝/abc目錄(包含目錄下的a. txt,b.txt)到/tmp目錄下,要使用甚麼指令? ### Ans: cp -r /abc /tmp ## 7.檔案權限中代表可讀、可寫、可執行的符號分別為何? ### Ans: r w x ## 8.根目錄下放置系統設定檔的目錄為? ### Ans: /etc ## 9.在Linux下,檔案a和檔案A指的是相同的檔案,對or 錯? ### Ans: 錯 ## 10. Linux的檔案系統最上層-根目錄,其代表符號為? ### Ans: / ## 11. Linux 具有最高權限的帳號為? ### Ans: root ## 12.一般使用者的命令提示符號為何? ### Ans: $ ## 13. 變動性與系統等待排隊處理的檔案,其目錄為? ### Ans: /var ## 14. 刪除空的目錄所使用的指令為何? ### Ans: rmdir ## 15. 一般讓Linux 系統啟動並運作最少需要幾個分割區?其分割區名稱為? ### Ans: 2 , / swap ## 16. Linux 提供的”虛擬主控台”的功能,利用鍵盤可以切換主控台,最多為幾個? ### Ans: 6 ## 17. 查詢 Linux 目前登入的使用者帳號資訊能翰入何種指令? ### Ans: W ## 18. 若要把a.sh檔案改名稱為b.sh,要使用甚麼指定? ### Ans: mv a.sh b.sh ## 19. 重新啟動指令為何? ### Ans: reboot /shutdown -r now ## 20. 關機並且關開電源指令可以使用? ### Ans: shutdown -h now / halt -p ## 21. 列出檔案清單的指令為何? ### Ans: ls ## 22.這學期我們所使用的Linux 發行套件叫作? ### Ans: centos ## 23. 管理者的命令提示符號為何? ### Ans: # ## 24. 建立新目錄的指令為何? ### Ans: mkdir ## 25. 若要把a. txt,b.txt合併成C. txt,請問指令為何? ### Ans: cat a.txt b.txt > c.txt # 第10周: ### 在Linux中link有分為2種,hard(硬連結) 、symbolic(符號連結) ,與Window的捷徑相似 ![](https://hackmd.io/_uploads/BJ5PJjVIn.png) ### windows下捷徑可以連結到任意的檔案或者是資料夾 ### 蘋果系統可能只有讀取的功能,但如果要寫入的話可能就會有問題,但如果採用EXFAT格式就可以進行可讀可寫的功能 ![](https://hackmd.io/_uploads/H1ux-s4Lh.png) ![](https://hackmd.io/_uploads/r1njbi4Ih.png) ## Ext3和Ext2的差別在於多一個日誌功能 ![](https://hackmd.io/_uploads/B1y-GoEL2.png) ![](https://hackmd.io/_uploads/ryLDGiNU2.png) ### block會影響到未來架設伺服器的選擇,如果是選擇文字類型,block可以設定較小點,而影片、圖片就可以選擇較大的block ![](https://hackmd.io/_uploads/H17iXiV8h.png) ## 5-1: ![](https://hackmd.io/_uploads/H1HeljN8n.png) ## 此指令可以查看檔案更進階的內容 ![](https://hackmd.io/_uploads/Sys-4iEL2.png) ## 檔案的特殊屬性 SUID/SGID/SBIT: https://dywang.csie.cyut.edu.tw/dywang/linuxsecurity/node39.html ## which 可以尋找執行檔所在的位置 ![](https://hackmd.io/_uploads/H1HQBoNUh.png) ## s = SUID 、t = SBIT ## r(可讀)=4、w(可寫)=3、x(可被執行)=1 ## ls -l /tmp -->查看tmp資料夾裡面所有的資料夾跟檔案的隱藏格式,但並不是資料夾本身 ## 此指令是查看資料夾屬性 ![](https://hackmd.io/_uploads/rkKdUiVIn.png) ## 使用者身分切換: ![](https://hackmd.io/_uploads/HkU1dsNL2.png) ## Access讀取最新時間、Modify內容變動 ## change time : 除了內容改變會變動外,屬性變動也會變更時間 ![](https://hackmd.io/_uploads/ryzvds4Un.png) ![](https://hackmd.io/_uploads/S19MYjEI2.png) ## 使用ntpdate 調整時區: ![](https://hackmd.io/_uploads/rycyKiVU2.png) ## slink(符號連結): ![](https://hackmd.io/_uploads/SkUuYs4L3.png) ## hlink(硬連結): ![](https://hackmd.io/_uploads/HJOoYsEU3.png) ![](https://hackmd.io/_uploads/S1kJ9jNL2.png) ## file可以知道檔案是甚麼類型的 ## dynamically linked(動態連結)執行時環境要有動態連結的函式庫在裡面 ## 靜態連結在編譯時會把函式庫的內容一起編譯到程式碼裡面,使程式碼變得更龐大,優點是執行時不用再進入函式庫 ![](https://hackmd.io/_uploads/rkCYcsNU2.png) ## 修改環境變數: ![](https://hackmd.io/_uploads/B1q3tiE8h.png) ## dd 想要產生較大的測試檔案: ![](https://hackmd.io/_uploads/rkCJ2iEU3.png) ## 可以顯示硬碟空間使用率: ![](https://hackmd.io/_uploads/BkLS3sE82.png) # 第11周: ## DU DF差別: ### DU是指考慮檔案、目錄的大小,DF是指磁碟分割區的情況 ![](https://hackmd.io/_uploads/rkpX9ddLh.png) ## du -h會顯示該單位 ![](https://hackmd.io/_uploads/HktBo_OL2.png) ## du -h -s 目前資料夾(包含子資料夾及下面所有檔案)累加最後的結果 ![](https://hackmd.io/_uploads/BkHlnO_I2.png) ## du -h -s /etc ect資料夾的檔案大小 ![](https://hackmd.io/_uploads/BJN9hO_U3.png) ## du -h --max-depth 1 可以知道該檔案大小 ![](https://hackmd.io/_uploads/BkmChO_I3.png) ![](https://hackmd.io/_uploads/SJx35T__U2.png) ## stdout(螢幕 標準輸出): ![](https://hackmd.io/_uploads/BykrRu_I2.png) ## stderr(標準錯誤流): ![](https://hackmd.io/_uploads/Hk8BktuLn.png) ![](https://hackmd.io/_uploads/SJROkY_I2.png) ![](https://hackmd.io/_uploads/HJYjyYO8n.png) ![](https://hackmd.io/_uploads/Skly3Jtd83.png) ![](https://hackmd.io/_uploads/SJMTJKOL2.png) ## hide ### 把正確的放在c.txt裡面,2>&1是指把錯誤的放在跟1相同位置,而1在c.txt,等於就是把錯誤放在c.txt,因此正確和錯誤的都會放在c.txt ![](https://hackmd.io/_uploads/SkxQet_Uh.png) ![](https://hackmd.io/_uploads/ByaRgK_Ln.png) ## 5-3 ![](https://hackmd.io/_uploads/rywGbtOUh.png) ## 放在管道右邊有個首要條件是可以從標準輸入讀取並處理 ![](https://hackmd.io/_uploads/ryr2ZYd82.png) ## pipe 可將前一個命令的輸出作為後一個命令的輸入 ![](https://hackmd.io/_uploads/rkTJfYuUn.png) ## xargs 可將標準輸入數據轉換為命令行參數的工具 ![](https://hackmd.io/_uploads/ryoPztuU3.png) ## 有名管道-->其中一個進程將數據寫入管道,而另一個進程則從管道中讀取該數據 ![](https://hackmd.io/_uploads/H11qGFdUh.png) ![](https://hackmd.io/_uploads/rybjGFdIh.png) ![](https://hackmd.io/_uploads/SkZ3fFuLh.png) ## 5-4: ![](https://hackmd.io/_uploads/By357KOL2.png) ## 搜尋方式: ![](https://hackmd.io/_uploads/Byg9QY_82.png) ![](https://hackmd.io/_uploads/BkKVZJK82.png) ## updatedb(更新資料庫):第一次更新會比較久 ,locate(查詢檔案) ![](https://hackmd.io/_uploads/rkcFf1YUn.png) ![](https://hackmd.io/_uploads/HkU5GJFIn.png) ## find(指定檔名搜尋) ## 把第一個點省略掉,就會從本目錄 ![](https://hackmd.io/_uploads/B1TAzyFU3.png) ![](https://hackmd.io/_uploads/H1i1X1FI2.png) ![](https://hackmd.io/_uploads/rkGx71Y82.png) ## 期中考必考重點 https://blog.gtwang.org/linux/unix-linux-find-command-examples/ ## 最後一行是指前面找到的內容會被填充到大括號中 ## -exec rm 把這些.txt檔案刪除,最後以\為結尾 ![](https://hackmd.io/_uploads/ryCeNkKIh.png) ## 增量備份流程: ![](https://hackmd.io/_uploads/H1AxS1KUn.png) ![](https://hackmd.io/_uploads/HJKbBJY82.png) # 第12周: ## 通配符與正則表達式是不一樣的,通配符是匹配檔案名稱用的,就是尋找檔案,正則表達式則是針對內容進行匹配,用來尋找檔案裡面的內容 ![](https://hackmd.io/_uploads/S1eFUJFU2.png) https://bpdocs.blueprism.com/bp-7-1/zh-hans/helpWildcardsAndRegex.htm ## a+至少一次或多次 、a? 0次 ![](https://hackmd.io/_uploads/HySVDktU2.png) ## Linux三劍客: awk / grep / sed ## grep 進行內容塞選 ## awk用於從文本文件或標準輸入中讀取數據,並根據指定的模式和操作來處理和轉換這些數據。 ## sed用於處理和轉換文本流,可以進行搜索、替換、刪除、插入等操作。 ## 尋找以.conf檔案結尾的,並查看其中有包含network,最終把檔案找出來,-n是指顯示第幾行 ![](https://hackmd.io/_uploads/rkP3KytI2.png) https://blog.gtwang.org/linux/linux-grep-command-tutorial-examples ![](https://hackmd.io/_uploads/rJxvckFIn.png) ## 不分大小寫: ![](https://hackmd.io/_uploads/SkJF51t8n.png) ## 標示行號: ![](https://hackmd.io/_uploads/ry769yFU2.png) ## 反向匹配: 若想要將匹配的資料排除,只顯示出沒有關鍵字的那幾行資料,可以加上 -v 參數。 ![](https://hackmd.io/_uploads/SJs8ikFIh.png) ## ps 查看背景有哪些程式正在運行,grep sleep搜尋哪些程式在睡眠 ![](https://hackmd.io/_uploads/r1nookKI2.png) ## 顯示前後幾行: ![](https://hackmd.io/_uploads/Bk5H3kt82.png) ## alias用於創建自定義命令的功能 ![](https://hackmd.io/_uploads/Sk703JYLn.png) ![](https://hackmd.io/_uploads/rJmkpyt83.png) ## /etc/passwd存放系統的帳號、針對帳號的資訊 ![](https://hackmd.io/_uploads/BJiHTkt8n.png) ## 以nologin作為結尾 ![](https://hackmd.io/_uploads/BkKip1F82.png) ## 匹配空白行: ![](https://hackmd.io/_uploads/ByVv0JtU3.png) ## 去掉註解和空白行: ![](https://hackmd.io/_uploads/SkOoAktU2.png) ## 正規表達式: ![](https://hackmd.io/_uploads/HksmkeFUh.png) ![](https://hackmd.io/_uploads/S1ywJgFU2.png) ## 各種出現次數的指定: ![](https://hackmd.io/_uploads/B1iFyxKLn.png) ## 多種字眼的組合: ![](https://hackmd.io/_uploads/HJaMegK8h.png) ![](https://hackmd.io/_uploads/ryFKglFLn.png) ## dmesg可以看到有關硬體的資訊 ![](https://hackmd.io/_uploads/rkkAlxt8h.png) ![](https://hackmd.io/_uploads/Sk4MbxK8h.png) ## tty 主設備號用來區分不同種類的設備,次設備號用來區分同一類型的多個設備 ![](https://hackmd.io/_uploads/HykIZxKUn.png) # 第13周: ![](https://hackmd.io/_uploads/HJYNhxKU3.jpg) ## FAT32 掛載方式: ## 卸載時一定要先離開現在所在的目錄,使用umount ![](https://hackmd.io/_uploads/BkqmAgtIh.png) ## USB driver : if it is FAT32, just plug into linux system. It can identify the usb drive. ## Linux can also mount automatically. https://earthcat99.pixnet.net/blog/post/36811189 ![](https://hackmd.io/_uploads/HyE9ngFLn.png) ![](https://hackmd.io/_uploads/rkMineKLh.png) ## NTFS 掛載方式: https://it001.pixnet.net/blog/post/328444228 ![](https://hackmd.io/_uploads/SkAEaxYUh.png) ![](https://hackmd.io/_uploads/ryFTReKUn.png) ## 這種系統帳號是不允許登入的,是用來執行或是維護伺服器 ![](https://hackmd.io/_uploads/HJSDCeKU3.png) ![](https://hackmd.io/_uploads/HJ-YyZKI3.png) ## 密碼破解流程: ## Jhon the Ripper(密碼破解工具) https://trendoceans.com/how-to-install-john-the-ripper-on-all-platforms/ ![](https://hackmd.io/_uploads/rJhUlZYLh.png) ![](https://hackmd.io/_uploads/BkC_gZFUh.png) ![](https://hackmd.io/_uploads/ry55lbtL2.png) ## 如何使用 John the Ripper 進行密碼破解: https://ithelp.ithome.com.tw/m/articles/10300529 ![](https://hackmd.io/_uploads/H1RxWbFL3.png) ## 考試重點: ![](https://hackmd.io/_uploads/HkJr--FIh.png) # 第14周: ## mkdir -p 目錄名稱: 加上-p,如果資料夾不存在,則創建資料夾,如果資料夾存在,則不動作,也不會有錯誤發生 ![](https://hackmd.io/_uploads/rJ9kvv28h.png) ## 擴展a..d: ![](https://hackmd.io/_uploads/S1k5Dw383.png) ## 也可以合併 ![](https://hackmd.io/_uploads/BJg0PwhU2.png) ## 一定要加-d才可以看到資料夾裡面的內容 ![](https://hackmd.io/_uploads/SyE9uD38n.jpg) ## 擁有者把自己的可讀權限拿掉後的結果 ## r(可讀) ![](https://hackmd.io/_uploads/HyH5KD38n.png) ## x(可被執行) ## 針對目錄來說,x就是代表是否可以進入資料夾的權限 ![](https://hackmd.io/_uploads/Skvrqv3Uh.jpg) ## w(可寫入) ## 可以針對目錄去做異動,可寫入、修改、新增資料或刪除檔案等 ![](https://hackmd.io/_uploads/rkiynDhIn.jpg) ## 不能新增子目錄 ![](https://hackmd.io/_uploads/S1223PhIh.jpg) ## touch用法: ![](https://hackmd.io/_uploads/S1fmTwnU2.jpg) ## 對於一般使用者來說如果目錄的權限沒有w,就不能刪除檔案,但管理員(root)還是可以刪 ![](https://hackmd.io/_uploads/B1cgCD3Ih.jpg) ## 使用su -名稱 可以切換使用者 ![](https://hackmd.io/_uploads/H13dAP2Ln.jpg) ![](https://hackmd.io/_uploads/B1AOCPnLn.jpg) ## 連同testdir2底下所有檔案一起做更改 ![](https://hackmd.io/_uploads/ryp71uhUn.png) ![](https://hackmd.io/_uploads/SJj_1O2I2.jpg) ![](https://hackmd.io/_uploads/ry1elu3Lh.png) ## 參考資料: https://blog.gtwang.org/linux/how-to-make-file-immutable-on-linux-chattr-command/ ## 高階屬性是使用lsattr ![](https://hackmd.io/_uploads/rytpJdhU2.jpg) ## 這邊的i是指檔案不可以被更動(immutable),不可以寫入、刪除、建立連結檔等 ## chattr: ![](https://hackmd.io/_uploads/SkbOguhL3.jpg) ![](https://hackmd.io/_uploads/Bkz_ld3L2.jpg) ## 如果要刪除這個檔案就必須移除掉i ![](https://hackmd.io/_uploads/rJVdlu2Ih.jpg) ## 可以讓檔案只能增加內容,不可以刪除或覆寫 ![](https://hackmd.io/_uploads/rJ-bMu3L2.jpg) ## a是指只能透過echo這行指令來去修改才可以,其他都不行 ![](https://hackmd.io/_uploads/S1QbzO3I3.jpg) ![](https://hackmd.io/_uploads/SJ0-Xu3Uh.jpg) ## 透過cpuinfo這個檔案使用cat去看proc,就可以知道Linux一些關於cpu的資訊,例如:核心或是時脈的部分。 ![](https://hackmd.io/_uploads/SJNKXuh83.jpg) ## 查看記憶體(mem) ![](https://hackmd.io/_uploads/Sy3mNOn8n.jpg) ## 也可以使用free -h查看 ## -h代表顯示時會用常用的單位 ![](https://hackmd.io/_uploads/BJCmV_n83.jpg) ![](https://hackmd.io/_uploads/rJSur_hUh.png) ## ps可以觀察行程的資訊 ![](https://hackmd.io/_uploads/HySrSOnLn.jpg) ![](https://hackmd.io/_uploads/HJOrrOnIn.jpg) ## 提供了行程的詳細信息 ![](https://hackmd.io/_uploads/HyTJO_nLn.jpg) ## 首先是 ps aux,它用於列出當前正在運行的行程的詳細信息。ps命令用於顯示行程狀態,aux選項用於顯示所有用戶的所有行程 ## | 表示管道(pipe)。管道將第一個命令的輸出作為第二個命令的輸入,在這種情況下,它將 ps aux 的輸出鏈接到 more 命令 ![](https://hackmd.io/_uploads/HJgludnUh.jpg) ![](https://hackmd.io/_uploads/BkZVOu3L2.jpg) ![](https://hackmd.io/_uploads/B1uwK_38h.jpg) ## pstree(父行程): ## pstree可以知道之間的關係 ![](https://hackmd.io/_uploads/r12rS_2Uh.jpg) ![](https://hackmd.io/_uploads/Hk4J8_n8h.jpg) ![](https://hackmd.io/_uploads/B1OF5_3Lh.png) ![](https://hackmd.io/_uploads/SyobcOh8h.png) ## sleep 100前景執行,ctrl+z可以暫停,bg 丟到背景開始執行,jobs可以去查看行程執行的狀態 ![](https://hackmd.io/_uploads/BJrL9OhLn.jpg) ![](https://hackmd.io/_uploads/H1P89_nU2.jpg) # 第15周: ## 參考連結: https://ithelp.ithome.com.tw/articles/10221185 ## ACL(Access Control List)存取控制串列:ACL允許系統管理員根據用戶、組或其他條件來限制或允許對資源的訪問。 ![](https://hackmd.io/_uploads/BkQa80382.png) ![](https://hackmd.io/_uploads/H1lmPAn83.jpg) ## 相比上一張,多一個使用者mary,他具備可讀可寫的功能 ![](https://hackmd.io/_uploads/rJPFDR383.jpg) ![](https://hackmd.io/_uploads/HyFKvA3U2.jpg) ![](https://hackmd.io/_uploads/H1jtwChU3.jpg) ## su 帳號: 直接切換到"帳號",所在位址不變 ## Shell 腳本: ![](https://hackmd.io/_uploads/BJ9EF02U2.jpg) ## 透過這個方式可以新增帳號: ![](https://hackmd.io/_uploads/Bkp-5038h.png) ## 參考連結: https://ithelp.ithome.com.tw/m/articles/10264860 ## FirewallD: https://blog.gtwang.org/linux/centos-7-firewalld-command-setup-tutorial/ ![](https://hackmd.io/_uploads/Skf_oA3U2.png) ## zones: ## 目前有哪些zones ![](https://hackmd.io/_uploads/SylRo03L2.jpg) ## 目前正在使用的zones ![](https://hackmd.io/_uploads/r1NAs0nI3.jpg) ## 列出zones的詳細設定 ![](https://hackmd.io/_uploads/H11k2RhUh.jpg) ![](https://hackmd.io/_uploads/H1N13AnUh.jpg) ## 最後結果 ![](https://hackmd.io/_uploads/B1uknAn8h.jpg) ## serivce服務: ![](https://hackmd.io/_uploads/rkgXCAnUh.jpg) ![](https://hackmd.io/_uploads/BJfXA03In.jpg) ## 加入port,使用選項--add-port ![](https://hackmd.io/_uploads/r1_NCC2Uh.jpg) ![](https://hackmd.io/_uploads/Sy5N002U3.jpg) ## ssh連線: ![](https://hackmd.io/_uploads/SyKcgkaUn.jpg) ![](https://hackmd.io/_uploads/ryi9lJ6Uh.jpg) ![](https://hackmd.io/_uploads/Bk65e1TUh.jpg) ![](https://hackmd.io/_uploads/rk0ceJTL3.jpg) ![](https://hackmd.io/_uploads/HkfzW16U2.jpg) ## ssh tunnel: ### 用於在本地和遠程系統之間傳輸數據 ![](https://hackmd.io/_uploads/S1eb7ypLh.png) ## 參考連結: https://blog.gtwang.org/linux/centos-7-firewalld-command-setup-tutorial/ ## 壓縮與解壓縮流程: http://note.drx.tw/2008/04/command.html ![](https://hackmd.io/_uploads/Hy-E7yTU3.jpg) ![](https://hackmd.io/_uploads/H1QEmy68n.jpg) ## 更改系統時區指令: https://blog.gtwang.org/linux/centos-linux-change-system-timezone-command-tutorial/ ![](https://hackmd.io/_uploads/B1v9X1TI3.jpg) ![](https://hackmd.io/_uploads/H1YqQk6U3.jpg) ## 壓縮檔zip: ![](https://hackmd.io/_uploads/SJbBQ1aU3.jpg) ![](https://hackmd.io/_uploads/rJudm16L2.jpg) ![](https://hackmd.io/_uploads/SyxSi7Jp82.png) ## tar打包並壓縮流程,tgz格式: ![](https://hackmd.io/_uploads/rJndQyaI3.jpg) ![](https://hackmd.io/_uploads/BkAOXk68n.jpg) ![](https://hackmd.io/_uploads/rk8KQ1pL2.jpg) ## 副檔名bz2 ![](https://hackmd.io/_uploads/SysYXk68n.jpg) ![](https://hackmd.io/_uploads/S11cXkp82.jpg) ![](https://hackmd.io/_uploads/HymcXJpL2.jpg) ![](https://hackmd.io/_uploads/r1H9XJTLh.jpg) # 第16周: ## 設定系統時間: ![](https://hackmd.io/_uploads/BJMVJap8n.png) ![](https://hackmd.io/_uploads/B1lcA2T8n.jpg) ![](https://hackmd.io/_uploads/SJJv16pLn.jpg) ## 網路校時協定(NTP)更新系統時間: ![](https://hackmd.io/_uploads/H1EWZTaU3.png) ![](https://hackmd.io/_uploads/HJ2W-TT82.png) ``` tock.stdtime.gov.tw watch.stdtime.gov.tw time.stdtime.gov.tw clock.stdtime.gov.tw tick.stdtime.gov.tw ``` ![](https://hackmd.io/_uploads/ry0Nbaa8h.jpg) ## !988 重複執行988行的指令 ![](https://hackmd.io/_uploads/ryZBZTpL3.jpg) ## !keyword(關鍵字) ,這裡是打!time,會找到第1004行中有timedatectl中有包含time並執行 ![](https://hackmd.io/_uploads/rk4S-aTUn.jpg) ## 如果安裝完server,卻無法連接? 如何debug: ## 1.systemctl status 伺服器 查看狀態, 如果已經running,但還是無法連接 ## 2.查看防火牆,selinux ## 3. 檢查port number ![](https://hackmd.io/_uploads/BJVX7paL2.jpg) ## 設定系統排程工作(crondtab): ![](https://hackmd.io/_uploads/HkWbNT6U3.png) ![](https://hackmd.io/_uploads/HyfZEpp82.png) ## 範例: ![](https://hackmd.io/_uploads/H1TWVTpIh.jpg) ![](https://hackmd.io/_uploads/HJSQ4aa8n.jpg) ![](https://hackmd.io/_uploads/ByDXVp6L3.jpg) ![](https://hackmd.io/_uploads/HJ2mV6TU3.jpg) ![](https://hackmd.io/_uploads/SJ9LEa6Ih.jpg) ## 磁碟額配設定: ## 會針對家目錄(/home)進行配額,會單獨出來變成一個分割區 ![](https://hackmd.io/_uploads/rkiLEapIh.jpg) ## 操作流程: ![](https://hackmd.io/_uploads/HkqRVp6U3.png) ![](https://hackmd.io/_uploads/rJdMHppLh.jpg) ![](https://hackmd.io/_uploads/SycfH6aL3.jpg) ![](https://hackmd.io/_uploads/HJdFrTpU2.jpg) ![](https://hackmd.io/_uploads/S1ctHp682.jpg) ![](https://hackmd.io/_uploads/ryjKBT68h.jpg) ![](https://hackmd.io/_uploads/B1xYHp6U2.jpg) ![](https://hackmd.io/_uploads/rkZtHpTUn.jpg) ## 參考連結: https://blog.gtwang.org/linux/unix-linux-find-command-examples/ ## 使用者資訊/etc/passwd 密碼/etc/shadow