返回文章列表

Linux 指令集錦提升系統管理效率

本文整理一系列 Linux 指令,涵蓋終端機管理、日期時間處理、數學運算、Shell 指令、程式開發與除錯、系統資訊設定、命令列選項解析和字型管理等導向,提供指令功能、用法與範例,協助系統管理員和程式開發者提升工作效率。

系統管理 程式開發

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/versionuname

2. lsmod:顯示已載入的核心模組

lsmod 命令列出目前已載入 Linux 核心的模組。

  • 範例:lsmod
  • 相關指令:insmodmodprobemodinfo

效能監控與分析

1. mpstat:報告處理器相關統計資訊

mpstat 命令提供處理器的相關統計資料。

  • 範例:mpstat -P ALL 2 5
  • 相關指令:sarpidstatiostatvmstat

2. nfsiostat:報告 NFS 統計資訊

nfsiostat 命令顯示 NFS(網路檔案系統)的統計資料。

  • 範例:nfsiostat
  • 相關指令:sarmpstatpidstat

3. nproc:顯示可用的處理單元數量

nproc 命令輸出系統中可用的處理單元數量。

  • 範例:nproc --all
  • 相關指令:lscpu

4. numfmt:數字與可讀字串間的轉換

numfmt 命令用於在數字和人類可讀的字串之間進行轉換。

  • 範例:
    • numfmt --to=iec 2048
    • echo 1M | numfmt --from=si
    • df -B1 | numfmt --header --field 2-4 --to=si

系統管理與控制

1. machinectl:控制 systemd 機器管理器

machinectl 命令用於管理 systemd 虛擬機器和容器。

  • 範例:
    • machinectl export-tar fedora myfedora.tar.xz
    • machinectl pull-tar https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz

2. poweroffreboot:系統關機與重啟

  • poweroff 命令用於關閉系統。
    • 範例:poweroff
  • reboot 命令用於重啟系統。
    • 範例:reboot
  • 相關指令:shutdown

其他實用指令

1. mail:電子郵件處理

mail 命令用於撰寫、接收、傳送和回覆電子郵件。

2. manmanpath:手冊頁查詢

  • man 命令顯示指定命令的手冊頁。
    • 範例:man shutdown
  • manpath 命令顯示手冊頁的搜尋路徑。
    • 範例:manpath

3. modinfomodprobe:核心模組管理

  • 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 用於對輸入的行進行排序。
  • 可以與其他命令結合使用,如 lscat 等。

Linux 系統指令大全與詳解

Linux 系統提供了豐富的指令來管理系統、處理程式、檔案操作等。本文將介紹一系列常用的 Linux 指令,涵蓋系統管理、程式管理和檔案處理等方面,並對每個指令進行詳細解釋。

系統管理指令

系統管理指令主要用於組態和管理 Linux 系統,包括設定核心引數、管理交換空間、檢視系統資訊等。

swapoff 與 swapon

swapoffswapon 是用於管理交換空間的指令。交換空間是用於當實體記憶體不足時,將部分資料暫時存放於硬碟上的空間。

  • 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.servicesystemd-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 可用於唯一標識系統中的物件或實體。