zoukankan      html  css  js  c++  java
  • Linux面试题

    1. 请找出 /home 下所有5天前以 .log 结尾的文件列表
    find /home -mtime +5 -name "*.log" -type f


    2. 如何找到httpd 的进程号
    ps -ef | grep "[h]ttpd"


    3. 如何创建一个不能LOGIN但能ftp 的用户
    useradd -G ftp username -s /sbin/nologin


    4. 列出当前Linux服务器所有的监听端口及其进程号
    netstat -lp


    5. 如何看到某用户对系统所做的操作(比如:Test 用户) 和系统登陆记录
    cat /home/Test/.bash_history; last Test


    6. 如何计算当前磁盘通道的IO带宽使用
    iostat


    7. 如何看到一个子进程的父进程号
    ps -xf -O ppid | grep Process


    8. 如何将某目录打包(比如目录/home/test)
    tar -cvf test.tar /home/test
    tar -czvf test.tar.gz /home/test


    9. 如何查看系统的内存,cpu 等使用情况
    top


    10. 如何显示test 文件的第100行
    sed -n "100p" test
    awk 'NR==100' test
    head -100 test | tail -1


    11. 用shell脚本写出检测/tmp/size.log文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。
    [ -f "/tmp/size.log" ] || date > /tmp/size.log


    12. 如何用iptables 将A 机器发送到B机器 80 端口的数据转发到 C 机器的 8080 端口 (A B C 都装有iptables 目前没有规则)
    iptables -t nat -A PREROUTING -i eth0 --dport 80 -j DNAT --to C:8080


    13. 写出命令:tcpdump命令截取bond0网卡上从210.97.32.0网络位23位发送到本机8088端口的包。
    tcpdump -i bond0 "src net 210.97.32.0/23" and "dst port 8088"


    14. 在mysql中,将数据库USERDB中的表userlist进行备份。写出备份语句
    mysqldump USERDB userlist > USERDB_userlist.sql


    15. 如何查看mysql是否支持innodb引擎
    执行如下命令:
    SHOW variables like "have_%"


    显示结果中会有如下3种可能的结果:
    have_innodb YES
    have_innodb NO
    have_innodb DISABLED


    这3种结果分别对应:
    已经开启InnoDB引擎
    未安装InnoDB引擎
    未启用InnoDB引擎


    16. 如何在mysql 的test 表里随机取10条记录
    select * from test order by rand() limit 10;


    17. 如何查看mysql当前的查询任务,以及如何列出当前连接到mysql数据库的客户
    show full processlist; 


    18. 一台机器的LVM中共有20个PV每个pv(10G)归属于1个VG中,lv的创建命令为:
    lvcreate –i 15 –L 100G –n test vg01
    请问,如果将test的LV卷容量扩展到200G,是否需要增加新的PV?命令是什么?
    不需要增加新的pv,因为创建lv的时候没用把所有的pv使用完。
    lvextend -L +100G /dev/vg01/test


    19. 写出TCP协议的建立过程
    第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;


    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;


    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。


    完成三次握手,客户端与服务器开始传送数据。


    20. 如何给mysql 创建一个对A表有访问权的用户
    GRANT ALL PRIVILEGES ON A TO 'test_user'@'localhost' IDENTIFIED BY 'test_pass' WITH GRANT OPTION;


    21. 查看Linux系统当前加载的库文件
    lsof | grep "/lib/"


    22. 查看当前系统某一硬件的驱动版本。比如网卡
    ethtool -i eth0


    23. nginx如何分别存储错误日志
    #!/bin/sh
    LOGS_PATH=/var/wwwroot/bbs/logs
    TODAY=$(date -d 'today' +%Y-%m-%d)
     
    # 移动日志并改名
    mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.log
    mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log
     
    # 向nginx主进程发送重新打开日志文件的信号
    kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)


    24. MySQL服务器如何初始化用户设置
    mysqladmin -u root -p password test_pass


    25. 如何监控HTTP服务程序的可用性 (-I/--head 只显示请求头信息)

    curl -I localhost 2>/dev/null | head -1 | grep " 200 OK"

  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/fanren224/p/8457332.html
Copyright © 2011-2022 走看看