自己做网站教学视频,网店运营实务,wordpress免费模板下载,搜索引擎找不到的网站shell简介
参考博文1
参考博文2——shell语法及应用
参考博文3——vi的使用
在linux中有很多类型的shell#xff0c;不同的shell具备不同的功能#xff0c;shell还决定了脚本中函数的语法#xff0c;Linux中默认的shell是 / b in/ b a s h #xff0c;流行的shell有as…shell简介
参考博文1
参考博文2——shell语法及应用
参考博文3——vi的使用
在linux中有很多类型的shell不同的shell具备不同的功能shell还决定了脚本中函数的语法Linux中默认的shell是 / b in/ b a s h 流行的shell有ash、bash、ksh、csh、zsh等
#!/bin/bash #这一行被称为shebang 行 [指定告知系统当前这个脚本要使用的shell解释器](1)vi的使用 1控制光标移动方向hjkl分别对应左下上右 2光标每次移动一个单词wword:向后移动一个单词bback向前移动一个单词 3移动到指定行gg移到文件顶部G:移到文件末尾 数字gg /G /:数字移动到对应行数,如5gg 4屏幕移动Ctrlb:向上翻页 Ctrlf:向下翻页 H / M / L:屏幕顶部/中间底部 5标记行mx(x可取任意字母)跳转到标记行x如标记行使用ma则跳转到标记行使用a (7)撤销 / 恢复上一次命令u / ctrl r (8)选中文本v / V / ctrl v从光标位置开始按照正常模式选择文本 / 选中光标经过的完整行 / 垂直方向选中文本 9复制文本y (复制) yy (复制1行nyy复制多行) p (粘贴) (10)删除文本 x / d / dd / D vi test.py n #n为行数 #打开文件定位到指定行数即可进行编辑
如果 vi 异常退出在磁盘上可能会保存有 交换文件
下次再使用 vi 编辑该文件时会看到以下屏幕信息按下字母 d 可以 删除交换文件 即可 1.shell脚本的写入和运行
1.写入的4种方式
shell脚本的写入方式
1.cat test.sh
hello world
hello boys #键入写入test.sh的内容,写完后按CTRLD退出2.echo hello world test.sh #写入test.sh并覆盖原有内容
3.echo hello world test.sh #写入test.sh的末尾不覆盖原有内容
4.vi test.sh #使用vi编辑
注意执行前先给shell脚本可执行的权限chmod x test.sh最开始创建的test.sh只是一个文本文件必须给权限后才可运行
#3种方式均可运行sh脚本
bash test.sh
sh test.sh
./test.sh #注意 不可忽略./ 2.输入/输出重定向
linux标准输入输出
0键盘/dev/stdin——标准输入
1显示器/dev/stdout——标准输出
2显示器/dev/stderr——标准错误输出
输入重定向不使用标准输入端口输入文件而是使用指定的文件作为标准输入设备。使用 “”符来修改标准输入设备
echo today is $(date) #输出Today id 2024年 05月 20日 星期一 14:26:59 CST
echo today is $(date) test.sh #将输出内容写到test.sh文件的末尾
常用的转义字符\n换行 \t制表符 \\反斜杠 \ 双引号 \单引号
3.shell变量 注意事项 1.等号两侧不能有空格如namejohn 2.环境变量建议大写 3.单引号全引用单引号括起的内容不管是常量还是变量都不会发生替换引用的即输出的 4.双引号部分引用变量发生替换常量保持不变 5.无引号字符串不能包含空白字符space/tab一般连续的字符串、数字、路径等可以不加引号 字符串常量使用单引号括起来如果字符串含有变量、命令等使用双引号括起来不建议不加引号 命令执行必须用反引号命令或$(命令)如echo ls 或者echo $(ls) ,才会输出ls命令执行结果也即显示当前目录下的文件 #单引号使用
vardouble
echo $var #输出$var#双引号使用
vardouble
echo $var #输出double#无引号使用
str1test1,str2test2,str3teststring
echo $str1,$str2,$str3 #输出test1,str2test2,str3teststring
3.1变量分类
1.自定义变量户自由定义变量名和变量的值
2.环境变量保存和系统操作环境相关的数据
3.位置参数变量向脚本当中传递参数或数据的变量名不能自定义变量作用是固定的。
4.预定义变量Bash中已经定义好的变量变量名不能自定义变量作用也是固定的
#变量的调用
[rootroot scripts]# nameshen zhen
[rootroot scripts]# echo $name
shen zhen3.2变量查看
set指令能设置所使用shell的执行方式可依照不同的需求来做设置。
set [-abCdefhHklmnpPtuvx]unset name #删除变量
env #查看系统默认环境变量 3.2.1位置参数变量 $n n为数字$0表示当前 Shell 脚本程序的名称$1-9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 如{10} $*代表命令行中所有的参数$把所有的参数看成一个整体 $代表命令行中所有的参数不过$把每个参数区分对待 $#代表命令行中所有参数的个数 #! /bin/bashecho shell脚本本身的名字$0 #输出shell脚本本身的名字test.sh
echo 传给shell的第一个参数$1 #输出传给shell的第一个参数1
echo 传给shell的第二个参数$2 #输出传给shell的第二个参数23.2.2预定义变量 $?: 最后一次执行命令的返回状态。为0则命令执行成功反之不成功 $$: 当前进程的进程号PID $!: 后台运行的最后一个进程的进程号 1.cat:用于查看和连接文件
用于创建文件 用于追加内容不覆盖原内容
cat file #查看文件
cat test.py # 将标准输入到重定向文件覆盖该文件内容
cat test.py #将标准输入写到文件末尾cat file1 file2 file3 #将file1和file2的内容合并写到file3若file3有内容则会被覆盖
cat file1 file2 file3 #将file1和file2的内容合并写到file3若file3有内容则会写到文件后cat file1 file2 #显示多个文件内容
cat filename | command #将cat命令的输出作为另一个命令的输入
cat -n textfile1 textfile2 # textfile1 的文档内容加上行号后输入 textfile2
cat filename | tail -n 10 #显示file的最后10行nl filename #显示行号包括空白行
cat -n filename #显示行号包括空白行
cat -b filename #显示行号不包括空白行
cat -e filename #在每行结尾处添加符号$cat /dev/null /etc/tsst.txt #清空 /etc/test.txt 文档内容
cat /dev/fd0 OUTFILE #制作镜像文件如要制作 软盘的镜像文件OUTFILE将软盘放好后使用此命令
cat /IMG_FILE /dev/fd0 #相反的如果想把 image file镜像文件 写到软盘使用此命令
2.more 文件内容或输出查看工具
more /root/test.py #查看文件内容同cat并可分页显示文件内容参数如下num 从第num行开始显示-num 只显示前num行/pattern 从pattern 前两行开始显示-c 从顶部清屏然后显示-d 提示Press space to continue, q to quit.按空格键继续按q键退出禁用响铃功能-l 忽略Ctrll 换页字符-p 通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似-s 把连续的多个空行显示为一行-u 把文件内容中的下划线去掉退出more的动作指令是qmore -dc test.sh #清屏查看当前文件
ls -l /etc |more #通过管道与more结合当要显示的内容很多时cat直接打印了所有内容可能会看不到前面部分的内容就可利用more分屏显示#查看大文件时有以下常用快捷键Enter 向下1行默认可修改多行Ctrlf 向下滚动1屏空格键 向下滚动1屏Ctrlb 返回上一屏 输出当前行的行号:f 输出文件名和当前行的行号v 调用vi编辑器! 调用Shell并执行命令q 退出more当我们查看某一文件时想调用vi来编辑它不要忘记了v动作指令这是比较方便的
3.less查看文件
less test.sh
常用参数-c 从顶部从上到下刷新屏幕并显示文件内容。而不是通过底部滚动完成刷新
-f 强制打开文件二进制文件显示时不提示警告
-i 搜索时忽略大小写除非搜索串中包含大写字母
-I 搜索时忽略大小写除非搜索串中包含小写字母
-m 显示读取文件的百分比
-M 显法读取文件的百分比、行号及总行数
-N 在每行前输出行号
-p pattern 搜索pattern比如在/etc/profile搜索单词MAIL就用 less -p MAIL /etc/profile
-s 把连续多个空白行作为一个空白行显示
-Q 在终端下不响铃man less #查看less 使用head -n 5 /var/log/msg #显示msg文件的前5行tail -n 5 /var/log/msg #显示msg文件的最后5行
tail -f /var/log/msg #实时显示msg文件 二、shell运算符
在shell中常见的有算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符等
2.1算术运算符 # bash不支持简单的数学运算但是可以通过其他命令来实现,利用awk 、expr常用完成表达式的计算 条件表达式 |赋值| a$b 将把变量 b 的值赋给 a。 | 相等。用于比较两个数字相同则返回 true真。| [ $a $b ] 返回 false假。 ! |不相等。用于比较两个数字不相同则返回 true。 |[ $a ! $b ] 返回 true。 注意条件表达式要放在方括号之间并且要有空格如 [ $a $b ]、[ $a ! $b ] a30
b10
echo $a
echo $b
echo a b expr $a $b #输出40
echo a - b expr $a - $b #输出20
echo a * b expr $a \* $b #输出300
echo a / b expr $a / $b #输出3
echo a % b expr $a % b #输出
--------------------------------------------
if [$a $b]
thenech和b相等
elseecho a和b不等 #输出a和b不等
fi2.2关系运算符
关系运算符只支持数字不支持字符串除非字符串的值是数字。下表列出了常用的关系运算符假定变量 a 为 10变量 b 为 20