考点1:基本类型的表示范围 float小数初始化 long整数初始化

以下的变量定义语句中,合法的是()

  • A byte=128
  • B boolean=null
  • C long a=123L
  • D double=0.9239d

解析

显示答案/隐藏答案正确答案: C

byte能表示的范围[-128,127]
boolean的取值只能是true或 false
整数默认是int类型,如果要转为long类型,需要在整数后面加上L
小数默认类型是double,如果要转为float类型,需要在小数后面加上字母F

考点2:final类 String

有以下代码片段:

1
2
3
String str1="hello";
String str2="he"+ new String("llo");
System.out.println(str1==str2);

请问输出的结果是:

  • A true
  • B 都不对
  • C null
  • D false

解析

显示答案/隐藏答案正确答案: D

这里的str1指的是方法区中的字符串常量池中的“hello”,编译时期就知道的

String是fina1类,这意味着String不能被继承,在Java中被final修饰的类是不允许被继承的,并且final类的成员方法都默认是final方法.
String类底层是char数组来保存字符串的。

字符串常量池

在class件中有一部分用来存储编译期间生成的字面常量以及符号引用,这部分做class文件常量池

在运行期间对应着方法区的运行时常量池

借鉴之前关于 Stringi拼接的一个总结:1、常量和常量拼接,结果在常量池中且常를池中不存在相同内容的常量。2、只要有一个变星,结果就在堆中。3、如果拼接的结果调用了
tem()方法,返回值会在常量池中。补充一点,还有fna修饰时,拼接也会在常量池中.

考点3:try catch finally

能单独和finally语句一起使用的块是( )

  • A try
  • B catch
  • C throw
  • D throws

解析

显示答案/隐藏答案正确答案: A

注意细节:使用try…catch块捕天时可以没有 catch块,但当没
用 catch块的时候必须得有 finallyt块

使用try…catch捕获异常的时候,若没有catch块时,一定要写上
finally

考点4:transient关键字

以下哪个不能用来处理线程安全

  • A synchronized关键字
  • B volatile关键字
  • C Lock
  • D transient关键字

解析

显示答案/隐藏答案正确答案: D

transient,变量修饰符,如果用 transient声明一个实例变
量,当对象存储时,它的值不需要维持。当一个变量不希望
被持久化的时候,比如说一些账号密码,就可以用transient
关键字来表示亥变量不参与序列化过程

volatile修饰一个变量时,可以保证当前线程对亥变量操作的
可见性。当前线程有改变变量时,其他线程保存的副本将失
效,其他线程会从主内存中重新读取。 volatile只保证对它修
饰的变量的读写操作具有原子性

单纯使用 volatile关键字是不能保证线程安全的
volatile只提供了一种弱的同步机制,用来确保将变量的更新操作通知到其他线程。
volatile语义是禁用CPU缓存,直接从主内存读、写变量。表现为:更新 volatile变量时,JVM会把线程对应的本地内存中的共享变星值刷新到主内存中;读volatile变量时,JVM会把线程对应的本地内存设置为无效,直
接从主内存中读取共享变量.
当把变量声明为 volatile类型后,JM增加内存屏章,禁
止CPU进行指令重。

实现,继承都具有遗传性,实现了serializable的类的子类也实现 serializable
基本类型,包装类, String默认实现serializable。

一个类实现serializable接口时,要保证其成员变量都要实现serializable。

transient修饰成员变量使其不被序列化。

volatile关键字:
1.保证了不同线程对该变量操作的内存可见性(当一个线程修改了变量其他使用次变量的线程可以立即知道
这一修改)。
2.禁止了指令重排序

Lock接口提供了与 synchronized关键字类似的同步功能,但
需要在使用时手动获取锁和释放锁。

transient-关键字简单地说,就是让某些被修饰的成员属性变
量不被序列化

synchrozied关键字称作同步,主要用来给方法、代码块加
锁,被加锁的代码段,同一时间内多线程同时访问同一对象
的加锁方法代码块时,只能有一个线程执行能执行方法代码
块中的代码,其余线程必须等待当前线程执行完以后才执行
该方法代码块。

考点5:ASCII码 向上转型

执行语句”int a= '2'“后,a的值是( )

  • A 2
  • B 50
  • C 49
  • D 0

解析

显示答案/隐藏答案正确答案: B

一个简便的记忆法:0:48,A:65,a:97

48 65 97

考点6:

在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()

  • A this.A(x)
  • B this(x)
  • C super(x)
  • D A(x)

解析

显示答案/隐藏答案正确答案: B

this的作用其中一个就是在一个构造方法中调用另一个构造方
法,格式为this(参数)

考点7:

下面程序运行完之后,t2与t3的关系为()

1
2
3
4
5
6
7
8
9
10
11
12
13
Object obj=new Object();
List aList=new ArrayList();
List bList=new LinkedList();
long t1=System.currentTimeMillis();
for(int i=0;i<50000;i++){
aList.add(0,obj);
}
long t2=System.currentTimeMillis()-t1;
t1=System.currentTimeMillis();
for(int i=0;i<50000;i++){
bList.add(0,obj);
}
long t3=System.currentTimeMillis()-t1;
  • A t2
  • B t2=t3
  • C 不确定
  • D t2>t3

解析

显示答案/隐藏答案正确答案: D

Arraylist内部是动态数组实现,在增加空间时会复制全部数据到扩容后的新数组中。
Linkedlist内部为双向链表,可以按需分配空间,扩展时不需要批量赋值,因此Linkedlist用时少。

Arraylist:增删慢,查询快。

  • 由于是数据组实现,需要连续的内存空间,如果删除数组中间的值,为了保证下标的有效性,需要将后面的数据往前移,所以删除馒。
  • 当插入A对象到B对象的前面时,需要将B对象和B对象之后的所有对象后移一位,再插入A对象。所以插入慢。
  • 数组的大小是固定的,如果数组满了,需要重新分配空间,new一个新数组,然后copy旧数据到新数组中,最后再增加新数据,所以增加慢。
  • 因为是连续内存空间,可以通过下标查询数据,所以查询快。

Linkedlist:增删快,查询慢。

  • 由于是链表实现,当前节点的nex指向下一个节点,prev指向上一个节点,不需要连续的内存空间。增加或删除时只需要修改指针即可,不需要移动。所以增删快
  • 因为不是连续内存空间,所以不能使用下标查询,只能通过next遍历来查找,所以查询馒。

ArrayList容量不够需要扩容,依次扩容1.5倍,并且插入数据需要用到数组的copy,
Linklist不需要扩容,插入仅需要链表擅长的插入操作即可,故Linklisth的操作时间低.

但是如果讲究尾部插入的话,数据量小的情況下可难分伯仲,但是在插入数据量大的倩况下, ArrayList怕的效率是要
高于Linkliste的。
因为,数据量大之后,扩容不是很烦繁,仅需要尾部插入即可,但是Linklist需要每次进行链表节点指针的指向调整操作。
所以大量数据的尾部面入, ArrayList的效率是要高于Linkliste的,下图是数据量较大时的比较。

这里有一张图片

考点8:volatile关键字

volatile关键字的说法错误的是

  • A 能保证线程安全
  • B volatile关键字用在多线程同步中,可保证读取的可见性
  • C JVM保证从主内存加载到线程工作内存的值是最新的
  • D volatile能禁止进行指令重排序

解析

显示答案/隐藏答案正确答案: A

出于运行速率的考虑,java编译器会把经常经常访问的变量放到缓存(严格讲应该是工作内存)中,
读取变量则从缓存中读。
但是在多线程编程中,内存中的值和缓存中的值可能会出现不一致。

volatile用于限定变量只能从内存中读取,保证对所有线程而言,值都是一致的。但是 volatile不能保证原子性,也就不能保证线程安全

1.java的内存模型

java内存模型规定了所有的变量都存储在主内存中,
但是每个线程会有自己的工作内存,
线程的工作内存保存了该线程中使用了的变量(从主内存中拷贝的),
线程对变量的操作都必须在工作内存中进行,
不同线程之间无法直接访问对方工作内存中的变量,
线程间变量值从传递都要经过主内存完成

img

2.什么是原子性

一个操作是不可中断的,要么全部执行成功要么全部执行失败,比如银行转账

3.什么是可见性

当多个线程访问同一变量时,一个线程修改了这个变量的值,其他线程就能够立即看到修改的值。

4.什么是有序性

程序执行的顺序按照代码的先后顺序执行

1
2
int a=0;//1
int b=2;//2

像这2句代码,1会比2先执行,但是JVM在真正执行时不一定是1在2之前,这里渉及一个概念叫做指令重排,

指令重排

处理器为了提高程序运行效率,可能会对输入代码进行优化,它不保证程序中各个语句的执行先后顺序同代码中的顺序一致,但是它会保证程序最终执行结果和代码序执行的结果是一致的。

比如上面的代码语句1和语句2谁先执行对最终的程序结果并没有影响。那么就有可能在执行过程中,语句2先执行而语句1后执行

在指令重排时会考虑指令之间的数据依赖性,比如2依赖了1的数值,那么处理器会保证1在2之前执行。

但是在多线程的情况下,指令重排就会有影响了。

5.volatile到底做了什么

  • 禁止了指令重排
  • 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量值,这个新值对其他线程是立即可见的
  • 不保证原子性(线程不安全)

考点9:

以下哪种JAVA的变量表达式使得变量a和变量b具有相同的内存引用地址( )

  • A String a = "hello"; String b = "hello";
  • B Integer a; Integer b = a;
  • C int a = 1; Integer b = new Integer(1);
  • D int a = 1; Integer b = 1;

解析

显示答案/隐藏答案正确答案: AB

1 Integer与int比较时, Integer会有拆箱的过程,我们可以看看拆箱的代码

1
2
3
public int inValue(){
return value;
}

直接返回的就是value,因此int a;与Integer b;以及new Integer(a);进行==比较时结果都是true。

解析混乱,我就不记下来了。

《第二周单元测验》

1单选(3分)

下列哪个不是单字符正则表达式?

  • A. .
  • B. [i-k]
  • C. @
  • D. $
    正确答案:D你错选为C

2单选(3分)

可以与正则表达式A[i-k]*b[i]*c匹配的最短字符串长度为:

  • A. 6
  • B. 4
  • C. 3
  • D. 5
    正确答案:C你选对了

3单选(3分)

能与正则表达式a.x[i-j]*b[i-j]匹配的字符串为:

  • A. a.x[i-j]*b[i-j]
  • B. a*xbj
  • C. a-x[i]*b[j]
  • D. axibj
    正确答案:B你选对了

4单选(3分)

与字符串A1234不匹配的正则表达式有:

  • A. A.*
  • B. A12345*
  • C. [A-Z][0-9]*
  • D. A*4
    正确答案:D你选对了

5判断(2分)

grep和fgrep都可以从一个文本文件中搜索出指定的字符串。
A. 错
B. 对
正确答案:B你选对了

6判断(2分)

fgrep,grep,egrep三个命令在指定待查找字符串的模式方面,依次越来越灵活,后面的命令可以覆盖前面命令的功能,并且模式描述的语法也是完全兼容的。
A. 对
B. 错
正确答案:B你错选为A

7判断(2分)

命令cat pm.txt | sed 's/\[[^][]*]//g'可以把pm.txt中所有用方括号括起来的内容(包括方括号自身)类似“ [参考文献23] ”这样的字符串片段删除。
A. 错
B. 对
正确答案:B你选对了

8判断(2分)

grep可以筛选出包括某些特定模式的文本行,awk不仅可以筛出指定模式的行,还可以筛掉文本型表格中的部分列。
A. 对
B. 错
正确答案:A你选对了

9判断(2分)

正则表达式<[^<>]*>可以匹配一个HTML格式数据中的诸如<span class="src-time">这样的用尖括号包裹起来的标签信息。
A. 对
B. 错
正确答案:A你没选择任何选项

10判断(2分) awk描述

awk是一门小型的文本数据处理语言,有类似C语言一样的语法,可以使用自定义的变量,变量之间可以进行算术运算、关系运算和逻辑运算,还可以进行正则表达式匹配运算,支持条件、循环等流程控制。
A. 对
B. 错
正确答案:A你选对了

《第一周单元测验》(二)

1单选(3分)

使用more命令逐屏显示文本文件时,使得显示内容上滚一行而不是滚动一屏,应按下哪个键?

  • A. 向下的箭头键
  • B. 空格
  • C. 回车
  • D. Esc键

正确答案:C你选对了

2单选

使用less命令逐屏显示文本文件时,使得显示内容上滚一行而不是滚动一屏,应按下哪个键?

  • A. 回车
  • B. 空格键
  • C. Ctrl-L
  • D. Esc键

正确答案:A你选对了

3单选

Linux中用来实现计数功能,比如:统计系统有多少个登录用户,实现计数功能的命令是:

  • A. sort -n
  • B. wc -l
  • C. cnt -s
  • D. uniq -c

正确答案:B你选对了

4判断

uniq命令可以通过它的选项,选择打印所有只出现一次的行,或者打印出现不只一次的行,或者两种都选。但无论哪种情况,重复出现的行最多只能打印一次。

  • A. 对
  • B. 错

正确答案:A你错选为B

5判断

一个应用程序的C语言源程序通过printf语句在标准输出输出信息,运行时只要使用输出重定向机制,不需要修改原先的程序加入文件操作的代码,就可以把输出结果存入指定名字的文件。

  • A. 错
  • B. 对

正确答案:B你选对了

6判断

less命令时more命令的一个简化版本,精简后功能比more弱,但更节约内存和CPU

  • A. 错
  • B. 对

正确答案:A你选对了

7判断

od命令可以实现用16进制方式逐字节打印一个文件内容的功能,但要求文件的每个字节必须是可打印字符。

  • A. 错
  • B. 对

正确答案:A你选对了

8判断

信息由一个个字节组成,tr命令处理这些信息时,可以将256种字节值中的255种取值“翻译”为另一个字节值,唯有字节值为0时无法转译,因为一个字节的8个比特全为零被用作字符串结尾。

  • A. 错
  • B. 对

正确答案:A你没选择任何选项

9判断

不带任何选项的uniq命令消除数据中重复的行。一旦某一行出现过,uniq会记录下来,以后无论这一行在以后什么地方再次出现,输出时都会被忽略,保证数据的唯一行。

  • A. 错
  • B. 对

正确答案:A你选对了

10判断

信息由一个个字节组成,tr命令处理这些信息时,可以将256种字节值中的任何一种取值“翻译”为另一个字节值,并且不限于可打印字符之间的转译,比如把换行符替换为斜线。

  • A. 对
  • B. 错

正确答案:A你选对了

1单选(3分)

C语言编写的应用程序,通过printf打印一个换行符\n,但在终端上执行的是回车加换行\r\n,把换行符替换为回车换行是由下面哪个软件模块完成的?
A. C语言实现printf功能的动态链接库
B. Linux的串口驱动程序
C. 应用程序中的C语言函数库
D. Linux内核中的行律模块

正确答案:D你选对了

2单选(3分)

Linux超级用户的用户名为:
A. supervisor
B. admin
C. administrator
D. root

正确答案:D你选对了

3单选(3分)

下面哪个命令可以获得某进程占用的逻辑内存大小?
A. uptime
B. vmstat
C. free
D. ps

正确答案:D你错选为B

4单选(3分)

下面哪个命令可以了解目前系统CPU的空闲情况?

A. who
B. free
C. ps
D. uptime

3.00/3.00
正确答案:D你选对了

5判断(2分)

终端仅仅是Linux主机的一个外部设备,不分担存储和计算工作。
A. 对
B. 错

正确答案:A你选对了

6判断(2分)

传统的终端与Linux主机之间传输的是字节流。
A. 错
B. 对

正确答案:B你选对了

7判断(2分)

终端转义序列的意义在于终端收到某一特定字符序列后执行一些约定好的控制功能,而不是把这些字符显示在显示器上。
A. 对
B. 错

正确答案:A你选对了

8判断(2分)

直接执行bc命令,后面不带任何选项,除法计算时保留小数点后20个有效数字。
A. 对
B. 错

正确答案:B你选对了

9判断(2分)

Linux中超级用户的权限很大,可以读取普通用户的口令值。

A. 错
B. 对
正确答案:A你选对了

10判断(2分)

ps命令显示进程占用内存的大小SZ,这表示该进程占用了多少物理内存。
A. 对
B. 错

正确答案:B你没选择任何选项

考点1:DHCP分配固定IP地址

在dhcpd.conf中用于向某个客户主机分配固定IP地址的参数是 ( )

  • A server-name
  • B fixed-address
  • C filename
  • D hardware

解析

显示答案/隐藏答案正确答案: B

fixed是固定的意思 address是地址的意思

考点2:切换超级用户

linux中哪个命令可以将普通用户转换成超级用户?()

  • A super
  • B passwd
  • C tar
  • D su

解析

显示答案/隐藏答案正确答案: D

考点3:路由设置:route add -net 目的网络 gw 网关地址

局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是?

  • A route addnet 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
  • B route addnet 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
  • C route addnet 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1
  • D route add default 192.168.1.0 netmask 172.168.1.1 metric 1

解析

显示答案/隐藏答案正确答案: B

-net 后面跟的是目标网络,gw就是gateway(网关入口)就是你从哪个网关去到那个目标网络。明白这两项这题就能选了。

考点4:UNIX在退出系统账户后继续运行进程

在退出unix系统账户之后还需要继续运行某个进程,那么可用()

  • A awk
  • B sed
  • C crontab
  • D nohup

解析

显示答案/隐藏答案正确答案: D

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思
awk 对数据分析的

sed 编辑文件的

crontab
用于设置周期性被执行的指令

nohup

在注销后使用
nohup
命令运行后台中的程序。

考点5:vi编辑器命令模式复制当前行快捷键

在命令行下使用 vi 编辑一个文件时, 如何复制当前行?(最佳选项)

  • A cc
  • B dd
  • C yy
  • D Ctrl + c

解析

显示答案/隐藏答案正确答案: C

cc 多数unix通过此调用它们的C编译程序
dd 删除光标所在的一整行
yy 复制光标所在的一整行
p 将已复制的数据在光标的下一行粘贴
P 将已复制的数据在光标的上一行粘贴

yy复制当前行 nyy复制从当前行开始的n行。 pp是对应的粘贴操作,与yy对应,

考点6:Linux环境变量配置文件

使用shell时,默认的环境变量放在哪里?

  • A ~/.bash_profile
  • B ~/.bash
  • C /etc/profile.d
  • D ~`/bash`

解析

显示答案/隐藏答案正确答案: A

/etc/profile:
此文件为系统的为每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.

/etc/bashrc
:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

~/.bash_profile
:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

~/.bashrc
:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.

~/.bash_logout :
当每次退出系统(退出bash shell)时,执行该文件.

.bash_profile、.bashrc、和.bash_logout

上面这三个文件是bash shell的用户环境配置文件,位于用户的主目录下。

.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有
命令都会被bash执行。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。
在Debian中使用.profile文件代替.bash_profile文件。

.bashrc
文件会在bash shell调用另一个bash
shell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件。这样可有效分离登录和子shell所需的环境。但一般 来说都会在.bash_profile里调用.bashrc脚本以便统一配置用户环境。

.bash_logout
在退出shell时被读取。所以我们可把一些清理工作的命令放到这文件中。

登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 /.bash_profile、
~/.bash_login或
~/.profile文件中的其中一个(根据不同的linux操作系统的不同,命名不一样),执行的顺序为:
/.bash_profile、
~/.bash_login、 ~/.profile。

如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。

考点7:Linux可执行文件开头的特征字符

Linux的可执行文件开头的特征字符串是什么

  • A PE
  • B MZ
  • C ELF
  • D LNX

解析

显示答案/隐藏答案正确答案: C

Executable Linkable File 可执行可链接文件
可移植可执行文件(Portable Executable,PE)是一种用于可执行、目标文件和动态链接库的文件格式,主要用于Windows,
而使用于Linux和多数Unix系统中的是可执行与可链接格式(ELF),Mac OS中则主要使用Mach-O;

考点8:/etc/sysctl.conf开启流量转发功能的参数

修改/etc/sysctl.conf如下哪项参数可以开启Linux流量转发功能()

  • A net.ipv4.conf.all.rp_filter = 0
  • B net.ipv4.conf.default.rp_filter = 0
  • C net.ipv4.ip_forward = 1
  • D net.ipv4.conf.all.rp_filter = 1
  • E net.ipv4.conf.default.rp_filter = 1
  • F net.ipv4.ip_forward = 0

解析

显示答案/隐藏答案正确答案: C

可以通过命令:cat /proc/sys/net/ipv4/ip_forward查看,1为开启Linux流量转发,0为禁止使用。
rp_filter参数有三个值,0、1、2,具体含义:

0:不开启源地址校验。

1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。

2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。

考点9:线程

有关线程说法正确的是( )

  • A 线程是程序的多个顺序的流动态执行
  • B 线程有自己独立的地址空间
  • C 线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
  • D 线程是系统进行资源分配和调度的一个独立单位

解析

显示答案/隐藏答案正确答案: AC

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位

线程是进程的一个实体,一个进程中包含多个线程。是CPU调度和分派的基本单位,是比进程更小的能独立运行的基本单位

进程有独立的地址空间,线程没有。
线程是共享进程的地址空间,因此B错误

进程是操作系统进行资源分配和调度的一个独立单位,而线程只是CPU调度和分派的基本单位,因此D错误

进程有独立的地址空间,线程没有。线程是共享进程的地址空间

考点10:Linux创建文件的命令

linux 创建文件的命令有()

  • A ls
  • B touch
  • C cat
  • D vi/vim
  • E >

解析

显示答案/隐藏答案正确答案: BDE

touch filename 新建文件
将几个文件合并为一个文件 —–cat file1 file2 > file

vi/vim filename 表示用vi或vim打开文件,如果不存在该文件则新建文

ls -查看当前目录下的文件
touch filename 新建文件
cat : 三个功能:
1.一次显示整个文件:cat filename
2.创建新文件,不能 编辑已有文件:cat > filename
3.将几个文件合并为一个文件:cat file1 file2 > file
vi/vim filename表示用vi或vim打开文件,如果不存在该文件则新建文件
> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;
> firename 将空装入文件firename,如果没有会自动创建

考点1:Linux文件权限

在linux文件系统权限中(rwx),只读权限对应的数值为()

  • A 4
  • B 2
  • C 1
  • D 选项均不正确

解析

显示答案/隐藏答案正确答案: A

“4=r,2=w,1=x”
r 代表读,w 代表写,x 代表执行,
如果可读,权限是二进制的100,十进制是4;
如果可写,权限是二进制的010,十进制是2;
如果可运行,权限是二进制的001,十进制是1

考点2:cp -f命令

cp拷贝命令的-f参数含义为?

  • A 拷贝目录
  • B 递归处理
  • C 显示执行过程
  • D 强制进行拷贝

解析

显示答案/隐藏答案正确答案: D

-r :recursive,递归处理
-v :verbose,显示详细过程
-f :force,强制执行,多用于覆盖拷贝。无论目的目录是否有同名文件,强制复制

cp:将一个或多个源文件或者目录复制到指定的文件或目录。
选项:
-a:与”-dpR”相同
-d:当复制符号链接时,把目标文件或目录也建立为符号链接,并指向与源文件或目录连接的原始文件或目录
-f:强行复制文件或目录,不论是否存在
-i:覆盖既有文件前先询问用户
-l:对源文件建立硬链接,而非复制文件
-p:保留源文件或目录的属性
-R/r:递归处理指定目录与子目录
-s:对源文件建立符号链接,而非复制文件
-u:只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在才复制文件
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件默认后缀
-b:覆盖已经存在的文件目标前将目标文件备份
-v:详细显示命令执行的操作

举个栗子:
将文件jieni复制到usr/tmp下,并改名为pika
cp jieni /usr/tmp/pika

将目标/usr/jieni下所有文件复制到/usr/pika
cp /usr/jieni /usr/pika

交互式方式(询问)将目录/usr/jieni中a开头的所有.c文件复制到/usr/pika中
cp -i /usr/jieni a*.c /usr/pika

考点3:Vsftpd配置

Vsftpd 配置本地用户传输速率的参数?

  • A Local _max_rate
  • B anon _max_rate
  • C user _max_rate
  • D max_user

解析

显示答案/隐藏答案正确答案: A

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。
local_max_rate=0 实体用户的传输速度限制,单位为bytes/second, 0 为不限制。

Vsftpd 配置

local_max_rate=0:

本地用户使用的最大传输速度,单位为B/s,0 表示不限制速度。预设值为0。

anon_max_rate=0


设置匿名登入者使用的最大传输速度,单位为B/s,0 表示不限制速度。默认值为0。

考点4:Linux命令返回直含义

linux命令执行成功后会返回

  • A 0
  • B 1
  • C 2
  • D -1

解析

显示答案/隐藏答案正确答案: A

考点5:

你在一台Windows 2000 Server 上部署了几个web 站点,这些Web 站点都已启用了日志。你用一个第三方的报表工具来分析web站点产生的日志文件,你发现所有从上午7:00到午夜的数据都被包含在第二天的日志文件中。你希望这些数据包含在当天的日志文件中,你该怎么做?

  • A 确保日志类型被设置为W3C
  • B 在web站点的日志属性中修改日志翻转属性
  • C 在web服务器的时间属性中修改时间区域设置
  • D 在web服务器上配置时间服务器使用LocalSystem账户

解析

显示答案/隐藏答案正确答案: B

考点6:UNIX系统代码段和数据段分开的目的

关于UNIX系统代码段和数据段分开的目的,错误的说法有()。

  • A 可共享正文
  • B 可共享数据
  • C 可重入
  • D 可保护代码为只读
  • E 方便编程
  • F 更好支持内存回收策略

解析

显示答案/隐藏答案正确答案: E
1)防止程序指令被修改,设置代码段权限为只读,设置数据段权限为可读写

2)代码段和数据段分开有利于提高程序的局部性,现代CPU缓存一般设计为数据缓存和指令缓存分离,指令和数据分开存放可以提高CPU缓存命中率。

3)共享指令,当系统运行多个程序的副本时,它们指令时一样的,因此内存只需保存一份程序的指令代码。每个副本进程的数据区是进程私有,可以节省内存。
1)代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作——它是不可写的。
2)数据段:数据段用来存放可执行文件中已初始化全局变量,换句话说就是存放程序静态分配的变量和全局变量。
3)BSS段:BSS段包含了程序中未初始化的全局变量,在内存中 bss段全部置零。
4)堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)
它的物理内存空间是由程序申请的,并由程序负责释放。
5)栈:栈是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进先出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。
实际上,在Linux系统下并没有强调分段,每个进程缺省情况下“数据段”,“堆栈段”和“代码段”都使用等价的段描述,映射到相同的线性地址空间,除非你个别设置LDT.

考点7:dvm进程和Linux进程

下面关于andriod dvm的进程和Linux的进程,应用程序的进程说法正确的是

  • A DVMdalivk的虚拟机,每一个Andriod应用程序都在它自己的进程中运行,都拥有一个独立的Dalivk虚拟机实例,而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念
  • B DVMdalivk的虚拟机,每一个Andriod应用系统程序都在它自己的进程中运行,不一定拥有一个独立的Dalivk虚拟机实例,而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念
  • C DVMdalivk的虚拟机,每一个Andriod应用系统程序都在它自己的进程中运行,不一定拥有一个独立的Dalivk虚拟机实例,而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念
  • D DVMdalivk的虚拟机,每一个Andriod应用程序都在它自己的进程中运行,都拥有一个独立的Dalivk虚拟机实例,而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念

解析

显示答案/隐藏答案正确答案: D

Android系统用的就是Linux的内核,DVM可以理解成在Linux上跑的程序,每个应用程序运行时,都会启动一个DVM实例,也就是一个Linux的进程,因此DVM进程和Linux进程实际上是一回事。

考点8:线程

下面说法哪个正确的:

  • A 各个线程拥有相同的堆栈
  • B i++是线程安全的,不需要同步
  • C x=y是线程安全的,不需要同步
  • D 对进程来说,其虚拟内存的大小不受物理内存大小的限制

解析

显示答案/隐藏答案正确答案: D

线程有自己的栈,但没有堆所以A错。普通整数的一般赋值、增量和减量语句会产生多条机器指令,操作均不具有原子性,需要同步,BC错。虚拟存储器具有请求调入和置换功能,所以虚拟内存的大小不受物理内存大小的限制。D对。

考点9:进程通讯方式

进程之间通信都有哪些方式?

  • A 共享内存
  • B 消息传递
  • C 系统管道
  • D 临界区

解析

显示答案/隐藏答案正确答案: ABC

考点1:vi保存并退出

在Linux系统的vi编辑器中,如果不保存对文件进行的修改,应使用( )命令强制退出vi编辑器

  • A :q
  • B :wq
  • C :q!
  • D :!q

解析

显示答案/隐藏答案正确答案: C

考点2:文件操作的唯一依据

文件操作的唯一依据是?

  • A 文件名
  • B 文件句柄
  • C 物理地址

解析

显示答案/隐藏答案正确答案: B

在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该文件。

文件句柄应该是windows的叫法,linux叫文件描述符。

考点3:Linux查看物理内存的大小

在 linux 下,如何查看物理内存的大小? ()

  • A cat /dev/mem
  • B cat /proc/meminfo
  • C mem
  • D ps -ef

解析

显示答案/隐藏答案正确答案: B

方式一:free
直观的展示linux系统内存使用及交换区的容量大小等
方式二:top
动态实时查看系统中每一个进程的资源使用情况
方式三:cat /proc/meminfo
方式四:gnome-system-monitor 一个显示最近一段时间内的CPU、内存、交换区及网络使用情况的视图工具。
方式五:ps aux –sort -rss
各个线程的资源使用情况
方式六:vmstat -s
vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。

考点4:sed命令

以下哪些命令可以打印文件(demo.log)中包含ERP的行到标准输出()

  • A sed/ERR/a' demo.log
  • B sed/ERP/pdemo.log
  • C sed/ERP/ddemo.log
  • D sed -n/ERP/pdemo.log

解析

显示答案/隐藏答案正确答案: D

sed命令用于行的新增/删除, 行的替换/显示, 搜寻并替换, 直接修改文件。
-n:使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。但如果加上 -n
参数后,则只有经过 sed 特殊处理的那一行才会被列出来。
p:打印,将某个选择的数据印出来。通常 p 会与参数 sed -n 一起用
d:删除
a:新增
sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

然后回到本题中,

-n 取消默认的输出,从而重定向为ERP输出

-p 打印行

最后是filename文件名
打印文件(demo.log)中包含ERP的行到标准输出。
sed -n ‘/ERP/p’ demo.log
sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。
-n:使用安静(silent)模式。默认情况下,所有的输出行都被打印到屏幕上。
-p:打印,将某个选择的数据印出来。通常 p 会与参数 sed -n 一起用。
-d:删除
-a:新增

Vi编辑器中,怎样将字符AAA全部替换成yyy?
s/AAA/yyy/g
s:取代,通常 s 动作可以搭配正规表示式。例如 1,20s/old/new/g!
g:是行内进行全局替换。

示例:
sed ‘s/aaa/bbb/‘ filea 将filea中的第一个aaa替换为bbb;
sed ‘s/aaa/bbb/g’ filea 将filea中的所有的aaa替换为bbb。

考点5:死锁的必要条件

下面哪些是死锁发生的必要条件?

  • A 互斥条件
  • B 请求和保持
  • C 不可剥夺
  • D 循环等待

解析

显示答案/隐藏答案正确答案: ABCD

产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不可强行占有:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

考点6:移位运算 十六进制数 幂运算

下列表达式值相同的是哪几项()

  • A 1<<3
  • B 0x0F & 0x08
  • C 2^3(^是幂运算)
  • D 3^2(^是幂运算)

解析

显示答案/隐藏答案正确答案: ABC

A. 1左移3位 即1000
B. 0000 1111 & 0000 1000 即0000 1000
C. 2^3 即8 即1000
D. 3^2 即9 即1001
ABC值相同

考点7:vi保存并退出方法

在Linux系统下,你用vi编辑器对文本文件test.txt进行了修改,想保存对该文件所做的修改并正常退出vi编辑器,可以( )。

  • A 在命令模式下执行ZZ命令
  • B 在命令模式下执行WQ命令
  • C 在末行模式下执行:q!
  • D 在末行模式下执行:wq

解析

显示答案/隐藏答案正确答案: AD

考点8:shell系统调用 ls系统调用

Linux执行ls,会引起哪些系统调用()

  • A nmap
  • B read
  • C execve
  • D fork

解析

显示答案/隐藏答案正确答案: BCD

任何shell都会执行 exec 和 fork
而 ls会执行read
三个加起来

考点9:firmware分析相关命令

下面哪些命令和工具对 firmware 分析有帮助?

  • A binwalk
  • B file
  • C firmware-mod-kit
  • D netstat

解析

显示答案/隐藏答案正确答案: ABC

Binwalk是用于搜索给定二进制镜像文件以获取嵌入的文件和代码的工具,具体来说,它被设计用于识别嵌入固件镜像内的文件和代码。
file命令用来探测给定文件的类型,file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。
firmware-mod-kit工具的功能和binwalk工具的类似,其实firmware-mod-kit工具在功能上有调用binwalk工具提供的功能以及其他的固件解包工具的整合。

考点1:八进制文件权限

在Linux中,file.sh文件的权限为-rw-r--r-x,其对应权限用数值形式表示为()

  • A 775
  • B 745
  • C 645
  • D 643

解析

显示答案/隐藏答案正确答案: C

Linux权限中,第一个指是否是目录,后面根据rwx形式对拥有者,所属组,其他分别授权,-rw-r–r-x即为110,100,101,转换成十进制就是645

考点2:具有c语言功能的过滤器

具有很多C语言的功能,又称过滤器的是?

  • A Csh
  • B tcsh
  • C awk
  • D sed

解析

显示答案/隐藏答案正确答案: C

sed awk grep ,linux文本处理三剑客
csh:调用 C shell。
Tcsh是csh的增强版,并且完全兼容csh。它不但具有csh的全部功能,还具有命令行编辑、拼写校正、可编程字符集、历史纪录、作业控制等功能,以及C语言风格的语法结构。
AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一,AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。
sed:Stream EDitor

考点3:shell编程赋值语句

在bash中,下列哪些语句是赋值语句?()

  • A a$="test"
  • B $a$="test"
  • C a="test"
  • D $a="test"

解析

显示答案/隐藏答案正确答案: C

bash中有两个内置的命令declare 和 typeset 可用于创建变量。除了使用内置命令来创建和设置变量外,还可以直接赋值,格式为:变量名=变量值
注意:变量名前面不应加美元“$”符号。(和PHP不同)
等号“=”前后不可以有空格。
Shell中不需要显式的语法来声明变量。
变量名不可以直接和其他字符相连,如果想相连,必须用括号: echo “this is $(he)llo!”

考点4:gcc生成调试信息

若基于Linux操作系统所开发的ARM应用程序源文件名为test.c,那么要生成该程序代码的调试信息,编译时使用的GCC命令正确的是?

  • A arm-linux-gcc -c -o test.o test.c
  • B arm-linux-gcc -S -o test.o test.c
  • C arm-linux-gcc -o test test.c
  • D arm-linux-gcc -g -o test test.c

解析

显示答案/隐藏答案正确答案: D

-o参数用于指定输出的文本,如果不指定输出文件则默认输出.out文件
-c参数将对源程序test.c进行预处理、编译、汇编操作,生成test.o文件
-S参数将对源程序test.c进行预处理、编译,生成test.s文件
-g选项,加入GDB能够使用的调试信息,使用GDB调试时比较方便

考点5:useradd创建用户时不指定用户主目录

创建用户时不指定用户主目录的参数( )

  • A useradd -o
  • B useradd -m
  • C useradd -M
  • D useradd -d

解析

显示答案/隐藏答案正确答案: C

考点6:POSIX线程同步方式

POSIX线程同步方式包括:( )

  • A POSIX信号量
  • B 互斥锁
  • C 条件变量
  • D 临界区

解析

显示答案/隐藏答案正确答案: ABC

临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被单一线程访问的设备,例如:打印机。

首先说POSIX:可移植操作系统接口,就是定义了一些操作系统该为程序提供的接口标准。
再然后说线程同步方式:

  • 互斥锁
  • 条件变量
  • 读写锁
  • 信号

考点7:subnet命令

命令

1
2
3
4
5
subnet 166.173.197.131 netmask 255.255.255.192{
range 166.173.197.10 166.173.197.107;
default-lease-time 600;
max-lease-time 7200;
}

表示?()

  • A 向166.173.197.10网络分配从166.173.197.133到166.173.197.255
  • B 一个两小时的最大租用时间
  • C 指定了一个十分钟的缺省租用时间
  • D 网络地址166.173.197.0

解析

显示答案/隐藏答案正确答案: BC

考点8:subnet命令

Linux 系统中DHCP 服务器的服务程序是dhcpd,配置文件是dhcpd.conf,如果在该配置文件中包括如下配置内容:
Subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200 ;
}
关于以上配置内容,说法正确的是( )多选

  • A 对子网”192.168.2.0/16”中的主机进行动态地址分配
  • B 对子网”192.168.2.0/24”中的主机进行动态地址分配
  • C 在子网中用于动态分配的IP 地址数量为100 个
  • D 在子网中用于动态分配的IP 地址数量为101 个

解析

显示答案/隐藏答案正确答案: BD

A类的默认子网掩码 255.0.0.0
B类的默认子网掩码 255.255.0.0
C类的默认子网掩码 255.255.255.0

16位是B类,B类IP地址的前面6位表示网络地址,后16位表示主机地址,B类IP地址前面开头的数字范围是128—191

24位是C类,标准的C类地址的确是24位的子网掩码,但是为了更好的饿使用IP地址,采用了一种技术叫VLSM的。
题目的前面开头是192,所以是C类地址,所以24位表示主机地址。所以是/24

考点9:vsftpd服务流量控制的参数

vsftpd服务流量控制的参数( )

  • A system_max_rate
  • B local_max_rate
  • C anon_max_rate
  • D guest_max_rate

解析

显示答案/隐藏答案正确答案: BC

访问速率设置:
anon_max_rate=0
设置匿名登入者使用的最大传输速度,单位为B/s,0 表示不限制速度。默认值为0。
local_max_rate=0
本地用户使用的最大传输速度,单位为B/s,0 表示不限制速度。预设值为0

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
anon_max_rate:匿名访问最大传输速率,anon是anonymous(匿名的)的缩写

考点10:

邮件服务器为每个用户限制磁盘存储空间上限,执行checkquota -cug /var/mail指令后, 在/var/mail目录自动创建的配置文件是( )

  • A quota.user
  • B aquota.user
  • C aquota.group
  • D quota.group

解析

显示答案/隐藏答案正确答案: BC

aquota.group与aqouta.user分别是组以及用户磁盘配额需要的配置文件。
如果没有这两个文件,则磁盘配额是不会生效的。

考点1:vi打开文件

有一台系统为Linux的计算机,在其当前目录下有一个名为test的文本文件,管理员小张要用vi编辑器打开该文档以查看其中的内容,应使用()命令.

  • A opentest
  • B vi read test
  • C vi test
  • D open vi

解析

显示答案/隐藏答案正确答案: C

考点2:shell编程if语句

if [ $2 -a $2 = "test" ]中 -a是什么意思

  • A 大于
  • B 减
  • C 全部
  • D 并且

解析

显示答案/隐藏答案正确答案: D

-a 是shell中的布尔运算符,表示与运算

考点3:shell脚本变量含义

在RHEL5统中,”run.sh”是Shell执行脚本,在执行./run.sh file1 file2 file3命令的过程中,变量$1的值为( )

  • A run.sh
  • B file1
  • C file2
  • D file3

解析

显示答案/隐藏答案正确答案: B
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
linux中shell变量$#,$@,$0,$1,$2的含义解释: 
变量说明:
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…

考点4:

采用多路复用I/O监听3个套接字的数据时,如果套接字描述符分别是:5,17,19,则
select(int maxfd,struct fd_set* rdset,NULL,NULL)
中的maxfd应取为()

  • A 4
  • B 20
  • C 5
  • D 9

解析

显示答案/隐藏答案正确答案: B

Maxfd是三个套接字描述符中最大数字加上1

考点5:

具有很多C语言的功能,又称过滤器的是?

  • A Csh
  • B tcsh
  • C awk
  • D sed

解析

显示答案/隐藏答案正确答案: C

考点6:

在OSI模型中,HTTP协议工作在第()层,交换机工作在第()层。

  • A 7/1
  • B 7/2
  • C 6/3
  • D 6/2

解析

显示答案/隐藏答案正确答案: B

https://m.nowcoder.com/questions?tagId=43719192&type=1&source=intelli&pos=1

考点7:

查看TCP连接的命令是什么?

  • A tcpdump
  • B top
  • C netstat
  • D ifconfig

解析

显示答案/隐藏答案正确答案: C

netstat -at #列出所有tcp端口
netstat -lt #只列出所有监听 tcp 端口
netstat -st #显示TCP端口的统计信息

ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces
configuring。配置网卡的IP地址语法例:ifconfig eth0 192.168.0.1 netmask
255.255.255.0.ifconfig可设置网络设备的状态,或是显示当前的设置。

tcpdump是网络监控工具
tcpdump:
将网络中传送的数据包完全截获下来以供分析。
它支持针对网络层、协议、主机、网络或端口的过滤;并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

考点8:

在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用()命令实现

  • A #shutdown -r now
  • B #halt
  • C #reboot
  • D #init3

解析

显示答案/隐藏答案正确答案: A

在linux命令中reboot是重新启动,shutdown -r
now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。
shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。
精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统执行该命令后会自动进行数据同步的工作。
该命令的一般格式: shutdown [选项] [时间] [警告信息]
命令中各选项的含义为:

  • k 并不真正关机而只是发出警告信息给所有用户
  • r 关机后立即重新启动
  • h 关机后不重新启动
  • f 快速关机重启动时跳过fsck
  • n 快速关机不经过init 程序
  • c 取消一个已经运行的shutdown
    需要特别说明的是该命令只能由超级用户使用。
    例1,系统在十分钟后关机并且马上重新启动: # shutdown –r +10
    例2,系统马上关机并且不重新启动:# shutdown –h now
    halt是最简单的关机命令,其实际上是调用shutdown

-h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
[-f] 没有调用shutdown而强制关机或重启
[-i] 关机或重新启动之前,关掉所有的网络接口
[-p] 关机时调用poweroff,此选项为缺省选项
reboot的工作过程与halt类似,其作用是重新启动,而halt是关机。其参数也与halt类似。reboot命令重启动系统时是删除所有的进程,而不是平稳地终止它们。因此,使用reboot命令可以快速地关闭系统,但如果还有其它用户在该系统上工作时,就会引起数据的丢失。所以使用reboot命令的场合主要是在单用户模式。
init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init
0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动

shutdown: 这个命令会通知系统内的各个进程,并通知关闭一些服务。
shutdown -h now 立刻关机 常用
shutdown -h 20:25 指定关机的时间
shutdown -h +10 10分钟后关机
shutdown -r now 系统立刻重启
shutdown -r +30 ‘the system will reboot’ 显示题是信息给所有在线用户
shutdown -k now ‘system will reboot’ 仅仅发出要重新启动的信息,而不会关机或者重启

reboot : 删除所有进程,不平稳终止。 ‘sync;sync;sync;reboot’

halt: 不理会目前系统状态,执行硬件关机。

init: 用于切换系统的运行级别,切换的工作是立即完成的。
init 0 关机
init 3 命令行模式
Init5 含有图形界面
init 4重启

理论上reboot适合于单用户的时候也是对的
init0 = 关机
init6= 重启

考点9:

Linux的可执行文件开头的特征字符串是什么

  • A PE
  • B MZ
  • C ELF
  • D LNX

解析

显示答案/隐藏答案正确答案: C

Executable Linkable File 可执行可链接文件

vi编辑器里面如何删除最后一行?
A
G;d
B
G;dd
C
A;dd
D
A;d
正确答案: B

gg到顶部;G = shift + g到底部。

vi编辑器一般模式下:
G:光标移到最后一行
dd:删除一行
shift+G 到底部,dd删除行

考点1:Linux开发者

Linux 最早是由一位名叫( )的计算机爱好者开放。

  • A Richard Petersen
  • B Linus Torvalds
  • C Rob Pike
  • D Linus Sarwar

解析

显示答案/隐藏答案正确答案: B

李纳斯·脱袜子

考点2:Linux pagefault

Linux什么情况下回发生page fault;

  • A 系统可用内存不够时
  • B 所需访问虚拟内存未被装载
  • C 当开始进行swap交换时
  • D 当进程被挂起时

解析

显示答案/隐藏答案正确答案: B

影响一个应用程序性能的因素有很多,这次说说page fault。

  1. 为什么会存在page fault问题?
    计算机的物理内存(看看你的内存条)有限,一般现在都是几个GB的容量了,BTW,我的笔记本有8GB,:-)。
    但应用程序的需求是无限的,操作系统为了解决这个矛盾,使用了虚拟内存的设计。简单的描述就是,给应用程序
    一个与物理内存无关的虚拟地址空间,并提供一套映射机制,将虚拟地址映射到物理内存。当然应用程序是不知道
    有这个映射机制存在的,他唯一需要做的就是尽情的使用自己的虚拟地址空间。操作系统提供的映射机制是
    运行时动态进行虚拟地址和物理地址之间的映射的,当一个虚拟地址没有对应的物理内存时候,
    映射机制就分配物理内存,构建映射表,满足应用程序的需求,这个过程就叫page fault。
    与直接访问物理内存不同,page fault过程大部分是由软件完成的,消耗时间比较久,所以是影响性能的一个关键指标。
    Linux把page fault又进一步分为minor page fault和major page
    fault。前面提到的分配物理内存,构建映射表过程可以看做是
    minor page fault。major page
    fault是由swap机制引入的,对于swap情况,地址映射好了后,还需要从外部存储读取数据,这个
    过程涉及到IO操作,耗时更久。
  2. 如何查看应用程序的page fault指标呢?
    1) 可以使用time命令:
    比如我想看看svm-train的情况(模型训练很耗资源)\time svm-train
    age_train_equal.txt(前面的斜杠表示不使用shell的内嵌time命令)
    输出是:7.68user 0.02system 0:07.71elapsed 99%CPU (0avgtext+0avgdata
    42768maxresident)k
    0inputs+6696outputs (0major+15445minor)pagefaults
    0swaps
    可以看到只有minor page fault,没有major。
    time命令的实现是用到了Linux提供的rusage机制。Linux的wait API可以返回一个应用程序的运行过程的资源消耗情况。
    如果你想在自己的代码中获取资源利用情况,可以使用libc的getrusage函数,这个函数也是内核的API。
    2) proc文件系统
    Linux系统下的/proc/PID/stat文件,也提供了相关统计数据。
    转自: http://www.cnblogs.com/cornsea/archive/2012/12/17/2821429.html

考点3:Linux文件去重并排序

以下哪个命令可实现文件去重并排序:

  • A uniq demo.txt
  • B sort demo.txt
  • C uniq demo.txt|sort
  • D sort demo.txt|uniq

解析

显示答案/隐藏答案正确答案: D

考点4:自定义DNS解析

当内网内没有条件建立dns服务器,又不想用IP访问网站,应配置什么文件

  • A hosts
  • B sysconfig
  • C network
  • D hostname

解析

显示答案/隐藏答案正确答案: A

hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下。hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名。在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决。通过可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问。

hosts文件在/etc/hosts下。
既然看到/etc/了,兄弟萌一起来回顾下/etc/目录下的一些文件的作用吧!!!
/etc/resolv.conf 是DNS配置文件。在网卡配置文件中进行配置,默认情况下 网卡配置文件DNS优先于/etc/resolv.conf。
/etc/hostname 在Centos 7,配置主机名,查看修改。
/etc/hosts ip与域名对应关系 ,解析域名(主机名),用/etc/hosts搭建网站的测试环境 (虚拟机)。不同服务器之间相互访问。
/etc/gateways 设置路由器
/etc/fstab file system table :文件系统挂载表,开机的时候设备与入口对应关系 开机自动挂载列表。
/etc/rc.local 开机自启
/etc/inittab(centos 6)运行级别的配置文件
/etc/profile 环境变量配置文件
/etc/bashrc 命令别名
/etc/motd 文件中的内容 会在用户登录系统之后显示出来
/etc/issue /etc/issue.net 文件中的内容 会在用户登录系统之前显示出来

考点5:tar解压缩到指定目录:tar -xvzf 压缩包 -C 目的目录

为了将当前目录下的归档文件myftp. tgz解压缩到/tmp目录下,用户可以使用命令

  • A tar xvzf myftp. tgzC /tmp
  • B tar xvzf myftp. tgzR /tmp
  • C tar vzf myftp. tgzX /tmp
  • D tar xvzf myftp. tgz /tmp

解析

显示答案/隐藏答案正确答案: A

tar命令中
-x:extract files from an archive即从归档文件中释放文件;
-v:verbosely list files processed即详细列出要处理的文件;
-z:filter the archive through gzip即通过gzip解压文件;
-f:use archive file or device ARCHIVE即使用档案文件或设备;
通常情况下解压.tar.gz和.tgz等格式的归档文件就可以直接使用tar xvzf;
因为要解压到指定目录下,所以还应在待解压文件名后加上-C(change to directory)参数

tar 配合压缩解压缩常用用法

tar压缩

tar -cvzf 打包文件名 打包文件集

tar解压缩

tar -xvzf 需要解包的文件名 -C 解压路径.

x解压
z表示gz压缩文件
v显示过程
f指定的文件

-C指定位置

-c: 建立新的备份文件
-t:列出备份文件的内容
-x:从备份文件中还原文件
-z:通过gzip指令处理备份文件
-v:显示指令执行过程
-f:指定压缩或解压文件

touch a.c  
# 压缩 a.c文件为test.tar.gz a.c
tar -czvf test.tar.gz a.c   
# 列出压缩文件内容
tar -tzvf test.tar.gz
# 解压文件
tar -xzvf test.tar.gz

-C(change to directory)参数

考点6:

设定linux系统默认为字符模式,需要修改的配置文件是( )

  • A /etc/fstab
  • B /etc/inittab
  • C /etc/boot
  • D /etc/inittab.conf

解析

显示答案/隐藏答案正确答案: B

etc/inittab 最后一行是运行等级,我的是centos6.5,默认是5,即图形化界面,将5修改为3后,则默认的启动模式将由图形化界面变为纯字符的命令行模式。两者之间也可以通过键盘组合键来转换,ctrl+alt+F2切换到纯字符,alt+F2切换成图形化界面。

把id:5:initdefault中5修改3,

Linux下有7个运行级别

0系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
1单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2多用户模式,没有NFS网络支持。
3完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式。
4系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。 5图形化模式,登陆后进入图形GUI模式,X Window系统。
6重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启。

考点7:chmod修改文件权限

文件目录data当前权限为rwx------,只需要增加用户组可读可执行权限,但不允许写操作,具体方法为:

  • A chmod +050 data
  • B chmod +040 data
  • C chmod +005 data
  • D chmod +004 data

解析

显示答案/隐藏答案正确答案: A

对目录来说只有(r)权限是无法进入的,还要赋予执行权限(x)

考点8:chmod修改文件权限

文件exer1的访问权限为rw-r--r-- ,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是

  • A chmod a+x,g+w exer1
  • B chmod 775 exer1
  • C chmod o+x exer1
  • D chmod g+w exer1

解析

显示答案/隐藏答案正确答案: AB

u-g-o:表示用户-用户组-其他用户。
a : 表示所有 用户,
x : 执行权限,r:读权限,w:写权限。
A: a+x = 增加所有用户的执行权限;g+w = 同组用户的写权限,正确;
B:由于文件exer1 刚开始的访问权限为
rw- r– r–,
所有用户加上执行权限变为:rwx r-x r-x
同组用户加上写权限变为:rwx rwx r-x = 775(4-2-1表示r-w-x)。正确。

考点9:删除非目录的方法

Linux的非root用户,在自己的目录中,不可以删除非空目录dirs的方法是:

  • A rm dir dirs
  • B rm -r dirs
  • C mv dirs /dev/null
  • D destroy dirs

解析

显示答案/隐藏答案正确答案: ACD