Linux 系統提供了大量的指令工具,讓開發者和系統管理者能有效控制和管理系統。本文從終端機操作、日期時間處理、數學運算等基礎指令開始,逐步深入至 Shell 環境設定、程式開發除錯工具,以及系統資訊查詢和設定等進階指令。文章中每個指令都搭配了簡潔的說明和實際範例,方便讀者快速理解和上手。此外,也涵蓋了核心模組管理、效能監控、網路時間同步等系統管理的關鍵指令,讓讀者能更全面地掌握 Linux 系統的管理技巧。
Linux 指令集錦:提升系統管理與程式開發效率
Linux 提供了豐富的指令工具,幫助使用者進行系統管理、程式開發和日常操作。本文將介紹一系列實用的 Linux 指令,包括其功能、用法和相關範例。
終端機管理
chvt:切換虛擬終端機
chvt N 指令用於切換到指定的虛擬終端機(/dev/ttyN)。此指令與 openvt 命令相關。
範例:
chvt 2
切換到第二個虛擬終端機。
deallocvt:釋放未使用的虛擬終端機
deallocvt 指令用於釋放未使用的虛擬終端機。
範例:
deallocvt 66
釋放虛擬終端機 66。
fgconsole:顯示目前虛擬終端機編號
fgconsole 指令用於顯示目前正在使用的虛擬終端機編號。
範例:
fgconsole
顯示目前虛擬終端機的編號。
日期與時間處理
date:顯示或格式化日期與時間
date 指令用於顯示或格式化目前的日期與時間。
範例:
date --date='@2147483647'
顯示 Unix 紀元時間 2147483647 對應的日期與時間。
today=$(date +%d-%b-%Y); echo $today
格式化目前日期並輸出。
數學運算
dc:任意精確度計算器
dc 指令是一個支援反向波蘭表示法(RPN)的任意精確度計算器。
範例:
echo '6 9 * p' | dc
計算 6 和 9 的乘積並輸出結果。
expr:評估運算式
expr 指令用於評估給定的運算式。
範例:
expr 10 \* 20
計算 10 和 20 的乘積。
factor:顯示數字的質因數分解
factor 指令用於顯示給定數字的質因數分解。
範例:
factor 42
顯示 42 的質因數分解結果。
Shell 相關指令
enable:啟用或停用內建 Shell 命令
enable 指令用於啟用或停用 Bash 的內建命令。
範例:
enable -a
列出所有內建命令及其狀態。
exec:以指定命令取代目前 Shell
exec 指令用於以指定的命令取代目前的 Shell 行程。
範例:
exec rbash
執行受限的 Bash Shell。
exit:離開目前 Shell
exit 指令用於離開目前的 Shell 行程。
範例:
exit
離開目前的 Shell。
程式開發與除錯
gcc:GNU C 和 C++ 編譯器
gcc 是 GNU 專案的 C 和 C++ 編譯器。
範例:
gcc -nostartfiles -static -o foo foo.c
編譯 foo.c 為可執行檔 foo。
gdb:程式除錯工具
gdb 是 GNU 除錯工具,用於除錯程式並檢查當機原因。
範例:
gdb a.out
使用 gdb 除錯 a.out 程式。
系統資訊與設定
getent:顯示名稱服務交換函式庫中的專案
getent 指令用於顯示由名稱服務交換函式庫支援的資料函式庫中的專案。
範例:
getent passwd jane
查詢使用者 jane 的密碼資料函式庫專案。
getkeycodes:顯示核心掃描碼到按鍵碼的對映表
getkeycodes 指令用於顯示核心的掃描碼到按鍵碼對映表。
範例:
getkeycodes
顯示目前的核心按鍵碼對映表。
命令列選項解析
getopt:解析命令列選項
getopt 指令用於解析命令列選項和引數。
範例:
options=$(getopt -o brg --long color: -- "$@")
eval set -- "$options"
while true; do
case "$1" in
-b) COLOR=BLUE ;;
-r) COLOR=RED ;;
-g) COLOR=GREEN ;;
--color) shift; COLOR=$1 ;;
--) shift; break ;;
esac
shift
done
echo "Color is $COLOR"
解析命令列選項並設定顏色變數。
字型管理
fc-cache:建立字型快取
fc-cache 指令用於掃描字型目錄並建立字型快取。
範例:
fc-cache -v
詳細模式下建立字型快取。
其他 fc-* 系列指令(如 fc-list, fc-match, fc-query 等)可用於管理系統字型。這些指令提供了豐富的功能,用於查詢、驗證和管理系統中的字型資源。具體用法可參考相關手冊頁面或線上檔案。
Linux 常用指令集錦
Linux 系統中包含了大量的指令,每個指令都有其特定的功能與用途。本文將介紹一系列常用的 Linux 指令,幫助使用者更好地理解和運用這些指令。
程式開發相關指令
ld 指令
ld 是 GNU ELF 連結器,用於將目標檔案連結成可執行檔。
ld -s -o myfile hello.o
gprof 指令
gprof 用於顯示呼叫圖譜分析資料,幫助開發者瞭解程式的效能瓶頸。
gprof foo > foo.output
系統管理相關指令
halt 指令
halt 指令用於停止機器執行,執行關機操作。需要注意的是,該指令在某些 Linux 發行版中已被棄用。
halt
init 指令
init 指令用於向 init 守護程式傳送控制命令,切換系統執行層級。
init 0
journalctl 指令
journalctl 用於查詢 systemd 日誌,可以根據不同的條件過濾日誌內容。
journalctl _SYSTEMD_UNIT=avahi-daemon.service
journalctl -k -b -1
journalctl -f -u apache
系統監控相關指令
iostat 指令
iostat 用於顯示 CPU、網路、I/O 裝置和分割區的統計資訊。
iostat -x sda sdb 2 6
ipcmk、ipcrm 和 ipcs 指令
這三個指令用於管理 IPC 資源,包括共用記憶體段、訊息佇列和訊號量陣列。
ipcmk -M 1M
ipcrm -m 10715155
ipcs -q
鍵盤管理相關指令
kbdrate 指令
kbdrate 用於重置鍵盤重複率和延遲時間。
kbdrate -r 20 -d 500
kbd_mode 指令
kbd_mode 用於管理鍵盤模式(RAW、MEDIUMRAW、XLATE、UNICODE)。
kbd_mode -a
其他相關指令
locale 和 localedef 指令
locale 用於顯示目前或所有地區設定的資訊,而 localedef 用於編譯地區設定定義檔案。
locale LC_TELEPHONE
localedef -f UTF-8 -i fi_FI fi_FI.UTF-8
loginctl 指令
loginctl 用於控制 systemd 登入管理器,查詢使用者狀態等。
loginctl user-status
logger 指令
logger 用於在系統日誌中建立條目。
echo HelloWorld | logger
logger System rebooted
logger -p local0.notice -t HOSTIDM -f /dev/idmc
logger -n loghost.example.com System rebooted
Linux 系統管理與效能分析指令集錦
Linux 系統提供了豐富的命令列工具,用於系統管理、效能監控和故障排除。本文將介紹一系列重要的 Linux 指令,包括其用法、範例和相關資訊。
系統資訊與設定
1. lsb_release:顯示作業系統資訊
lsb_release 命令用於顯示 Linux 發行版的相關資訊。
- 範例:
lsb_release -a - 相關指令:
cat /proc/version、uname
2. lsmod:顯示已載入的核心模組
lsmod 命令列出目前已載入 Linux 核心的模組。
- 範例:
lsmod - 相關指令:
insmod、modprobe、modinfo
效能監控與分析
1. mpstat:報告處理器相關統計資訊
mpstat 命令提供處理器的相關統計資料。
- 範例:
mpstat -P ALL 2 5 - 相關指令:
sar、pidstat、iostat、vmstat
2. nfsiostat:報告 NFS 統計資訊
nfsiostat 命令顯示 NFS(網路檔案系統)的統計資料。
- 範例:
nfsiostat - 相關指令:
sar、mpstat、pidstat
3. nproc:顯示可用的處理單元數量
nproc 命令輸出系統中可用的處理單元數量。
- 範例:
nproc --all - 相關指令:
lscpu
4. numfmt:數字與可讀字串間的轉換
numfmt 命令用於在數字和人類可讀的字串之間進行轉換。
- 範例:
numfmt --to=iec 2048echo 1M | numfmt --from=sidf -B1 | numfmt --header --field 2-4 --to=si
系統管理與控制
1. machinectl:控制 systemd 機器管理器
machinectl 命令用於管理 systemd 虛擬機器和容器。
- 範例:
machinectl export-tar fedora myfedora.tar.xzmachinectl pull-tar https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz
2. poweroff 與 reboot:系統關機與重啟
poweroff命令用於關閉系統。- 範例:
poweroff
- 範例:
reboot命令用於重啟系統。- 範例:
reboot
- 範例:
- 相關指令:
shutdown
其他實用指令
1. mail:電子郵件處理
mail 命令用於撰寫、接收、傳送和回覆電子郵件。
- 範例:
mail -s "HelloWorld" [email protected] - 相關指令:
sendmail
2. man 與 manpath:手冊頁查詢
man命令顯示指定命令的手冊頁。- 範例:
man shutdown
- 範例:
manpath命令顯示手冊頁的搜尋路徑。- 範例:
manpath
- 範例:
3. modinfo 與 modprobe:核心模組管理
modinfo命令顯示核心模組的資訊。- 範例:
modinfo snd
- 範例:
modprobe命令新增或移除核心模組。- 範例:載入核心模組的流程,包括建立符號連結、更新相依性列表和安裝模組。
Linux 系統指令大全:從核心管理到系統監控
Linux 系統提供了豐富的指令工具,用於管理系統、監控效能、除錯問題等。本文將介紹一系列關鍵的 Linux 指令,從核心管理到系統監控,幫助讀者更好地理解和使用 Linux 系統。
核心管理指令
rmmod 指令
rmmod 指令用於移除已載入的核心模組。
使用範例
# rmmod modulename
內容解密:
rmmod是 “remove module” 的縮寫,用於從核心移除指定的模組。- 需要 root 許可權執行。
modulename是要移除的模組名稱。
setkeycodes 指令
setkeycodes 指令用於設定鍵盤的 scancode 到 keycode 的對映。
使用範例
# setkeycodes e06f 112
內容解密:
setkeycodes用於修改鍵盤的 scancode 到 keycode 的對映表。e06f是 scancode,112是對應的 keycode。
slabtop 指令
slabtop 指令用於即時顯示核心的 slab 快取資訊。
使用範例
slabtop
內容解密:
slabtop類別似於top指令,但用於顯示 slab 快取資訊。- 可以用來監控系統的記憶體使用情況。
系統監控與管理指令
sar 指令
sar 指令用於收集、報告或儲存系統活動資訊。
使用範例
sar -u 2 5
內容解密:
sar是 “System Activity Reporter” 的縮寫。-u選項用於報告 CPU 使用率。2表示每 2 秒收集一次資料,5表示收集 5 次。
systemctl 指令
systemctl 指令用於控制 systemd 系統和服務管理器。
使用範例
# systemctl restart apache2
內容解密:
systemctl用於管理系統服務,如啟動、停止或重新啟動服務。restart選項用於重新啟動指定的服務。
systemd-analyze 指令
systemd-analyze 指令用於分析系統啟動效能。
使用範例
systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
內容解密:
systemd-analyze用於分析系統啟動過程中的效能瓶頸。dot選項用於生成依賴關係圖。
Shell 相關指令
script 指令
script 指令用於建立目前 shell 環境的捕捉記錄檔。
使用範例
script -t 2> timing.txt -a session.txt
內容解密:
script用於記錄 shell 環境中的所有操作。-t選項用於記錄操作時間,-a選項用於追加記錄到檔案。
shopt 指令
shopt 指令用於修改 shell 環境的選項設定。
使用範例
shopt -s cdspell
內容解密:
shopt是 “shell options” 的縮寫,用於設定或取消設定 shell 環境的選項。-s選項用於啟用指定的選項。
時間與同步指令
rtcwake 指令
rtcwake 指令用於使系統進入睡眠狀態,直到指定的喚醒時間。
使用範例
rtcwake -m disk -s 60
內容解密:
rtcwake用於控制系統的睡眠和喚醒。-m disk表示將系統掛起到磁碟,-s 60表示在 60 秒後喚醒。
systemd-timesyncd 服務
systemd-timesyncd 服務用於管理網路時間同步。
設定方法
編輯 /etc/systemd/timesyncd.conf 設定檔來組態 NTP 伺服器。
其他實用指令
seq 指令
seq 指令用於產生一個數值序列。
使用範例
seq 1000
內容解密:
seq用於產生從 1 到指定數值的序列。- 可以用於 shell 指令碼中的迴圈控制。
sort 指令
sort 指令用於對輸入進行排序。
使用範例
ls -l | sort
內容解密:
sort用於對輸入的行進行排序。- 可以與其他命令結合使用,如
ls、cat等。
Linux 系統指令大全與詳解
Linux 系統提供了豐富的指令來管理系統、處理程式、檔案操作等。本文將介紹一系列常用的 Linux 指令,涵蓋系統管理、程式管理和檔案處理等方面,並對每個指令進行詳細解釋。
系統管理指令
系統管理指令主要用於組態和管理 Linux 系統,包括設定核心引數、管理交換空間、檢視系統資訊等。
swapoff 與 swapon
swapoff 和 swapon 是用於管理交換空間的指令。交換空間是用於當實體記憶體不足時,將部分資料暫時存放於硬碟上的空間。
- swapoff:停用指定的交換裝置或檔案。
- 範例:
# swapoff -a停用所有交換空間。 - 範例:
# swapoff /dev/sda2停用指定的交換分割區。
- 範例:
- swapon:啟用指定的交換裝置或檔案。
- 範例:
# swapon -s顯示交換空間的使用情況。 - 範例:
# swapon /dev/sda2啟用指定的交換分割區。
- 範例:
sysctl
sysctl 用於在執行時期組態核心引數。
- 範例:
# sysctl -w net.ipv4.icmp_echo_ignore_all=0設定核心引數。 - 注意:需要 procfs 支援。
timedatectl
timedatectl 用於查詢或更改系統時間和日期設定。
- 範例:
timedatectl list-timezones列出所有時區。 - 相關服務:
systemd-timedated.service和systemd-timesyncd.service。
uname
uname 用於顯示作業系統和內核的相關資訊。
- 範例:
uname -a顯示詳細的系統資訊。 - 相關資訊:
cat /proc/version
uptime
uptime 用於顯示系統的運作時間。
- 範例:
uptime -p以漂亮的格式顯示運作時間。 - 相關資訊:
cat /proc/uptime
vmstat
vmstat 用於顯示虛擬記憶體的統計資訊。
- 範例:
# vmstat -s顯示記憶體和 CPU 的統計資訊。 - 相關指令:
sar,mpstat,pidstat,iostat,nfsiostat
程式管理指令
程式管理指令主要用於管理系統上的程式,包括啟動、停止、檢視程式狀態等。
batch
batch 用於在系統負載允許時執行命令。
- 範例:
rm -rf /large/directory/* | batch在系統負載低時執行刪除操作。 - 相關指令:
at
bg
bg 用於將作業放到背景執行。
- 範例:
bg 554將作業 ID 為 554 的作業放到背景執行。 - 相關指令:
fg,jobs
chrt
chrt 用於管理程式的即時排程屬性。
- 範例:
chrt -p 1022檢視程式 ID 為 1022 的排程屬性。 - 相關指令:
taskset,nice,renice
其他指令
watch
watch 用於重複執行命令並顯示輸出結果。
watch df
更多範例:
watch -n 60 from
watch -d ls -l
watch -d 'ls -l | fgrep jane'
uuidgen
uuidgen 用於產生一個新的 UUID(Universally Unique Identifier)。
- 範例:
uuidgen --sha1 --namespace @dns --name "www.example.com" - UUID 可用於唯一標識系統中的物件或實體。