【Linux】生物信息学常用命令

参考资料:生信技能树

先输入echo 'export PS1="[\033]2;\h:\u \w\007\033[33;1m]\u \033[35;1m\t\033[0m [\033[36;1m]\w[\033[0m]\n[\e[32;1m]$ [\e[0m]"' >> ~/.bashrc

再输入source ~/.bashrc就能够让命令字体带上颜色,同时命令将会在下一行开始输入,如图

输入命令的时候发现输入错了,如果光标在一行命令的末尾,ctrl+u可以删除一整行命令,如果光标在一行的行首,输入ctrl+k可以删除一整行的命令。

十个重要命令

挑出几个做详细介绍

使用ll -thr来进行展示是一种比较好的展示形式,其中ll是ls -alF的简写,t和h表示按照时间倒序排列,这样的好处是让最新创建的文件都显示在下面,然后h表示将容量以KB,MB等我们能看懂的方式展示,而非字节。效果如图所示,

cd-可以返回上一级目录

cd或者cd~都是回到家目录

创建文件夹使用mkdir,如果要先创建一个test1,然后再test1里面创建test2,不能直接写mkdir test1/test2,应该写

mkdir -p test1/test2

创建文件使用touch 文件名

同时创建多个文件可以使用touch {文件1,文件2...}

如果要创建的文件名都差不多,比如file1,file2..可以写

touch file{1,2,3....}

tree可以以树状图的形式展示当前目录下的所有文件,如果在根目录下直接运行这个tree会导致刷屏,因为文件太多了,此时我们可以写tree -L 3来只显示三级,还可以直接tree 文件夹名,来查看指定文件夹的层级结构。

移动文件的命令是mv 语法为mv 要移动的文件名 移动到哪里去

重命名的命令也是mv 语法为 mv 要改的文件名 新名字

也就是说如果mv处理的是文件和文件之间的关系,则表示重命名,如果处理的是文件和文件夹之间的关系,则表示移动

如果mv处理的是文件夹和文件夹之间的关系,就比较复杂了,需要看后面的文件夹是否存在,如果存在,就表示把一个文件夹移动到另一个文件夹里面去,如果不存在,就表示把一个文件夹重命名

可以使用命令mv 文件名1,文件名2....同时移动多个文件,如果这些文件名类似,比如都叫file1,file2...则可以使用

mv file* 文件夹名,来把以file开头的文件都移动到指定文件夹去。

删除文件使用命令rm 要删的文件的名字

删除文件夹使用的命令是rm -r 文件夹名字

有时候文件夹会比较复杂,每删除一个文件系统就会询问是否要删除,就挺烦的,这时候我们可以使用rm -rf 文件夹名字,就可以直接删掉文件夹了

复制文件用的指令是cp,这个cp不是copy的简写,而是copy and paste的缩写,顾名思义我们在使用的时候就要告诉系统拷贝谁,拷贝到哪里去,基本语法就是cp 文件名 文件夹名

拷贝的时候可以给要拷贝的文件重命名,比如写成

cp file1 mydir/file2 就可以把file1重命名成file2然后拷贝到mydir去,其中这里的mydir是一个文件夹,file2是不存在于mydir里面的一个文件。

如果要拷贝文件夹,就需要加上参数-r,语法为

cp -r mydir1 mydir2

链接文件使用的命令是ln,也就是link:链接的缩写。

通常我们使用的是软链接,但是直接ln默认是硬链接,软硬链接这两个概念非常计算机,我们不用管,只需要知道所谓链接就好像是创建一个快捷方式,就好像我们在windows系统中点击桌面上的快捷方式和去C盘里面找到这个应用的安装位置点击他,效果一样。

ln默认是硬链接,我们需要软链接,就要加上参数-s,需要提供两个参数,即链接的是谁,连接到哪里去,语法为:

ln -s 要链接的文件 链接到的目录

比如在我的根目录里面的home下有一个t_linux文件,我要把这个文件链接到家目录下

就可以写:ln -s /home/t_linux ~,此时在我们的家目录下已经出现了这个链接的文件

注:链接的时候最好使用绝对路径。

解压与压缩的命令是tar,以下是常用的参数

解压:

-c 创建一个新的tar归档文件(创建压缩文件)

-x 从已有tar归档文件中提取文件(解压缩)

-f 输出结果到文件或设备

-v 在处理文件时显示文件(显示处理进度)

-j 将输出重定向给bzip2命令

-z 将输出重定向给gzip命令

压缩:

-c 创建一个新的tar归档文件(创建压缩文件)

-f 输出结果到文件或设备

-v 在处理文件时显示文件(显示处理进度)

-z 将输出重定向给gzip命令

tar这个指令一般就是两种方式,如果是解压,就写

tar -zxvf 待解压文件

如果是压缩,就写

tar -zcvf 压缩后的文件名 要压缩的文件

其中要压缩的文件可以有多个

注:tar常用的5个参数(z x c v f),其中f后面一定是文件名,其他的几个参数顺序可以随便换。

还有一些其他的压缩和解压命令

小结:

一些技巧

ctrl+u:剪切光标位置到行首的字符

cat这个指令原本用于把某个文件的内容全部展示在屏幕上,语法为cat 文件名,但是如果文件过长会导致刷屏,所以这个指令一般不这么用,而是搭配重定向符> 或者追加符>>来使用,原理在于cat指令是可以输出结果的,如果我们只写一个cat,接着按回车,我们就可以在下一行随便输入一些字符,比如我们输入123,cat就会紧接着输出一个123在屏幕上,我们继续输入456,cat也输出了一个456,只有当我们使用ctrl+c终止命令才会结束这个流程。如果搭配>,比如我写cat>file ,(这里如果没有file这个文件,则会自动创建一个名为file的文件)按回车,再输入123,我们发现屏幕上什么也没有,然而根据前面的经验我们知道cat已经输出了123,原因在于>把cat的结果重定向了,重定向顾名思义就是重新定义输出方向,此时cat的输出结果也就是123已经输出到了file文件里面,使用>的效果是覆盖原本文件的内容,或者说是先把原文件内容清空然后再把内容输出进去,要想不覆盖掉文件原本内容应该使用>>,使用方法和>一样,写作cat>>file。

总结:cat与重定向符号和追加符号的组合给我们提供了一种非常简陋的往文件里面写内容的方法。

查看文件前/后几行用的命令是head/tail,默认是查看前/后10行,查看前5行可以写head -5 文件名。

| 在linux中不是或的意思,而是管道符的意思,就是R语言里面那个管道符,表示把|前面的输出作为|后面的输入。管道符经常搭配cat进行使用,表示把某个文件的全部内容作为输出传给下一个指令。例如cat file | head -5,表示把file这个文件的内容前五行显示出来。因为cat file本来会输出file文件的内容到屏幕上,现在通过管道符把cat的输出作为了head的输入,所以就是显示file的前五行。

more表示按页来显示文件内容,按回车会翻一行,按空格翻一页,这个命令在我们安装软件的时候非常常见,可以直接用空格快读翻页。按q可以退出more的模式。

查看文件最常用的命令其实是less,常用参数有-N,表示显示行号,-S,表示单行显示。执行指令less的时候再按/,可以输入一个我们要查询的关键字来进行关键字查询,此时有该关键词的就会高亮,然后使用n可以查看下一个关键词匹配到的内容,按shift+n可以查看上一个。同时less保留了more的一些功能,比如可以使用空格进行翻页。

注:less可以直接查看压缩文件

统计一个文件文本内容用命令wc,语法为wc 文件名,默认会返回这个文件的行数,字符串数,字节数,但是在做生信的时候通常只需要使用行数,因此我们可以加一个参数-l,表示只显示行数。

允许一次性统计多个文件,只需要用空格隔开就行。

cut命令用于切割文本,语法为cut 文件名,默认以制表符切割,如果要指定分隔符,要加上参数-d,比如我想要指定逗号作为分隔符,就要写cut -d ',' 文件名,这样就是按照逗号来分割文件了。指定输出哪几列需要加参数-f,比如我有这样一个命令行:

这个命令行意思是先用cat命令查看这个文件内容,本来应该打印在屏幕上,因为这是cat的输出结果,但后面有管道符,那么这个输出结果就给了cut,cut -f 1表示按制表符分隔,并显示第一列,之后这个结果又给了head,表示查看前10行。如果要拿出第1列和第3列,就要写cut -f 1,3

如果要拿出前10列,就写cut -f 1-10,而且即使我们给的顺序是乱的,比如我写cut -f 3,1,5,结果仍然是按照列的编号从小到大的顺序显示的,而不是先显示第三列再显示第一列。

对文件进行排序的指令是sort,常见参数如下

通常-k这个参数肯定会有的,除非传给sort的输入只有一列,sort默认所有的排序内容是字符串,如果要按照数值排序,需要使用-n参数,否则会出现错误,导致12比110大,因为是挨个字符来比较的,12的第二个字符是2,110的第二个字符是1,所以12会排在110后面,表示12比110大,这显然错误。比如我们要按第四列进行排序,第四列恰好是数字,就要写sort -k 4 -n 文件名,k和4是要放在一起的。

uniq:用于删除重复的行。但是这个指令只能删除相邻的重复行,如果前面有好几行重复,后面又有好几行重复,那么会导致删不干净,如图

因此通常这个指令要搭配sort来使用,先把重复的行放一起,在使用uniq,如图,先打开一个文件,按制表符进行分割并且显示第三列,之后查看第三列前20行,然后排序,这样就让重复的行相邻了,之后可以使用uniq指令去重。

合并文件内容的命令是paste,实际上如果仅仅是上下合并的话直接用cat就行,比如cat file1 file2就能上下合并两个文件的内容,举个例子

首先利用cat有输出结果的特点搭配重定向符创建一个文件file1,同理创建一个file2,之后cat file1,file2并重定向到file3去,这时候file3的内容就是file1和file2上下合并的。

如果是左右合并需要用paste,如图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值