高级工具篇

1 如何使文件untouchable.txt为锁定状态,任何用户(包括root)都不能编辑和删除。

可以通过chattr命令修改隐藏属性来实现这个需求:

chattr +i untouchable.txt

2 如何在不创建文件的情况下从命令行运行PHP语句?

可以使用php交互式输入

php -r 'echo "Hello World \r\n";'

3 如何查找计算机上所有用户的(独立)使用时间

可以使用ac命令获取有关用户的登录信息

ac -p

4 如何使用变量作为命令的一部分?例如:set pipeline="|"然后运行ps aux $pipeline grep root

可以使用eval命令从字面意思上使用变量值

eval ps aux $pipline grep root
# 等价于下面的命令
eval ps aux | grep root

5 你想为服务器创建网络统计信息和图标,你会使用哪种常用的工具?

常见的且比较推荐的网络统计开源工具有mrtg(Multi Router Traffic Grapher)

6 如何直接从命令行向BIOS发送一个查询信息?

要查询BIOS,你可以从命令行中使用biosdecode进行查询

7 如何在Linux系统上操作分区

Linux提供了用于分区操作的常用命令有fdisk和parted等

8 命令lsmod的执行结果是什么?

lsmod命令将显示加载到Linux内核中的模块的状态,这是查看/proc/modules是好办法。

9 如何找到本地计算机的硬件配置和描述

你可以通过DMI表解码器(dmidecode命令)查看到系统硬件和配置等信息。

10 如何在Linux上挂载NTFS分区

可以使用一个叫做ntfs-3g也叫做mount.ntfs的扩展命令来挂载ntfs文件系统

11 LD_LIBRARY_PATH环境变量有什么用?

它是一个环境变量集,用于在搜索共享库时为RT共享库加载程序提供额外的查找目录。

12 如何获取myFile文件的访问时间、更改时间和改动时间?

这些访问时间、更改时间和改动时间等文件时间信息,可以使用stat myFile命令来获取并查询得到。

13 想要将mysql服务中的mySQLDB库保存到文件mySQLDB.sql中,需要怎么做?

使用mysqldump命令可以实现,具体命令如下:

mysqldump -u username -p mySQLDB > mySQLDB.sql

14 如何确定每个正在运行的进程的系统资源优先级?

系统中使用nice命令为系统上的进程分配资源并确认其优先级。想为特定的进程指定优先级,可以使用下面的命令:

renice level <process id>

15 如何从终端命令行获取域名google.com的NS记录?

dig命令允许你获取指定域名的A,AAAA,NS等记录信息,比如下面的命令

dig google.com NS

16 你正在用tail -f命令打开/var/log/messages文件监控某些特定的报错信息,同时你想把这些信息保存到一个较小的文件found.log中,方便后续从这个较小的文件中搜索更方便,该如何做?

tee命令可以将标准IO的数据保存到一个文件当中,你可以使用下面的命令将你用tail命令中看到的数据保存到foubd.log文件中

tail -f /var/log/messages | tee found.log

17 如何检查所有服务的运行级别信息

要检查服务的运行级别信息,可以使用下面的命令

chkconfig --list
# systemd取代了intid的发行版本中,使用的是下面的命令
systemctl list-unit-files

18 如何允许一个普通用户在不知道root用户密码的情况下使用"超级用户"的命令

如果想要允许普通用户在没有管理员(或者是root)用户的权限的情况下,可以使用一些需要管理员权限的命令,可以再sudoers文件中为其添加特定(或全部)的命令权限。

19 如何检查/bin/vi需要用到哪些依赖库?

运行命令:ldd /bin/vi可以得到/bin/vi的依赖库信息

20 你想安装一个新的perl模块,正确的做法是什么?

perl有自己的管理控制台capn可以允许你用install Group::Module的命令来安装新的模块。

21 如何在Linux的网络接口eth0上面启用巨型帧(9000)

在命令行中使用

ifconfig eht0 mtu 9000

可以临时启用,如果需要永久化启动,则需要把内容添加到ifcfg-eth0文件中。

22 解释以下命令:iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP

该命令是向iptables防火墙添加一条规则,规则的内容是删除服务器的所有ping请求。

23 wine程序在Linux系统上的作用是什么?

wine程序在Linux服务器/工作站上面模拟出windows的运行环境,可以用来运行windows应用程序。

24 什么是Nagios系统?

Nagios是一个开源监控工具/应用程序,可以帮助识别和解决基础硬件/网络的故障问题

25 你需要在命令行终端生成一个随机数,在没有其他可生成随机数的编程语言帮助下,该如何做到这一点?

用下面的命令从/dev/urandom中生成一个随机数字的字符串

od -N3 -tu2 -vAn < /dev/urandom|sed 's/ //g'

26 你有一个机密文件top_secret.txt,该如何安全的永久删除?

可以使用shred命令重复的覆盖该文件n次,使其无法恢复

shred -n 10 -z top_secret.txt

27 你在/home/user/downloaded目录中,不想通过部署和配置httpd的web服务的情况下,如何使用python来实现共享该目录中的文件

在python中有一个叫做SimpleHTTPServer的快速实现web服务的功能,可以用它来提供本地目录的共享

python -m SimpleHTTPServer

28 在命令行终端中运行一个命令,如何将这个命令发送到后台运行?

要将命令发送到后台运行,可以使用组合键Ctrl+z先暂停正在运行的命令/应用,再输入bgin将其发送到后台。

29 如何将源文件myprog.c编译为一个可执行的二进制文件myprog?

编译c文件最常用的编译器是gcc,可以通过下面的命令来编译

gcc myprog.c -o myprog