Vinc3nt's Life

Linux 學習筆記 01:Bash 命令與環境設定

2024-12-01
develop
linux
bash
最後更新:2025-02-14
4分鐘
708字

這篇文章主要分享一些我在使用 Linux 時學到的實用命令和技巧。作為一個持續學習的過程,我會不定期更新一些新發現的知識和使用心得。

Bash 命令

!!:代表上一次執行的命令。當你在命令行中輸入 !! 時,系統會自動替換為你最近執行的完整命令。

default

更常見的用法:

default

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

default

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

default

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

default

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

default

$?:顯示上一次執行命令的返回值,通常用於檢查命令是否成功執行(返回值為 0 表示成功)。

創建 test.sh:

1
#!/bin/bash
2
3
# 檢查參數數量
4
if [ "$#" -eq 0 ]; then
5
echo "錯誤: 沒有提供參數"
6
exit 100 # 返回 100 表示缺少參數
7
fi
8
9
# 檢查目標檔案是否存在
10
if [ ! -f "$1" ]; then
11
echo "錯誤: 指定的檔案不存在"
12
exit 101 # 返回 101 表示檔案不存在
13
fi
14
15
# 成功情況
2 collapsed lines
16
echo "檔案檢查成功"
17
exit 0

default

$!:顯示最近一個在背景中執行的命令的進程 ID(PID)。

default

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

default

建議不要在生產環境使用這個參數,$_ 會因為如 Alias 等程式,添加了後置參數而有所變動: default

環境變數

$PATH:顯示系統查找可執行文件的路徑。用戶可以通過修改這個變數來添加新的可執行文件路徑。

$HOME:表示當前用戶的主目錄,通常是用戶的個人文件夾。

$USER:顯示當前登錄用戶的名稱。

$SHELL:顯示當前使用的 shell 程序的路徑,例如 /bin/bash

$PWD:顯示當前工作目錄的完整路徑。

$HOSTNAME:顯示當前主機名稱。

用戶骨架 /etc/skel

/etc/skel 是 Linux 系統中用來存放用戶「骨架配置」的目錄,當你新增一個使用者時,/etc/skel 中的檔案和目錄會被自動複製到新使用者的主目錄(如 /home/username)。

目錄結構

/etc/skel 通常包含以下文件:

Terminal window
1
/etc/skel
2
├── .bashrc # 預設的 Bash 配置文件
3
├── .profile # 用於定義登入時的環境變數
4
└── .bash_logout # 登出時執行的腳本

其實還有 .bash_profile (Ubuntu 預設不創建),如果 bash_profile, .profile 同時存在,bash 只會加載 bash_profile

演示

default

default

清理

Terminal window
1
$ sudo userdel -r test1
2
userdel: test1 mail spool (/var/mail/test1) not found
3
######
4
$ id test1 -Gn
5
id: ‘test1’: no such user
本文標題:Linux 學習筆記 01:Bash 命令與環境設定
文章作者:Vincent Lin
發布時間:2024-12-01