跳转到内容

LPI Linux 认证/LPI-101 练习结果

来自 Wikibooks,开放世界中的开放书籍
LPI logo

硬件与架构

[编辑 | 编辑源代码]

配置基本 BIOS 设置

[编辑 | 编辑源代码]

显示可用的物理内存量
free

cat /proc/meminfo | grep MemTotal
哪些设备共享一个中断线?
cat /proc/interrupts | more
有多少个 PCI 总线和桥接器?
lspci | wc -l
是否存在任何 PCI/ISA 桥接器?
lspci | grep 'PCI\|ISA'
lspci 命令的选项是什么,用于列出所有 Intel PCI 设备?
lspci -d 8086:*
将 IDE 硬盘设置为只读模式的命令是什么?
hdparm -r1 <device>
打开/关闭硬盘缓存的命令是什么?
hdparm -W1 <device>    hdparm -W0 <device>
setpci 实用程序的作用是什么?
setpci 是一个用于查询和配置 PCI 设备的实用程序。
将一个字写入 PCI 设备的寄存器 N 的命令是什么?
setpci -s 12:3.4 N.W=1
.

配置调制解调器和声卡

[编辑 | 编辑源代码]

设置 SCSI 设备

[编辑 | 编辑源代码]

设置不同的 PC 扩展卡

[编辑 | 编辑源代码]

配置通信设备

[编辑 | 编辑源代码]

配置 USB 设备

[编辑 | 编辑源代码]

Linux 安装与软件包管理

[编辑 | 编辑源代码]

设计硬盘布局

[编辑 | 编辑源代码]

定期显示虚拟内存使用情况
vmstat -n 1

安装引导管理器

[编辑 | 编辑源代码]

从源代码制作和安装程序

[编辑 | 编辑源代码]

从源代码编译和安装程序应遵循哪些步骤?
./configure
make
make install

管理共享库

[编辑 | 编辑源代码]

使用 Debian 软件包管理

[编辑 | 编辑源代码]
To see what will be installed on your computer, use the command:
 dpkg -c package_name.deb
If the package is already installed, you can see also what files were installed:
 dpkg -L package_name

dpkg-reconfigure <package name>

使用 Red Hat 软件包管理器 (RPM)

[编辑 | 编辑源代码]
To see what will be installed on your computer, use the command:
 rpm -qpl package_name.rpm

GNU 与 Unix 命令

[编辑 | 编辑源代码]

在命令行上工作

[编辑 | 编辑源代码]

获取有关 useradd 和 userdel 命令的信息。
man useradd
man userdel
假设你将 $PAGER 设置为 less;使用空格键翻页,使用 B 返回。

创建两个新帐户 user1 和 user2,并使用 passwd 命令为这些帐户设置密码。以 root 用户身份锁定帐户并检查你是否仍然可以登录。

连接文件的命令是什么?
cat file1 file2

声明并初始化以下环境变量 NAME 和 LASTNAME。使用 echo 打印它们。
set NAME="Joe"
set LASTNAME="Bloggs"
echo "$NAME $LASTNAME"


启动一个新的 bash(输入 bash)并检查你是否仍然可以看到那些声明的变量。


使用 exec 启动一个新的 bash 会话。你仍然可以看到那些声明的变量吗?


使用 date 显示月份。

添加一个名为 notroot 的新用户,赋予 root 权限并锁定 root 帐户。GNU 和 UNIX 命令

这是一个技巧问题。唯一具有 root 权限的帐户是 UID 为零的帐户。

可以更改 /etc/passwd,使“root”称为其他名称,这将具有类似的效果;帐户“root”将不再存在。除了可能翻译成外语,我无法理解这么做的意义。

可以在文件系统上的所有文件上设置 SUID 位,以实现这种真实的“Redmond 风格”安全性,但同样,为什么要这么做呢?



使用过滤器处理文本流

[编辑 | 编辑源代码]
  1. Use wildcard characters and list all filenames that contain any character followed by 'in' in the /etc directory.
       ls /etc/in*
  2. Use wildcard characters and list all filenames that start with any character between 'a' and 'e' that have at least two more characters and do not end with a number.
       ls [a-e]?*[!0-9]
  3. Use wildcard characters and list all filenames of exactly 4 characters and all filenames starting with an uppercase letter. Do not descend into any directory found.
       ls -d [A-Z]???
  4. Use wildcard characters and list all files that contain 'sh' in /bin.
  5. Display your environment variable HOME preceded by the string "$HOME value is:"
  6. Display the contents of $SHELL with two asterisk characters before and after it.
  7. How would you display the following string of characters as is with echo using double quote and \.
         * @ # $ % ^ & * ( ) ' " \
  8. Compose echo commands to display the following two strings:
         * That's what he said!
         * 'Never Again!' he replied.
  9. Display the number of words in all files that begin with the letter 'h' in the /etc directory.
 10. How would you send a 2M (megabyte) file with two 1.44 M floppy. How would you put back together the split file?
 11. What is the command to translate the : delimiter in /etc/password by #?
         cat /etc/password | tr ":" "#"

执行基本文件管理

[编辑 | 编辑源代码]
  1. Compose an interactive command to remove all .tmp files in your home directory. Respond y to every prompt.

rm -i ~/*.tmp

  2. List all the files in the user's home directories ending with .pdf that are bigger than 50 blocks and have not been accessed for a month.

find /home -name "*.pdf" -atime +30 -size +50 -print

  3. Create a file file.h that will contain all the filenames ending with .h found in the /usr directory.

find /usr -name "*.h" > file.h

  4. Do a touch on all the c files found in /usr/src/packages directory.
  5. What are the default permissions when you create a new file and a new directory?
     new file --> 644
     new directory --> 755
  6. How would you create a new file or directory that contains a space in the filename? (Example: 'new dir')
     touch new\ file.txt
     mkdir new\ dir
      
  7. What is the command to remove all the files of types char and block in your home directory?
  8. How would you find the location of the program find?
  9. Delete all files in /tmp which are not owned by root and have not been accessed for a week.

使用流、管道和重定向

[编辑 | 编辑源代码]

1. 创建一个名为 list.bin 的文件,其中包含 /bin 目录中的所有文件名。

ls /bin > list.bin

2. 编写一个命令,将 /usr/local/bin 中的文件列表追加到名为 list.bin 的文件,并丢弃任何错误输出。

ls /usr/local/bin >> list.bin 2>/dev/null

3. 将 list.bin 文件拆分为 50 行长的文件,并删除 list.bin。

split -l 50 list.bin
rm -f list.bin

4. 从拆分的文件中重新创建 list.bin(但以相反的顺序)。

cat xab xaa > list.bin

7. 编写一个命令,创建一个名为 list.sbin 的文件,其中包含 /sbin 的内容,并同时将其显示到标准输出。

ls /sbin | tee sbin.txt

8. 创建一个文件,在文件名中包含创建时间。

ls -l /sbin > `date +%d_%m_%y.txt`

9. 创建一个文件,其中包含 /etc 目录中扩展名为 .conf 的所有文件名,以相反的顺序。ls *.conf

ls /etc/*\.conf > first.txt
tac first.conf > end_list.txt
rm -f first.txt

创建、监视和杀死进程

[编辑 | 编辑源代码]

1. 如何控制 PID 为 3196 的进程的 CPU 使用率

top -p 3196
renice -20 3196

修改进程执行优先级

[编辑 | 编辑源代码]

使用正则表达式搜索文本文件

[编辑 | 编辑源代码]

使用 vi 执行基本文件编辑操作

[编辑 | 编辑源代码]

当然,所有以下 vi 命令都必须在命令模式下输入。

  1. vi foo
  2. 最常用的是i,但还有其他进入命令模式的方法。
  3. ZZ
  4. vi foo
  5. o在光标位置下方打开一个新行,并将你置于命令模式。i将你直接置于命令模式,而不会创建新行,因此o效率更高。
  6. 按 esc 退出命令模式
  7. :q!

设备、Linux 文件系统、文件系统层次结构标准

[编辑 | 编辑源代码]

创建分区和文件系统

[编辑 | 编辑源代码]

维护文件系统的完整性

[编辑 | 编辑源代码]

控制挂载和卸载文件系统

[编辑 | 编辑源代码]

管理磁盘配额

[编辑 | 编辑源代码]

使用文件权限控制对文件的访问

[编辑 | 编辑源代码]

管理文件所有权

[编辑 | 编辑源代码]

1.

 chmod u=rwx,g=rwx,o=rx <file>
 chmod u=rwx,g=r,o=r <file>
 chmod u=r,g=r,o= <file>
 chmod u=rwx,g=rx,o=rx <file>
 chmod u=rwx,g=rx,o=rx <file>
 chmod u=rx,g=x,o=x <file>
 chmod u=w,g=r,o=x <file>
 chmod u=,g=,o= <file>
 chmod u=,g=x,o=rwx <file>

2.

 chmod 777 <file>
 chmod 111 <file>
 chmod 421 <file>
 chmod 200 <file>
 chmod 640 <file>
 chmod 711 <file>

3.

 umaskː    0   0   2   7
 binaryː   000 000 010 111
 ̃invertedː 111 111 101 000

文件权限:逻辑与 0666

 ̃inverted maskː       111 111 101 000
 default permissionsː 000 110 110 110
 result of ANDː       000 110 100 000
 result in octalː     0   6   4   0
 resulting permissionsː   rw- r-- ---

目录权限:逻辑与 0777

 ̃inverted maskː       111 111 101 000
 default permissionsː 000 111 111 111
 result of ANDː       000 111 101 000
 result in octalː     0   7   5   0
 resulting permissionsː   rwx r-x ---


 umaskː    0   0   1   1
 binaryː   000 000 001 001
 ̃invertedː 111 111 110 110

文件权限:逻辑与 0666

 ̃inverted maskː       111 111 110 110
 default permissionsː 000 110 110 110
 result of ANDː       000 110 110 110
 result in octalː     0   6   6   6
 resulting permissionsː   rw- rw- rw-

目录权限:逻辑与 0777

 ̃inverted maskː       111 111 110 110
 default permissionsː 000 111 111 111
 result of ANDː       000 111 110 110
 result in octalː     0   7   6   6
 resulting permissionsː   rwx rw- rw-


 umaskː    0   5   4   1
 binaryː   000 101 100 001
 ̃invertedː 111 010 011 110

文件权限:逻辑与 0666

 ̃inverted maskː       111 010 011 110
 default permissionsː 000 110 110 110
 result of ANDː       000 010 010 110
 result in octalː     0   2   2   6
 resulting permissionsː   -w- -w- rw-

目录权限:逻辑与 0777

 ̃inverted maskː       111 010 011 110
 default permissionsː 000 111 111 111
 result of ANDː       000 010 011 110
 result in octalː     0   2   3   6
 resulting permissionsː   -w- -wx rw-


 umaskː    0   7   7   7
 binaryː   000 111 111 111
 ̃invertedː 111 000 000 000

文件权限:逻辑与 0666

 ̃inverted maskː       111 000 000 000
 default permissionsː 000 110 110 110
 result of ANDː       000 000 000 000
 result in octalː     0   0   0   0
 resulting permissionsː   --- --- ---

目录权限:逻辑与 0777

 ̃inverted maskː       111 000 000 000
 default permissionsː 000 111 111 111
 result of ANDː       000 000 000 000
 result in octalː     0   0   0   0
 resulting permissionsː   --- --- ---
[编辑 | 编辑源代码]

1.

mkdir ~/etc ~/bin

2.

cp -r /etc/* ~/etc/
# or
cp -r /etc/ ~/
# or
rsync -a /etc/ ~/etc/

2.

# recursive variant using find
find -name '*.conf' -exec mv {} {}.bak \;
# non recursive variant using rename
rename 's/\.conf/\.conf\.bak/' *.conf

4.

ln -s ~/bin/ls ~/dir
~/dir

5.

rm ~/dir
# or
unlink ~/dir

~/bin/ls 文件在这两种情况下都不会丢失。

查找系统文件并将文件放置在正确的位置

[编辑 | 编辑源代码]

X 窗口系统

[编辑 | 编辑源代码]

安装和配置 XFree86

[编辑 | 编辑源代码]

设置显示管理器

[编辑 | 编辑源代码]

安装和定制窗口管理器环境

[编辑 | 编辑源代码]
华夏公益教科书