Linux
完善中
快捷键
-
光标回到开头:
ctrl + a
-
光标回到末尾:
ctrl + e
VIM快捷键
- undo:
u
- redo:
ctrl + r
- 删除当前字符:
x
- 删除当前行:
dd
- pageup:
fn + up
- pagedown:
fn + down
- 搜索单词:
/word
回车,然后按n不停搜 - 行首:
^
- 行尾:
$
- 下个单词:
w
- 上个单词:
b
- 删除包括本行在内的后续行:
:,$d
- 多选字符:
v
- 块模式多选字符:
ctrl + v
,多选完按d或x删除,也可以按c替换 - 缩进:
<<
和>>
Shell
- 脚本以
#!/bin/bash
开头 - 可通过
chmod +x ./index.sh
使其可执行
变量
name="akara" # 声明变量 等号前后要粘着
echo $name # 使用变量
echo ${name} # 使用变量 *推荐
readonly name # 使变量只读
unset name # 删除变量,不能删除只读变量
Shell
变量可分为当前脚本下的局部变量,以及环境变量。
# 字符串(单引号)
name='akara'
# 字符串(双引号)
name="akara"
单引号字符串内部字符会原样输出,即内部不能有变量和转义符号。
# 单引号
name='akara'
echo 'i am ${name}' # i am ${name}
# 双引号
name='akara'
echo "i am ${name}"" # i am akara
arr=("a" "b" "c") # 数组
echo ${arr[0]} # "a"
echo ${arr[@]} # 输出数组所有项 "a" "b" "c"
传递参数
echo "$1 $2 $3"
./index.sh a b c # a b c
运算符
shell
中进行运算通常使用反引号配合expr
来实现
a=10
b=20
echo `expr $a + $b`
条件判断:
if [ $name == 'akara' ] # 注意,一定要留出空格
then
echo "相等"
fi
补充:判断相等时可以用==
,也可以直接用=
逻辑运算:
name="akara"
age=22
if [[ $name == 'akara' && $age == 20 ]]
then
echo "相等"
else
echo "不相等"
fi
输出重定向
echo "hello" > index.js # 覆盖
echo "hello" >> index.js # 不覆盖,添加到文件尾部
可以通过重定向,让我们在执行某些脚本时屏蔽输出
./index.sh > /dev/null
常用命令
很简单的命令就不写了。
ls
ls
ls -a # 隐藏文件
ls -l # 显示完整信息,包括读写执行的权限等
通过ls -l
可以看到完整的文件信息,如下:
-rwxr-xr-x 1 root root 27776 Apr 17 2012 test.txt
其中- rwx r-x r-x
由四部分组成:文件类型、拥有者权限、拥有者所属用户组权限、其他用户权限。
文件类型中,-
表示普通文件,d
表示目录,l
表示软链接(硬链接无特殊标记)
权限包括rwx
,即读、写、执行。可以使用数字来代表权限,读:4、写:2、执行:1。因此r-x
对应着5
。
chmod
通过ls
可以看到一个文件的操作权限,而通过chmod
可以修改文件的权限。
chmod 777 text.txt
或者
chmod +x test.txt # 使其可执行
alias
用于起命令的别名
alias ..='cd ..'