工具指令

系統工具、壓縮解壓與輔助指令

壓縮解壓

tar

文件打包

# 解壓
tar -xf [.tar] -C [location]

# 打包
tar -cvf archive.tar files/

# 打包並壓縮 (gzip)
tar -czvf archive.tar.gz files/

# 解壓 gzip
tar -xzvf archive.tar.gz

系統工具

alias

為長命令創建別名

# 創建別名
alias foobar='ls -la'

# 永久保存別名
# 編輯 ~/.bashrc

# 移除別名
unalias foobar

base64

Base64 編碼/解碼

# 生成隨機字符文件 (1GB 可讀文件)
base64 /dev/urandom | head -c 1G > 1gb_file.txt

bc

Linux 標準計算工具

# 進制轉換
Hex=FF
echo "obase=10; ibase=16; $Hex" | bc

# 使用數學庫
a=$1
b=$2
c=$3
sum=$(( a + b + c))
average=$(echo "$sum / 3" | bc -l)
echo $average

chmod

變更文件權限

# 使用數字方式
chmod 755 test.txt

# 使用符號方式
chmod u=rwx,g=rx,o=x test.txt
chmod a+rx my-script.sh

# 常用選項
# -c : 顯示變更的部分
# -f : 不顯示錯誤信息
# -v : 顯示詳細信息
# -R : 遞歸處理目錄

chown

變更文件擁有者

# 基本用法
chown [Options] NewOwner File
chown [Options] Group File

# 遞歸變更
chown -R [帳號名稱/檔案/目錄]
chown -R [帳號名稱:群組名稱/檔案/目錄]

# 實例
chown bin initial-setup-ks.cfg
chown root:root initial-setup-ks.cfg

clear

清除螢幕

clear -x

command

檢查命令是否存在

command -v htop

declare

變量聲明和管理

# 列出所有變量
declare -p

# 創建變量
declare myvariable=1111

# 設置唯讀變量
declare -r pwdfile=/etc/passwd

echo

輸出文本

# 基本輸出
echo Hello World > peanuts.txt

# 顯示變量
echo $HISTFILESIZE
echo $SHELL

# 自定義輸出
echo -e "\aHello World"     # 聲音
echo -e "This is a Linux\n server."  # 換行
echo -e "This is a \t Linux server." # Tab

# 時間戳記錄
echo "Logfile started: $(date +'%D + %T')" > log.txt

env

環境變量管理

# 顯示所有環境變量
env

# 設置環境變量
export JAVA_HOME=/usr/bin/java

# 持久化環境變量
vi ~/.bashrc
source .bashrc

# 創建全局變量
export GLOBAL_VARIABLE="This is a global variable"

help

顯示內建命令的幫助信息

help cd
cd --help

history

命令歷史記錄管理

# 顯示歷史記錄
history

# 刪除特定行
history -d 100

# 清除全部歷史
history -c

# 清除歷史文件
history -w

journalctl

系統日誌查看器

journalctl --since "2023-12-26 00:00:00" --until "2024-01-01 23:59:59"

ldconfig

更新共享庫緩存

ldconfig -p

ldd

顯示程序依賴的共享庫

ldd ./api

man

系統手冊

# 查看特定命令的手冊
man whoami

# 搜尋命令
man -k uname
man -k "copy files"

md5sum

快速哈希比較

md5sum file1.txt file2.txt

od

讀取字節並以特定格式打印

# 讀取 4 個字節並以無符號整數格式打印
od -An -N4 -tu4 /dev/urandom

passwd

密碼管理

# 修改 root 密碼
sudo passwd root

# 修改用戶密碼
passwd username

printenv

顯示環境變量

printenv | less

read

讀取輸入

read -p "Enter variable name:" [variable]

sha256sum

為大文件生成更安全的哈希值進行比較

sha256sum file1.txt file2.txt

su

切換用戶

su - [user_name]

tee

讀取標準輸入並寫入文件

echo "hello" | tee output.txt

time

執行時間統計

time command

type

查看命令類型

type echo
type mv

usermod

修改用戶賬戶

usermod -s [shell] [user_name]

whatis

顯示命令簡短描述

whatis cat

which

定位命令位置

which [file_name]

xxd

查看或建立十六進制數據

# 基本用法 - 十六進制顯示
xxd file.txt

# 只顯示指定字節數
xxd -l 32 file.txt

# 以純十六進制格式顯示(無 ASCII 部分)
xxd -p file.txt

# 反向轉換(十六進制轉二進制)
xxd -r input.hex output.bin

# 按特定列寬顯示
xxd -c 16 file.txt

# 顯示偏移量(以特定數字開始)
xxd -s 0x1000 file.txt

# 生成 C 語言數組格式
xxd -i file.txt