日常使用快捷键Linux、Vim
日常使用时,总有些命令总觉得已经形成肌肉记忆,盲打就行,但总会被打脸,于是便有了此文。
1、Linux命令行快捷键
(1)移动光标
Ctrl – a :移到行首
Ctrl – e :移到行尾
Ctrl – xx :在命令行尾和光标之间移动
Ctrl – b :往回(左)移动一个字符
Ctrl – f :往后(右)移动一个字符
ctrl+左右键:在单词之间跳转
(2)编辑命令
Ctrl – h :删除光标左方位置的字符
Ctrl – d:删除光标右方位置的字符(注意:当前命令行没有任何字符时,会注销系统或结束终端)
Ctrl – k :由光标所在位置开始,删除右方所有的字符,直到该行结束。
Ctrl – u:由光标所在位置开始,删除左方所有的字符,直到该行开始。
Ctrl – y :粘贴之前删除的内容到光标后。
Ctrl – _ :回复之前的状态。撤销操作。
(3)查找历史命令
Ctrl – r :搜索历史命令,随着输入会显示历史命令中的一条匹配命令,Enter键 执行匹配命令;ESC键 在命令行显示而不执行匹配命令。
Ctrl – g :从历史搜索模式(Ctrl – r)退出。
(4)控制命令
Ctrl – l :清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。
Ctrl – c :终止命令
2、Vim常用设置及快捷键
后续待补充
3、Find命令
查看大于1G的文件或目录
find ./ -size +1G| xargs -I {} ls -lh {}
find ./ -size +1G |xargs -i du --max-depth=2 -h {}
find ./ -size +1G |xargs -i du --max-depth=1 -h {}
删除所有的sam文件
find ./ -name "*.sam"| xargs -i rm {}
4、广播信息
1、查看一下哪些人登录:
who
w
2.给在线的某人(JiuyueXXXX)发消息:
write migao pts/17
Hello , world!
#Ctrl C结束
3、wall(write all)命令是广播,所有的人都可以收到。
echo "hello,This is a message" | wall
5、SGE集群调用
1.查看队列节点
qselect -q 队列名字
2.队列使用情况
qstat -g c
3.已经在跑的任务可以先挂起
qhold -u XXX
4.qstat -f 后台查看节点的状态
5.其他常用
qmod -c节点名称,清除错误模式
lsb_release -a 查看系统情况
qhost -j 列出所有用户在每个节点上的任务
qhost -q 每个节点上每个队列的任务数
qhost -u username 某个用户在每个节点上的任务
qstat -u username 查看某用户的任务
qstat -u \* 查看所有用户qsub任务
5、免密传输
(1) 跨节点免密
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
(2)跨集群免密码
1.把A的公钥拷贝到B
cat /A/root/.ssh/id_rsa.pub >>/B/root/.ssh/id_rsa.pub
2.登陆B服务器,把A的公钥追加到B的authorized_keys
cd /B/root/
cat id_rsa.pub >> .ssh/authorized_keys
3.此时在A中用SSH登录B或向B拷贝文件,将不需要密码
6、测试集群网络畅通
通过连接百度官网,判断是否有packets返回来判断。
ping www.baidu.com
7、ID
id dx_cancer 查看账号信息
8、lfs、df
具体要依据集群的文件管理系统定,lfs、quota、df这三个命令都会涉及,需要视情况而定;
lfs quota -hu /clinical/ # 目录配额
lfs quota -gh b2c1 /clinical/ # b2c1属主的配额
df -h /clinical/ # 目录存储大小
9、ps
ps可查看当前节点的后台任务。
ps -xf # 安装进程关系,排列个人的所有后台任务
ps -aux # 查看当前节点的所有后台任务
ps -aux |grep user # 查看user的后台任务
# 集群卡顿、操作失误,导致终端卡死
ps -xf # 以终端机名称把后台任务分类
tty # 查询目前使用的终端机的文件名称
kill -9 XX # 删除除自己目前使用终端外的其他终端
10、tar
zip xxx.zip file 压缩⾄zip包
zip -r xxx.zip file1 file2 dir1 将多个⽂件+⽬录压成zip包
unzip xxx.zip 解压zip包
tar -cvf xxx.tar file 创建⾮压缩tar包
tar -cvf xxx.tar file1 file2 dir1 将多个⽂件+⽬录打tar包
tar -tf xxx.tar 查看tar包的内容
tar -xvf xxx.tar 解压tar包
tar -xvf xxx.tar -C /dir 将tar包解压⾄指定⽬录
tar -cvfj xxx.tar.bz2 dir 创建bz2压缩包
tar -jxvf xxx.tar.bz2 解压bz2压缩包
tar -cvfz xxx.tar.gz dir 创建gzip压缩包
tar -zxvf xxx.tar.gz 解压gzip压缩包
bunzip2 xxx.bz2 解压bz2压缩包
bzip2 filename 压缩⽂件
gunzip xxx.gz 解压gzip压缩包
gzip filename 压缩⽂件
gzip -9 filename 最⼤程度压缩
11、paste
paste file1 file2 合并两个⽂件或两栏的内容
paste -d '+' file1 file2 合并两个⽂件或两栏的内容,中间⽤"+"区分
12、sed
sed 's/s1/s2/g' hello.txt 将hello.txt⽂件中的s1替换成s2
sed '/^$/d' hello.txt 从hello.txt⽂件中删除所有空⽩⾏
sed '/ *#/d; /^$/d' hello.txt 从hello.txt⽂件中删除所有注释和空⽩⾏
sed -e '1d' hello.txt 从⽂件hello.txt 中排除第⼀⾏
sed -n '/s1/p' hello.txt 查看只包含关键词"s1"的⾏
sed -e 's/ *$//' hello.txt 删除每⼀⾏最后的空⽩字符
sed -e 's/s1//g' hello.txt 从⽂档中只删除词汇s1并保留剩余全部
sed -n '1,5p;5q' hello.txt 查看从第⼀⾏到第5⾏内容
sed -n '5p;8p' hello.txt 查看第5、8⾏
sed -n '5p;5q' hello.txt 查看第5⾏
13、grep
grep codesheep hello.txt 在⽂件hello.txt中查找关键词codesheep
grep ^sheep hello.txt 在⽂件hello.txt中查找以sheep开头的内容
grep [0-9] hello.txt 选择hello.txt⽂件中所有包含数字的⾏
grep -A1 codesheep hello.txt 匹配关键词行下面的1行
grep -B1 codesheep hello.txt 匹配关键词行上面的1行
grep -v codesheep hello.txt 匹配不含关键词的行
grep -f a.txt hello.txt 匹配跟a.txt一致的行
参考资料
1、Linux及Shell思维导图汇总
以下内容均来自数林觅风整理的内容,对此感兴趣的请前往其公众号、博客、知乎专栏去获取,本文仅为方便自己阅读使用。