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 中输入命令时,各种命令源的优先级顺序是:
- 别名
- 关键字,例如 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 帐户。