Linux生产应用常见习题汇总
阅读原文时间:2023年07月10日阅读:1

1、如果想修改开机内核参数,应该修改哪个文件? C
A./dev/sda1 (scsi sata sas,是第1块盘的第1个分区)
B./etc/fstab (开机磁盘自动挂载配置文件)
C./etc/grub/grub.conf (内核参数配置文件)
D./etc/rc.local (开机自启动服务文件)

2、在Centos linux中,备份脚本bak.sh,需要在周一至周五每天下午1点整合和晚上8点整运行一次,下面哪条可以完成这项工作? D
A.0 13,20 * 1-5 * bak.sh B.0 13,20 1,5 * * bak.sh
C.* 13,20 * * 1-5 bak.sh D.0 13,20 * * 1,2,3,4,5 bak.sh

3、Your umask is set to 002.If you create a new file,what will the permission of the new file be? C
A.-------w- B.rwxrwx-w- C.rw-rw-r-- D.rwxrwxr-x

4、如何查看二进制文件内容
od 查看二进制文件
-t 指定进制

5、写一个脚本,实现批量添加20个用户user1-20,密码为用户名和后面跟5个随机字符
#!/bin/sh
# 思路:通过for循环,创建多个用户和用户其对应的随机密码文件,在用chpasswd命令实现批量设置密码

# 创建user1~20用户,并创建其对应的随机密码文件  
for ((i=1; i<=20; i++));  
do  
/usr/sbin/useradd user$i    # 创建用户  
/bin/echo -e "user$i:user$i\`echo user$i|md5sum|cut -c 5-9\`">>useradd.txt;    # 创建随机密码文件  
done

6、统计/var/log/下文件个数
find /var/log/ | wc -l

7、常用linux命令
显示指定工作目录下的内容:ls; 复制:cp; 移动:mv; 删除:rm;
查看服务器负载:top; 查看本地网卡信息:ifconfig,ip; 查看文档:cat,more,head,tail,less,vim;
显示磁盘使用情况:df; 编辑文本:vi,vim,sed; 查看当前系统内存使用情况:free;
查看占用80端口的进程:netstat -lntpu|grep "80",lsof -i :80; 打印出file1文件第1行到第3行:head -3 file1,head -n 3 file1;
将/home/tong/test 目录下大于100k的文件转移到/tmp目录:
1.find /home/tong/test/ -type f -size +100k -exec mv {} /tmp/ \;
2.find /home/tong/test/ -type f -size +100k | xargs -i mv {} /tmp/
3.\mv `find /home/tong/test/ -type f -size +100k` /tmp/

8、一个文件的权限为:drwxr-xr-x,请写出权限的数值表示是什么,此文件类型是什么
r读权限,w写权限,x执行权限,d目录文件,前rwx指的是文件属主权限,中间r-x指的是文件属组权限,后r-x指的是文件其他人权限

9、请写出redhat中,配置网卡及dns的配置文件是什么
网卡:/etc/sysconfig/network-scripts/ifcfg-eth*
DNS:/etc/resolv.conf

10、将监控脚本"/usr/local/nagios/libexe/m.sh"放入crontab内,使其每7分钟执行1次,请写出在crontab内添加的内容
*/7 * * * * /bin/sh /usr/local/nagios/libexe/m.sh &>/dev/null

11、请写出删除/backup/mysql/目录下三天前备份文件的命令
1.find /backup/mysql/ -type f -mtime +3 -exec rm -f {} \;
2.find /backup/mysql/ -type f -mtime +3 | xargs rm -f
3.rm -f `find /backup/mysql/ -type f -mtime +3`

12、在命令重定向中 >、1>、2>、&>、>>各表示什么意思
>和1>是一样的,为标准正确输出重定向(仅命令执行正确时,执行结果输出到一个文件)
2>是错误输出重定向(仅命令执行错误时,执行报错输出到一个文件)
&>输出重定向(无论命令执行正确与否,执行结果都输出到一个文件)
>>为标准正确追加重定向(仅命令执行正确时,执行结果追加到一个文件的末尾处)

13、请列出linux下如何进入单用户的方法
1.编辑/etc/inittab,将启动模式改为1,重启Linux系统
2.命令行界面下,执行 "init 1" 命令

14、磁盘空间被占满如何定位问题?inode用尽如何定位问题?
1.df -h查看磁盘空间使用情况,若block没满,则df -i查看系统inode使用情况
2.如果是inode满了,优先检查是否是因为定时任务书写不规范导致mail邮件目录下小文件过多,如果是,清理邮件目录下的小文件,重新规范编写定时任务(即定时任务命令后加 "&>/dev/null")
3.如果不是邮件目录下堆满了小文件,则通过find或其他命令遍历系统文件,找出小文件过多的位置,定位问题源,进行处理,避免下次再出现类似问题

15、让系统开机启动某个脚本或服务有哪些方式?
1.将启动脚本或服务的命令添加到/etc/rc.local文件中
2.为服务配置chkconfig启动脚本,通过chkconfig控制自启动与否

16、配1个定时任务,每天0点整将/var/log/nginx目录下7天以前大于1G的日志文件移动到/date/2017xxxx(以前1天日期命名)的目录中
mkdir /scripts
echo 'mkdir -p /date/`date -d "1 day ago" +%Y%m%d` && find /var/log/nginx/ -type f -name "*.log" -mtime +7 -size +1G -exec mv {} /date/`date -d "1 day ago" +%Y%m%d` \;' >/scripts/nginxlog.sh
echo -e "# nginx日志整理\n/bin/sh /scripts/nginxlog.sh &>/dev/null" >>/var/spool/cron/`who | awk '{print$1}'`

17、请列出以下命令的功能解析
sort、grep、tail、scp、rsync、ssh、netstat、find、sed
sort文件排序,例:ls | sort -R
grep过滤想要的内容,例:netstat -lntpu | grep 80
tail查看文件的尾部,常常用tailf或tail -F动态查看文件尾部内容,例:tailf /var/log/messages
scp传输文件,例:scp root@10.0.0.188:love root@10.0.0.188:/tmp/test/
rsync同步文件命令,常用于备份,可实现全量增量备份
ssh连接终端,常用于远程连接
netstat查看网络连接状态命令
find查找文件命令
sed流编辑器,可实现文件内容的过滤以及增删查改

18、如何查看swap分区、内存的大小及使用情况?buffer与cached什么区别?
查看swap分区、内存命令:free -h
buffer缓冲区,常用于提供写操作中介区;
例:在生产环境中,有些服务器需要大量的写操作,大量的写操作会过量的消耗磁盘io,影响服务器性能,所以可以通过把需要写入服务器磁盘中的数据先存放到buffer中,待buffer中数据达到一定大小后,再统一将其写入到磁盘中,这样可以大大的优化服务器的性能
cached缓存区,常用于提供读操作中介区;
例:在生产环境中,有些服务器需要大量的读操作(如淘宝网站),磁盘的读取速度太慢了,大大影响了服务器的访问速度,因此,可以通过构建cached(cached的读物速度很快),将读取频率很大的文件内容存放到cached中,当出现访问时,可以直接从cached中提取数据,提升网站的访问速度

19、如何看到某用户对系统所做的操作和系统登录记录
who查看当前登陆的用户,last查看近期登陆的用户列表,lastlog查看历史登陆过的用户及用户上次登陆的时间
通过history命令或cat ~/.bash_history可以查看用户对系统所做过的操作

20、简述raid0 raid1 raid5 三种工作模式的工作原理及特点
raid0:至少2块盘,系统有数据请求时可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求;raid0读写速度快(单个磁盘2倍以上),磁盘利用率高,但没有数据备份功能,数据安全性低
raid1:至少2块盘,磁盘镜像实现数据冗余,在成对独立磁盘上产生互为备份的数据;raid1数据完全备份,数据安全性高,但读写速度慢,磁盘利用率低
raid5:至少3块盘,把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,仅坏1块盘不会导致数据丢失;读取速度较快(比raid0稍慢),磁盘利用率较高,有一定的数据冗余性,但冗余性不高,当同时坏多块盘时,会导致数据丢失

21、找出系统内大于50k,小于100k的文件,并删除它们
find / -type f -size +50k -size -100k | xargs ls -lh
find / -type f -size +50k -size -100k -exec rm -f {} \;

22、用sed命令实现直接将文件DU.TXT中的所有abc替换成def
sed 's#abc#def#g' DU.TXT -i

23、怎么把脚本添加到系统服务里,即用service来调用
如把/etc/init.d/xinetd脚本添加到系统服务里,使其能被service调用,启动tftp服务
在/etc/services里添加如下行内容:
xinetd 69/udp # tftp

24、列出/home/tom/下各个子目录占用的空间大小
1.find home/tom/ -type d | xargs du --max-depth=0 -h
2.find /etc -type d -exec du --max-depth=0 -h {} \;
3.du --max-depth=0 -h `find /etc -type d`
4.du --max-depth=0 -h $(find /etc -type d)

25、编写shell脚本,实现功能:在目录/tmp下找到10个以abc开头的文件,然后把这些文件的第一行保存到文件new中
#!/bin/sh
find /tmp/ -type f -name "t*" | xargs head -1q >>new

26、12块2TB磁盘在不考虑HotSpare的情况下做RAID0、RAID1、RAID5后空间分别为 24TB, 12TB, 22TB。

27、已知/tmp目录下存在了no1.txt文件,如何执行命令才能把/test/no1.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让Linux系统不提示是否覆盖(root权根下)
① \cp /test/no1.txt /tmp/test.txt 解析:使用命令本身的意义,即不使用别名
② /bin/cp /test/no1.txt /tmp/test.txt 解析:全路径执行命令
③ unalias cp;cp /test/no1.txt /tmp/test.txt 解析:临时删除系统别名,使用命令本身的意义

28、只查看test.txt文件(100行)内第20到第30行的内容第20行到第30行,一共是11行
① head -30 test.txt | tail -11
② sed -n '20,30'p test.txt 解析:-n(取消默认输出);p(打印行号数据)
③ awk 'NR>19 && NR<31' test.txt 解析:NR(行号);awk ''

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

30、linux下通过mkdir 命令创建一个新文件/caiyun/ddu,它的硬链接数是多少,为什么?
如果在/caiyun/ddu下面再创建一个目录test。再问/caiyun/ddu的硬链接数是多少?为什么?
1. 硬链接数为2,其分别为ddu和ddu目录下的.
2. 硬链接数为3,其分别为ddu、ddu目录下的.和test目录下的..