linux面试题及答案_第1页
linux面试题及答案_第2页
linux面试题及答案_第3页
linux面试题及答案_第4页
linux面试题及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

linux面试题及答案1.如何查看一个文件的最后10行内容?如果需要实时监控文件新增内容该用什么命令?查看文件最后10行可用`tail文件名`,默认显示10行;若要指定行数(如20行)用`tail-n20文件名`。实时监控新增内容需用`tail-f文件名`(或`tail-F`,后者可监控被删除后重建的文件)。例如`tail-f/var/log/nginx/access.log`可实时查看Nginx访问日志更新。2.`psaux`和`ps-ef`的区别是什么?如何用这两个命令筛选出包含"httpd"的进程?`psaux`是BSD风格参数,显示列包括用户(USER)、CPU占用(%CPU)、内存占用(%MEM)、进程状态(STAT)等;`ps-ef`是SystemV风格参数,显示列包括用户ID(UID)、父进程ID(PPID)、启动时间(STIME)等。两者都能列出所有进程,但输出格式不同。筛选"httpd"进程时,`psaux|grephttpd`或`ps-ef|grephttpd`均可,需注意grep自身可能被误匹配,可添加`grep-vgrep`过滤,如`psaux|grep-vgrep|grephttpd`。3.简述硬链接和软链接的区别,创建命令分别是什么?硬链接(HardLink)通过inode号关联文件,与原文件共享同一个inode,删除原文件不影响硬链接的访问;硬链接不能跨文件系统创建,也无法为目录创建。软链接(SymbolicLink,符号链接)本质是一个特殊文件,存储原文件的路径,类似Windows的快捷方式;删除原文件后软链接会失效(显示“损坏的链接”),软链接可以跨文件系统,也能为目录创建。创建硬链接用`ln原文件硬链接名`,创建软链接用`ln-s原文件软链接名`(-s表示符号链接)。例如`ln/data/file1/data/link_hard`创建硬链接,`ln-s/data/file1/data/link_soft`创建软链接。4.如何查看当前系统的磁盘空间使用情况?若要查看某个目录下各子目录的大小该用什么命令?查看全局磁盘空间用`df-h`(-h表示以人类可读格式显示,如GB、MB),若需查看inode使用情况用`df-i`。查看目录下各子目录大小用`du-sh目录/`(-s表示汇总目录总大小,-h可读格式),例如`du-sh/var/log/`会列出/var/log下每个文件或子目录的大小。若要递归显示所有子目录大小(不汇总),可用`du-h目录`,但输出内容较多,通常结合`sort-hr`排序,如`du-h/home|sort-hr|head-n10`找出/home下最大的10个目录。5.简述Linux文件权限的三种身份(属主、属组、其他用户)和三种权限(读、写、执行)的含义,如何用数字模式将文件权限设置为属主可读可写可执行,属组可读可执行,其他用户只读?三种身份:属主(文件所有者)、属组(文件所属的用户组)、其他用户(非属主且非属组的用户)。三种权限:读(r,允许查看文件内容或目录列表)、写(w,允许修改文件内容或在目录中创建/删除文件)、执行(x,允许运行可执行文件或进入目录)。数字模式中,r=4,w=2,x=1,三者相加得到权限值。属主权限rwx=4+2+1=7,属组权限rx=4+1=5,其他用户权限r=4,因此最终权限为754,设置命令为`chmod754文件名`。6.如何将一个前台运行的进程切换到后台?如何将后台进程调回前台?若希望进程在退出终端后仍运行,该如何操作?前台进程切换到后台:先按`Ctrl+Z`暂停进程(此时进程状态变为T(Stopped)),然后用`bg`命令将其放入后台继续运行(状态变为R+或S+)。后台进程调回前台:用`fg作业号`(作业号可通过`jobs`命令查看,如`jobs`显示[1]+Running./script.sh,则`fg1`调回前台)。终端退出后保持进程运行:使用`nohup命令&`(如`nohup./server.sh&`),进程输出会重定向到nohup.out文件;或使用`screen`/`tmux`工具创建会话,断开后进程仍运行。7.什么是僵尸进程(ZombieProcess)?如何产生?如何解决?僵尸进程是已终止但未被父进程回收(未调用wait/waitpid获取其退出状态)的进程,状态为Z(Zombie)。产生原因:子进程先于父进程结束,父进程未及时回收其资源(进程描述符等),导致子进程残留为僵尸状态。解决方法:若父进程正常运行,可尝试重启父进程;若父进程已崩溃(如僵死),需找到父进程的PID(通过`psaux|grepZ`查看僵尸进程的PPID),然后用`kill-9父进程PID`终止父进程,init进程(PID=1)会接管并回收僵尸进程。8.如何查看当前系统开放的端口?如何确定某个端口被哪个进程占用?查看开放端口的常用命令:`netstat-tunlp`(-tTCP,-uUDP,-n显示IP/端口号而非域名/服务名,-l监听状态,-p显示进程PID/名称);或`ss-tunlp`(ss是netstat的替代工具,更高效)。确定端口占用进程:例如查看80端口,用`netstat-tunlp|grep:80`或`ss-tunlp|grep:80`,输出中会显示进程的PID和名称(如`nginx:masterprocess`,PID=1234)。也可用`lsof-i:端口号`(如`lsof-i:80`),直接列出占用该端口的进程。9.简述`crontab`的作用,如何设置一个每天凌晨3点执行备份脚本`/root/backup.sh`的定时任务?`crontab`用于设置周期性执行的任务(定时任务),任务配置存储在`/var/spool/cron/用户`文件中。设置步骤:执行`crontab-e`进入编辑模式(选择编辑器如vim),添加一行`03/root/backup.sh`(格式:分时日月周命令),保存退出后定时任务生效。若需查看当前用户的定时任务,用`crontab-l`;删除所有任务用`crontab-r`。注意:脚本需有可执行权限(`chmod+x/root/backup.sh`),且路径需绝对路径,避免环境变量问题。10.如何修改Linux系统的主机名?临时修改和永久修改有何区别?临时修改(重启后失效):使用`hostname新主机名`,例如`hostnamemyserver`。永久修改(需重启生效,或结合临时修改立即生效):在CentOS7+或Ubuntu18.04+系统中,修改`/etc/hostname`文件(直接编辑保存),并通过`hostnamectlset-hostname新主机名`命令(该命令会同时更新临时主机名和`/etc/hostname`文件)。例如`hostnamectlset-hostnameweb01`,执行后立即生效,且重启后保留。注意:修改主机名后,可能需要更新`/etc/hosts`文件,确保主机名到IP的映射正确,避免服务(如SSH)出现解析问题。11.简述LVM(逻辑卷管理)的核心概念(PV、VG、LV),如何扩展一个逻辑卷的大小?LVM核心概念:PV(物理卷,PhysicalVolume):基于物理磁盘或分区创建的基本存储单元,通过`pvcreate`初始化。VG(卷组,VolumeGroup):多个PV的集合,提供逻辑卷的存储池,通过`vgcreate`创建。LV(逻辑卷,LogicalVolume):从VG中划分的逻辑存储单元,可动态调整大小,通过`lvcreate`创建。扩展逻辑卷步骤(以扩展`/dev/vg0/lv_root`为例,文件系统为ext4):1.检查VG是否有足够空间:`vgs`或`vgdisplayvg0`查看可用空间(FreePE)。2.若空间不足,需添加新PV到VG:`pvcreate/dev/sdb`(初始化新磁盘),`vgextendvg0/dev/sdb`(将sdb加入vg0)。3.扩展LV:`lvextend-L+10G/dev/vg0/lv_root`(扩展10G)或`lvextend-l+100%FREE/dev/vg0/lv_root`(使用所有剩余空间)。4.调整文件系统大小:`resize2fs/dev/vg0/lv_root`(ext4文件系统);若为xfs,使用`xfs_growfs/`(需挂载到根目录时)或`xfs_growfs/mountpoint`(指定挂载点)。12.如何排查Linux系统CPU使用率过高的问题?请列出具体步骤。排查步骤:1.用`top`或`htop`查看CPU占用最高的进程(按P键按CPU排序),记录高占用进程的PID。2.用`ps-mpPID-oTHREAD,tid,time`查看进程下的线程CPU占用(-m显示线程,-p指定PID),找到具体线程ID(TID)。3.将TID转换为十六进制(如TID=1234,转换为0x4d2),使用`gstackPID`或`jstackPID`(Java进程)查看线程栈,分析具体函数调用。4.若进程是Java应用,可用`jstat-gcutilPID1000`查看GC频率,或`jmap-histoPID|head-n20`查看对象数量,排查内存泄漏导致的CPU高负载。5.用`perftop`实时分析CPU热点函数,定位内核或用户态的耗时操作。6.检查是否有死循环或正则表达式回溯等代码问题(通过日志或代码审计)。13.简述SELinux的三种运行模式,如何临时禁用和永久禁用SELinux?SELinux(Security-EnhancedLinux)的三种模式:强制模式(Enforcing):所有SELinux策略生效,违反策略的操作被阻止并记录日志。宽容模式(Permissive):不阻止违反策略的操作,但记录警告日志,用于测试。禁用模式(Disabled):SELinux完全关闭,不生效。临时禁用(重启后恢复):执行`setenforce0`(设置为宽容模式)或`setenforce1`(强制模式)。永久禁用:编辑`/etc/selinux/config`文件,将`SELINUX=enforcing`改为`SELINUX=disabled`,保存后重启系统生效。注意:修改后需重启,否则仅临时生效。14.如何查看Linux内核版本?如何查看系统启动时间和运行时长?查看内核版本:`uname-r`(显示内核版本号,如5.4.0-91-generic);或`cat/proc/version`(显示更详细信息,包括编译器版本)。查看系统启动时间和运行时长:`uptime`命令会显示当前时间、系统运行时长、登录用户数、负载均衡(如`10:30:00up2days,3:45,2users,loadaverage:0.12,0.23,0.34`);也可用`who-b`查看最后一次启动时间(如`systemboot2023-10-0107:00`);`lastreboot`可查看所有启动记录。15.简述`iptables`和`firewalld`的关系,如何用`firewalld`开放8080端口(TCP)并永久生效?`firewalld`是CentOS7+引入的动态防火墙管理工具,基于`iptables`但提供更友好的接口(支持区域管理、运行时/永久配置分离)。`iptables`是传统的命令行防火墙工具,直接操作内核的netfilter框架。用`firewalld`开放8080/TCP端口并永久生效的步骤:1.检查`firewalld`状态:`systemctlstatusfirewalld`(若未运行,`systemctlstartfirewalld`启动)。2.添加端口(临时生效):`firewall-cmd--add-port=8080/tcp`。3.永久生效(需重载):`firewall-cmd--add-port=8080/tcp--permanent`,然后`firewall-cmd--reload`(重载配置,不中断现有连接)。4.验证:`firewall-cmd--list-ports`查看已开放端口,应显示`8080/tcp`。16.如何监控Linux系统的网络流量?请列举至少三种方法。监控网络流量的方法:`iftop`:类似top的网络流量监控工具,实时显示网卡流量、连接双方IP/端口(需安装,`yuminstalliftop`或`aptinstalliftop`)。`nload`:图形化显示网卡入站(In)和出站(Out)流量,支持切换网卡(`nloadeth0`)。`tcpdump`:抓包工具,可过滤特定协议/IP/端口的流量,例如`tcpdump-ieth0port80-nn`捕获eth0接口80端口的HTTP流量(-nn显示IP/端口号而非域名)。`sar-nDEV15`:系统活动报告工具,每1秒采样一次,共5次,显示各网卡的流量(接收/发送字节数、包数)。`ss-ti`:查看TCP连接的详细信息,包括接收/发送窗口、流量速率(需结合`watch`实时监控,如`watch-n1'ss-ti'`)。17.简述Linux中的虚拟内存(Swap)机制,如何查看Swap空间使用情况?如何临时添加一个Swap文件?虚拟内存将物理内存(RAM)和磁盘上的Swap空间结合,当物理内存不足时,将不常用的内存页交换到Swap空间,释放物理内存。Swap的存在允许系统运行超过物理内存大小的程序,但Swap速度远慢于RAM,过多使用会导致性能下降。查看Swap使用情况:`free-h`(显示Swap总大小、已用、可用);`swapon-s`(显示Swap设备/文件的详细信息,如路径、大小、优先级)。临时添加Swap文件步骤(以添加4GSwap文件为例):1.创建文件:`ddif=/dev/zeroof=/swapfilebs=1Mcount=4096`(创建4G空文件)。2.设置Swap格式:`mkswap/swapfile`。3.启用Swap:`swapon/swapfile`。4.验证:`free-h`查看Swap是否生效。注意:临时添加的Swap重启后失效,若要永久生效,需在`/etc/fstab`中添加一行`/swapfileswapswapdefaults00`。18.如何批量修改目录下所有`.txt`文件的属主和属组为`www:www`?使用`chown`命令结合`find`工具递归处理:`find/目标目录-typef-name".txt"-execchownwww:www{}\;`解释:`find`在/目标目录下查找类型为文件(-typef)、名称匹配.txt的文件(-name".txt"),对每个找到的文件({})执行`chownwww:www`命令(-exec...\;)。若要同时修改目录(包括子目录),去掉`-typef`,即`find/目标目录-name".txt"-execchownwww:www{}\;`,但会同时修改目录的属主属组(可能非预期),需谨慎。19.简述`bash`脚本中`$?`、`$$`、`$`、`$@`的含义,写出一个判断用户是否输入参数的脚本(若未输入参数则提示“请提供参数”,否则输出所有参数)。特殊变量含义:`$?`:上一条命令的退出状态(0表示成功,非0表示失败)。`$$`:当前脚本的进程ID(PID)。`$`:传递给脚本的参数个数。`$@`:所有传递给脚本的参数,以列表形式存在(如参数1、参数2...)。示例脚本(check_args.sh):```bash!/bin/bashif[$-eq0];thenecho"错误:请提供参数"exit1elseecho"输入的参数为:$@"fi```使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论