2019年10月28日Linux专项练习

2019年10月28日Linux专项练习

考点1:Linux给文件添加执行权限的命令

为脚本程序指定执行权限命令的参数为

  • A chmod +x filename.sh
  • B chown +x filename.sh
  • C chmod +w filename.sh
  • D chown +r filename.sh
显示答案/隐藏答案正确答案: A

解析

  • chmod拆开是change modify修改之意,
  • chown拆开是change own修改拥有者之意

考点2:Linux crontab

Linux crontab*****/usr/local/run.sh这句话5个*号分别代表什么?

  • A 分钟 小时 日 月 星期
  • B 秒 分钟 小时 日 月
  • C 秒 分钟 小时 日 星期
  • D 分钟 小时 日 月 年
显示答案/隐藏答案正确答案: A

解析

crontabUnixLinux用于 设置周期性被执行的指令 ,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序

分时日月周(分食日月粥)

crontab基本格式 :

1
* * * * * command

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

查看crontab cat /etc/crontab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

[root@localhost ~]#

考点3:arp协议

arp协议用了()

  • A broadcast
  • B multicast
  • C unicast
  • D 以上选项都不正确
显示答案/隐藏答案正确答案: A

解析

  • arp(address resolution protocol)是地址解析协议,arp协议发的都是广播包
  • unicast:单播,
  • multicast:多播,
  • broadcast:广播。

考点4:kill命令

你尝试登出时收到一个错误消息,显示你还有任务未完成,你需要使用下面哪个命令?

  • A kill PID-of-the-process
  • B kill job-number-of-process
  • C kill
  • D kill PID-of-the-last-command
显示答案/隐藏答案正确答案: A

解析

  • kill pid 让进程正常退出
  • kill %job number 直接杀掉进程

考点5:shell脚本的命令行参数

如何获取上一条命令执行的返回码

  • A $!
  • B $0
  • C $?
  • D $#
显示答案/隐藏答案正确答案: C

解析

变量 描述
$0 脚本启动名(包括路径)
$n 第n个参数,n=1,2,…9
$* 所有参数列表(不包括脚本本身)
$@ 所有参数列表(独立字符串)
$# 参数个数(不包括脚本本身)
$$ 当前程式的PID
$! 执行上一个指令的PID
$? 执行上一个指令的返回值

考点6:clone和fork的区别

下列关于 clone 和 fork 的区别描述正确的有?

  • A clone和fork最大不同在于fork不再复制父进程的栈空间,而是自己创建一个新的。
  • B clone和fork最大不同在于clone不再复制父进程的栈空间,而是自己创建一个新的。
  • C clone是fork的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(namespace)、有选择的继承父进程的内存、甚至可以将创建出来的进程变成父进程的兄弟进程等等
  • D fork是clone的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(namespace)、有选择的继承父进程的内存、甚至可以将创建出来的进程变成父进程的兄弟进程等等
显示答案/隐藏答案正确答案: C

解析

fork()函数复制时将父进程的所有资源都通过复制数据结构进行了复制,然后传递给子进程,所以fork()函数不带参数;
clone()函数则是将部分父进程的资源的数据结构进行复制, 复制哪些资源是可选择的 ,这个可以通过参数设定,所以clone()函数带参数,没有复制的资源可以通过指针共享给子进程。

  • fork()是全部复制
  • vfork()是共享内存
  • clone()是可以将父进程资源有选择地复制给子进程,而没有复制的数据结构则通过指针的复制让子进程共享,具体要复制哪些资源给子进程,由参数列表中的clone_flags来决定。另外,clone()返回的是子进程的pid。

考点7:tar打包命令

在linux中用使用tar命令将文件aaa打包为bak.tar。

  • A tar -cf bak.tar aaa
  • B tar -xf bak.tar aaa
  • C tar -czf bak.tar aaa
  • D tar -rf bak.tar aaa
显示答案/隐藏答案正确答案: A

解析

tar解压缩命令

语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

主选项

主选项 描述
-c 创建的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。
-x 从档案文件中释放文件。相当于拆包。
-t 列出档案文件的内容,查看已经备份了哪些文件。
特别注意,主选项c,x,t仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩

辅助选项

辅助选项 描述
-z 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压?一般格式为xx.tar.gz或xx. tgz
-j 是否同时具有 bzip2 的属性?亦即是否需要用 bzip2压缩或解压?一般格式为xx.tar.bz2
-v 压缩的过程中显示文件!这个常用
-f 使用档名,请留意,在f之后要立即接档名喔!不要再加其他参数!
-p 使用原文件的原来属性(属性不会依据使用者而变)

考点8:进程间通信的方式

Unix系统中,哪些可以用于进程间的通信?()

  • A Socket
  • B 共享内存
  • C 消息队列
  • D 信号量
显示答案/隐藏答案正确答案: ABCD

解析

Linux进程间通信

  • 管道、
  • 信号、
  • 消息队列、
  • 共享内存、
  • 信号量、
  • 套接字(socket)

Windows进程间通信

  • 管道、
  • 消息队列、
  • 共享内存、
  • 信号量(semaphore)、
  • 套接字(socket)

Linux线程间通信

  • 互斥量(mutex),
  • 信号量,
  • 条件变量

Windows线程间通信

  • 互斥量(mutex),
  • 信号量(semaphore)、
  • 临界区(critical section)、
  • 事件(event)