• 【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
  • 相关阅读:
    51 nod 1279 扔盘子
    洛谷 P2911 [USACO08OCT]牛骨头Bovine Bones
    1759 加减表达式
    1750 加法表达式
    poj 1006 Biorhythms
    vijos 1198 最佳课题选择
    poj 1390 Blocks
    codevs 3324 新斯诺克
    codevs 2075 yh女朋友的危机
    对拍器
  • 原文地址:https://www.cnblogs.com/zoe233/p/11958480.html
Copyright © 2020-2023  润新知