Linux的 Shell 理解和使用

前端之家收集整理的这篇文章主要介绍了Linux的 Shell 理解和使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<p align="left">Shell为命令解释器,把用户命令解释为内核可识别的机器语言,然后翻译命令结果给用户,其也是一个强大的编程语言,是解释执行的脚本语言,无编译,与python机制基本相同。


<p align="left">Shell内部可以直接调用Linux系统命令


<p align="left"> 


<h2 align="left"><span style="font-size: 15px;">echo命令的基本使用
<p align="left">【echo “内容“ 】输出命令


<p align="left">【echo -e “内容“ 】输出,并支持转义字符


<p style="margin-left: 30px;" align="left">转义符:


<p style="margin-left: 60px;" align="left">【\t】制表符,tab键


<p style="margin-left: 60px;" align="left">【\a】警告音,


<p style="margin-left: 60px;" align="left">【\b】退格,删除左边一个字符、


<p style="margin-left: 60px;" align="left">【\c】取消最后的换行,与-n效果一致、


<p style="margin-left: 60px;" align="left">【\f】换页符,横向占位


<p style="margin-left: 60px;" align="left">【\v】与上相同


<p style="margin-left: 60px;" align="left">【\n】换行


<p style="margin-left: 60px;" align="left">【\r】回车,光标回到行首


<p style="margin-left: 60px;" align="left">【<a href="file://xn--66j/">\】


<p align="left">【echo -e "\e[1;31m 输出内容 \e[0m"】红色输出abd


<p align="left">其中:【\e[1;】表示开始标志,【[0m】为结束标志,【31m】表示颜色,可有(黑色 30m)(红色 31m)(绿色 32m)(黄色 33m)(蓝色 34m)(洋红 35m)(青色 36m)(白色 37m)


<p align="left"> 


<h2 align="left"><span style="font-size: 15px;">输入输出重定向
<p align="left">标准输入:键盘(/dev/stdin)


<p align="left">标准输出显示器(/dev/stdout)


<p align="left">标准错误输出显示器(/dev/stdout)


<p align="left">输出重定向


<p style="margin-left: 30px;" align="left">【命令 > 文件】以覆盖的方式把正确输出重定向文件


<p style="margin-left: 30px;" align="left">【命令 >> 文件】以追加的方式把正确的输出重定向文件


<p style="margin-left: 30px;" align="left">【命令 2> 文件】标准错误输出重定向,覆盖


<p style="margin-left: 30px;" align="left">【命令 2>> 文件】标准错误输出重定向,追加


<p style="margin-left: 30px;" align="left">【命令 >>正确文件  2>>错误文件】对命令判断,分别保存命令结果


<p align="left"> 


<h2 align="left"><span style="font-size: 15px;">多命令顺序执行
<p align="left">【命令1; 命令2;命令3】执行命令1到3,错误不影响下一个命令执行


<p align="left">【命令1 && 命令2 && 命令3】前面的命令必须正确执行,才能执行后面的命令


<p align="left">【命令1 || 命令2】命令1正确执行,就不会执行命令2,命令1错误时才会执行命令2


<p align="left">【命令 && echo yes || echo no】判断命令是否正确执行


<p align="left">【命令1 | 命令2】命令1的正确输出作为命令2的操作对象,管道符


<p style="margin-left: 30px;" align="left">如:【ls -lh /usr/bin | grep -i --color=auto pip3】查看pip3的执行文件


<p align="left"> 


<h2 align="left"><span style="font-size: 15px;">通配
<p align="left">匹配文件名,对于命令:ls 、find、cp


<p align="left">【?】匹配任意一个字符


<p align="left">【】匹配任意0个或多个字符,如【rm -r 删除目录下所有文件文件


<p align="left">【[字符1字符2字符3]】匹配字符1到字符3的其中一个字符


<p align="left">【[a-z]】表示匹配小写字母a到z的任意一个字符


<p align="left">【[^123]】表示不匹配括号内的字符


<p align="left"> 


<h2 align="left"><span style="font-size: 15px;">正则表达式
<p align="left">匹配字符串,对于命令:grep、awk、sed


<p align="left">基本支持标准的正则表达式


<p align="left">特殊:


<p style="margin-left: 30px;" align="left">【{n,m}】n到m次,需要加斜线


<p style="margin-left: 30px;" align="left">Shell中无【()】、【+】、【?】


<p align="left"> 


<h2 align="left"><span style="font-size: 15px;">特殊字符
<p align="left">【‘内容’】单引号的内容仅仅表示字符串


<p align="left">【“内容”】双引号的内容会解释特殊符号,如(\)转义、($)调用变量、()反引号等</p> <p align="left"&gt;【命令`】反引号,内容为引用的命令,可用【$(命令)】代替


<p align="left">【#】表示注释当前行之后的内容


<p align="left">【$变量】引用变量的值时


<p align="left"> 


<h2 align="left"><span style="font-size: 15px;">变量
<p align="left">变量的值全部以字符串保存


<p align="left">【set】查看系统所有变量


<p align="left">【unset 变量名】删除变量


<p align="left"> 


<p align="left">用户自定义变量


<p align="left">本地变量,只在当前shell中生效


<p align="left">声明:namex=”wo sh”


<p align="left">调用:$namex


<p align="left">追加:namex=“$namex”” dongxiaodong”  或者 namex=${namex}” dongxiaodong”


<p align="left"> 


<p align="left">环境变量


<p align="left">父子shell的共享变量


<p align="left">【pstree】查看当前所属shell位置


<p align="left">通过ssh连接的客户端有3个,其中1是root,2是当前普通用户,3是另一个普通用户


<p align="left">

<img src="/res/2019/03-02/08/c300ed4e5daaad6768b3c306edc511cc.png" alt="">


<p align="left">【export 变量名="初始值"】定义环境变量


<p align="left">【bash】进入子shell,可直接访问环境变量,可用【exit】返回上一级


<p align="left">【env】查看所有环境变量


<p align="left">【unset 变量名】删除变量


<p align="left"> 


<p align="left">位置参数变量:


<p align="left">【$n】n可为[0,9],超过时可用{ },${100}


<p align="left"> 

<img src="/res/2019/03-02/08/f944eca1b2eeb50189685ed2157fe1b1.png" alt="">


<div class="cnblogs_code">


<span style="color: #008000;">#<span style="color: #008000;">接收第0个参数
echo <span style="color: #800000;">"<span style="color: #800000;">当前程序为:$0<span style="color: #800000;">"

<span style="color: #008000;">#<span style="color: #008000;">接收第一个和第二个参数
n1=$1<span style="color: #000000;">
n2=$2<span style="color: #000000;">

echo <span style="color: #800000;">"<span style="color: #800000;">结果为:<span style="color: #800000;">"$(( $n1 * $n2 ))

内容看出一个字符串,不包括$0

内容存放在数组里,不包括$0

包括$0

系统预定义变量:

输出上一次命令是否正确执行,0为正确,其他为错误

键盘输入

内容存入到变量中

数量时会自动确定

提示信息

判断条件

文件名 ]】判断文件是否存在

文件名 ]】判断是否为普通文件

代码编程

简单的 if 比较:

[ == echo 输出:相等 ls - [ 4 -eq 4 echo echo 输出:不相等 退出shell,并修改 $? 的值为2 exit 2

简单的 case 编程:

键盘输入 read -t 30 -p case echo echo * echo esac

简单的 for 循环:

i 1 2 5 5 8 done

or

s= ((i= 1;i<=100;i=i+1 s=$(($s+ echo

简单的while循环

i=1 s= [ $i -le 100 s=$(( $i+ i=$(( $i+1 echo

猜你在找的Shell相关文章