个人学习使用- ^ -
一、linux常用快捷键(控制台)
ctrl + a 移动到行首
ctrl + e 移动到行尾
ctrl + u 删除光标之前的字符
ctrl + k 删除光标之后的字符
ctrl + l 清除屏幕终端内容,等同于 clear
二、vim 常用快捷键
1. 移动光标
^ 跳至行首的第一个字符
$ 跳至行尾
gg 跳至文首
G 跳至文末
9 gg/ 9 G 跳至第9 行
:10 跳至第10 行
* 查找光标所在处的单词,向下查找
# 查找光标所在处的单词,向上查找
2. 删除复制
dd 删除光标所在的行
dw 删除一个字符,相当于delete
: 20d 删除第20 行
: 20 , 30d 删除第20 行至30 行
yy 复制当前行
P 粘贴到光标所在行的上一行
p 粘贴到光标所在行的下一行
3. 插入模式
i 从当前光标处进入插入模式
I 进入插入模式,光标置于行首
a 追加模式,当前光标后一位
A 追加模式,光标移至行末
o 当前行下面追加一行,并进入插入模式
O 当前行上面追加一行,并进入插入模式
esc 退出插入模式
4. 编辑模式
cc 删除当前行并进入编辑模式
cw 删除当前字符并进入编辑模式
c$ 删除光标位置至行末的内容并进入编辑模式
S 同cc
s 同cw
>> 当前行右移一个单位
<< 当前行左移一个单位
== 自动缩进当前行
u 撤销
5. 查找替换
: / 字符 向后搜索(n 向下切换 N 向上切换)
: ?字符 向前搜索(n向上切换 N 向下切换)
: % s/ old/ new / g 搜索整个文件,将所有new 替换为old
: % s/ old/ new / gc 搜索整个文件,将所有的old替换为new ,每次都要你确认是否替换
6. 退出保存
: q 退出,如果对缓冲区进行过修改,则会提示
: q! 强制退出,放弃修改
: wq 保存并退出
: x 同: wq
7. 视图模式
: set nu 显示行
: set nonu 取消行显示
v 进入字符可视化模式
V 进入行可视化模式
ctrl + v 进入块可视化模式
添加多行注释: ctrl + v (按上下键选择需要注释的行)-- > I (大写i) -- > # -- > esc
取消多行注释: ctrl + v -- > d
多行删除:ctrl + v -- > D
#! / bin/ bash
#a= 1
#b= 2
#加法运算
#c= `expr $a + $b`
#输出a+ b的和
#echo "值为: $c"
#加法运算
#c= `expr $a - $b`
#输出a- b的差
#echo "值为: $c"
#乘法运算
#c= `expr $a \* $b`
#输出a* b的值
#echo "值为: $c"
#除法运算
#c= `expr $b / $a`
#输出b/ a的值
#echo "值为: $c"
#"%" 运算
#c= `expr $b % $a`
#输出b% a的值
#echo "值为: $c"
#"+" 运算
#c= $b
#echo $c
#"==" 运算
m= 1
n= 1
#if [ $a == $b ]
#then
# echo "a等于b"
#else
# echo "a不等于b"
#fi
#if [ $m == $n ]
#then
# echo "m等于n"
#else
# echo "m不等于n"
#fi
#"-ne" 检测两个数是否相等 不相等返回true
#if [ $a - ne $b ]
#then
# echo "a不等于b"
#else
# echo "a等于b"
#fi
#"-gt" 检测左边数是否大于右边数,如果是返回true
#if [ $b - gt $a ]
#then
# echo "b大于a"
#else
# echo "b小于a"
#fi
#"-lt" 检测左边数是否小于右边数,如果是返回true
#if [ $a - lt $b ]
#then
# echo "a小于b"
#else
# echo "b小于a"
#fi
#"-ge" 检测左边数据是否( 大于+ 等于) 右边数 如果是,返回true
#if [ $a - ge $b ]
#then
# echo "a大于等于b"
#else
# echo "a小于b"
#fi
#"-le" : 检测左边数是否( 小于+ 等于) 右边数, 如果是返回true
#if [ $a - le $b ]
# then
# echo "a小于等于b"
# else
# echo "a大于b"
# fi
#"!" : 非运算, 表达式true ,返回true ,否则返回false
# if [ $a != $b ]
# then
# echo "a不等于b"
# fi
#"-o" : 或运算,有一个表达式为true ,则返回true
# a= 100
# b= 200
# if [ $a - lt 200 - o $b - gt 200 ]
# then
# echo "成立"
# fi
#"-a" 与运算。两个表达式为true ,则返回true
# a= 100
# b= 200
# if [ $a - lt 200 - a $b - ge 200 ]
# then
# echo "成立"
# else
# echo "不成立"
# fi
#逻辑运算符 "&&" : 逻辑且 - and
# a= 100
# b= 200
# if [ $a - lt 200 - a $b - gt 200 ]
# then
# echo "成立"
# else
# echo "不成立"
# fi
#"||" : 逻辑OR
# a= 100
# b= 200
# if [ $a - lt 200 ] || [ $b - gt 200 ]
# then
# echo "成立"
# else
# echo "不成立"
# fi
#"=" : 检测两个字符串是否相等,如果相等返回true
# a= "aa"
# b= "bb"
# if [ $a = $b ]
# then
# echo "字符串a等于字符串b"
# else
# echo "字符串a不等于字符串b"
# fi
#"!=" 检测两个字符串是否相等,如果不相等返回true
# a= "aa"
# b= "bb"
# if [ $a != $b ]
# then
# echo "字符串a不等于字符串b"
# else
# echo "字符串a等于字符串b"
# fi
#"-z" : 检测字符串长度是否为0 ,如果是返回true
# a= "aa"
# if [ - z $a ]
# then
# echo "a不存在值"
# else
# echo "a不为空,存在"
# fi
#"-n" : 检测字符串长度是否为0 , 如果不是0 ,返回true
# a= "aa"
# if [ - n "$a" ]
# then
# echo "a不为空,存在"
# else
# echo "a不存在值"
# fi
#"字符串" : 检测字符串是否为空,不为空返回true
# a= "aa"
# if [ $a ]
# then
# echo "a不为空"
# else
# echo "a为空"
# fi
#
#文件测试运算符
# file= "/home/shelldir/conditshell.sh"
# file2= "/home/shelldir"
# if [ - d $file2 ]
# then
# echo "是一个目录"
# else
# echo "不是一个目录"
# fi
#
#
#"-r file" : 检测文件是否可读,如果是,那么返回true
# file= "/home/shelldir/conditshell.sh"
# if [ - r $file ]
# then
# echo "可读"
# else
# echo "不可读"
# fi
#
#"-w file" : 检测文件是否可写,如果是,那么返回true
# file= "/home/shelldir/conditshell.sh"
# if [ - w $file ]
# then
# echo "可写"
# else
# echo "不可写"
# fi
#
#"- x file“: 检测文件是否是可执行文件,如果是返回true
## file= "/home/shelldir/conditshell.sh"
# if [ - x $file ]
# then
# echo "可执行"
# else
# echo "不可执行"
# fi
#"-f file" : 检测文件是否是一个普通文件( 是目录为false ,是普通文件为true ) ,如果是,那么返回true
# file= "/home/shelldir"
# if [ - f $file ]
# then
# echo "文件为普通文件"
# else
# echo "文件为特殊文件"
# fi
#
#"-s file" : 检测文件是否为空( 文件有内容) ,如果是,那么返回true
# file= "/home/shelldir/conditshell.sh"
# if [ - s $file ]
# then
# echo "文件有内容"
# else
# echo "文件没有内容"
# fi
#
#"-e file" : 检测文件是否存在( 包含了: 目录和文件) ,如果是,返回true
# file= "/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
# if [ - e $file ]
# then
# echo "存在"
# else
# echo "不存在"
# fi
#
#
#"if" 语句
## 代码结构
# a= "aa"
# b= "aa"
# if [ $a == $b ]
# then
# echo "字符串a等于字符串b"
# fi
#
#"if else" 语句
#代码结构
# a= "aa"
# b= "bb"
# if [ $a = $b ]
# then
# echo "字符串a等于字符串b"
# else
# echo "字符串a不等于字符串b"
# fi
#"if-else-if-else"
# a= "aa"
# b= "bb"
# if [ $a = $b ]
# then
# echo "字符串a等于字符串b"
# elif [ $a ]
# then
# echo "字符串a不能为空"
# else
# echo "字符串a不等于字符串b"
# fi
#
#
#
# "case" 语句
# number= 2
# case $number in
# 1 )
# echo "等于1"
# ; ;
# 2 )
# echo "等于2"
# ; ;
# 3 )
# echo "等于3"
# ; ;
# esac
#
#
#"while" 循环
# a= 1
# while ( ( $a< 3 ) )
# do
# echo $a
# a= `expr $a + 1 `
# done
#"for" 循环语句
# 语法变量
# for 变量名 in item1 item2 item2. . .
# do
# 代码
# done
# 代码案例一
for name in "aa" "bb" "cc"
do
echo $name
done