上善若水
In general the OO style is to use a lot of little objects with a lot of little methods that give us a lot of plug points for overriding and variation. To do is to be -Nietzsche, To bei is to do -Kant, Do be do be do -Sinatra
posts - 146,comments - 147,trackbacks - 0
Bash命令行编辑模式
1. 两种模式:emacsvi,默认是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
posted on 2011-08-30 00:39 DLevin 阅读(981) 评论(0)  编辑  收藏 所属分类: Linux

只有注册用户登录后才能发表评论。


网站导航: