首页 > 系统相关 >10个有趣的 Linux Shell 脚本面试与解答

10个有趣的 Linux Shell 脚本面试与解答

时间:2023-02-20 14:31:55浏览次数:46  
标签:10 Shell 文件 命令 sed Linux txt 解答

Linux 的浩瀚无垠,使人总能每次都提交与众不同的内容。这些内容不仅对他们的职业生涯很有用,同时也让他们增长知识。在此,我们就尝试这么去做,至于能取得多大的成功,就由我们的读者朋友们来判断吧。

在此,作为 shell 脚本的附加内容,在本文中我们将从面试的角度解读与 Linux Shell 相关的问题。

1.在 shell 脚本成功执行前,如何中断脚本执行?

解答:我们需要使用​​exit​​命令来实现以上描述的情境。​​exit​​命令被强制输出非0值时,脚本会报错并退出。在 Unix 环境下的 shell 脚本中,0值表示成功执行。因此,在脚本终止前执行一个不带引号的​​exit -1​​命令将使脚本中止。

#!/bin/bash
echo "Hello"
exit -1
echo "bye"

保存文件并执行。

# sh linuxmi.sh
Hello
linuxmi.sh:行3: exit-1: 未找到命令
bye

从上面的脚本中可以清楚地看到,在 ​​exit -1​​ 命令前,脚本执行得很好。

2.如何使用 Linux 命令来移除文件头?

解答:当我们需要删除文件中的指定行时,​​sed​​命令可以用来解决该问题。

这个是用来删除文件头(文件的首行)的正确命令。

# sed '1 d' file.txt

好吧,其实sed命令内建的​​-i​​开关就可以干这活,就不需要重定向符了吧。

# sed -i '1 d' file.txt

3. 你怎么检查一个文本文件中某一行的长度?

解答:​​sed​​命令也可以用来查找文本文件中的某一行或者检查其长度。

​sed -n ‘n p’ file.txt​​可以解决,这里​​n​​表示行号,​​p​​打印出匹配内容(到标准输出),该命令通常与​​-n​​命令行选项连用。那么,怎样来获取长度计数呢?很明显,我们需要通过管道输出给​​wc​​命令来计算。

# sed –n 'n p' file.txt | wc –c

要得到文本文件‘linuxmi.txt’的第五行的长度,运行如下命令:

# sed -n '5 p' linuxmi.txt | wc -c

10个有趣的 Linux Shell 脚本面试与解答_linux

4. 可以在 Linux 系统上查看到所有非打印字符吗?你是怎么做到的?

解答:可以。可以在 Linux 中查看所有的非打印字符。要实现上面所讲的方案,我们需要​​vi​​编辑器的帮助。怎样在​​vi​​编辑器中显示非打印字符?

打开vi编辑器。

先按[esc]键,然后按​​:​​进入到vi编辑器的命令模式。

最后,从 vi 编辑器的命令界面输入​​set list​​命令并执行。

注: 这种方式可以查看文本文件中的所有非打印字符,包括 ctrl+m(^M)。

5. 假如你是一个员工组的团队领导,为xyz公司工作。公司要求你创建一个​dir_xyz​​目录,让该组成员都能在该目录下创建或访问文件,但是除了文件创建者之外的其他人不能删除文件,你会怎么做?

解答:这真是个有趣的工作方案。好吧,上面所讲的方案,我们需要通过下面的步骤来实施,这简直就是小菜一碟。

# mkdir dir_xyz
# chmod g+wx dir_xyz
# chmod +t dir_xyz

第一行命令创建了一个目录(dir_xyz),上面的第二行命令让组(g)具有‘写’和‘执行’的权限,而上面的最后一行命令——权限位最后的‘+t’是‘粘滞位’,它用来替换‘x’,表明在这个目录中,文件只能被它们的拥有者、目录的拥有者或者是超级用户root删除。

6. 你能告诉我一个Linux进程经历的各个阶段吗?

解答:一个 Linux 进程在它的一生中,通常经历了四个主要阶段。

这里是Linux进程要经历的四个阶段。

  • 等待:Linux进程等待资源。
  • 运行:Linux进程当前正在执行中。
  • 停止:Linux进程在成功执行后或收到杀死进程信号后停止。
  • 僵尸:如果该进程已经结束,但仍然留在进程表中,被称为‘僵尸’。

7. Linux中​cut​​命令怎么用?

解答:​​cut​​是一个很有用的 Linux 命令,当我们要截取文件的指定部分并打印到标准输出,当文本区域以及文件本身很大时,这个命令很有用。

例如,截取​​txt_linuxmi​​文件的前10列。

# cut -c1-10 txt_linuxmi

要截取该文件中的第二,第五和第七列。

# cut -d;-f2 -f5 -f7 txt_linuxmi


8. ​cmp​​​和​​diff​​命令的区别是什么?

解答:​​cmp​​和​​diff​​命令用来获取相同的东西,但各有侧重。​​diff​​命令输出为了使两个文件一样而应该做的修改。而‘cmp’命令则将两个文件逐字节对比,并报告第一个不匹配的项。

9. 可以用​echo​​​命令来替换​​ls​​命令吗?

解答:可以的。‘ls’命令可以用‘echo’命令来替代。‘ls’命令列出目录内容,从替换上述命令的角度讲,我们可以使用‘echo *’,两个命令的输出完全一样。

10. 你可能听过 inode 吧。你能简要描述一下 inode 吗?

解答:inode 是一个数据结构,在 Linux 上用于文件标识。每个文件在 Unix 系统上有一个独立的 inode 和一个唯一的 inode 号。

来源:https://www.linuxmi.com

标签:10,Shell,文件,命令,sed,Linux,txt,解答
From: https://blog.51cto.com/u_15576159/6068518

相关文章

  • linux利用source命令导入sql文件
    1.创建数据库2.设置编码3.进入sql文件目录,使用msyql的source命令如下:source文件路径mysql>useg6monitor;mysql>source/app/t_sta_high_emission_vehicle.sql; ......
  • Win10应用商店提示“重试该操作 无法加载页面”
    试了好几种方法都没有效果,大家可以都试一下:方法1.按住Windows键+R键,输入“wsreset”,按下回车键重置应用商店 等待一段时间,会自动重置打开商店方法2.在Windows键+X键,点......
  • linux进阶命令
     1.linux中>表示覆盖原文件内容(文件的日期也会自动更新),>>表示追加内容(会另起一行,文件的日期也会自动更新)。  catid_rsa.pub >>authorized_keys  把id_rsa.pub追......
  • 直流信号模拟量1-5V0-10V转4-20mA0-24V光电隔离转换放大器2进2出
    概述​导轨安装DIN22IPOOC系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医......
  • windows10没有Hyper-V的解决方法
    最近因为项目原因,需要在自己的笔记本上安装个docker,百度之后教程发现,家庭版居然没有Hyper-V,而我也不想去升级成专业版,主要是懒得去升,那就只好再去想其他办法了.以下是......
  • linux端口映射
    Linux或Windows上实现端口映射入门小站 入门小站 2023-02-1621:50 发表于湖北收录于合集#Linux704个#windows23个#端口映射2个入门小站分享运......
  • 重拾JAVA——Linux 常见命令与环境搭建
    前言:java程序常见运行再linux系统下,所以学习linux常见命令与环境搭建也是比较重要的环节;个人因为工作原因接手java项目,需要Linux环境下部署,习惯了window下图像化操作,不要......
  • shell工具
    shell工具1.PuTTY—经典远程登录客户端下载链接:[https://putty.org/]PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最......
  • Linux文件 profile、bashrc、bash_profile区别
    Linux系统中,有三种文件出现的非常频繁,那就是profile、bash_profile、bashrc文件。1、profile作用profile,路径:/etc/profile,用于设置系统级的环境变量和启动程序,在......
  • 第一周学习--linux
    认识Linux学习是有多种方法的认清楚一种东西这玩意是什么能做什么怎么做怎么优化怎么实现就是一系列的五套连招把这五套连招学会了那么就是荣耀王者巅峰万强了......