ctrl + e 跳到命令行最末端
ctrl + a 跳到命令行首端
ctrl + l 清屏
alt + n(n 为数字) 切换到terminal相应的tab
mv xxx{,.bak} 等同于mv xxx xxx.bak
esc + . 能填充之前命令的最后一个字段
vim编辑文件后发现需要root权限,
:w | sudo tee % 。(w:表示vim的修改操作,这个命令的输出更改后的文件到“标准输出” !sudo tee % :执行 一个 shell 命令, % 表示当前打开的这个文件的名字。 整个命令就是 将w的输出传给 tee,tee 在root 权限下 把更改的内容存在文件当中。)
sudo !!用sudo执行上条命令
!!全部的上一条命令
!*上一条的全部命令
!$ 上一行命令的 最后一个参数
$()和${}的用法:
在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。而 $( ) 并不见的每一种 shell 都能使用,若你用 bash2 的话,肯定没问题...
看 ${ } 吧... 它其实就是用来作变量替换用的啦。一般情况下,$var 与 ${var} 并没有啥不一样。但是用 ${ } 会比较精确的界定变量名称的范围
${#var} 可计算出变量值的长度。 var="/bin/bash", echo ${#var}, 结果显示是:9
我这里再用一些例子加以说明 ${ } 的一些特异功能:
假设我们定义了一个变量为:
file=/home/yhsd/dir/my.file.txt
我们可以用 ${ } 分别替换获得不同的值:
${file#*/}:拿掉第一条 / 及其左边的字符串:home/yhsd/dir/my.file.txt
${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt
${file#*.}:拿掉第一个 . 及其左边的字符串:file.txt
${file##*.}:拿掉最后一个 . 及其左边的字符串:txt
${file%/*}:拿掉最后条 / 及其右边的字符串:/home/yhsd/dir
${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值)
${file%.*}:拿掉最后一个 . 及其右边的字符串:/home/yhsd/dir/my.file
${file%%.*}:拿掉第一个 . 及其右边的字符串:/home/yhsd/dirmy
记忆的方法为:
# 是去掉左边(在鉴盘上 # 在 $ 之左边)
% 是去掉右边(在鉴盘上 % 在 $ 之右边)
$(())的用途:它是用来作整数运算的,例如:echo $(( a + b*c))