20条Linux命令面试问答
文章来源自伯乐在线
问:1 如何查看当前的Linux服务器的运行级别?
答: who -r
和 runlevel
命令可以用来查看当前的Linux
服务器的运行级别。
运行级别:
- 0 - 停机(千万不要把
initdefault
设置为0 ) - 1 - 单用户模式
- 2 - 多用户,但是没有
NFS
- 3 - 完全多用户模式
- 4 - 没有用到
- 5 -
X11
- 6 - 重新启动(千万不要把
initdefault
设置为6 )
问:2 如何查看Linux的默认网关?
答: 用 route -n
和 netstat
-nr
命令,我们可以查看默认网关。除了默认的网关信息,这两个命令还可以显示当前的路由表。
问:3 如何在Linux上重建初始化内存盘镜像文件?
linux
内存初始化技术(initrd
)用于支持两阶段的系统引导过程,是在系统启动过程中被挂载的临时root
文件系统。initrd
包含很多可执行程序和驱动,并允许在临时的内存磁盘根文件系统被卸载,内存被释放后挂载真实的root
文件系统。在许多嵌入式linux
文件系统中,initrd
是最终的根文件系统。
什么是内存磁盘初始化?
initrd
挂载优先级高于真实根文件系统,它被绑定在内核上,做为内核启动过程的一部分被加载(load
)。然后,做为两阶段引导过程的第一部分,内核挂载(mount
)initrd
,用于获得并加载真实有效的文件系统。为了达到这个目的,initrd
包含有最起码的目录与程序,例如insmod
,来安装内核模块到内核中。
对于桌面或服务器linux
,initrd
是临时文件系统,它的生存周期很短,仅仅是做为到达真实根文件系统的桥梁。但对于没有存储设备的嵌入式系统来说,它才是永久性的根文件系统。
答: 在CentOS 5.X / RHEL 5.X
中,可以用mkinitrd
命令来创建初始化内存盘文件,举例如下:
# mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
如果你想要给特定的内核版本创建初始化内存盘,你就用所需的内核名替换掉 uname -r
。
在CentOS 6.X / RHEL6.X
中,则用dracut
命令来创建初始化内存盘文件,举例如下:
# dracut -f
以上命令能给当前的系统版本创建初始化内存盘,给特定的内核版本重建初始化内存盘文件则使用以下命令:
# dracut -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-xx.el6.x86_64
问:4 cpio命令是什么?
答: cpio
就是复制入和复制出的意思。cpio
可以向一个归档文件(或单个文件)复制文件、列表,还可以从中提取文件。
问:5 patch命令是什么?如何使用?
答: 顾名思义,patch
命令就是用来将修改(或补丁)写进文本文件里。patch
命令通常是接收diff
的输出并把文件的旧版本转换为新版本。举个例子,Linux
内核源代码由百万行代码文件构成,所以无论何时,任何代码贡献者贡献出代码,只需发送改动的部分而不是整个源代码,然后接收者用patch
命令将改动写进原始的源代码里。
创建一个diff文件给patch使用,
# diff -Naur old_file new_file > diff_file
旧文件和新文件要么都是单个的文件要么都是包含文件的目录,-r
参数支持目录树递归。
一旦diff
文件创建好,我们就能在旧的文件上打上补丁,把它变成新文件:
# patch < diff_file
问:6 aspell有什么用 ?
答: 顾名思义,aspell
就是Linux
操作系统上的一款交互式拼写检查器。aspell
命令继任了更早的一个名为ispell
的程序,并且作为一款免费替代品
,最重要的是它非常好用。当aspell
程序主要被其它一些需要拼写检查能力的程序所使用的时候,在命令行中作为一个独立运行的工具的它也能十分有效。
问:7 如何从命令行查看域SPF记录?
SPF
是为了防范垃圾邮件而提出来的一种DNS
记录类型,它是一种TXT
类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP
地址。按照SPF
的格式在DNS
记录中增加一条TXT
类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。SPF
是跟DNS
相关的一项技术,它的内容写在DNS
的txt
类型的记录里面。mx
记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF
的作用跟mx
相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。
由定义可以看出,SPF
的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。
答: 我们可以用dig
命令来查看域SPF
记录。举例如下:
linuxtechi@localhost:~$ dig -t TXT google.com
问:8 如何识别Linux系统中指定文件(/etc/fstab)的关联包?
答:
# rpm -qf /etc/fstab
以上命令能列出提供/etc/fstab
这个文件的包。
问:9 哪条命令用来查看bond0的状态?
答:
$ cat /proc/net/bonding/bond0
问:10 Linux系统中的/proc文件系统有什么用?
答: /proc
文件系统是一个基于内存的文件系统,其维护着关于当前正在运行的内核状态信息,其中包括CPU
、内存、分区划分、I/O
地址、直接内存访问通道和正在运行的进程。这个文件系统所代表的并不是各种实际存储信息的文件,它们指向的是内存里的信息。/proc
文件系统是由系统自动维护的。
问:11 如何在/usr目录下找出大小超过10MB的文件?
答:
# find /usr -size +10M
问:12 如何在/home目录下找出120天之前被修改过的文件?
答:
# find /home -mtime +120
问:13 如何在/var目录下找出90天之内未被访问过的文件?
答:
# find /var \! -atime -90
问:14 在整个目录树下查找文件“core”,如发现则无需提示直接删除它们。
答:
# find / -name core -exec rm {} \;
问:15 strings命令有什么作用?
答: strings
命令用来提取和显示非文本文件中的文本字符串。(译注:当用来分析你系统上莫名其妙出现的二进制程序时,可以从中找到可疑的文件访问,对于追查入侵有用处)
问:16 tee 过滤器有什么作用 ?
答: tee
过滤器用来向多个目标发送输出内容。如果用于管道的话,它可以将输出复制一份到一个文件,并复制另外一份到屏幕上(或一些其它程序)。
$linuxtechi@localhost:~$ ll /etc | nl | tee /tmp/ll.out
在以上例子中,从ll
输出可以捕获到/tmp/ll.out
文件中,并且同样在屏幕上显示了出来。
问:17 export PS1 = ”$LOGNAME@hostname:\$PWD: 这条命令是在做什么?
答: 这条export
命令会更改登录提示符来显示用户名、本机名和当前工作目录。
问:18 ll | awk ‘{print 3,”owns”, 9}’
这条命令是在做什么?
答: 这条ll
命令会显示这些文件的文件名和它们的拥有者。
问:19 :Linux中的at命令有什么用?
答: at
命令用来安排一个程序在未来的做一次一次性执行。所有提交的任务都被放在 /var/spool/at
目录下并且到了执行时间的时候通过artd
守护进程来执行。
问:20 linux中lspci命令的作用是什么?
答: lspci
命令用来显示你的系统上PCI
总线和附加设备的信息。指定-v
,-vv
或-vvv
来获取越来越详细的输出,加上-r
参数的话,命令的输出则会更具有易读性。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。