Linux 提供了豐富的命令行工具,用于系統管理、文件操作、網絡管理、進程控制等。以下是一些常用的 Linux 命令及其簡要說明:
切換用戶
su
命令
su
(substitute user) 命令用于切換用戶。
su - username # 切換到指定用戶,并加載該用戶的環境變量
su username # 切換到指定用戶,但不加載該用戶的環境變量
su - # 切換到 root 用戶,并加載 root 的環境變量
sudo
命令
sudo
(superuser do) 命令用于以另一個用戶(通常是 root)身份執行命令。
sudo command # 以 root 用戶身份執行命令
sudo -u username command # 以指定用戶身份執行命令
uname命令
uname
命令用于顯示有關操作系統和硬件的信息。通過不同的選項,可以獲取系統名稱、內核版本、硬件架構等詳細信息。以下是 uname
命令及其常用選項的詳細介紹和示例:
uname
:不帶選項時,默認輸出操作系統名稱。uname -a
:顯示所有信息。uname -s
:顯示內核名稱。uname -n
:顯示網絡主機名。uname -r
:顯示內核版本。uname -v
:顯示內核版本信息。uname -m
:顯示硬件架構類型。uname -p
:顯示處理器類型(某些系統上可能不可用)。uname -i
:顯示硬件平臺(某些系統上可能不可用)。uname -o
:顯示操作系統名稱。
示例
1. 顯示操作系統名稱
uname
輸出示例:
Linux
2. 顯示所有信息
uname -a
輸出示例:
Linux hostname 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
3. 顯示內核名稱
uname -s
輸出示例:
Linux
4. 顯示網絡主機名
uname -n
輸出示例:
hostname
5. 顯示內核版本
uname -r
輸出示例:
5.4.0-42-generic
6. 顯示內核版本信息
uname -v
輸出示例:
#46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020
7. 顯示硬件架構類型
uname -m
輸出示例:
x86_64
8. 顯示處理器類型
uname -p
輸出示例:
x86_64
(注意:在某些系統上可能顯示 unknown
)
9. 顯示硬件平臺
uname -i
輸出示例:
x86_64
(注意:在某些系統上可能顯示 unknown
)
10. 顯示操作系統名稱
uname -o
輸出示例:
GNU/Linux
使用場景
uname
命令通常用于腳本和命令行中,以獲取系統和內核信息。例如:
-
在腳本中根據內核版本執行特定操作:
if [[ $(uname -r) == "5.4.0-42-generic" ]]; thenecho "Kernel version is 5.4.0-42-generic" elseecho "Different kernel version" fi
-
獲取系統架構以下載和安裝合適的軟件包:
if [[ $(uname -m) == "x86_64" ]]; thenecho "64-bit system"# 下載64位軟件包 elseecho "32-bit system"# 下載32位軟件包 fi
通過這些選項和示例,你可以使用 uname
命令快速獲取和使用系統信息,以滿足各種需求。
clear命令
clear
命令在 Linux 和其他 Unix-like 操作系統中用于清除終端屏幕。它的作用是將當前終端屏幕上的所有內容清除,并將光標移動到屏幕的左上角。這在需要清理終端屏幕以便更清晰地查看輸出時非常有用。
用法
基本用法
clear
執行 clear
命令后,終端屏幕會被清空,光標回到屏幕的左上角。此命令沒有任何參數或選項。
示例
-
在終端中執行一些命令,然后使用
clear
清除屏幕:ls -l echo "This is some text on the screen." clear
執行
clear
后,屏幕上的所有內容會被清除,只留下一個干凈的終端界面,光標在左上角。
其他相關命令
reset
命令
reset
命令用于重置終端。它不僅清除屏幕,還重置終端的所有設置。對于一些情況下,終端可能進入不可用狀態,這時使用 reset
可以恢復終端的正常狀態。
reset
背景原理
clear
命令實際上是發送一組特定的控制字符到終端,這些字符告訴終端清除屏幕。clear
命令通常是/usr/bin/clear
可執行文件,使用tput
工具來確定終端的控制字符。
總結
clear
命令是一個簡單而有效的工具,用于清除終端屏幕。它沒有復雜的選項或參數,但在日常使用終端時非常有用,特別是需要清理屏幕以便更清晰地查看新的輸出時。
clear
reboot命令
reboot
命令用于重新啟動計算機。執行該命令將關閉計算機并重新啟動操作系統。在 Linux 和其他 Unix-like 系統中,reboot
是一個常用的系統管理命令。
用法
基本用法
reboot
執行 reboot
命令會立即關閉計算機,并重新啟動操作系統。在執行該命令之前,請確保保存了所有重要的工作,并關閉了正在運行的程序,以避免數據丟失。
示例
-
在終端中執行
reboot
命令:reboot
系統將會立即關閉,并重新啟動。
背景原理
reboot
命令實際上是一個系統調用,它通知操作系統關閉計算機。- 在執行
reboot
命令時,操作系統會依次執行一系列關機過程,包括保存未保存的數據、卸載文件系統、關閉服務等。 - 一旦所有關機過程完成,操作系統將發送信號給計算機硬件,觸發計算機重新啟動。
注意事項
- 在執行
reboot
命令之前,請確保保存了所有未保存的工作,并關閉了正在運行的程序,以免數據丟失。 - 請謹慎使用
reboot
命令,尤其是在生產環境中,以避免造成不必要的中斷。
總結
reboot
命令是在 Linux 和其他 Unix-like 系統中重啟計算機的標準方式。它是管理系統的重要工具之一,但在使用時需要謹慎,以避免不必要的中斷和數據丟失。
reboot
history命令
history
命令用于顯示用戶在當前會話中執行過的命令歷史記錄。在 Linux 和其他 Unix-like 系統中,history
命令是一個常用的命令行工具,可以幫助用戶查看并重新執行之前執行過的命令。
用法
基本用法
history
執行 history
命令會顯示當前會話中執行過的命令歷史記錄,默認按照執行順序顯示編號(編號從1開始),最近執行的命令在列表的底部。
顯示最近的 N 條命令記錄
history N
執行 history N
命令會顯示最近執行的 N 條命令記錄,其中 N 為一個整數,表示要顯示的命令數量。
清除命令歷史記錄
history -c
執行 history -c
命令會清除當前會話中的所有命令歷史記錄。
示例
-
顯示默認的命令歷史記錄:
history
輸出示例:
1 ls2 cd Documents/3 vim myfile.txt4 cat myfile.txt...
-
顯示最近的10條命令記錄:
history 10
輸出示例:
10 history 11 ls 12 cd Documents/ 13 vim myfile.txt ...
-
清除命令歷史記錄:
history -c
注意事項
- 命令歷史記錄保存在當前用戶的家目錄下的
.bash_history
文件中,每個用戶都有自己的歷史記錄文件。 - 使用
history
命令可以查看當前會話中的命令歷史記錄,但不能查看其他會話的歷史記錄。 history
命令默認顯示的是當前會話的命令歷史記錄,當用戶退出登錄時,該記錄將被保存到歷史記錄文件中,供以后查看。
總結
history
命令是一個有用的工具,可以幫助用戶查看和重新執行之前執行過的命令。通過查看命令歷史記錄,用戶可以更方便地查找和重復執行常用命令,提高命令行操作的效率。
history
shutdown命令
shutdown
命令用于安全地關閉系統或重新啟動系統。在 Linux 和其他 Unix-like 系統中,shutdown
命令是管理員常用的系統管理工具之一。
用法
基本用法
shutdown [選項] 時間 [消息]
選項
:用于指定額外的操作參數,如-r
(重新啟動)或-h
(關閉系統)等。時間
:指定關閉或重啟操作執行的時間。可以是一個絕對時間,也可以是相對于當前時間的延遲時間。消息
:可選參數,用于指定關閉或重啟的原因或附加信息。
常用選項
-r
:重新啟動系統。-h
:關閉系統。-c
:取消先前預定的關閉或重啟操作。-t
:指定一個延遲時間,以秒為單位,在此時間后執行關閉或重啟操作。
示例
-
關閉系統并顯示關閉消息:
shutdown -h now "System is going down for maintenance"
-
重新啟動系統并設置延遲時間為10分鐘:
shutdown -r +10 "System will be rebooted in 10 minutes"
-
取消先前預定的關閉或重啟操作:
shutdown -c
注意事項
- 在執行
shutdown
命令時,需要管理員權限。 - 為了避免數據丟失,建議在關閉或重啟系統之前保存所有未保存的工作。
總結
shutdown
命令是一個重要的系統管理工具,可用于安全地關閉或重新啟動系統。通過指定適當的選項和時間,管理員可以有效地管理系統的運行時間,執行維護任務,并避免數據丟失。
shutdown -h now
type命令
type
命令用于顯示給定命令的類型。在 Unix 和類 Unix 系統中,命令可以是內置命令、外部命令、別名或函數。type
命令可以告訴用戶給定命令的類型是什么。
用法
type [選項] 命令名
選項
:可選,用于指定額外的操作參數。命令名
:要查詢類型的命令名稱。
常用選項
-a
:顯示所有與給定命令名稱相關的命令,包括別名、函數和外部命令。
示例
-
顯示給定命令的類型:
type ls
輸出示例:
ls is aliased to 'ls --color=auto'
-
顯示所有與給定命令名稱相關的命令:
type -a ls
輸出示例:
ls is aliased to 'ls --color=auto' ls is /usr/bin/ls
注意事項
type
命令對于查找命令的類型和定義非常有用,可以幫助用戶理解命令的來源和作用。- 使用
-a
選項可以查找所有與給定命令名稱相關的定義,包括別名、函數和外部命令。
總結
type
命令是一個有用的工具,可用于查找給定命令的類型和定義。通過了解命令的來源和作用,用戶可以更好地理解和使用命令行環境。
type ls
hostnamectl命令
hostnamectl
命令用于顯示和修改系統的主機名及相關的系統信息。它是 systemd 管理系統中的一個工具,可用于管理系統的主機名、靜態主機名、虛擬主機名、操作系統版本和其他相關設置。
centos7中的三種主機名
在 CentOS 7 中,主機名可以分為以下三種類型:
-
靜態主機名(Static Hostname): 這是系統的永久主機名,通常在系統配置文件中設置。靜態主機名一般在系統安裝時設置,保存在
/etc/hostname
文件中。靜態主機名在系統啟動時被加載,并且不會隨著網絡或其他條件的變化而改變。關機重啟后名稱不失效。 -
臨時主機名(Transient Hostname): 這是系統的動態主機名,它可以隨著系統的運行而改變。臨時主機名通常是根據網絡配置或其他條件動態生成的,例如 DHCP 分配的主機名。臨時主機名一般保存在
/etc/machine-info
文件中。關機重啟后名稱失效。 -
Pretty 主機名(Pretty Hostname): 這是一個可選的用戶友好型主機名,用于顯示在系統的命令行提示符或其他信息中。Pretty 主機名可以包含空格和特殊字符,使其更易于閱讀和識別。Pretty 主機名一般保存在
/etc/machine-info
文件中,并且可以通過hostnamectl set-hostname
命令設置。主機名稱可以包含特殊字符。
在 CentOS 7 中,可以使用 hostnamectl
命令來查看和管理系統的主機名信息,包括靜態主機名、臨時主機名和 Pretty 主機名。
用法
hostnamectl [選項] [命令]
選項
:用于指定額外的操作參數。命令
:可選,用于執行特定的操作,如設置主機名等。如果省略命令,則會顯示系統的主機名和相關信息。
常用選項
--static
:顯示靜態主機名。--transient
:顯示臨時主機名。--pretty
:顯示格式化的主機名。--all
:顯示所有可用的主機名及相關信息。
常用命令
set-hostname NAME
:設置系統的主機名為指定的名稱。set-icon-name ICON_NAME
:設置系統的圖標名稱。set-chassis TYPE
:設置系統的機箱類型。set-deployment DEPLOYMENT
:設置系統的部署環境。status
:顯示當前系統的主機名及相關信息。
示例
-
顯示當前系統的主機名及相關信息:
hostnamectl
-
設置系統的靜態主機名:
sudo hostnamectl set-hostname new_hostname
-
顯示所有可用的主機名及相關信息:
hostnamectl --all
-
設置系統的臨時主機名
sudo hostnamectl set-hostname my-temporary-hostname --transient
這個命令將臨時將主機名設置為
my-temporary-hostname
。要使此更改立即生效,執行命令su
您可能需要重新啟動網絡服務,具體取決于您的網絡配置:
sudo systemctl restart NetworkManager
此設置的主機名將在系統重啟后失效,而且不會被永久保存。
注意事項
- 在修改主機名時,可能需要使用管理員權限(使用
sudo
)。 - 主機名的修改可能需要重新啟動系統才能生效。
FQDN協議
FQDN(Fully Qualified Domain Name)是指完全限定域名,它是互聯網上唯一標識主機的全局唯一標識符。FQDN 包含主機名和域名兩部分,以點號分隔。FQDN 的格式通常是 hostname.domainname
。
FQDN 協議本身并不存在,它是一種命名約定,用于標識網絡上的主機。通常情況下,FQDN 是通過 DNS(Domain Name System)系統來解析為 IP 地址,從而進行網絡通信。FQDN 在 Internet 上起著重要的作用,它允許用戶通過簡單易記的名稱來訪問遠程主機,而不需要記住復雜的 IP 地址。
在使用 FQDN 時,通常需要考慮以下幾個方面:
-
主機名(Hostname): 主機名是 FQDN 的一部分,它標識了網絡上的特定主機。主機名通常是由字母、數字和連字符(-)組成的字符串,且不能包含空格或其他特殊字符。
-
域名(Domain Name): 域名是 FQDN 的另一部分,它標識了主機所屬的域。域名通常是一個層級結構,從頂級域名(Top-Level Domain,TLD)開始,例如
.com
、.org
、.net
等,然后是次級域名(Second-Level Domain)和更多的子域名(Subdomains)。 -
DNS 解析: FQDN 通常通過 DNS 解析為 IP 地址,以便進行網絡通信。DNS 是一個分布式的系統,用于將域名解析為 IP 地址,并提供其他與域名相關的信息。
-
配置文件: 在計算機系統中,FQDN 可能需要在配置文件中進行設置,以確保系統能夠正確識別和使用主機名和域名。具體設置的方式和位置可能因操作系統和網絡環境而異。
總的來說,FQDN 是一個標準化的命名約定,用于唯一標識互聯網上的主機。通過使用 FQDN,用戶可以方便地訪問遠程主機,而無需記住復雜的 IP 地址。
總結
hostnamectl
命令是一個強大的工具,可用于管理系統的主機名及相關信息。通過使用不同的選項和命令,管理員可以輕松地查看和修改系統的主機名,以及其他與主機相關的設置。
hostnamectl