Linux 错题集

1.启动交换文件的指令是?
正确答案: C 你的答案: B (错误)
A up
B swapup
C swapon
D swapin
解析:
swapon
功能说明:激活swap
参 数:-a 自动启动所有SWAP装置
            -s 显示简短的装置讯息

2.Linux下查看服务程序占用的端口命令是什么?
正确答案: B 你的答案: D (错误)
A ps -aux
B netstat –apn
C watch
D lsof
解析:
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态,连接等信息。
参数apn的作用如下:
-a (all)显示所有选项,默认不显示LISTEN相关
-p 显示建立相关链接的程序名
-n 拒绝显示别名,能显示数字的全部转化成数字。

3.如果参数列表个数为1则执行 &lt; 1 , 如 果 参 数 列 表 个 数 为 2 则 执 行 &lt;1 , 如果参数列表个数为2则执行 <1,2<2<$ ,其他情况则……,补充下面的命令
Case ( ) in
1>
$<1
2>
$<2<$1
Default >
echo ……
正确答案: B 你的答案: C (错误)
A $$
B $#
C $@
D $*
解析:
$# 是传给脚本的参数个数
$0是脚本本身的名字
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$ $ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

4.关于linux的I/O复用接口select和epoll,下列说法错误的是()
正确答案: C 你的答案: E (错误)
A select调用时会进行线性遍历,epoll采用回调函数机制,不需要线性遍历
B select的最大连接数为FD_SETSIZE
C select较适合于有大量并发连接,且活跃链接较多的场景
D epoll较适用于有大量并发连接,但活跃连接不多的场景
E epoll的效率不随FD数目增加而线性下降
F epoll通过共享存储实现内核和用户的数据交互
解析:
select 和 epoll效率差异的原因:select采用轮询方式处理连接,epoll是触发式处理连接。

Select:
1.Socket数量限制:该限制可操作的Socket数由FD_SETSIZE决定,内核默认32*32=1024.
2.操作限制:通过遍历FD_SETSIZE(1024)个Socket来完成调度,不管哪个Socket是活跃的,都遍历一遍。

Epoll
1.Socket数量无限制:该模式下的Socket对应的fd列表由一个数组来保存,大小不限制(默认4k)。
2.操作无限制:基于内核提供的反射模式,有活跃Socket时,内核访问该Socket的callback,不需要遍历轮询。
但当所有的Socket都活跃的时候,所有的callback都被唤醒,会导致资源的竞争。既然都是要处理所有的Socket,
那么遍历是最简单最有效的实现方式。

5.如何在命令行查看一台linux机器的CPU、SWAP分区信息、硬盘信息?
正确答案: A C D 你的答案: D (错误)
A cat /proc/cpuinfo
B du
C cat /proc/swaps
D df -lh
解析:
cat /proc/cpuinfo:查看一台linux机器的CPU信息 du:查看该目录占用文件系统数据块的情况
cat /proc/swaps:查看SWAP分区信息
df -lh:查看硬盘信息

6.在bash中,在一条命令后加入”1>&2”意味着
正确答案: A 你的答案: D (错误)
A 标准输出重定向到标准错误输出
B 标准输入重定向到标准错误输出
C 标准输出重定向到标准输入
D 标准错误输出重定向到标准输入
解析:
0 ,1,2叫文件描述符;Linux中,每打开一个文件都有一个小的整数与之对应,就是文件描述符!
0 是标准输入的 (stdin)
1 是标准输出的 (stdout)
2 是标准报错输出的 (stderr)
'<'是输入重定向符
‘>’是输出重定向符

7.进程之间通信都有哪些方式?
正确答案: A B C 你的答案: A B C D (错误)
A 共享内存
B 消息传递
C 系统管道
D 临界区
解析:
用于进程间通讯(IPC)的四种不同技术:

  1. 消息传递(管道,FIFO,posix和system v消息队列)
  2. 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)
  3. 共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区)
  4. 过程调用(Solaris门,Sun RPC) 4. 过程调用(Solaris门,Sun RPC)

8.统计日志中ip登陆次数,下面可以正确统计的为
正确答案: C D 你的答案: C (错误)
A cat catalina.log | awk -F ’ ’ ‘{print $3}’ | sort | uniq -c | head -10
B cat catalina.log | awk ‘{print $3}’ | uniq -c | wc -l
C cat catalina.log | awk -F ’ ’ ‘{print $3}’ | sort | uniq -c | wc -l
D cat catalina.log | awk ‘{print $3}’ | sort -k1nr | uniq -c | wc –l
解析:
1、awk -F ’ ’ ‘{print $3}’ 指定空格是分隔符进行分割,取第三个。(不指定默认分隔符也是空格)
2、uniq -c(uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。参数 - c :进行计数)
3、wc -l 行计数。
A : head -10 统计不完整。不符合题目意思
B : 没排序。重复行不相邻。故uniq -c 无法起到正确的作用。故统计结果错误。

9.有命令:
awk’BEGIN { Arr[2,79]=78 __________ }’
为了让执行的结果是78,应该填()语句
正确答案: A B C D 你的答案: C (错误)
A print Arr[“2\03479”]
B print Arr[2,79]
C idx=2 SUBSEP 79;print Arr[idx]
D print Arr[ 2, 79]
解析:
SUBSEP为数组下标的分隔符,预设值为“\034”,awk中的数组只接受字串当它的数组下标,awk在接受Arr[2,79]之前,就已将其下标转成字串“2\03479”,之后变便以Arr[“2\03479”]代替Arr[2,79]。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 代码查错是指在Linux操作系统中,对于出现问题的代码进行排查和修复的过程。在Linux系统中进行代码查错,一般可以采取以下几个步骤: 1. 了解错误信息:当代码在执行过程中出现错误时,系统会在终端或日志中输出相应的错误信息。我们首先需要仔细阅读错误信息,了解错误的性质和位置,以便进行下一步的处理。 2. 借助调试工具:Linux提供了一些强大的调试工具供开发者使用,比如GDB(GNU调试器)。通过在终端中运行GDB并加载出错的可执行文件,可以逐行执行代码并观察变量的值,帮助我们定位问题的所在。 3. 查看日志和配置文件:有些问题并不会直接在代码中抛出错误,而是记录在系统的日志文件中。我们可以使用命令行工具如cat或grep来查看日志文件的内容,从中寻找与错误相关的信息。 4. 打印日志和调试信息:在代码中适当地插入打印语句和调试信息,可以帮助我们追踪代码的执行流程和定位问题。通过观察打印输出,我们可以判断程序是否按照预期的方式运行,并可以排查问题所在。 5. 修改代码逻辑:一旦问题被定位,我们需要修改代码以修复错误。根据具体情况,可能是修复语法错误、逻辑错误,或者优化算法等。在修改代码之前,需要先进行备份,以便出现问题后可以回滚。 总的来说,Linux 代码查错需要仔细分析错误信息,结合调试工具、日志和调试信息,找到问题所在。然后通过修改代码逻辑来修复错误。这是一个迭代的过程,需要不断尝试,并逐步优化代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值