每天被面试虐一点点(二)

时间:2023-01-15 14:15:07

1. gdb命令

backtrace bt 打印当前的函数调用栈的所有信息。

info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。 set scheduler-locking 线程调试 显示线程状态,off 不锁定任何线程
info break 可列出所有断点信息,info break 后也可设置要查看的break num

2. linux下解释: ip rule add from 192.168.3.112/32 [tos 0x10] table 2 pref 1500。
    向规则链增加一条规则,规则匹配的对象是IP为192.168.3.112,tos等于0x10的包,使用路由表2,这条规则的优先级是1500

3.你被需要检查系统中的设备情况,/var/log/messages的日志信息
  
  1. /var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
  2. /var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
  3. /var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。
  4. /var/log/boot.log — 包含系统启动时的日志。
  5. /var/log/daemon.log — 包含各种系统后台守护进程日志信息。
  6. /var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。
  7. /var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
  8. /var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
  9. /var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
  10. /var/log/user.log — 记录所有等级用户信息的日志。
  11. /var/log/Xorg.x.log — 来自X的日志信息。
  12. /var/log/alternatives.log – 更新替代信息都记录在这个文件中。
  13. /var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
  14. /var/log/cups — 涉及所有打印信息的日志。
  15. /var/log/anaconda.log — 在安装Linux时,所有安装信息都储存在这个文件中。
  16. /var/log/yum.log — 包含使用yum安装的软件包信息。
  17. /var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
  18. /var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
  19. /var/log/wtmp或/var/log/utmp — 包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。
  20. /var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

除了上述Log文件以外, /var/log还基于系统的具体应用包含以下一些子目录:

  • /var/log/httpd/或/var/log/apache2 — 包含服务器access_log和error_log信息。
  • /var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
  • /var/log/mail/ –  这个子目录包含邮件服务器的额外日志。
  • /var/log/prelink/ — 包含.so文件被prelink修改的信息。
  • /var/log/audit/ — 包含被 Linux audit daemon储存的信息。
  • /var/log/samba/ – 包含由samba存储的信息。
  • /var/log/sa/ — 包含每日由sysstat软件包收集的sar文件。
  • /var/log/sssd/ – 用于守护进程安全服务。

4. read ,pread,write,pwrite,lseek是系统调用,而fseek是函数


5.  关于bash
.bash_logout:退出shell时,要执行的命令

.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行

6.telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。
wget是一个从网络上自动下载文件的*工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。
scp就是secure copy,是用来进行远程文件拷贝的。


7.下面有关new/delete和malloc/free的区别?

     malloc与free是标准库函数,new/delete是运算符
     new初始化对象,调用对象的构造函数,malloc仅仅分配内存
     new、delete返回的是所分配类型变量(对象)的指针,malloc、free返回的是void指针


8.init启动进程需要读取/etc/inittab配置文件

    sbin/init在核心完整的加载后,开始运行系统的第一支程序,主要的功能就是准备软件运行的环境,包括系统的主机名称、网络配置、语系处理、文件系统格式及其他服务的启动等。 

    /bin/sh解释脚本的shell命令,开机后运行     /etc/sysvinit就是 system V 风格的 init 系统,顾名思义,它源于 System V 系列 UNIX。sysvinit 中运行模式描述了系统各种预订的运行模式。   /etc/inittab定义了系统引导时的运行级别, 进入或者切换到一个运行级别时做什么

   启动init进程的配置文件是/etc/inittab    /etc/sysvinit是系统初始化用的

9.top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认5秒刷新一下进程表.

显示的前五行是系统的整体统计信息 第一行表示任务队列信息 第二三行表示进程和cpu的信息 第四五行表示内存信息

10. 软链接和硬链接,i节点并不是和文件名一一对应
(1)软连接可以跨文件系统,硬连接不可以 (2)硬连接不管有多少个,都指向的是同一个I节点,会把结点连接数增加,只要结点的连接数不是0,文件就一直存在不管你删除的是源文件还是连接的文件。只要有一个存在文件就存在。 当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针, 而是使用文件路径名作为指针。所以删除连接文件对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件。软链接有自己的inode, 并在磁盘上有一小片空间存放路径名。(3)软连接可以对一个不存在的文件名进行连接 。(4)软连接可以对目录进行连接。

11.在/etc/fstab文件中指定的文件系统加载参数中, 参数一般用于CD-ROM等移动设备。noauto

defaults 使用默认设置 sw 自动挂载的可读写分区 noauto 设备(分区)只能手动挂载
ro 挂载为只读权限
rw 挂载为读写权限 所以选择D

12.局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是?
route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
路由信息是由{目的主机所在的网络地址,下一跳地址,子网掩码}组成


13.clone是fork的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(namespace)、有选择的继承父进程的内存、甚至可以将创建出来的进程变成父进程的兄弟进程等等

fork()函数复制时将父进程的所以资源都通过复制数据结构进行了复制,然后传递给子进程,所以 fork() 函数不带参数; clone() 函数则是将部分父进程的资源的数据结构进行复制,复制哪些资源是可选择的,这个可以通过参数设定,所以 clone() 函数带参数,没有复制的资源可以通过指针共享给子进程


14.

WEB服务器配置文件  http.conf 启动脚本配置文件   initd.conf samba脚本          rc.samba samba服务配置文件  smb.conf

15.一个文件名字为rr.Z,可以用来解压缩的命令是:uncompress

16./etc/hosts 主机名到 IP 地址的映射关系的文件

     /etc/resolv.conf DNS 服务的配置文件      /etc/gateways 建立动态路由需要用到的文件 

17.关于UNIX系统代码段和数据段分开的目的

     1)防止程序指令被修改,设置代码段权限为只读,设置数据段权限为可读写 

     2)代码段和数据段分开有利于提高程序的局部性,现代CPU缓存一般设计为数据缓存和指令缓存分离,指令和数据分开存放可以提高CPU缓存命中率。
     3)共享指令,当系统运行多个程序的副本时,它们指令时一样的,因此内存只需保存一份程序的指令代码。每个副本进程的数据区是进程私有,可以节省内存。


18.ifconfig命令作用范围的是配置本地回环地址,配置网卡的ip地址,激活网络适配器


19.

chmod +权限 +文件或目录 chown +属主.属组+文件或目录 chgrp +属组 +目录


20.IP地址越多,系统建立的连接数就越多,文件句柄是应用程序调用系统函数对文件进行I/O操作时,函数返回的用来唯一表示这个文件的符号,它会影响虚拟文件系统的数值。

会限制Linux服务器并发连接数:

        系统内存大小
        系统最大文件句柄数量
         系统IP地址数量