shell面试专题

1、eval在shell中有什么作用?请举个例子说明?

作用:

#!/bin/bash

aa=h1

bb=h2

var=(aa bb)

for vas in ${var[@]}

do

echo $vas

eval var_temp=\$${vas}

echo $var_temp

done

2、dirname有什么作用?请举个例子说明?

作用:获取当前脚本路径

例子:

#!/bin/bash

cd `dirname $0`

pwd;ls

3、ssh -o stricthostkeychecking=no -o ConnectTimeout=60  分别代表什么意思?

ssh加接时不需要输入key检查,然后六十秒为超时时间

4、说一下-n -z -d -f -e -r -w -x -l !-z在shell中分别代表什么意思?-n和-z试举一个例子说明

-n 非空为真

-z 字符串为空为真

-d 是目录且存在为真

-f 是普通文件且存在为真

-e 存在为真

-r 可读为真

-w 可写为真

-x 可执行为真

  -l 是链接为真

!-z不为空

1)-n例子:

JavaApp=($(ps aux | grep "java" | grep "/app/guaji"))

if [ -n "${JavaApp[0]}" ];then

echo -e "\033[1;31m 脚本退出 \033[0m"

exit 1

fi

2)-z例子:

ssh=$(ssh -o StrictHostKeyChecking=no $2 "ls /")

if [[ -z "$ssh" ]];then

echo -e "\033[1;31m \033[5m 远程主机($2)无法连接,脚本退出. \033[0m"

exit 1

fi

5、正则表达式的 "|"、"\n"、"\r"、"\t"分别代表什么意思

|表示或的意思

\n表示换行,将当前位移置下行开头

\r回车,将当前位置移至本行开头

6、写出获取公网IP的两种方法

ifconfig | grep -Po "(?<=addr:).*(?=Bcast)" | egrep -v ‘^192.168|^172.1[6-9].|^172.2[0-9].|^172.3[0-1].|^10.|^127.‘

/sbin/ifconfig | awk -F‘[ :]+‘ ‘/inet addr:/ {print $4}‘ | egrep -v ‘^192.168|^172.1[6-9].|^172.2[0-9].|^172.3[0-1].|^10.|^127.‘

7、$$表示什么意思?

获取当前执行脚本的进程名

8、函数内的local是什么意思?举一脚本例子说明

脚本中局部变量,存在于脚本函数(function)中的变量称为局部变量,要以local方式进行声明,使之只在本函数作用域内有效,

防止变量在函中的命名与变量外部程序中变量重名造成程序异常,下面是一脚本例子:

#!/bin/sh

a() {

local s=1

echo $s

}

b() {

s=2

echo $s

}

s=0

a

echo $s

b

echo $s

9、[email protected]和$*的区别

[email protected]将命令行每个参数视为单独的字符串,等同于"$1"、"$2"、"$3"

$*将所有的命令行所有参数视为单个字符串,等同于"$1$2$3"

10、$0、dirname和basename有什么作用?

dirname获取脚本路径名

basename获取脚本名

$0获取脚本路径和脚本名

11、取出3306端口号这个数字

netstat -tlnp| grep 3306 | awk ‘[ :]+‘ ‘{print $5}‘ #[ :]+ 以空格和点为分隔符,这种分隔符有一个或多个

12、shell中单引号和双引号与不加与号分别代表什么意思

单引号:可以说是所见即所得,即将单号引号的内容原样输出

双引号:把双引号的内容输出出来,如果内容中有命令、变量等,会先把变量、命令解析出结果,然后再输出最终内容来

无引号:把内容输出出来,会将含有空格的字符串视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出结果,

然后再输出内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字

路径等可以不加任何引号,不过最好用双引号替代之

13、echo -n 是什么意思?举一脚本例子显示他的功能

-n不换行

#!/bin/bash

. /etc/init.d/functions

echo "---------Please wait while we are checking-------------"

echo -n "6秒后执行该操作."

for ((i=0;i<6;i++))

do

echo -n ".";sleep 2

#[ $i -eq 3 ] && break

done

echo

action "test success" /bin/true

14、echo -e "\n" | nohup ping www.baidu.com > filename 2>&1 &这里的-e 和 "\n" 是什么意思?

-e是代表后面输入的内容包含特珠字符需要加的参数

\n 是代表换行

15、有1-9的数字,echo输出1-9的数字时,屏蔽0-5的数字再输出

echo ‘1234567890‘ | sed ‘s/[0-5]//g‘

16、用nohup把一个脚本放在后台运行

nohup sh test.sh > filename 2>&1 &

17、用seq打印10以空格分隔,用seq坚着打印10到1

seq -s " " 10

seq 10 -1 1

18、curl -I -s www.baidu.com | head -1 | wc -l 中的-I和-s代表什么意思

-s 沉默或安静模式。不显示进度表或错误消息。使卷曲静音

-I  只读取HTTP头! HTTP的服务器功能命令HEAD此用来获取

--connetct-timeout 2 2秒连接超时

19、wget -T 10 -c -q --spider www.baidu.com 这些参数分别代表什么意思?

-T 超时10少

-c 断点续传

-q 为执行命令时屏蔽他打印输出的意思,执行命令不会任何内容出来

--spider wget命令加spider参数不会下载任何东西,spider的主要作用是测试下载链接。

tries

20、生产环境常用的监控web的方法是哪种

用wget或curl的方法作监控

21、生产环境写脚本报错就发邮件的命令是怎么样的

mail -s "uname -n ‘s httpd status is on" [email protected] < $logfile

22、给文件改名

mv $file 1linux-`echo $file | cut -d "-" -f2`   #详情看老男孩shell第三天文档,只动变量,静态不动

ls *.jpg | awk -F ‘_finished‘ ‘{print "mv " " $0" "$1".jpg"}‘ | bash

23、查看当前目录的所有文件夹

ls -F | grep /

24、查看192.168.1.0/24网段的主机有没有在线

25、awk中的NF代表什么意思?

NF代表结尾的意思

时间: 2024-10-30 11:50:46

shell面试专题的相关文章

手撕面试官系列(六):并发+Netty+JVM+Linux面试专题

并发面试专题 (面试题+答案领取方式见侧边栏) 现在有 T1.T2.T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行? 在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它? 在 java 中 wait 和 sleep 方法的不同? 用 Java 实现阻塞队列. 用 Java 写代码来解决生产者——消费者问题. 用 Java 编程一

shell脚本专题之-----------全自动编译安装mysql

mysql的编译安装,在博客 开源服务专题之--------mysql的编译安装 中已经说明了,但是还是比较麻烦,尤其是一大堆命令,来手动执行,稍有不慎,就会出错.生产上一般都是先在本地测试环境进行自动化测试,如果ok,那么就在生产上进行自动化安装,省事,省力,安全. 本文环境: CentOS6.5x64 ,mysql版本:mysql-5.6.26. 采用自动化编译安装. 相关准备工作: 熟知sed 文本编译命令,expect交互式脚本的使用. 提前将需要安装的mysql安装包放在/root下面

Linux运维(网络面试专题)

1.交换机和集线器有什么区别? 最主要区别: 集线器:20兆宽带四台PC机通过网线连接在集线器上的话,那么每台PC机只能使用五兆宽带 交换机:20兆宽带四台PC机通过网线连接在交换机上的话,那么就是每台PC机都可以使用20宽带 总结:集线器20兆宽带分多个端口使用,采用共享宽带的工作方式 交换机是一个独享的通道,它能确保每个端口使用宽带都是20兆 2.VMware Workstation三种上网模式(桥接模式.NAT模式.仅主机模式有什么区别)? 桥接模式:相当于在局域网中虚拟出来了一台独立的P

程序员面试备战篇:18个经典MySQL面试专题解析,干货分享

1.数据库三范式是什么? 第一范式(1NF):字段具有原子性,不可再分.(所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性的,不可再分) 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF).要求数据库表中的每个实例或行必须可以被惟一地区分.通常需要为表加上一个列,以存储各个实例的惟一标识.这个惟一属性列被称为主关键字或主键. 满足第三范式(3NF)必须先满足第二范式(2NF).简而言之,第三范式(3NF)要求一个数据库表

【秋招面试专题解析】Android程序员如何拿到爱奇艺.字节跳动.抖音offer

刚好闲下来,顺便收集了一些关于爱奇艺,字节跳动,抖音的面试题目.也整理好了答案,希望对即将面试和跳槽的小伙伴有所帮助 一.2019爱奇艺秋招Android 1.使用堆排序方法排序(45,78,57,25,41,89),初始堆为( 89,45,78,25,41,57 ) 2.6个圆盘的汉诺塔,总的移动次数是( 63 ) 3.在一个空的5阶B-树中依次插入关键字序列{6,8,15,16,22,10,18,32,20},插入完成后,关键字6所在结点包含的关键字个数为(3) 4.有关希尔排序算法叙述 5

面试专题 HashMap如何在Java中工作

通过优锐课的java学习分享中,了解了企业的面试题型,分享给大家学习. HashMap问题在工作面试中很常见. 这是HashMaps在Java内部如何工作的一些深入说明. HashMap在内部如何工作已成为几乎所有访谈中的一个普遍问题. 几乎每个人都知道如何使用HashMap或HashMap与Hashtable之间的区别. 但是,当问题为" HashMap如何在内部工作?"时,许多人会失败. 这个问题的答案是,它基于哈希原理工作,但听起来并不那么简单. 哈希是一种使用算法将唯一代码分配

面试专题训练之“双指针”

一.需要思考的问题包括以下几点: 双指针是什么,什么时候需要用到双指针 通用的模板是什么 实现过程中需要注意的细节有哪些 常见的双指针题型有哪些 二.模板整理 三.专题训练 1.Leetcode283 1 class Solution { 2 public: 3 void moveZeroes(vector<int>& nums) { 4 int n = nums.size(); 5 int j = 0; 6 for (int i = 0; i < n; i++) { 7 if

Linux运维(应用软件原理)面试专题

1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身的技术 运维又包括很多种,有DBA运维.网站运维.虚拟化运维.监控运维.游戏运维等等 2)游戏运维又有分工,分为开发运维.应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线.维护和做故障排除的,用开发运维开发出来的工具给业务上线.维护.做故障排查

老男孩23期课堂实战考察某企业shell面试考试题

1.按单词出现频率降序排序! 2.按字母出现频率降序排序! the squid project provides a number of resources to assist users design,implement and support squid installations. Please browse the documentation and support sections for more infomation 解答: cat test.txt  the squid proj