01
排序
sort –t ‘:’ –n –r –k1 file
表示冒号分割文件行(-t)
取第1列(-k)
按数字(非字符串排序-n)
从大到小排序(默认从小到大,-r反之)
检索
查看file中起始为hello的行
grep ‘^hello’ file
查看file中不含关键字hello的行
grep –v hello file
查看file中带数字的行
grep [0-9] file
在目录 '/my/ddirectory/' 及随后的目录中搜索hello
grep hello -R /my/directory/*
查看
查看文件行数
wc –l file
查看文件且显示每一行的行号
cat –n file
查看当前目录下所有fastq文件的总行数
find . –name ‘*.fastq’ | xargs cat | wc –l
按时间顺序排列该目录下文件(可用于整理文件生成的先后关系)
ls –lt /my/directory/
按文件大小从大到小排列该目录下文件:
ls –Sl /my/directory/
按文件大小从小到大排列该目录下文件:
ls –Slr /direc/
less file查看file文件,文件内容会根据屏幕大小自动换行,不换行查看使用:
less –S file
查看file的前10行
head –n 10 file
查看file的最后10行
tail –n 10 file
查看第2行
awk ‘NR==2 {print $_}’ file
查看file的2到5行
awk ‘NR>1 && NR<6 {print $0}’ file
查看file的2到5行
sed –n ‘2,5p’ file
取交并集
取两个文件的交集(只留下同时存在于两个文件中的行)
sort file1 file2 | uniq -d
取两个文件的并集(重复的行只保留一行)
sort file1 file2 | uniq
删除交集,留下其他的行
sort file1 file2 | uniq -u
合并
把file2的行添加到file1文件行后面输出到file3(按行合并)
cat file1 file2>file3
把file2的列添加到file1的文件列后面输出到file4(按列合并)
paste file1 file2>file4
02管道
操作符是:”|”
只能处理由前面一个指令传出的正确输出(standard output)信息
对stdandard error信息没有直接处理能力
传递给下一个命令,作为标准的输入standard input
此命令方便我们对多种命令进行组合使用
cut –d ‘;’ –f1 file | sort | uniq –dc
分号分割file,并输出第一列给sort
sort对第一列进行排序
排序后利用uniq处理
-d显示重复行
–c对重复行计数
03linux下运行perl命令
cat file |perl –ne ‘@arr=split/\t/,$_;if($arr[2]=~/^hello/){print $_}’
输出为file文件中tab分割下第三列起始含hello字符的所有行
这样简单的perl程序可直接在命令行中写并执行,无需生成脚本
cat file |perl –ne ‘chomp;@arr=split/\t/,$_;$hash{$arr[0]}++;END{foreach my $col1(keys %hash){print “$col1\t$hash{$col1}\n”}}’
tab键分割file文件,对其第一列进行计数并输出
END:表示遍历完文件,最后做的操作,BEGIN相反。
04
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。目前很多软件提供了docker镜像,下载即可运行。
05
man
语法:man <command>
功能:查询命令用法,用好了可以解决很多命令的问题
Linux环境下双击Tab键可查看当前账户可使用的命令,这些命令均可使用man查看其详细用法。
man查看命令时,主要显示的信息及说明:
进入man命令的功能后,
按空格键往下翻页,
按b键往上翻页,
按q键离开,
页面输入“/关键字” 可快速定位到要找的关键字。
06不解压文件而直接查看文件内容
zcat file.gz
zgrep * file.gz
07查找使用命令的历史记录
上下键翻找使用除外,
history |grep ‘helloWorld.py’ 在运行过的命令的历史记录中寻找包含helloWorld.py的行
ctrl+r 然后输入关键字,可以自动补齐匹配关键字的最近一条命令
08
while…;do…;done,for..;do…;done和if…;then…fi
find . –name “*.fa”|while read line;do head –n 1000 ${file} > ./test/${line} ;done
查找当前目录下的.fa文件,取所有.fa文件的前1000行输出到test目录下,文件名不变。
此例为while…;do…;done,for..;do…;done和if…;then…fi用法类似,可根据需求在命令行中进行组合使用。
09
Conda是一个开源包管理系统和环境管理系统,适用于多种编程语言及其包的管理。如果要安装的软件包与你正在使用的有冲突,如果你的环境配置好后还需要移植,可以选择使用conda。