這篇文章主要分享一些我在使用 Linux 時學到的實用命令和技巧。作為一個持續學習的過程,我會不定期更新一些新發現的知識和使用心得。
Bash 命令
!!:代表上一次執行的命令。當你在命令行中輸入 !! 時,系統會自動替換為你最近執行的完整命令。

更常見的用法:

!n:執行歷史命令列表中的第 n 條命令。例如,!3 將執行第三條命令。

!string:執行最近一條以 string 開頭的命令。例如,!git 將執行最近的 git 命令。

cd -:切換到上一次所在的目錄,這對於在兩個目錄之間快速切換非常有用。

!!:s/old/new/:替換上一次命令中的某個字串,將 old 替換為 new。例如,如果上一次命令是 echo hello,執行 !!:s/hello/world/ 將變成 echo world。

$?:顯示上一次執行命令的返回值,通常用於檢查命令是否成功執行(返回值為 0 表示成功)。
創建 test.sh:
1#!/bin/bash2
3# 檢查參數數量4if [ "$#" -eq 0 ]; then5 echo "錯誤: 沒有提供參數"6 exit 100 # 返回 100 表示缺少參數7fi8
9# 檢查目標檔案是否存在10if [ ! -f "$1" ]; then11 echo "錯誤: 指定的檔案不存在"12 exit 101 # 返回 101 表示檔案不存在13fi14
15# 成功情況2 collapsed lines
16echo "檔案檢查成功"17exit 0
$!:顯示最近一個在背景中執行的命令的進程 ID(PID)。

$_:表示上一次執行命令的最後一個參數。

建議不要在生產環境使用這個參數,
$_會因為如 Alias 等程式,添加了後置參數而有所變動:
環境變數
$PATH:顯示系統查找可執行文件的路徑。用戶可以通過修改這個變數來添加新的可執行文件路徑。
$HOME:表示當前用戶的主目錄,通常是用戶的個人文件夾。
$USER:顯示當前登錄用戶的名稱。
$SHELL:顯示當前使用的 shell 程序的路徑,例如 /bin/bash。
$PWD:顯示當前工作目錄的完整路徑。
$HOSTNAME:顯示當前主機名稱。
用戶骨架 /etc/skel
/etc/skel 是 Linux 系統中用來存放用戶「骨架配置」的目錄,當你新增一個使用者時,/etc/skel 中的檔案和目錄會被自動複製到新使用者的主目錄(如 /home/username)。
目錄結構
/etc/skel 通常包含以下文件:
1/etc/skel2├── .bashrc # 預設的 Bash 配置文件3├── .profile # 用於定義登入時的環境變數4└── .bash_logout # 登出時執行的腳本其實還有 .bash_profile (Ubuntu 預設不創建),如果
bash_profile,.profile同時存在,bash 只會加載bash_profile
演示


清理
1$ sudo userdel -r test12userdel: test1 mail spool (/var/mail/test1) not found3######4$ id test1 -Gn5id: ‘test1’: no such user