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">【 命令`】反引号,内容为引用的命令,可用【$(命令)】代替<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="https://www.52php.cn/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="https://www.52php.cn/res/2019/03-02/08/f944eca1b2eeb50189685ed2157fe1b1.png" alt=""> <div class="cnblogs_code">
系统预定义变量:
键盘输入
判断条件
简单的 if 比较:
[ == echo
ls -
[ 4 -eq 4 echo
echo
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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |