a在当前光标后追加数据
A在当前光标所在行行尾追加数据
r char 用char替换当前光标所在位置的单个字符
R text用text覆盖当前光标所在位置的数据
p粘贴
v高亮
y复制
构建脚本:
第一行
#!/bin/bash //指定要使用的shell
#作为注释
#date显示日期
#who显示显示当前是谁登录到系统上
想要显示""或者'',就用相对的引号将字符串划定起来
可以将echo添加到任何需要显示额外信息的地方
如果想将文本字符串和命令输出显示在同一行中:
echo -n "The time and date are: "
date
将命令输出赋给变量
第一种:反引号字符`
第二种:$()
today=$(date +%y%m%d)
ls /usr/bin -al > log.$today
重定向输入和输出:
输出重定向:
command > outputfile
用双>>号来追加数据
输入重定向:
command < inputfile
如:wc < a.txt
2 11 60
显示的分别是行数,词数,字节数
管道:
command1 | command2
两个命令同时进行,不会有中间文件和缓冲区
rpm -qa | sort
产生安装包的列表,且按顺序排列
可在一个命令中运用多个管道.
expr命令:在命令行处理数学表达式
expr 1 + 5
6
(记得用转义符)
将一个数学运算结果赋给某个变量时,可以用美元符号和方括号将数学表达式围起来
$[operation]
[]内可以不用转义符
浮点号解决方法
bc //可以识别到数字,变来那个,注释.表达式,编程语句,函数
//quit是退出的标志
scale控制bc的浮点运算,需要提前设置浮点有多少位
scale=4
3.44 / 5
.6880
quit
bc还可以支持变量
在脚本中使用bc
variabl=$(echo "options; expression" | bc)
options允许设置变量
var1=$(echo "scale=4; 3.44/5" | bc)
echo The answer is $var1
//得到:the answer is .6880
bc命令识别重定向
variable=$(bc << EOF
options
statements
expressions
EOF
)
例如:
var1=10.46
var2=43.67
var3=33.2
var4=71
var5=$(bc << EOF
scale = 4
a1 = ($var1 * $var2)
b1 = ($var3 * $var4)
a1 + b1
EOF
)
echo the final answer fo this mess is $var5
退出脚本
$?保存上个已执行命令的退出码
正常退出码是0,
exit 可以指定一个退出码状态(也可以在里面指定一个状态)
结构化命令的使用:
if-then语句
if command
then
command
fi
(如果if后面命令的退出码状态是0,则执行then后面的命令)
if pwd
then
echo "It worked"
fi
在then部分可以使用不止一条命令。
if command
then
command
else
command
fi
then和else里面可以再继续嵌套if语句
if commad1
then
commands
elif command2
then