RHCSA 學習筆記(1)

指令

whoami 可以加在 shell script 加上這個指令去檢測執行的人。

可以透過 man 指令去查看其他指令的使用方法,[ ] 代表可有可無,< > 代表一定要加。

修改作業系統時間

查看當前的日期與時間:

1
date

設定日期和時間:

1
sudo date -s "YYYY-MM-DD HH:MM:SS"

其中 YYYY-MM-DD 是日期,HH:MM:SS 是時間。

例如,要將日期時間設定為 2023 年 7 月 17 日的 15 點 30 分,可以輸入:

1
sudo date -s "2023-07-17 15:30:00"

請注意,這種更改僅在下次重啟之前持續。為了讓時間更改在重啟後仍然有效,需要更新硬體時鐘。

可以使用 hwclock 指令來完成:

將系統時間寫入硬體時鐘:

1
sudo hwclock --systohc

查看檔案格式

file 可以測出檔案的格式是什麼。

1
file go.md

查看檔案內容

unix 文字檔 跟 window 的文字檔格式是不同的。

cat -A 可以把全部的換行符號都印出來,所以檔案如果不能執行可以這樣檢查。

  • 在 Unix/Linux 中,每行結束時使用一個換行符(LF 或 ‘\n’)。
  • 在 Windows 中,每行結束時使用一個車輛回退符和一個換行符(CRLF 或 ‘\r\n’)。

這個差異可能會導致一些問題,特別是當你在這兩種系統之間轉移文本文件的時候。

例如,如果在 Unix/Linux 系統上打開一個 Windows 格式的文本文件,則可能會在每行的結尾看到一個額外的 ‘^M’ 字符。

這個問題可以用一些工具來解決,比如 dos2unix 和 unix2dos。這兩個工具可以將文本文件從一種格式轉換為另一種格式。

例如,dos2unix 可以將 Windows 格式的文本文件轉換為 Unix/Linux 格式,而 unix2dos 則可以做相反的轉換。

  • unix2dos search.sh unix 到 dos
  • dos2unix search.sh dos 到 unix

如果不想直接覆蓋原本的文件,可以使用 unix2dos -n 產生新的檔案。

切換使用者

su - 切換到 root。

一個在 Linux 和 Unix 系統中使用的命令,用於切換到另一個使用者的帳戶,包括超級用戶(root)。

當你執行 su - 命令時,它會要求你輸入目標使用者的密碼。如果你輸入的密碼正確,則會將你的 shell 環境切換到目標使用者的帳戶,同時保留目標使用者的環境變數、工作目錄和 shell 配置。

sudo -i 命令不同,su - 命令需要目標使用者的密碼,而不是當前使用者的密碼。

此外,su - 命令在切換使用者時不會記錄命令歷史記錄,這意味著你在目標使用者帳戶下執行的命令將不會出現在當前使用者的命令歷史中。

切分檔案

檔案太大可以透過這個方法切分檔案。

1
split boot.iso -b 50M boot_

還原檔案

1
cat boot_a* > boot.iso

抓取特定數量資料

  • head -5 /etc/passwd ,前五行。
  • tail -3 /ect/passwd ,後三行。
  • cat /etc/passwd | tail -3

盯著系統的 log,當他有變化的時候可以看到。

1
tail -f /var/log/messages

計算檔案行數

計算裡面有幾行,裡面會有三個數值,通常只會看第一個。

wc 是 word count 的縮寫。

  • wc /etc/hosts
  • wc -l /etc/hosts

適用場景:

監控和日誌分析。
例如,可以定期執行 wc -l /etc/hosts 命令,並將結果記錄到一個日誌文件中,然後分析這個日誌文件以監控 /etc/hosts 文件的狀態。

Tab complete

要使用 tab 補全的話, bash-completion 這個套件要裝。

查看歷史紀錄

方法一:

  1. 先下 history
  2. 然後再下指令的行數 !26

方法二:

ctrl + R 搜尋之前用過的指令

小技巧

  • ctrl+A 到 command 第一個字
  • ctrl+E 到 command 最後一個字
  • ctrl+U 游標前面的刪掉
  • ctrl+K 游標後面的刪掉

vi .bash_history 可以刪除一些敏感資料。

顯示檔案 ls

只要將檔名設定為 . 開頭,就是隱藏檔
目錄為 . 開頭,就是隱藏目錄。

  • ls -l 完整目錄顯示出來。
  • ls -l -h 可以讀到檔案的大小。
  • ls -l -h -R 把目錄每一層都撈出來。

inode 用來存放 metadata
ls -l -i 可以顯示這個檔案佔用的 inode 編號。

創建資料夾

建立多層次的目錄

1
mkdir -p X/Y/Z

複製檔案

要注意複製檔案做備份的時候,要保有原本的屬性要加上 -p

要不然複製完了,檔案的 owner 變成自己。

1
cp -p /home/student/file.txt

複製 soft link 的時候要加上 -d

1
cp -d /etc/localtime .

複製目錄要加上 -r

1
cp -r /home .

太多指令了可以直接加上 -a ,他就可以做到很多事情了。

變更目錄名稱

1
mv file-3 new-file

捷徑

unix 上面有 soft link 就像 windows 的捷徑。

範例:

  • bin -> usr/bin
  • lib -> usr/lib

資料夾簡介

  • /boot 放置系統核心
  • /dev 設備檔
  • /etc 設定檔
  • /usr 安裝的軟體幾乎都是裝在這
  • /var 經常性異動的檔案

路徑

  • 如果最前面沒有 / 就是相對路徑
  • 如果最前面有 / 就是絕對路徑

Home ~

這個符號叫做 tilde 。
代表 home 目錄,不是根目錄。

第一個

  • - 一般的檔案
  • d 目錄
  • l softlink
  • b 設備檔 (Block Device)
  • c 設備檔 (Character Device)
  • s Unix Domain Socket (不可以刪)
  • p Pipe Files (不可以刪)

後方九個英文

檔案存取權限

一個點

新的檔案存取權限
ACL 權限

權限後面的數字

  • 如果 File Type 為 D ,則此數字代表該目錄下還有幾個目錄。
  • 如果 File Type 為 - ,則此數字代表 Hard Link 的數量。

可以透過 stat hosts 看到 inode 內容。


RHCSA 學習筆記(1)
https://phoebeho.com/sre/20230715/368091597/
作者
Phoebe
發布於
2023年7月15日
許可協議