Bash命令行编辑模式1. 两种模式:
emacs和
vi,默认是
emacs.2. 可以通过
set -o vi/emacs切换模式
3. 可以通过
set -o查看当前是什么模式,即是vi on还是emacs on。
4.
set命令可以通过
help set来查看具体用法;通过
set -o [option]打开某个属性,通过
set +o [option]关闭某个属性值。
emacs命令行编辑模式
对字符(ctrl):
前移一个字符:
ctrl+f 后移一个字符:
ctrl+b 删除前一字符:
ctrl+h/del/backspace 删除后一字符:
ctrl+d对单词(esc):
前移一个单词:
esc+f 后移一个单词:
esc+b 删除前一单词:
esc+ctrl+h,或
ctrl+w/esc+del/esc+backspace 删除后一单词:
esc+d 恢复最后删除的项:
ctrl+y(目前知道的:对使用ctrl+h、ctrl+d、backspace、delete等删除的字符无效,对使用ctrl+w、esc+ctrl+h、esc+d等键删除的字符有用)
对于行(ctrl):
移动到行首:
ctrl+a 移动到行尾:
ctrl+e 从光标所在删除直到行首:
ctrl+u 从光标所在删除直到行尾:
ctrl+k对历史命令: 移动到前一历史命令:
ctrl+p 移动到后一历史命令:
ctrl+n 移动到第一个历史命令:
esc+< 移动到最后一个历史命令:
esc+> 在历史命令中反向搜索:
ctrl+r(若找到的一个不符合,可以继续按ctrl+r,会一直以查找的字符串向上找)命令行补齐: 通用热键: 补齐命令行:
tab 列出所有可能的备选项:
esc+? 补齐文件名: 补齐文件名:
esc+/ 列出所有备选文件名:
ctrl+x+/ 补齐用户名: 补齐用户名:
esc+~ 列出所有备用用户名:
ctrl+x+~ 补齐主机名: 补齐主机名:
esc+@ 列出所有备选主机名:
ctrl+x+@ 补齐内置变量: 补齐变量名:
esc+$ 列出所有备选变量名:
ctrl+x+$ 补齐命令名 补齐命令名:
esc+! 列出所有备选命令名:
ctrl+x+! 补齐历史列表中的命令名:esc+tab杂项命令: 清屏:
ctrl+l 反转光标所在字符及其前面的字符:
ctrl+t(并且光标向前移动,若一直按,可以将光标前的一个字符向前移动到某个需要的位置) 从光标开始的整个单词大写:
esc+u 从光标开始的整个单词小写:
esc+l 将光标处的单词首字母大写:
esc+cVi模式下的编辑命令常用命令: 删除前面的字符:
Del/Backspace/ctrl+h 删除前面的单词,即删除至空格:
ctrl+w 输入结束:
ctrl+d/回车 进入控制模式:
esc控制模式下的命令: 向左移动一个字符
:h 向右移动一个字符
:l 向左移动一个单词
:b 向右移动一个单词
:w 移到上一个非空字符的开始
:B 移到下一个非空字符的开始
:W 移到当前单词的结尾
:e 移到当前非空单词的结尾
:E 移到行首
:0 移到行内第一个字符
:^ 移到行尾
:$ 输入控制 在当前字符前插入文本
:i 在当前字符后插入文本
:a 在行首插入文本
:I 在行尾插入文本
:A 用文本覆盖已存在的文本
:R删除命令(所有将d换成c,即删除后进入输入模式) 向后删除一个字符:
dh/x 向前删除一个字符:
dl/X 向后删除一个单词:
db 向前删除一个单词:
dw 向后删除一个非空单词:
dB 向前删除一个非空单词:
dW 删除到行尾:
d$/D 删除到行首:
d0 删除整行:
0d$/dd 删除到行尾,并进入输入模式:
c$/C 删除整行,并进入输入模式:
0c$/cc 恢复删除:u
历史了命令搜索 向后移动一条记录:
k/- 向前移动一条记录:
j/+ 移动到重复计数指定的行
:G 向后搜索字符串:
/字符串 向前搜索字符串:
?字符串 在前一条搜索命令同一方向的下一条记录
:n 在前一条搜索命令相反反向的上一条记录
:N字符查找 向右移到字符x下一次出现的位置:
fx 向左移到字符x前一次出现的位置:
Fx 向右移到字符x下一次出现的位置,并后退一格:
tx 向左移到字符x前一次出现的位置,并前进一格:
Tx 重复上一次查询命令
:; 以相反方向重复上一次查询命令
:,杂项命令 转换当前字符大小写
:_ 清屏:
ctrl+l 给当前行前加#字符
:#ubuntu添加组、新用户、密码、删除、修改登陆属性
sudo groupadd hadoop
sudo useradd -s /bin/bash -d /home/hadoop -g hadoop -G sudo hadoop
sudo passwd hadoop
sudo userdel hadoop
sudo groupdel hadoop
sudo usermod <option> <username>
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等
-c comment 指定一段注释性描述。-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g 用户组 指定用户所属的用户组。-G 用户组,用户组 指定用户所属的附加组。-s Shell文件 指定用户的登录Shell。-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。ubuntu切换用户、添加用户到sudoerssu <username>
sudo adduser <username> sudo
sudo usermod -a -G sudo <username>
历史命令记录文件:
$HISTFILE,一般为用户目录下的.bash_history文件,可以通过设置
$HISTFILE变量修改。
只查看zip文件中的内容:
unzip -l filename.zip
zipinfo filename.zip
复制路径:
cp -r sourceDir destDir
查看文件、目录大小:
du -sh file/directory
vi命令:
整页翻页 ctrl-f ctrl-b
f就是forword b就是backward
翻半页
ctrl-d ctlr-u
d=down u=up
滚一行
ctrl-e ctrl-y
zz 让光标所杂的行居屏幕中央
zt 让光标所杂的行居屏幕最上一行 t=top
zb 让光标所杂的行居屏幕最下一行 b=bottom
vi/vim 中可以使用 :s 命令来替换字符串。
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1
awk去其中某几列数据:
awk -F '|' '{OFS="|"; print $34, $44, $20, $21, $24, $25, $39, $3}' fileName > newFile
-F为原始文件列分隔符,OFS指定新文件列分隔符
awk去重复列:
awk -F '|' '{print $9}' fileName | sort | awk '!a[$0]++'
awk找到一列中值等于match的行:
awk -F '|' '{if ($9 == "match") print $0;}' fileName > newFile
posted on 2011-08-30 00:39
DLevin 阅读(980)
评论(0) 编辑 收藏 所属分类:
Linux