跳转到内容

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 帐户。


华夏公益教科书