1. 如果想修改开机内核参数,应该修改哪个文件?
A. /dev/sda1
B. /etc/fstab 磁盘自动挂载的文件
C. /boot/grub/grub.conf
D. /etc/rc.local 开机自启动的文件
解答:选C
- scsi,sata,sas的硬盘是sd开头,IDE是hd开头,a1代表是第一块硬盘的第一个分区
- /etc/fstab 是开机磁盘自动挂载文件
- /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,请写出权限的数值表示是什么,此文件的类型是什么。
10. 请写出redhat中,配置网卡及dns的配置文件是什么
解答: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