这一章节的内容我真的没懂,甚至都不知道咋运行截图😂,先东拼西凑整理出来放着,以后再来研究。。
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。是在Linux内核与用户之间的解释器程序,现在Linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于操作系统的“外壳”
(1)首个字符必须为字母
(2)中间不能有空格,可以使用下划线
(3)不能使用标点符号
(4)不能使用 bash里的关键字
示例:
your_name=”shell”
使用变量:
echo ${your_name}
只读变量:
readonly your_name
删除变量:(不能删除只读变量)
unset your_name
局部变量:在脚本或命令中定义,仅在当前 shell实例中有效,其他 shell启动的程序不能访问局部变量
环境变量:所有程序(包括 shell启动的程序)都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候 shell脚本也能定义环境变量
shell 变量:由 shell程序设置的特殊变量。shell 变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了 shell的正常运行
字符串可以用单引号、双引号,也可以不用引号
(1)单引号里的任何字符都会原样输出,变量是无效的;
(2)单引号字符串里不能出现单引号,使用转义字符的单引号也不行
(1)双引号里可以有变量;
(2)双引号里可以出现转义字符
bash 支持一维数组,不支持多维数组,并且没有限定数组的大小
数组用括号表示,元素之间用空格分开
初始化时不需要定义数组的大小,数组元素的下标从0开始
以 # 号开头的为注释
和其他编程语言一样,支持多种运算符
算数运算符
关系运算符
布尔运算符
字符串运算符
文件测试运算符
原生 bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr
expr是一款表达式计算工具,它能完成表达式的求值操作(使用反引号)
两个数相加:
val=expr 2 + 2
注意:表达式和运算符之间要有空格;完整的表达式要被 ``(反引号) 包含
示例如下:
a=10
b=20
val=`expr $a + $b`
echo “a + b : $val”
val=`expr $a - $b`
echo “a - b : $val”
val=`expr $a * $b` //乘号前面必须加反斜杠
echo “a * b : $val”
val=`expr $b / $a`
echo “b / a : $val”
val=`expr $b % $a`
echo “b % a : $val”
if [ $a == $b ] //条件表达式要放在方括号之间,并且要有空格
then
echo “a 等于 b”
fi
if [ $a != $b ]
then
echo “a 不等于 b”
fi
(1)if单分支:
-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
(2)双分支if:
if ((1==0)) #判断1和o是不是相等
thenecho "我是真的"
elseecho "我是假的"
fi
read VAILE #在屏幕中输入一个数,1或者2,如果不是这两个数就代表其他;即 *),
case ${VAILE} in"1")echo "我是1";;"2")echo "我是2";;*)echo "我不是1,也不是2";;
esac
function 函数名(){
……….
}
function fun(){if(($1 > 1)); thenecho "条件成立"fiif(($2 > 1)); thenecho "条件成立"elseecho "条件不成立"fi
}
fun 2 1 #这边传参数给fun()函数
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
(1)命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
(2)插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
(3)底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
本文发布于:2024-01-29 08:31:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648828314005.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |