這篇文章主要分享一些我在使用 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