跳轉到內容

LPI Linux 認證/命令列操作

來自華夏公益教科書

詳細目標

[編輯 | 編輯原始碼]

(LPIC-1 版本 5.0)

權重:4

描述
考生應能夠使用命令列與 shell 和命令互動。本目標假設使用 Bash shell。

關鍵知識領域

  • 使用單個 shell 命令和單行命令序列在命令列上執行基本任務。
  • 使用和修改 shell 環境,包括定義、引用和匯出環境變數。
  • 使用和編輯命令歷史記錄。
  • 在已定義路徑內和路徑外呼叫命令。

以下是所用檔案、術語和實用程式的清單(不完整):

  • bash
  • echo
  • env
  • export
  • pwd
  • set
  • unset
  • type
  • which
  • man
  • uname
  • history
  • .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 和 Bash

[編輯 | 編輯原始碼]

當您在 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

Shell 變數

[編輯 | 編輯原始碼]

可以使用 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
  1. 獲取有關 useradd 和 userdel 命令的資訊。
  2. 建立兩個新帳戶 user1 和 user2,並使用 passwd 命令為這些帳戶設定密碼。以 root 身份鎖定帳戶,並檢查您是否仍然可以登入。
  3. 連線檔案的命令是什麼?
  4. 宣告並初始化以下環境變數:NAME 和 LASTNAME。使用 echo 列印它們。
  5. 啟動一個新的 bash(輸入 bash),並檢查您是否仍然可以看到這些宣告的變數。
  6. 使用 exec 啟動一個新的 bash 會話。您是否仍然可以看到這些宣告的變數?
  7. 使用 date 顯示月份。
  8. 新增一個名為 notroot 的新使用者,該使用者具有 root 許可權,並鎖定 root 帳戶。


華夏公益教科書