自定义shell变量时,变量有什么规格?
可以使用字母,数字,下划线,不能以数字开头;
变量名区分大小写; 赋值时等号两边不要有空格
不要使用关键字或特殊字符,给同一个变量多次赋值时,最后一次生效。
简述预定义变量$$、$?、$0、$#、$*、$!的作用?
$$:保存当前运行的程序PID号;
$?:上一个执行命令的返回状态;
$0:当前运行的脚本名;
$#:位置变量的个数;
$*:输出所有的位置变量;
$!:保存最后一个进程的PID号;
简述整数数值的比较操作?
-eq :等于 -ne:不等于 -lt:小于 -le:小于等于 -gt:大于 -ge:大于等于
shell环境中常见的中断及退出控制指令?
continue:跳出本次的循环;
break:跳出整个循环;
exit:退出脚本;
return:用在函数里面,确认返回值;
shift:用于迁移位置变量。
正则表达式中+、?、*代表什么意思?
这三个都是用来先值关键词的匹配次数;
+:匹配前一个关键词最少一次; ?:代表匹配任意的字符,最多匹配一次; *:代表匹配关键字0个或多个。
简述AWK常用的内置变量各自的作用?
-F:设置字段分割符; $n:比如$1指输出第一列; $0:输出当前读如的整行文本内容;
NF:输出列数; NR:输出行数 ; FNR:输出当前处理行所在文本的行号;
FILENAME:保存当前处理的文件名; ENVIRON:调用shell环境变量,格式ENVIRON["环境变量"]。
什么是shel? 如何查看当前系统支持的shell?
shell就是能够实现某种功能的;
查看/etc/shells
如何切换当前使用的shelll?
bash
/bin/bash有哪些特性?
命令补全功能,有vim编辑,有历史命令等特性。
用户的配置文件都有那几个?有什么用?
~/.bashrc ~/.bash_profile
在里面定义变量,只针对用户有效。
shell的变量类型有哪些?列举出4个常用的预定义变量?
自定义变量,系统环境变量,预定义变量,位置变量
$? $# $* $$
变量的生命周期?作用范围?
1.在脚本中定义的变量,只在脚本的执行过程中有效;
2.只在当前的shell里面可以使用,如果想要变量在所有的shel里面都可以使用,需要定义成全局变量。
脚本的执行过程,脚本的执行方式?
执行过程:从左到右,从上到下。
执行方式:sh xx.sh \ bash xx.sh \ ./xx.sh \ 绝对路径执行
编写脚本的步骤?
1.首先需要确定编写脚本的目的; 2.所要实现的功能; 3.需要哪些命令;
4.需要哪些流程控制; 5.值是否需要变化,是否需要变量;
shell的判断类型?
文件状态、数值比较、逻辑比较、字符比较
说一下在shell中-n -z -d -f -e -r -w -x -l !-z 代表什么意思?
-n:是否为真; -z:字符串是否为空 -d:目录是否存在 -f:文件是否存在 -e:是否存在
-r:是否可读 -w:是否可写 -x:是否有执行权限 -l:是否是链接 !-z:字符串不存在为真
正则表达式中 (||) (\n) (\r) 分别代表什么意思?
||:或的意思。 \n:代表换行 \r:代表回车
获取地址的方法命令?
ifconfig | sed -n '2p' | awk '{print $2}'
函数内的local是什么意思?
存在于脚本函数中的变量称为局部变量; 以local的方式声明,使变量只在函数的作用范围内有效。
$@和$*的区别?
$@:将命令行的每个参数视为单个的参数;
$*:将所有参数视为1个字符串。
$0、dirname、basename分别在脚本里面代表什么?
$0:输出脚本的路径和脚本的名字
dirname:输出脚本的路径;
basename:输出脚本名
如何取出3306这个端口号?
ss -anptul | awk '/3306/{print $5}' | awk -F: '{print $2}'
shell中单引号和双引号以及不加引号的区别?
加单引号:所见即所得,把单引号里面的内容原样输出;
加双引号:把双引号内的内容输出出来,当有命令和变量的时候,先把他们的结果解析出来,然后再输出最终的内容;
不加引号:会将含有空格的字符串视为一个整体输出出来,当有命令和变量的时候,先把他们的结果解析出来,然后再输出最终的内容; 如果含有空格等特殊字符,不能完整的输出出来,需要加双引号,
echo -n是什么意思?
代表不换行操作;
echo -e "\n" | nohup ping www.baidu.com > filename 2>&1 &这里的-e 和 "\n" 是什么意思?
-e:在后面有特殊字符的时候会加-e
\n:代表换行。
有0-9的数字,echo 0-9是输出时不输出0-5的数?
echo {0..9} | sed 's/[0-5]//g'
使用seq打印10不分隔,打印10的倒序?
seq -s "" 10
seq 10 -1 1
wget -T 10 -c -q --spider www.baidu.com 里面-T、-c、-q 、--spider各是什么意思?
-T:超时时间 -c:断点续传 -q:屏蔽输出 --spider:测试下载连接,不会下载东西。
生产环境常用的监控web的方法是什么?
wget 和 curl
查看当前目录下的所有文件夹?
ls -F | grep /
在AWK中NF代表什么?
NF:代表列数。 NR:代表输出每一行的行数