Linux 积累

2020-05-03  本文已影响0人  斩毛毛

积累Linux知识,方便查找

Linux下去掉^M的方法

dos2unix filename
#or
sed -i 's/^M//g' filename
or
sed -i 's/\r/\r/g'

sed

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

# 将file文件中的test字符替换为new_word
sed -i ‘s/test/new_word/’ file
# -i 直接在原文件中修改(默认修改后屏幕输出,原文件不变)
# 将file文件中匹配pattern字串的行进行替换操作
sed -i ‘/pattern/ s/ test/new_word/’ file
# 将文件file中的空白行删除
sed -i ‘/^$/ d’ file
#  删除file中第一行
sed -i 1d file
# 打印文件的第一行
sed -n  1p filename >new_file
# 对fasta序列碱基替换 (对ID不替换,只对序列)
sed -i  'n; s/U/T/g' test.fa

## 替换 将;或者= 替换为tab分隔符
se d 's/[;,=]/\t/'g test
## 在第一行中加入 ##gff-version 3的内容
sed '1i ##gff-version 3' test.gff >new.gff

conda

# 创建环境并安装对应软件
conda create -n python3.4 -c conda-forge -c bioconda python=3.4
# -n 环境名字
# -c channeles
# 激活环境
conda activate python3.4

#若在激活中出现如下信息:
# CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
#则需要
source activate
source deactivata
conda activiate python3.4

# 若在bioconda镜像中没有想要的软件,则对该软件进行搜索
conda search -t cnvnator
# 得到如下结果
Using binstar api site https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
     Name                      |  Version | Package Types   | Platforms
     ------------------------- |   ------ | --------------- | ---------------
     pwwang/cnvnator           |    0.3.3 | conda           | linux-64
                                          : a tool for CNV discovery and genotyping from depth-of-coverage by mapped reads
Found 1 packages

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

#添加镜像安装
conda install -c pwwang cnvnator 

###########################################
#安装package 
conda install -n python3.4 numpy 
#如果不用-n指定环境名称,则被安装在当前活跃环境 
#更新package 
conda update -n python3.4 numpy 
#删除package 
conda remove -n python3.4 numpy 
#更新conda,保持conda最新 
conda update conda 
#更新anaconda 
conda update anaconda 
#更新python 
conda update python 
#假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本

+++++++++++++++++++++++++++++++++++++++++++++
# 列出conda已有的环境
conda info -envs
# 删除已有的环境
conda remove -n env_name --all

rsync

快速删除linux中大文件夹

# 假如要删除reads 这个文件夹
mkdir blanktest
rsync --delete-before -d blanktest/  reads

Perl 模块

# 自动安装
# 比如安装Hash::Merge
cpanm Hash::Merge

# 手动安装
# 例子:下载Net-Server模块0.97版的压缩文件Net-Server-0.97.tar.gztar -zxf Net-Server-0.97.tar.gz
cd Net-Server-0.97
perl Makefile.PL
make
# 具体可看说明

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

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

# 列出linux @INC所有的路径
 perl -V

# 若安装的perl模块不在 @INC,可将其移到@INC中,或者添加perl模块的路径到#INC
export PERL5LIB="path/your/model"
# 也可以直接链接过去

CPAN 下载perl模块

shuf 随机排列文件

在linux中,可使用shuf 随机排序,选择文件

[baicai@cu02 shehb]$ head test
1
2
3
4
5
6
7
8
9
## 选择 5行随机输出
shuf -n 5 test
[baicai@cu02 shehb]$ shuf -n 5 test
8
3
2
4
5
## -n 输出行数
## -o 输出文件

parallel 并行

并行运行命令
conda安装

#使用conda安装可以避免root权限的限制
conda install -c conda-forge parallel

parallel --help

如果有PE数据,将前缀放入fastq.list,需要对其进行过滤,如果使用for 循环

for i in fastq.list
do
   fastp -i ./${i}_1.fastq.gz  \
  -o ./${i}_1.fastq_clean.gz \
  -I ./${i}_2.fastq.gz -O ./${i}_2.fastq_clean.gz
done

则只能一个一个运行;利用parallel可以并行

cat fastq.list | parallel -j 10  'fastp \
  -i ./{}_1.fastq.gz  \
  -o ./{}_1.fastq_clean.gz \
  -I ./{}_2.fastq.gz \
  -O ./{}_2.fastq_clean.gz
# 一次性运行10个fastp,其中{}代表每一次的名字;也可以把这些命令放入一个shell脚本,比如run.sh
## 则
parallel -j 3 < run.sh

注意:

grep

-w, --word-regexp force PATTERN to match only whole words

head test
new1    da
newd    new
ab  n
# ***只提取包含有new单独列的那一行
grep -w new test
newd    new

-F, --fixed-strings PATTERN is a set of newline-separated fixed strings
-f, --file=FILE obtain PATTERN from FILE (从文件中按行读取,有点类似shell 循环)

上一篇下一篇

猜你喜欢

热点阅读