仅做初学时记录的一些笔记
简介
vim是linux下一款非常强大的文本编辑器
vim安装
终端输入sudo apt-get install vim-gtk
vim使用
vim创建文件
vim test.sh
vim有三种模式:命令模式、输入模式和底线命令模式,刚进入是命令模式,不能输入文本,只能进行一些命令操作
命令模式
i
切换到输入模式,以输入字符。
x
删除当前光标所在处的字符。
:
切换到底线命令模式,以在最底一行输入命令
输入模式
按ESC
切换命令模式
常用命令
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
底线命令模式
在命令模式下按下:
(英文冒号)就进入了底线命令模式。
基本的命令:
q
退出程序q!
不想保存,强制退出w
保存文件wq
可保存退出wq!
强制保存退出w [filename]
写入另一个文件n1,n2 w [filename]
将 n1 到 n2 行的内容储存成 filename 这个文件。- 按
ESC
键可随时退出底线命令模式。
脚本编辑
#!/bin/bash
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。echo
命令用于向窗口输出文本sh test.sh
执行脚本
Shell 字符串
单引号
str='this is a string'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号
例子
your_name='runoob'
str="Hello, I know you are \"$your_name\"! \n"
echo $str
输出结果为:
Hello, I know you are "runoob"!
注意:shell中由$引用之前的变量
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
获取字符串长度
string="abcd"
echo ${#string} #输出 4
提取子字符串
以下实例从字符串第 2 个字符开始截取 4 个字符:
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo
查找子字符串
查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string="runoob is a great site"
echo `expr index "$string" io` # 输出 4
Shell 数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
定义数组
在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:
数组名=(值1 值2 … 值n)
例如:
array_name=(value0 value1 value2 value3)
读取数组
读取数组元素值的一般格式是:
${数组名[下标]}
例如:
valuen=${array_name[n]}
使用 @ 符号可以获取数组中的所有元素,例如:
echo ${array_name[@]}
Shell 注释
遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?
每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。