LPI Linux 認證/命令列操作
(LPIC-1 版本 5.0)
權重:4
描述
考生應能夠使用命令列與 shell 和命令互動。本目標假設使用 Bash shell。
關鍵知識領域
- 使用單個 shell 命令和單行命令序列在命令列上執行基本任務。
- 使用和修改 shell 環境,包括定義、引用和匯出環境變數。
- 使用和編輯命令歷史記錄。
- 在已定義路徑內和路徑外呼叫命令。
以下是所用檔案、術語和實用程式的清單(不完整):
bashechoenvexportpwdsetunsettypewhichmanunamehistory.bash_history- 引用
命令列具有通用格式
command [options] [arguments]
示例
pwd ls -ld or ls -l -d or ls -d -l rm -r /tmp/toto cat ../readme helpme > save more /etc/passwd /etc/hosts /etc/group find . -name *.[ch] -print date "+day is %a"
命令列可以儲存到檔案中作為指令碼。
要將字串顯示到標準輸出(stdout)上,請使用 echo。
echo [-n][string|command|$variable] echo my home directory is: $HOME echo I use the $SHELL shell
當您在 shell 中輸入命令時,各種命令源的優先順序順序是:
- 別名
- 關鍵字,例如 if、for 等。
- 函式
- 內建命令,例如 cd、type 和 kill。
- 指令碼和可執行程式,shell 會在 PATH 環境變數中列出的目錄中搜索這些程式。
如果您需要知道命令的確切來源,請執行
$ type kill kill is a shell builtin
與以下命令不同
/bin/kill
要列出所有內建命令,請使用 help。
/bin/bash
/bin/bash 可以登入時呼叫,也可以從命令列顯式呼叫。登入時,將執行以下指令碼檔案:
- /etc/profile 預設系統檔案
- $HOME/.profile 如果存在
- $HOME/.bash_profile 如果存在
當 bash 執行時,將執行以下指令碼檔案:
- /etc/bash.bashrc 如果存在
- $HOME/.bashrc 如果存在
當用戶顯式呼叫 bash shell 時,將執行以下指令碼檔案:
- /etc/bash.bashrc 如果存在
- $HOME/.bashrc 如果存在
從 bash shell 輸入的命令歷史記錄儲存在 ~/.bash_history 中。指令碼是儲存到文字檔案中的命令和操作列表,將在 shell 上下文中執行。bash 指令碼旨在設定您的環境變數等。
覆蓋 /bin/bash
每次執行程式時,都會建立一個新程序。程式終止後,程序將終止,您將返回到提示符。在某些情況下,您可以使用命令後面的 '&' 在後臺執行程式。
myscript &
在某些情況下,還可以覆蓋正在執行的 bash 程序。exec [程式] 這在您不需要返回提示符時很有用。例如,登入程式可以是一個很好的例子,用於覆蓋啟動它的 bash 程序。
exec login
可以使用 set 檢視 bash 會話中的所有區域性變數。
要宣告區域性變數,請執行
VARNAME=foo
要取消設定變數,請執行
unset VARNAME
可以使用 env 檢視所有環境變數。要宣告其他 shell 可以看到的變數,請使用 export。
export VARNAME=foo
或
VARNAME=foo export VARNAME
該變數只會被從宣告變數的位置啟動的 shell 所看到。以下是一些重要的變數:
- HOME:登入使用者的 home 目錄。
- PATH:命令搜尋路徑。
線上手冊描述了系統中提供的大部分命令。
man mkdir man cal
如果您正在所有手冊頁中查詢某個關鍵字,請使用 -k 選項。
man -k compress apropos compress
所有手冊頁的位置必須設定在 MANPATH 變數中。
echo $MANPATH /usr/local/man:/usr/share/man:/usr/X11R6/man:/opt/gnome/man
- 獲取有關 useradd 和 userdel 命令的資訊。
- 建立兩個新帳戶 user1 和 user2,並使用 passwd 命令為這些帳戶設定密碼。以 root 身份鎖定帳戶,並檢查您是否仍然可以登入。
- 連線檔案的命令是什麼?
- 宣告並初始化以下環境變數:NAME 和 LASTNAME。使用 echo 列印它們。
- 啟動一個新的 bash(輸入 bash),並檢查您是否仍然可以看到這些宣告的變數。
- 使用 exec 啟動一個新的 bash 會話。您是否仍然可以看到這些宣告的變數?
- 使用 date 顯示月份。
- 新增一個名為 notroot 的新使用者,該使用者具有 root 許可權,並鎖定 root 帳戶。