shell脚本基础知识

自定义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:代表输出每一行的行数

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值