简答题
vim
有几种工作模式?各模式可实现什么功能?vim
编辑器的工作模式分为命令模式、插入模式和底行模式,其中命令模式可执行光标移动、删除、复制、粘贴等操作;插入模式可实现文本编辑操作;底行模式可实现退出、查找等功能。网络连接存储 NAS(Network Attached Storage)
NAS 是一种远程文件服务的方法,多个存储设备通过网络协议和一群计算机相连接。用户不是在用户自己的文件系统上使用该软件,其文件访问被重定向到使用远程协议(CIFS 或 NFS)的其他设备,该设备有自己的文件系统和服务来执行文件 I/O,实现文件共享和集中数据管理。NAS 以网络为中心,利用现有 IP 网络资源就能从存储数据的服务器获取数据。用户可以像在本地驱动器上一样复制和粘贴文件或整个文件夹。但其网络协议开销大,访问速度高的场合(如数据库应用)不适合使用 NAS,一般也很难管理多个相关设备,不能跨越不同设备。
直接连接存储 DAS(Direct Attached Srorage)
DAS 本质是硬件设备的累加,多个存储设备通过光纤或 SCSI 接口直接连接到主机。存在服务器一旦故障,存储数据难恢复的问题。其存储维护管理和 I/O 读写依赖服务器的主机操作系统,数据存储一般占用 30%左右主机资源,存储数据量很大时,需要耗费时间长,对服务器硬件有一定影响。另外,该存储方式不具备共享性。
举例说明
cat
、more
和less
命令的用法。cat 命令可以把多个文件连接后输出到标准输出(屏幕)或加―>文件名输出到另一个文件中。如显示当前目录下文件
testfile1
的内容可用如下命令:cat testfile1
。more 命令显示文本文件的内容,一次显示一屏,满屏后停下来,可按键继续。如显示
/etc/profile
文件的内容,每屏 10 行可用如下命令:more -10 /etc/profile
。less 命令与 more 命令相似,分屏显示文件的内容。less 命令允许用户向前(pageup)或向后(pagedown)浏览文件。如文件
/etc/profile
中查找字符串”hostname”,并从该字符串后显示可以如下命令:less -p hostname /etc/profile
。如何把
/tmp/etc/man.conf
移动到/tmp
下并改名为test.conf
设置所有人都有读写执行权限?1
2mv /tmp/etc/.conf /tmp/test.conf
chmod 777 /tmp/test.conf论述从 SSH 客户端来看,SSH 服务端主要提供两种级别的安全验证。
基于口令的安全验证和基于密钥的安全验证
基于口令的安全验证方式是最为用户所熟悉的,服务器端保存用户的 SSH 连接账号和口令,用户在客户端向服务器的 SSH 端口(默认为 22)提出登录请求,用户输入的身份和口令信息传递到服务器端验证合法性,如果通过验证就可以建立连接开始通信。该方式下,认证和通信过程都有密码技术的结合,口令可以散列化处理后再传输,通信信息也能保证信息的机密性,但在双向身份认证上有缺陷,不能判断服务器是否是冒充的。
基于密钥的安全验证
基于密钥的安全验证方式是基于公钥密码技术,通信双方要事先各建立一对密钥,用户需把公钥(Public Key)放在待访问的目标服务器上,私钥(Private Key)可保管在 SSH 客户端。客户端向 SSH 服务器发出请求时,服务器会先在服务器上寻找事先存放的对应用户的公钥,然后把它和 SSH 客户端发送过来的公钥进行比较,如果两个密钥一致,服务器用公钥加密质询(Challenge)发送给 SSH 客户端,SSH 客户端收到质询后用自己的私钥解密,再把验证信息发送给 SSH 服务器。该认证过程双方都可要求实行预存对方公钥,可实现双向身份认证,防止任何一方的身份冒充。
如何查看
/etc
下的所有文件,并从人性化的长格式显示还能区分是什么文件?1
2
3ls -alh --color /etc
ls -alh /etc
ll -ah /etc编程题:利用匿名管道实现父子进程间的通信,子进程对父进程说”hello”。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
int main()
{
int pipe_fd[2];
if (pipe(pipe_fd) < 0)
{
perror("pipe create error");
return -1;
}
printf("pipe create success\n");
if (fork() > 0)
{
// Father process
int r;
char buf[15 + 1];
printf("*** Want to read from son\n");
r = read(pipe_fd[0], buf, 15); // 从管道读端读取数据到 buf
buf[r] = '\0';
printf("*** FATHER Got strings: %s\n", buf);
}
else
{
// Son process
const char *test = "a test string !";
printf("Son sleep:\n");
sleep(5);
printf("SonWrite after sleep: %s\n", test); // 2
write(pipe_fd[1], test, strlen(test)); // 从管道写端写入 test
}
close(pipe_fd[1]);
return 0;
}写出 shell 脚本中
while
循环与until
循环的基本格式,并简述这两种循环结构的区别。while 循环的语法格式为:
1
2
3
4while [ 表达式 ]
do
code
doneuntil 循环的语法格式为:
1
2
3
4until [ 表达式 ]
do
code
donewhile 和 until 的区别在于: while 会先进行表达式判断,若表达式满足,才执行循环体,直到表达式不满足为止;而 until 则会先执行循环体,再进行表达式判断,直到表达式不成立时,才结束循环。until 循环至少会执行一次。
编写一个循环输出字符串”Hello”的程序,利用键盘
Ctrl+C
或kill
发信号终止该程序。程序执行时捕获信号会输出已接收,输出”OK”后结束。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
volatile sig_atomic_t received_signal = 0;
void signal_handler(int sig) {
received_signal = sig;
printf("Received signal: %d\n", sig);
}
int main() {
signal(SIGINT, signal_handler); // 捕获Ctrl+C
signal(SIGTERM, signal_handler); // 捕获kill命令
while (1) {
printf("Hello\n");
sleep(1);
if (received_signal != 0) {
printf("OK\n");
break;
}
}
return 0;
}编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默认的”123456”作为默认密码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24!/bin/bash
编写脚本: 提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。
如果用户不输入账户名,则提示必须输入账户名并退出脚本;
如果用户不输入密码,则统一使用默认的 123456 作为默认密码。
read -p "请输入用户名: " user
使用 -z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本,退出码为 2
没有输入用户名脚本退出后,使用$?查看的返回码为 2
if [ -z "$user" ]; then
echo "您必须输入账户名"
exit 2
fi
使用 stty -echo 关闭 shell 的回显功能
使用 stty echo 打开 shell 的回显功能
stty -echo
read -p "请输入密码: " pass
stty echo
pass=${pass: -123456}
useradd "$user"
此行代码有问题
echo "$pass" | passwd --stdin "$user"1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24!/bin/bash
提示用户输入用户名
read -p "请输入用户名: " username
检查是否输入了用户名
if [ -z "$username" ]; then
echo "错误:必须输入用户名。"
exit 1
fi
提示用户输入密码,如果没有输入则使用默认密码
read -p "请输入密码(默认密码为123456): " -s password
echo
if [ -z "$password" ]; then
password="123456"
fi
创建用户并设置密码
useradd "$username"
echo "$username:$password" | chpasswd
echo "用户 $username 创建成功,密码已设置。"如何删除
/tmp
下所有”A”开头的文件?1
2rm -rf /tmp/A*
rm /tmp/A*如何通过命令行重启 Linux 操作系统?
1
shutdown -r now | reboot | init 6
/var
下一般放置什么文件?大型文件的溢出区
shell 中都有哪些引号,它们之间的区别是什么?
在 shell 中引号分为三种: 单引号,双引号和反引号。
单引号 (‘) 由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后也会失去原有意义,而只作为普通字符解释。
双引号(“)由双引号括起来的字符,除$、\、‘、和‖这几个字符仍是特殊字符并保留其特殊功能外,其余字符作为普通字符对待。
反引号(`)反引号括起来的字符串被 shell 解释为命令,在执行时。shell 首先执行该命令。并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
简单说明 vi 编辑器的工作模式,并画图说明各模式间的切换方法。
vi 编辑器的工作模式分为命令模式、插入模式和底行模式。其中命令模式可执行光标移动、删除、复制、粘贴等操作;插入模式可实现文本编辑操作;底行模式可实现退出、查找等功能。
备份日志
1
vim /root/logbak.sh
1
2
3
4
5
6
7!/bin/bash
每周 5 使用 tar 命令备份/var/log 下的所有日志文件
vim /root/logbak.sh
编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖
注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面
tar -czf log-$(date +%Y%m%d).tar.gz /var/log1
2crontab -e # 编写计划任务,执行备份脚本
在定时任务管理文件内添加内容:`00 03 * * 5 /root/logbak.sh`简述 gcc 编译器的工作流程,并说明每步执行的内容。
gcc 的编译过程分为四个步骤,分别是预处理、编译、汇编和链接。
预处理阶段主要处理源代码中以“#”开头的预编译指令和一些注释信息;
编译阶段 gcc 会对经过预处理的文件进行语法、词法和语义分析,确定代码实际要做的工作,若检查无误,则生成相应的汇编代码文件;
汇编阶段将编译后生成的汇编代码转换为机器可以执行的命令;
链接的过程是组装各个目标文件的过程,在这个过程中会解决符号依赖和库依赖关系,最终生成可执行文件。
监控内存和磁盘容量,小于给定值时报警。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20!/bin/bash
实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员
while :
do
# 提取根分区剩余空间
disk_size=$(df / | awk '/\//{print $4}')
# 提取内存剩余空间
mem_size=$(free | awk '/Mem/{print $4}')
# 注意内存和磁盘提取的空间大小都是以 Kb 为单位
if [ $disk_size -le 512000 -a $mem_size -le 1024000 ]
then
mail -s "Warning" root <<EOF
Insufficient resources,资源不足
EOF
fi
sleep 60
done编写 shell 脚本,首先批量删除用户功能,其中用户的用户名格式统一(如
qwe1
~`qwe9)。删除的用户名采用统一格式,因此可使用
user00+数字`的方式实现,其中前缀由用户手动输入,后缀数字可通过循环逐次递增。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18!/bin/bash
delusers
echo "------del 9 users------"
echo "please input a string: "
read user
for i in {1..9}; do
username="$user$i"
userdel -r "$username"
if [ $? -eq 0 ]; then
echo "del $username successful"
else
echo "del $username failure"
fi
done
exit设置
/test/a.txt
属主有读写执行权限,属组,有读写,其他账户无权限。1
chmod 760 /test/a.txt
如何删除
g2
组的用户u
?1
gpasswd -d u g2
vim
如何把文档中的50
到100
行之间的man
改MAN
?1
:50,100s/man/MAN/g
如何通过
vim
编辑打开/tmp/test.conf
?1
vim /tmp/test.conf
如何查看
/etc/passwd
的头3
行和尾3
行?1
2head -3 /etc/passwd
tail -3 /etc/passwd日志一般都存放在那个目录下。
/var/log
通过位置变量创建 Linux 系统账户及密码。
1
2useradd "$1"
echo "$2" | passwd ‐‐stdin "$1"1
2useradd "$1"
echo "$1:$2" | chpasswd修改
/tmp/test.conf
的属主为u1
,属组为u2
。1
chown u1:u2 /tmp/test.conf
什么命令可以统计当前系统中一共有多少账户?
1
wc -l /etc/passwd
添加账户
u1
,为其指定附加组g1
,并设置2013—04—04
账户到期。1
useradd -G g1 -e 2013-04-04 u1
如何只查看
/etc
单个目录的信息并以长格式显示?1
2ls -ld /etc # -d只显示目录本身的属性
ll -d /etc如何查看系统最后创建的 3 个组?
1
tail -3 /etc/group
查看有多少远程的 IP 在连接本机。
1
netstat -an | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
论述 FTP 服务实现过程。
- FTP 客户端程序向远程的 FTP 服务器端发申请建立连接。
- FTP 服务器端的 21 号端口侦听到 FTP 客户端的请求,作出响应,建立会话连接。
- FTP 客户端程序打开一个控制端口,连接到 FTP 服务器的 21 号端口。
- 需要传输数据时,FTP 客户端打开一个数据端口,连接到 FTP 服务器的 21 号端口,文件传输完毕后,断开会话连接,释放端口。
- 如果要传输新的文件,FTP 客户端会再打开一个新的数据端口,连接到 FTP 服务器 21 号端口,继续进行文件传输。
- 如果不再传输新的文件,会等待一段时问。当空闲时间超过规定后,FTP 会话自动终止。当然,也可以由 FTP 客户端或服务器强行断开。
一键部署LNMP(源码安装版本)
太多了,略,上网查。
如何把
/etc
复制到/tmp
下并保持原属性不变。1
sudo cp -a /etc /tmp
使用死循环实时显示
eth0
网卡发送的数据包流量。1
watch -n 1 "ifconfig eth0 | grep 'TX packets'"
提升用户
usr1
的权限,要求usr1
可登入所有主机、可切换至所有用户、可执行所用命令。1
sudo visudo
添加内容
1
usr1 ALL=(ALL:ALL) ALL
什么是 shell?linux 的 shell 主要有哪几种类型?
Shell(壳)是操作系统的一种用户界面,提供了用户与操作系统内核进行交互的途径。在计算机科学中,Shell 通常是一个命令解释器,接受用户输入的命令并将其转换为操作系统能够理解的指令。
在 Linux 系统中,有许多不同类型的 Shell。以下是一些常见的 Linux Shell 类型:
- Bash(Bourne Again Shell):
- Bash 是 Linux 系统中最常用的 Shell,默认终端使用的通常也是 Bash。它是 Bourne Shell(sh)的扩展,提供了许多便捷的特性,如命令补全、命令历史等。
- sh(Bourne Shell):
- Bourne Shell 是 Unix 系统上的原始 Shell,它是许多其他 Shell 的基础。尽管不如 Bash 功能强大,但在某些嵌入式系统或特定场景下可能仍然在使用。
- csh(C Shell):
- C Shell 以 C 语言风格的语法为特征。它包含了一些独特的功能,如命令行历史的可视化。
- ksh(Korn Shell):
- Korn Shell 是 Bourne Shell 的扩展,融合了 C Shell 的某些特性。它提供了更多的脚本编程功能和用户友好的交互。
- tcsh(Tenex C Shell):
- tcsh 是 C Shell 的扩展版本,提供了一些额外的特性,如命令行编辑和历史替代。
- Zsh:
- Zsh 是一个功能强大的 Shell,它具有高级的命令行编辑和插件支持。它被设计成用户友好和可扩展的 Shell。
9*9 乘法表
1
2
3
4
5
6
7
8
9
10
11!/bin/bash
for h in {1..9}
do
for l in `seq $h`
do
jieguo=$[h*l]
printf "$l*$h=$jieguo\t"
done
printf "\n"
done
选择题
若需要在当前终端上顺序执行命令,则应使用下列哪个符号连接?(B)
- A.
|
- B.
;
- C.
||
- D.
&&
- A.
在一个
bash shell
脚本的第一行上应加入下面所示中的哪一条语句?(B)- A.
#/bin/bash
- B.
#!/bin/bash
- C.
/bin/bash
- D.
#/bin/csh
- A.
Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是(A)。
- A. 文件所有者所在组的权限
- B. 文件类型
- C. 其他用户的权限
- D. 文件所有者的权限
在 vi 全屏幕文本编辑器中,在指令模式下键入哪条命令将实现文件的不保存强制退出效果(C)。
- A.
ZZ
- B.
:q
- C.
:q!
- D.
:x
- A.
已知某用户
stud1
,其用户目录为/home/stud1
。分页显示当前目录下的所有文件的文件或目录名、用户组、用户、文件大小文件或目录权限、文件创建时间等信息的命令是(C)。- A.
more ls -al
- B.
more -al ls
- C.
ls -al | more
- D.
more < ls -al
- A.
Linux 操作系统的创始人和主要设计者是(D)。
- A. 赫尔辛基大学
- B. AT&T BelI 实验室
- C. Redhat Linux
- D. Linus Torvalds
Linux 包含了一个名称是(A)的调试程序,它是用来调试 C 或 C++程序的强力调试器,它使用户能在程序运行时观察程序的内部结构和内存的使用情况。
- A.
gdb
- B.
gcc
- C.
make
- D.
autoconf
- A.
假设当前有两个用户组
group1
、group2
,有三名用户usr1
、usr2
、usr3
,其中usr1
、usr2
属于用户组group1
,usr3
属于用户组group2
。假设用户usr1
使用”touch fle”命令创建了一个文件file
,并将该文件的权限设置为654
。找出以下关于用广与文件的说法中错误的一项(B)。- A.
usr1
、usr2
、usr3
对文件file
有读权限。 - B.
usr1
、usr3
对文件file
有写权限。 - C.
usr1
、usr3
对文件file
有读权限。 - D.
usr2
对文件file
有执行权限。
- A.
下面哪条命令可把
./dir1
日录(包括它的所有子目录)内容复制到./dir2
中(B)。- A.
.cp -i ./dir1/* ./dir2
- B.
cp -r ./dir1/* ./dir2
- C.
cp -P ./dir1/* ./dir2
- D.
cp -d ./dir1/* ./dir2
- A.
一个文件的权限
-rw-rw-r--
,这个文件所有者的权限是(B)。- A.
write
- B.
read-write
- C.
read-only
- D.
read-write-execute
- A.
在使用 mkdir 命令创建新的目录时,在其父目录不存在时先创建父目录的选项是(A)。
- A.
-p
- B.
-f
- C.
-d
- D.
-m
- A.
为了达到使文件的所有者有读(r)和写(w)的许可,而其他用户只能进行只读访问,在设置文件的许可值时,应当设为(D)。
- A.
566
- B.
744
- C.
655
- D.
644
- A.
一个文件名字为
rr.gz
,可以用来解压缩的命令是(C)。- A.
bzip2
- B.
tar
- C.
gzip
- D.
uncompress
- A.
VMware
提供了虚拟网络功能,使用户可方便地进行网络环境部署。以下哪个选项不属于VMware
虚拟网络中的网络模式。(B)- A. 桥接
- B.
C/S
- C. 网络地址转换
- D.
NAT
文件
exer1
的访问权限为rw-r--r--
,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是(C)。- A.
chmod o+x exer1
- B.
chmod 765 exer1
- C.
chmod a+x g+w exer1
- D.
chmod g+w exer1
- A.
假如在脚本中定义了如下的变量:
var="helloitheima"
那么下列哪个选项可以成功打印变量var
的值?(C)- A.
echo 'var'
- B.
echo "var"
- C.
echo "$var"
- D.
echo '$var'
- A.
在
Linux
中,要求将文件mm.txt
的所有使用者的文件执行权限删除。则下面所示命令中,哪一个是错的(C)。- A.
chmod a-x mm.txt
- B.
chmod ugo-x mm.txt
- C.
chmod o-x mm.txt
- D.
chmod -x mm.txt
- A.
如果执行命令
chmod 746 fle.txt
,那么该文件的权限是(D)。- A.
rwxr--r-
- B.
--xr--rwx
- C.
rw-r--r-
- D.
rwxr--rw-
- A.
要改变文件的拥有权,使用命令(B)。
- A.
chmod
- B.
chown
- C.
chgrp
- D.
chsh
- A.
怎样显示当前目录(A)。
- A.
pwd
- B.
cd
- C.
who
- D.
ls
- A.
Linux 操作系统自诞生至今,有数十万的程序开发人员参与到了它的开发与完善中,如今 Linux 已发展成为是一个成熟、稳定的操作系统。从以下选项中选出关于 Linux 特点描述完全正确的一项(B)。
- A. 多用户、多线程、单 CPU。
- B. 多用户、多线程、多 CPU。
- C. 单用户、单线程、多任务。
- D. 单用户、多线程、多 CPU。
假设 Linux 系统中不存在文件
newfile
,现要创建一个新文件newfile
,以下哪个命令无法实现该功能(A)。- A.
cd /itheima/newfile
- B.
vi newfile
- C.
cp file /itheima/newfile
- D.
touch newfile
- A.
某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为(B)。
- A.
476
- B.
764
- C.
467
- D.
674
- A.
如何删除一个非空子目录
/tmp
(B)。- A.
rm -Ra /tmp/*
- B.
rm -rf /tmp
- C.
del /tmp/*
- D.
rm -rf /tmp/*
- A.
(C)命令是在 vi 编辑器中执行存盘退出。
- A.
ZZ
- B.
:q!
- C.
:wq
- D.
:q
- A.
在给定文件中查找与设定条件相符字符串的命令为(A)。
- A.
grep
- B.
gzip
- C.
sort
- D.
find
- A.
改变文件所有者的命令为(B)。
- A.
chmod
- B.
chown
- C.
touch
- D.
cat
- A.
在下列命令中,不能显示文本文件内容的命令是(C)。
- A.
less
- B.
more
- C.
join
- D.
tail
- A.
在 Linux 中,系统管理员(root)状态下的提示符是(C)。
- A.
%
- B.
>
- C.
#
- D.
$
- A.
若要将如下命令合并为一个命令:
ls -l /etc > tmp.txt
与grep init < tmp.txt
可使用哪个符号连接(C)。- A.
||
- B.
&
- C.
|
- D.
&&
- A.
下列各选项中哪个选项不属于
vi
编辑器的工作模式(B)。- A. 底行模式
- B. 视图模式
- C. 插入模式
- D. 命令模式
当使用
vi
编辑一个文件时,在指令模式下,下面哪条命令能复制当前行的内容到剪贴板中(D)。- A.
cc
- B.
Ctrl+c
- C.
dd
- D.
yy
- A.
命令
2>&1
表示的含义是(D)。- A. 将标准错误的输出重定向到指定的标准输入文件。
- B. 将标准输出重定向到指定的标准错误文件。
- C. 将标准输出重定向到指定的标准输出文件。
- D. 将标准错误的输出重定向到指定的标准输出文件。
存放用户密码信息的文件是(B)。
- A.
group
- B.
shadow
- C.
passwd
- D.
gshadow
- A.
下列变量名中有效的 shell 变量名是(A)。
- A.
name_2
- B.
2name
- C.
_name$2
- D.
name-2
- A.
在 Linux 中,下面哪一条命令可以将普通用户转换成超级用户(B)。
- A.
super
- B.
su
- C.
sudo
- D.
passwd
- A.
Linux 操作系统的应用领域极其广泛,在以下选项中,哪些可能用到了 Linux 操作系统(C)。
- A. 机顶盒
- B. 手机
- C. 以上全部
- D. 汽车
假设当前有一文件
file
,其权限为rwxr--r--
,则在以下命令中,哪个命令可以使该文件所属组拥有对该文件的执行权限(C)。- A.
chmod o+x file1
- B.
chmod a+x file1
- C.
chown g+x file1
- D.
chmod 644 file1
- A.
下面各选项中关于用广切换命令
su
和sudo
的说法,正确的是(B)。- A. 使用
sudo
命令切换用户时需要知道待切换用户的密码。 - B.
su
和sudo
都用于切换用户身份,相比之下,sudo
命令更加安全。 - C. 即便当前用户为
root
用户,切换用户时也必须输入用户密码。 - D. 使用
su
命令切换用户时需要知道当前用户的密码。
- A. 使用
使用标准输出重定向符(>),比如
whoami>file01
将会导致文件file01
中的数据被(A)。- A. 覆盖
- B. 追加
- C. 复制
- D. 移去
在 Linux shell 中,下面哪个变量代表的是 shell 程序命令的程序文件名(B)。
- A.
%*
- B.
$0
- C.
$#
- D.
$$
- A.
已知某用户
stud1
,其用户目录为/home/stud1
。如果当前目录为/home
,进入目录/home/stud1/test
的命令是(B)。- A.
cd /stud1/test
- B.
cd stud1/test
- C.
cd test
- D.
cd home
- A.
要更改文件或自录的所有者,使用命令(D)。
- A.
chgrp
- B.
chmod
- C.
chsh
- D.
chown
- A.
分析以下脚本代码:
#!/bin/sh var="hello itheima" echo "$var" echo '$var'exit 0
从以下选项中选出正确的执行结果。(A)- A.
hello itheima$var
- B.
hello itheimahello itheima
- C.
$var$var
- D.
$varhello itheima
- A.
在
vi
编辑器中的命令模式下,键入(A)可在光标当前所在行下添加一新行。- A.
o
- B.
A
- C.
i
- D.
a
- A.
下列哪个选项不能将标准输出重定向到
file
文件中(B)。- A.
cat /etc/passwd >file
- B.
cat /etc/passwd 0>file
- C.
cat /etc/passwd 1>file
- D.
cat /etc/passwd >>file
- A.
一个文件的权限
-rwxrw-r-x
,这个文件所有者的权限是(C)。- A.
write
- B.
read-only
- C.
read-write-execute
- D.
read-write
- A.
从以下四个选项中,选出能成功将标准错误重定向到
file
文件中的选项。(B)- A.
gcc hello.c 2<file
- B.
gcc hello.c 2>>file
- C.
gcc hello.c 1<file
- D.
gcc hello.c 2>file
- A.
字符设备文件类型的标志是(A)。
- A.
c
- B.
l
- C.
p
- D.
s
- A.
下列变量名中有效的 shell 变量名是(B)。
- A.
_2$3
- B.
trust_no_1
- C.
2004file
- D.
-2-time
- A.
Linux 历经多年发展,到如今已发展出了许多版本,下面哪个版本的 Linux 系统是中国用户使用最多的版本(A)。
- A. CentOs
- B. Ubuntu
- C. Fedora
- D. Red Hat
下面哪个选项不是 Linux 服务器可提供的服务(B)。
- A. Web
- B. Xshell
- C. SFTP
- D. SSH
如果想列出当前目以及子目下所有扩展名为:
.txt
的文件,那么可以使用的命令是(A)。- A.
ls *.txt
- B.
find -name -.txt
- C.
ls -
- D.
find .-.txt
- A.
下面哪条命令可用来使 shell 变量变为一个全局变量(D)。
- A.
alias
- B.
exports
- C.
exportfs
- D.
export
- A.
实现打印当前路径下所有文件名的命令是(A)。
- A.
ls -a
- B.
ls -i
- C.
ls -l
- D.
ls
- A.
下面关于基本组和附加组的说法,错误的是(B)。
- A. 若用户被创建时没有指定用户组,系统会为用户创建一个与用户名相同的组,这个组就是该用户的基本组。
- B. 可以在创建用户时,使用选项-G 为其指定基本组。
- C. 为用户组指定附加组,可以使该用户拥有对应组的权限。
- D. 用户可以从附加组中移除,但不能从基本组中移除。
利用(B)命令,可以把一大堆的文件和目录打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输时非常有用的。
- A.
gzip
- B.
tar
- C.
cd
- D.
ls
- A.
关于命令连接符
;
的说法中,正确的是(B)。- A. 使用
;
运算符间隔的命令,会将前一个命令的输出作为后一个命令的输入。 - B. 使用
;
运算符间隔的命令,会按照先后次序依次执行。 - C. 使用
;
运算符间隔的命令,只有前一个命令执行成功后,后一个命令才会执行。 - D. 使用
;
运算符间隔的命令,只有前一个命令执行失败后,后一个命令才会执行。
- A. 使用
Linux 命令行是由(B)提供的。
- A. 分层结构文件系统
- B. shell
- C. 文本处理器
- D. 管道
关于 shell 脚本中的函数的说法,正确的是(A)
- A. 以上各选项都正确。
- B. 在 shell 脚本中定义函数时,可以使用
function
关键字,也可以不使用。 - C. 函数名后的括号可以省略。
- D. 若函数中不使用
return
关键字设置返回值,则函数返回其中最后一条命令的执行结果。
下列哪个选项是用于条件判断的命令(B)。
- A.
let
- B.
test
- C.
expr
- D.
if
- A.
若一个文件的权限为
rwxrw-r-x
,问文件所有者、所属组用户和其他用户分别能否删除该文件。(A)- A. 文件所有者、所属组用户可以,其他用户不能。
- B. 文件所有者可以,文件所属组用户、其他用户不能。
- C. 无法判断。
- D. 文件所有者和其他用户可以,文件所属组用户不能。
下列选项中,不属于
ifconfig
命令作用范围的是(D)。- A. 激活网络适配器
- B. 配置网卡的 IP 地址
- C. 配置本地回环地址
- D. 加载网卡到内核中
下列对 shell 变量
FRUIT
操作,正确的是(B)。- A. 判断变量是否有值:
[ -f -$FRUIT|| ]
- B. 显示变量的值:
echo $FRUIT
- C. 显示变量的值:
fruit=apple
- D. 为变量赋值:
$FRUIT=apple
- A. 判断变量是否有值:
下列哪个选项可以测试
file
是否是普通文件?(D)- A.
test [ -d file ]
- B.
test [ -d file ]
- C.
test [ -s file ]
- D.
test [ -f file ]
- A.
为了将当前目录下的压缩归档文件
myftp.tar.gz
解压缩,我们可以使用(B)。- A.
tar -vzf myftp.tar.gz
- B.
tar -xvzf myftp.tar.gz
- C.
tar -xvz myftp.tar.gz
- D.
tar -xz myftp.tar.gz
- A.
不是 shell 具有的功能和特点的是(B)。
- A. 处理程序命令
- B. 执行后台进程
- C. 管道
- D. 输入输出重定向
从以下选项中选出 GCC 编译器的正确流程(D)。
- A. 预处理、汇编、编译、链接
- B. 预处理、链接、汇编、编译
- C. 链接、预处理、汇编、编译
- D. 预处理、编译、汇编、链接
判断题
Linux 一词本指 Linux 操作系统的内核,但后来人们逐渐使用 Linux 指代整个操作系统。$\checkmark$
Linux 是一种开放源代码、可自由传播的计算机机操作系统,其目的是建立不受任何商品化软件版权制约、全世界都能自由使用的类 UNIX 系统。$\checkmark$
在为主机设置静态时,应保证该静态 IP 在其所处的网络中不会发生冲突。$\checkmark$
在局域网中,可以通过为每台主机设置静态 IP 来确保局域网中的主机可通过一个 IP 地址找到一台服务器。$\checkmark$
GCC 编译器的编译流程依次为:预处理、编译、汇编、链接。$\checkmark$
若用户被创建时没有指定用户组,系统会为用户创建一个与用户名相同的组,这个组就是该用户的基本组。$\checkmark$
为用户组指定附加组,可以使该用户拥有对应组的权限。$\checkmark$
用户可以从附加组中移除,也可从基本组中移除。$\times$
在 Linux 系统中,可以通过
ifconfig -a
命令查看所有的网卡。$\checkmark$NAT 模式下,只要物理机能访问网络,虛拟机便能访问网络。$\checkmark$
gzip
命令既能用于压缩文件,又能对压缩包解压。$\checkmark$Shell 脚本编程中,获取命令行输入的命令是
read
。$\checkmark$POSIX 标准的初衷是提高 Unix 环境下应用程序的可移植性,保证应用程序的源码可以移植到多种操作系统上并正常运行。$\checkmark$
ls -l
命令可以打印当前路径下文件的属性信息。$\checkmark$执行脚本的方法有两种,一种是赋予该脚本执行权限,直接执行脚本;另一种是将该脚本文件作为一个参数,通过 shell 解释器对其进行解析。$\checkmark$
Shell 最重要的功能是命令解释器,Linux 系统中的所有可执行文件都可以作为 Shell 命令来执行。$\checkmark$
当虚拟机的网络为桥接模式时,虚拟机与物理机的 IP 地址处于同一个网段中。$\checkmark$
当 Linux 部署完成后,除了直接在服务器上进行操作,还可以通过网络进行远程连接访问。Linux 中用于网络传输的协议为 SFTP;用于远程文件管理的协议 SSH。$\times$
使用
sudo
命令提升用户权限后,用户可一直使用目标用户执行操作,直到使用exit
命令退出特权模式位置。$\times$SFTP 即安全 Shell 协议是远程文件管理中会用到的协议,该协议通过高强度的加密算法,提高了数据传输的安全性。$\times$
grep
命令的功能是在文件中搜索与字符串匹配的行并输出。$\times$chmod
命令用于更改文件或目录的所有者。$\times$ls -l
命令只打印当前路径下所有文件的文件名。$\times$vi
编辑器的三种工作模式间可直接相互切换。$\times$VMware 网络配置中有四种网络模式。$\times$
假设当前系统中有一个用户
itheima
,则删除该用户,且同时删除用户相关文件的命令是userdel itheima
。$\times$可以在创建用户时,使用选项-g 为其指定基本组。$\times$
在 Linux 系统中,可通过对
sudoers
文件进行配置以提升用户权限,该文件可使用vi
编辑器直接打开,因此用户可直接对该文件进行编辑。$\times$使用
sudo
命令切换用户时,要求当前用户须有使用切换用户身份的权限,该权限在/etc/sudo
文件中设置,用户可通过visudo
命令打开该文件,并对其进行编辑。$\times$
填空题
在
vi
编辑环境下,使用ESC键可以转换为命令模式。增加一个用户的命令是useradd。
使用
su
或sudo
命令切换用户后,使用exit命令可退出目标用户。当执行
gcc -c hello.c 2 >file
命令时,系统会将执行命令时的标准错误输出到文件file
中。Linux 命令的运行环境是shell,它是一种命令解释器,在用户和操作系统之间提供了一个交互接口。
- whoami命令的功能是获取当前有效的用户名。
为了达到使文件的所有者有读(r)和写(w)的许可,而其他用户只能进行只读访问,在设置文件的许可值时,应当设为644。
- ls -a命令可打印当前路径下所有文件的文件名。
将前一个命令的标准输出作为后一个命令的标准输,称之为管道。