Linux 些许知识

1、Linux下去掉^M的方法

  ①dos2unix filename

  ②sed -i 's/^M//g' filename

  #注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M

      或者  替换, s/\r/\r/g

 

2、sort

功能说明:将文本文件内容进行排序

语 法:sort [-nkr]<filename>

参 数:-n/-g 将文件按数值大小从小到大排序(默认按ascii码从小到大排序)

-k <num> 按第num列内容对文件排序(默认按第一列)

-r 反向排序

Example :sort file 对file文件按第一列内容ascii码值从小到大排序并输出。

sort -n -k 3 file 对file文件按第3列内容数值大小从小到大排序。

sort -nr -k1,2 file 对file文件按数值大小反向排序,优先考虑第一列,再考虑第二列

 

3、uniq

功能说明:合并文件中相邻的相同的行

语 法:uniq [-cd] <file> [outfile]

参 数:-c 在每行第一列显示该行重复次数

-d 仅显示有重复的行

Example :uniq -c file 合并相同的行,并统计每行重复次数,输出到屏幕

uniq -d file outfile 合并相同的行,并显示file中有重复出现的行,输出到outfile文件中

 

4、awk

功能说明:对特定的行中特定的列进行操作

语 法:awk [-F] ‘(condition){operate}’ <filename>

参 数:-F 指定列的分割符,可以使任意字符,默认按空白分割

Example :awk -F “:” ‘{print $1}’ 按“:”来分割并打印出第一列

awk '/^S/{print ">""\n"}' ONTmin.gfa | fold > ONTmin_IT0.fasta   ###. ^S 以S开头的那行

  fold可以限制文件列宽

 

awk -F "\t" '{if($12 == 60){print $0}}' file.  输出12列等于60的所有行,¥0代表整行

 

awk ‘($1 > 100){print $0}’ 对第一列大于100的行整行输出

awk ‘($1 > 100){print $1”\t”$2}’ 对第一列大于100的行输出第一列和第二列的结果并以“\t”分割。

awk ‘($3~/world/){ x+= $1}END{print x}’ 对第三列匹配“world”的行的第一列求和,全部处理完之后输

出结果x的值

替换:

(1) 只把每行的第一个AAAA替换为BBBB

awk '{sub(/AAAA/, "BBBB"); print $0}' t.txt

(2) 把每一行的所有AAAA替换为BBBB

awk '{gsub(/AAAA/, "BBBB"); print $0}' t.txt

(3) 只在出现字符串CCCC的前提下,将行中所有AAAA替换为BBBB

awk '/CCC/ {gsub(/AAAA/, "BBBB"); print $0; next}' t.txt

(4) 不管是AAAA,还是CCCC,全部替换为BBBB

awk '{sub(/AAAA|CCCC/, "BBBB"); print $0}' t.txt

(5) 把所有以A开头,不管后面连续包含几个A的串替换成一个字符B

awk '{ gsub(/^A/, "B" ); print $0}' t.txt

5、sed

功能说明:文本处理并可对文件进行编辑

语 法:sed [-i] '{command}' <filename>

参 数:-i 直接在原文件中修改(默认修改后屏幕输出,原文件不变)

Example :sed -i ‘s/test/new_word/’ file 将file文件中的test字符替换为new_word

sed -i ‘/pattern/ s/ test/new_word/’ file 将file文件中匹配pattern字串的行进行替换操作

sed -i ‘/^$/ d’ file 将文件file中的空白行删除(d)

sed -i 1d file 删除file中第一行

参数 -n 

sed -n  1p filename >new_file.  ##打印文件的第一行

 

6、 conda 安装python3 环境

 1 conda create -n python3.4 python=3.4.         -n 为名字,可自定义
 2 
 3 source activate python3.4。   即可激活python3.4 环境,若想退出
 4 
 5 source deactivate
 6 
 7  
 8 
 9 若在激活python3.4 时出现 
10 
11 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
12 
13 则需要:
14 
15 ##激活环境
16 
17 source activate
18 
19 ##退出环境
20 
21 source deactivata
22 
23 ###再次激活
24 
25 conda activiate python3.4

 

7、 conda 

 1 安装package 
 2 conda install -n python3.4 numpy 
 3 如果不用-n指定环境名称,则被安装在当前活跃环境 
 4 也可以通过-c指定通过某个channel安装 
 5 更新package 
 6 conda update -n python3.4 numpy 
 7 删除package 
 8 conda remove -n python3.4 numpy 
 9 更新conda,保持conda最新 
10 conda update conda 
11 更新anaconda 
12 conda update anaconda 
13 更新python 
14 conda update python 
15 假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本

 

 

8、 conda 软件安装

 1 conda create -n medaka -c conda-forge -c bioconda medaka 其中 -c :channels,若添加了bioconda,则可以不写 

 

若在bioconda镜像中没有想要的软件,则对该软件进行搜索

conda search -t <software>

譬如:

 1 $ anaconda search -t cnvnator
 2 
 3 得到的检索结果如下:
 4 
 5 Using binstar api site https://api.anaconda.org
 6 Run 'anaconda show <USER/PACKAGE>' to get more details:
 7 Packages:
 8      Name                      |  Version | Package Types   | Platforms
 9      ------------------------- |   ------ | --------------- | ---------------
10      pwwang/cnvnator           |    0.3.3 | conda           | linux-64
11                                           : a tool for CNV discovery and genotyping from depth-of-coverage by mapped reads
12 Found 1 packages

通过上面的检索结果我们就知道目前只有唯一一个保存CNVnator的conda镜像,为pwwang,这是就可以通过指定刚才找到的镜像完成软件的安装了:

 1 $ conda install -c pwwang cnvnator 

 

  • 列出conda已有的环境
1 conda info --envs

 

  • 删除已有的环境
1 conda remove -n env_name --all

 

9快速删除linux中大量文件夹

rsync是linux下文件同步和数据传输的命令。通过构造一个空文件夹并且和目标文件夹进行同步,就可以把目标文件夹的内容给删除了
1 # 假如要删除reads 这个文件夹
2 mkdir blanktest
3 rsync --delete-before -d blanktest/  reads

 

 

10、 Perl模块

(1)安装perl模块,可以选择
1 # 比如安装Hash::Merge
2 cpanm Hash::Merge

 (1.2)手动安装

1 # 例子:从 CPAN(http://search.cpan.org/) 下载Net-Server模块0.97版的压缩文件Net-Server-0.97.tar.gz
2 
3 tar -zxf Net-Server-0.97.tar.gz
4 cd Net-Server-0.97
5 perl Makefile.PL
6 make 

(1.3) 安装完成后,输入
1 ## 以Logger::Simple为例子,若没反应,则表示没问题
2 perl -MLogger::Simple -e1

(2)列出linux系统上所有安装的模块
1 find  `perl -e 'print "@INC"'` -name '*.pm'

 

(3)列出linux @INC所有的路径
1 perl -V

(4)若安装的perl模块不在 @INC,可将其移到@INC中,或者添加perl模块的路径到#INC
1 export PERL5LIB="path/your/model"

 




















posted @ 2018-07-11 17:33  斩毛毛  阅读(438)  评论(0编辑  收藏  举报