【Linux题目】第七关

1. 如果想修改开机内核参数,应该修改哪个文件? 

A. /dev/sda1

B. /etc/fstab 磁盘自动挂载的文件

C. /boot/grub/grub.conf

D. /etc/rc.local 开机自启动的文件

解答:选C

  1. scsi,sata,sas的硬盘是sd开头,IDE是hd开头,a1代表是第一块硬盘的第一个分区
  2. /etc/fstab 是开机磁盘自动挂载文件
  3. /etc/rc.local 是开机启动过程,启动完/etc/rc3.d

2. 在Centos linux中,备份脚本backup.sh,需要在周一至周五下午1点整和晚上8点整各运行一次,下面哪条cron指令可以完成这项工作?

A. 0 13,20 * 1,2,3,4,5 * backup.sh

B. 0 13,20 1,5 * * backup.sh

C. * 13,20 * * 1,2,3,4,5 backup.sh

D. 0 13,20 * * 1,2,3,4,5 backup.sh

 

解答:D

3. your umask is set to 002. if you create a new file, what will the permission of the new file be? 

A. -------w-

B. rwxrwx-w-

C. rw-rw-r--

D. rwxrwxr-x

 

解答:C

文件:666-002=664

4. 如何查看二进制文件的内容? 

解答:od命令

如:
od /bin/cat

-t 参数,指定进制

5. 写一个脚本,实现批量添加20个用户,用户名为user1-20,密码后面跟5个随机字符

解答:

for n in `seq 20`:
do 
   useradd user$n
   echo user$n|md5sum|echo "user$n`cut -c4-8`"|passwd --stdin user$n
done

原理:
就是passwd命令的--stdin参数从标准输入读取数据,作为密码输入。

示例:
useradd stu01;echo 123456|passwd --stdin stu01

 

补充:
还可以用chpasswd命令,需要的文件内的文本格式为username:password。

paste username.txt userpassword.txt|awk '{print $1":"$1$2}'|chpasswd

 

6. 统计/var/log/下文件个数

解答:

  • ll /var/log|grep '^-'|wc -l
  • tree /var/log -L 1|tail -1
  • find /var/log -type f |wc -l
  • find /var/log -maxdepth 1 -type f| wc -l

7. 操作系统方面: 常用Linux命令。

解答:

  • 显示指定工作目录下的内容:ls,tree
  • 复制:cp
  • 移动:mv
  • 删除:rm

查看服务器负载:w, uptime, htop
查看本地网卡信息:ifconfig, ip addr,ethtool eth0【这个是最正确的】
查看文档:cat,less,more

显示磁盘使用情况:df -h
编辑文本:vi,vim,sed,awk,echo >>
查看当前系统内存的使用情况: free -m
查看占用80端口的进程:ps -ef|grep -w 80 ;netstat -ntpul|grep 80 ;ss -tunlp|grep 80
打印出file1文件第一到第三行:head -3 file1 ; sed -n '1,3p' file1; awk "NR<4{print $0 }" file2

将/home/tong/test目录下大于100K的文件转移到/tmp目录:
find /home/tong/test -type f -size +100k -exec mv {} /tmp/ ;
find /home/tong/test -type f -size +100k|xargs -i mv {} /tmp
find /home/tong/test -type f -size +100k|xargs mv -t /tmp

8. 名词解释:swap,raid,chmod,ps aux|grep pid

解答:

  • swap Swap分区在系统的物理内存(这里应该是运行内存)不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
  • raid 磁盘阵列
  • chmod 更改文件权限
  • ps aux|grep pid 
    • ps:report a snapshot of the current processes.
    • 参数a:显示其它用户启动的进程
    • 参数u:启动这个进程的用户和它启动的时间
    • 参数x:查看系统中属于自己的进程

9. 一个文件的权限为:drwxr-xr-x,请写出权限的数值表示是什么,此文件的类型是什么。

解答:
权限数值为755
文件类型为目录
 
 

10. 请写出redhat中,配置网卡及dns的配置文件是什么

 解答:
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth3
dns配置文件:/etc/resolv.conf

11. 将监控脚本“/usr/local/nagios/libexe/m.sh”放入crontab内,使每7分钟执行一次,请写出在crontab内添加的内容。 

 解答:

*/7 * * * * /bin/sh /usr/local/nagios/libexe/m.sh >/dev/null 2>&1

12. 请写出删除/backup/mysql/目录下三天前备份文件的命令。

 解答:

find /backup/mysql/ -type f -mtime +3|xargs rm

13. 在命令重定向中 >, 1>, 2>, &>, >>各表示什么意思

解答:

  • > 标准输出重定向
  • 1> 标准输出重定向
  • 2> 标准错误输出重定向
  • &> 标准错误和正确输出重定向
  • >> 追加正确标准输出重定向

14. 请列出linux下如何进入单用户的方法

解答:

init 1 # 不用关机直接进入单用户模式
runlevel # 查看当前用户模式

15. 磁盘空间被占满如何定位问题?Inode用尽如何定位问题?

解答:

df -h # 查看磁盘空间使用情况
df -i # 查看Inode的使用情况

16. 系统开机启动某个脚本或服务有哪些方式?

解答:

1. chkconfig
2. /etc/rc.local

17. 一个定时任务,每天0点0分将/var/log/nginx 目录下7天以前大于1G的日志文件移动到/date/201911xx(以前一天日期命名的)目录中

解答:

#!/bin/sh
new_dir=/date/`/bin/date +%Y%m%d -d -1day`
mkdir $new_dir -p

/bin/find /var/log/nginx -type f -mtime +7 -size +1G|xargs -t mv $new_dir


#通过crontab -e进行编辑定时任务
## move /var/log/nginx logs file(7 days ago,over 1G) to /date/201911xx(one day ago)directory
0 0 * * * /bin/sh /scripts/nginx_mv_logs_cron.sh >/dev/null 2>&1

18. 请列出以下命令的常用参数和功能:

sort,grep,tail,scp,rsync,ssh,netstat,find,sed,awk

解答:

  • sort 
    • sort默认无参数,按照ascii码排序,升序,从小到大
    • 参数:
      • -n 依照数值大小排序;
      • -r 倒序;
      • -u 去重,唯一;
      • -t 字段分隔符;
      • -k  指定排序的字段列
  • grep 查找匹配
    • 参数:
      • -v 排序
      • -o 只显示匹配项
      • -E 支持扩展正则,等价egrep
      • -A,-B,-C 取匹配行的前,后,中间 n行
      • -n 显示行号
      • --color 颜色设置
      • -i 不区分大小写
      • -w 相当于单词边界,只显示完全匹配的全字符
  • tail  尾部
    • 参数:
      • -n 取尾部n行
      • -f  跟踪 
      • -F  一直跟踪,文件不存在或删除,重新出现,继续跟踪--retry
  • scp  将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。secure copy (remote file copy program)
    • 参数:
      • -a 全部属性都拷贝
      • -r 目录也拷贝
      • -f 若有同名文件,则在复制前先删除再复制
  • rsync 远程数据同步工具
  • ssh 远程连接工具
  • netstat 显示网络状态
    • 参数:
      • -l listening
      • -t tcp
      • -u udp
      • -p process
      • -n number
      • -i 显示网列表interface
      • -g 显示组播组的关系
      • -s 显示网络统计
      • -e 显示以太网的信息
      • -r 显示路由信息
      • -a 显示全部socket信息
  • find 查找
    • 参数:
      • -type 文件类型
      • -name 文件名
      • -size 文件大小
      • -mtime 修改时间
      • -inum inode号
      • -exec 执行命令
  • sed 流编辑器
    • 参数:
      • -i 修改文件
      • -n 不显示默认输出
      • -r 支持扩展正则
  • awk  编辑器
    • 参数:
      • -F 分隔符
      • --posix 元字符支持

19. 如何查看swap分区、内存的大小使用情况?buffer和cache的区别?

解答:free -m 查看内存

[root@oldboy log]# free -m  # 查看内容
             total       used       free     shared    buffers     cached
Mem:           996        285        710          0         59         63
-/+ buffers/cache:        162        833 
Swap:          767          0        767 
[root@oldboy log]# top
top - 20:29:38 up  5:06,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  75 total,   1 running,  74 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1020176k total,   292920k used,   727256k free,    61084k buffers
Swap:   786428k total,        0k used,   786428k free,    65524k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                    
    1 root      20   0 19360 1612 1308 S  0.0  0.2   0:00.57 init                        
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                    
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                 
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.09 ksoftirqd/0                 
    5 root      RT   0  ...

buffer是数据写入缓冲区,cache是数据读取缓存区。

20. 如何查看到某用户对系统所做的操作(比如:Test用户)和系统登陆记录

解答:

  • cat /home/Test/.bash_history
  • last
  • lastlog

21. 在crontab中写出每天00:10分执行/opt/http.sh脚本

解答:

10 0 * * * /bin/sh /opt/http.sh >/dev/null 2>&1

22. 每逢星期一下午5:50将/data目录下所有目录和文件归档并压缩为文件:backup.tar.gz

解答:

50 17 * * 1 cd / && /bin/tar zcf /tmp/backup.tar.gz data >/dev/null 2>&1

23. 找出系统内大于50k,小于100k的文件,并删除它们。

解答:

find / -type f -size +50k -size -100k|xargs rm -f

24. 怎么把脚本添加到系统服务里,即用service来调用?

解答:

chkconfig添加服务的步骤即可。

  • 先将服务脚本放到/etc/init.d/目录下
  • 将该服务添加到chkconfig服务列表中 chkconfig add service_name

示例:

[root@oldboy init.d]# cat chktestd
# chkconfig:23456 66 33
# description: this is a test service for chkconfig learning.

# processname:chktestd

echo 1122334455
echo Celebrate!All hail China!

chkconfig --add chktestd

[root@oldboy init.d]# chkconfig --list|grep chk      
chktestd        0:off   1:off   2:off   3:off   4:off   5:off   6:on

25. 列出/home/tom/下各个子目录占用的空间大小

解答:

du --max-depth=1 -h /home/tom/

26. 编写shell脚本,实现功能,在目录/tmp下找到10个以abc开头的文件,然后把这些文件的第一行保存到文件new中。

 解答:

# 数据准备
touch abc{1..20}
ls abc*|xargs -n1|awk '{print "echo randomline >"$0}'|bash

# 脚本内容
#!/bin/sh cd /tmp # ls abc*|head|xargs head -1 -q > /tmp/new find /tmp -type f -name "abc*"|head|xargs head -1 -q >/tmp/new # -q参数,去除批量读取时的文件名的输出,只显示内容

 27. 默认情况下,Linux系统中用户登陆密码信息存放在()文件中。

  • /etc/passwd
  • /etc/userinfo
  • /etc/shadow
  • /etc/profile

解答:

默认情况下,用户登陆密码信息放在/etc/shadow

28. 12块2TB磁盘,在不考虑HotSpare的情况下,做RAID0,RAID1,RAID5后空间分别为:

解答:

  • RAID 0: 2TB*12= 24TB
  • RAID 1: 2TB*1 = 2TB,RAID 1 只能是2块盘,RAID 10则是12TB
  • RAID 5: 2TB*11= 22TB
原文地址:https://www.cnblogs.com/zoe233/p/11958480.html