习题1
以下的命令得在(每周三03:06分 )自动执行:
06 03 * * 3 lp /usr/local/message | mail -s “server message” root
使用crontab命令编辑
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
习题2
公司网络中心linux服务器需要升级OA系统,为了防止客户登录影响系统升级,网络管理员可以执行的操作有( touch /etc/nolgoin、init 3、iptable -S INPUT -t tcp -s !127.0.0.1 -j DROP)
init 3
重启登陆后进入控制台命令行模式(无GUI)
init 6
系统正常关闭并重启
iptable -S INPUT -t tcp -s !127.0.0.1 -j DROP
屏蔽非 ip 127.0.0.1 的tcp请求
习题3
命令:[-z””]&&echo 0 ||echo 1的输出是什么(0)
[ -z “” ] 命令判断双引号中变量的字符串长度是否为0,
[ -z “” ] && echo 0 || echo 1
^ ^ ^
命令1 命令2 命令3
本题即: 先判断 “” 变量中是否无值,成功
然后根据 && 符特性,当命令1执行成功时执行命令2,也就是执行echo 0
然后根据 || 符特性,前一个命令不能执行才执行后一个,命令2 echo 0 执行成功,所以命令3 echo 1 不执行
命令结束
测试
将0改成kuangfeng 1改成fengkuang
[-z “”]为1的情况
输出结果为kuangfeng 即为0
[-z “”]为0的情况
输出结果为fengkuang 即为1
习题4
下列不是dns服务主配置文件的是( dns.conf、name.conf、named.local )。
DNS服务器主配置文件: /etc/named.conf
习题5
以下哪一个命令只查找源代码、二进制文件和帮助文件,而不是所以类型的文件?此命令查找的目录是由环境变量$PATH指定的(whereis)
whereis 查看文件的位置
-b : 只找二进制文件 /可执行文件
-m: 只找在说明文件manual路径下的文件 /帮助文件
-s : 只找source源文件 /源代码文件
-u : 没有说明文档的文件
-B :指定搜索可执行文件的路径
-M :指定搜索帮助文件的路径
-S :指定搜索源代码文件的路径
which 查看可执行文件的位置
whatis 用于查询命令有什么功能
apropos 搜索指定关键词的命令
习题6
int main(){fork()||fork();}共创建几个进程:(3)
fork()给子进程返回一个零值,而给父进程返回一个非零值;
在main这个主进程中,首先执行 fork() || fork(), 左边的fork()返回一个非零值,根据||的短路原则,前面的表达式为真时,后面的表达式不执行,故包含main的这个主进程创建了一个子进程,
由于子进程会复制父进程,而且子进程会根据其返回值继续执行,就是说,在子进程中, fork() ||fork()这条语句左边表达式的返回值是0, 所以||右边的表达式要执行,这时在子进程中又创建了一个进程,
即main进程->子进程->子进程,一共创建了3个进程。
习题7
进程间通讯方式有哪些?
(管道、消息队列、共享内存、文件和记录锁定)
UNIX中有如下的通信方式:
- 文件和记录锁定。
为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对
共享资源进行访问前必须对其进行锁定,该进程访问完后再释放。这是UNIX为共享
资源提供的互斥性保障。
2 )管道。
管道一般用于两个不同进程之间的通信。当一个进程创建一个管道,并调用fork创
建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样 提供了
两个进程之间数据流动的一种方式。
3 ) FIFO 。
FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个
FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管。
4)消息队列。
UNIX下不同进程之间可实现共享资源的一种机制;UNIX允许不同进程将格式化的数
据流以消息形式发送给任意
进程。对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制
。通过使用消息类型,进程可以按任何顺序读消息,或为消息安排优先级顺序。
5 )信号灯。
作为进程间通讯的一种方法,它不是用于交换大批数据,而用于多进程之间的同步
(协调对共享存储段的存取)。
6 )共享内存。
通过信号灯实现存储共享(类似“红灯停、绿灯行”)
Linux进程间通信:管道、信号、消息队列、共享内存、信号量、套接字(socket)
Linux线程间通信:互斥量(mutex),信号量,条件变量
Windows进程间通信:管道、消息队列、共享内存、信号量 (semaphore) 、套接字(socket)
Windows线程间通信:互斥量(mutex),信号量(semaphore)、临界区(critical section)、事件(event)
习题8
下面哪些命令可以查看file1文件的第300-500行的内容?(cat file1| head -n 500 | tail -n +300、sed -n ‘300,500p’ file1)
head -n k # 打印前k行
head -n -k # 打印除最后k行外的所有内容
tail -n k # 打印最后k行
tail -n +k # 从k行开始打印
习题9
以下哪些命令可以获取linux主机的负载相关指标(uptime、top、sar)
uptime命令过去只显示系统运行多久。现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
top命令可以查看系统整体状态
最后一些输出信息的解释:
load average: 0.09, 0.05, 0.01
三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟),它们的数字是越小越好。在多核处理中,系统的均值不应该高于处理器核心的总数量
进程使用的内存可以用top,有3个列VIRT RES SHR, 标示了进程使用的内存情况, VIRT标识这个进程可以使用的内存总大小, 包括这个进程真实使用的内存, 映射过的文件, 和别的进程共享的内存等. RES标识这个这个进程真实占用内存的大小. SHR标识可以和别的进程共享的内存和库大小.
sar -u输出显示CPU信息。-u选项是sar的默认选项。该输出以百分比显示CPU的使用情况
ls跟dos下的dir命令是一样的都是用来列出目录下的文件
crontab是一个定时执行任务命令,不能查看系统负载。
,系统的均值不应该高于处理器核心的总数量
进程使用的内存可以用top,有3个列VIRT RES SHR, 标示了进程使用的内存情况, VIRT标识这个进程可以使用的内存总大小, 包括这个进程真实使用的内存, 映射过的文件, 和别的进程共享的内存等. RES标识这个这个进程真实占用内存的大小. SHR标识可以和别的进程共享的内存和库大小.
sar -u输出显示CPU信息。-u选项是sar的默认选项。该输出以百分比显示CPU的使用情况
ls跟dos下的dir命令是一样的都是用来列出目录下的文件
crontab是一个定时执行任务命令,不能查看系统负载。