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"

  • 相关阅读:
    'telnet' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    Linux学习_009_VMware12.0 Pro 中安装 CentOS 6.8_超详解 + 高清大图
    Linux学习_008_Linux下的JDK和OpenJDK有什么具体的区别
    实战CentOS系统部署Hadoop集群服务
    开源多线程性能测试工具-sysbench
    Hadoop集群中Hbase的介绍、安装、使用
    Docker基础技术:Linux Namespace(上)
    带你走进rsync的世界
    5分钟教你Windows 10中将“运行”固定到开始菜单
    使用 Github Pages 发布你的项目文档
  • 原文地址:https://www.cnblogs.com/fanren224/p/8457332.html
Copyright © 2011-2022 走看看