Linux常用命令记录
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+c
Vi模式下的编辑命令
常用命令:
删除前面的字符: 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切换用户、添加用户到sudoers
su <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