从零开始学Linux三1121

2021-11-21  本文已影响0人  不如好好学生信吧

生新技能树----卖萌哥

08 如何才处理压缩文件 tar (压缩目的:减小内存发给别人或者上传服务器)

[if !supportLists]1. [endif]tar: tape archive(压缩或者解压缩,磁带)

常见参数:-c  创建一个新的tar归档文件(创建压缩文件)

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

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

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

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

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

常见用法:解压:tar 参数 待压缩包

压缩:tar  参数  压缩后文件名待压缩文件/目录(这个先后顺序与mv的移动命令有区别,在最后两个参数的顺序上如:mv 移动前文件 移动后目录

[if !supportLists]2. [endif]解压:tar -zxvf Data.tar.gz(待压缩包)

压缩:tar -zcvf Data.tar.gz  Data

          压缩后的文件名   要压缩的文件名,可以有多个(1.压缩的两者顺序区别于一般的要处理于处理后的前后顺序--tar 2.zxvf与zcvf这个顺序是固定的)

[if !supportLists]3. [endif]其他压缩和解压命令

zip 和 unizip:用于解压和压缩*zip文件

gzip 和 gunizip:用于解压和压缩*gz文件

bzip 和 bzip2:用于解压和压缩*bz2文件

这几个命令与tar命令一起好好练习下

[if !supportLists]4. [endif]打包和压缩的区别?

打包是指将一大堆文件或目录变成一个总的文件

压缩是将一个大的文件通过一些压缩算法变成一个小的文件

Linux中很多压缩程序只能针对一个文件进行压缩,这样你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2)

打包相当于把一堆衣服放进真空袋,压缩则是将真空袋空气抽空,令其体积减小。

[if !supportLists]5. [endif]小技巧

最常用得命令:ls 每日得用100次

Tab键  每日得用100次

参数不记得怎么办帮助文档,用多了自然记得-h/ --help/-help

文件名:不要用中文字符与空格驼峰命名法、蛇形命名法

选中文本:双击选中一个单词,三击选中一行

09 如何查看文件 -cat 、head、tail、less

文本查看、操作、统计命令

[if !supportLists]l [endif]head/tail, cat/tac,  less/more

[if !supportLists]l [endif]wc, sort, uniq

[if !supportLists]l [endif]cut, paste

[if !supportLists]1. [endif]查看(6种查看方式)head/tail, cat/tac,  less/more (没加组的用的相较而言较少)

cat: concatenate(廉洁) 查看文本文件的内容,输出到屏幕(当心被刷屏)

常见参数:-A ;列出所有内容,包括特殊字符,如制表符

-n 打印出所有行号 -b 参数进打印非空白行行号

重定向符号的使用(可以写)tac:逆向查看  zcat:可以查看压缩文本

head/tail:默认看前十行与尾十行,-n参数可以按照要求看几行;head常结合管道符用于控制输出行数。管道符打法:按住shift键+Backspace下的|键(前一个命令输出的内容传送作为下一个命令的输入(相当于水管水龙头))

利用head只看头一行 head -n 1 readme.txt  (注意-2 也等于 -n 2)

less/more: more逐页查看,按空格翻页,按回车换行q退出

常用用法:less 参数 文件名  常用参数(你要知道相应参数能够实现的效果):-N:显示行号 -S:单行显示 zless:查看压缩文件

less -SN 文件名(用法最常见,显示单行并显示函数--没划线排列整齐的表格一样)--读出来的效果

 

zless -SN 压缩文件 zless查看压缩文件的效果我用不出来,为什么呢,乱码了,思考题1?zless查看压缩文件,要用q键退出。

用cat > 文件名,直接构建文件,并且向里面写内容,写内容并不一定需要用echo,Ctrl+C停止

一定要要强迫自己习惯用Tab键进行补齐等。

10 如何操作和统计文件(wc, sort, uniqcut, paste,tr)---很像在excel种进行的操作

wc:统计文本

常见参数:-l统计行数 -w统计字符串数-c统计字节数

cut:文本切割

常见参数:-d指定分隔符默认\t

-f输出哪几列字段fields);看特定的行,则用cat与head,然后结合默认的参数即可

less -S Data/example.gtf | cut -f 1(这个管道符厉害了,只显示出第一列)

less -S Data/example.gtf | cut -d “h”-f 1 (文中以h作为分割符,1代表取的h之前的部分)

zcat Homo_sapiens.GRCh38.102.chromosome.Y.gff3.gz | cut -f 1,4-7,9 | less -SN (结合less-SN命令与f 1,4-7,9列的命令可以避免刷屏,其实就是选定了行与列)

sort:排序

常见参数:-n按照数值从小到大进行排序  -V:字符串中含有数值时,按照数值排序

-r:逆向排序 -k:指定区域 -t指定分隔符

一般先通过管道符接head看一下文件整体情况 cat A.gff3.gz | head

再按照相应要求进行排序:cat A.gff3.gz | sort -k 4 -n(指定第四个区域,按照数值大小进行排序,注意-k选具体区域时只要4即可,无需- )同R一样是一层一层剥下来的

less -SA.gff3.gz | sort -k 3 | less -S(后头还可以加一大堆管道符)

uniq:去除重复行  (只去除相邻的重复行

常见参数:-c: 统计每个字符串连续出现的的行数

paste:文本合并 常见参数: -d:指定分隔符 -s:按行合并

tr:字符替换   常见参数: -d:删除指定字符  -s:缩减连续重复字符

cat readme.txt | tr a-z A-Z

011生物信息学四种常见数据格式  fasta ; fastq; gff/gtf

1.fasta:是一种基于文本用于表示核酸序列和多肽序列的格式,其中以核酸或氨基酸均以单个字母来表示,且允许在序列前添加注释及注释名

特征:2行,id行与序列行

id行以>开头,有时会包含注释信息,序列行一个字母表示一个碱基/氨基酸(20种常见)。

2.Fastq:是一种储存了生物序列以及相应的质量评价的文本格式。测序的原始序列。

特征4行 id行 序列行 附加信息行(大多数时候是+号,偶尔是与第一列一摸一样) 碱基质量行(PHRED值,根据ASCII表,用一个字符来表示一个碱基质量的好坏)

为什么第三行的+号不冗余:因为其实fasta与QUAL格式结合成的fastq格式,有则与第一行一样,可以节省些空间

[if !supportLists]2. [endif]gff格式 记录序列中转录位点、基因、外显子、内含子等组成元件在染色体中的位置信息,现在用的较多的是第三版,即gff3。(9列文件)

[if !supportLists]3. [endif]gtf格式  现在用的变较多的是第2版,即gtf2。与gff格式类似,可以用culfflinks这个包里的gffread命令互相转换。同样为9号。-----有参转录组可能需要进行转换,因为gff主要用于许多物种的注释,但需要用gtf格式进行分析。

012  文件处理的三架马车---grep

1.文本处理三驾马车:grep  sed  awk (why named 三驾马车?因为这些命令可以极大提升效率)

grep: 一种强大的文本搜索工具,正则表达式匹配模式搜索文本,并把匹配的打印出来

格式:grep options pattern file

常见参数-w:word精准查找某个关键词pattern; -c:统计匹配成功的函数 -v:反向选择,即输出没有匹配的行 -n:显示匹配成功的行号 -r 从目录中查找pattern;  -e:指定多隔匹配模式    -f:从指定文件中读取要匹配的pattern;-i:忽略大小写

-e的用法(匹配多个表达式)grep -w -e “gene”-e “exons”(这里是两个,若是多个不优雅)   多个可以以创建文件夹的方式进行书写,如抓取包含4个表达式的

cat fiel 先建立文件,写入 gene UTR start-condon stap-condon(注意四个表达式分行写)

less Data/example.gtf | grep -w -ffiel | less -S

[if !supportLists]2. [endif]正则表达式:(正则表达式是我们认识这个世界的哲学)

是对字符串操作的一种逻辑公式,就是用事先定义的一些特定字符、及这些特定字符的组合,组成一个”规则字符串”,这个”规则字符串”用来表达对字符串的一种过滤逻辑。

^ 行首{n}匹配n次  $行尾{n,}匹配至少n次  .换行符之外的任意单个字符{m,n}至少m次,至多n次。 ?匹配之前项0次或一次   [ ]匹配任意一个 +匹配一次或多次  [^]排字符  *匹配0次或多次 | 或者。 (这些通配符尽量掌握,可以利用grep进行展示)

cat readme.txt | grep “f\?ee”(注意问号之前一定要有\转义符,因为?本身就有含义)

cat readme.txt | grep [dB]

cat readme.txt | grep “re\+e”等等,这些通配符的使用必须掌握

013 文件处理的三架马车---grep习题讲解(使用频率最高)

014 文件处理的三架马车 ---sed及练习题讲解

Sed;流编辑器,一般用来对文本进行增删改查 (所谓的流,就是能够在屏幕上显示的,在屏幕上显示(标准流))

用法:sed options  “script”fiels

常见参数-n只显示sed处理过的行   -e直接在命令模式上进行sed的动作编辑,接要执行的一个或者多个任务   -i  直接修改读取的文件内容,不输出

注意script后也可以夹command,常见script command有  a 指定行后加一行i 指定行前加一行d 删   c 改内容  s 替换  y 转换  p 打印。这里面替换与转换的用法需要注意

“s/pattern/new/[flags]”   “y/inchars/outchars”替换只能替换一个字符。p的打印通常与-n一起用

cat fiels123| sed “/^$/d”(删除空行,只有开头与结尾没有字符为空行) 不加斜杠会出错,针对这种特殊符号不同用法必须要用斜杠 一个斜杠代表一个部分

是否可以添加空行呢sed “/^$/1a”(我觉得应该可以)  sed -e “”-e “”同样是匹配两种不同的模式。

思考如何将第2行到第四行每一行都替换成相应****。sed “2,4c  *****”(这只能换成一行的****号),思考一下怎么换成三行???(好好思考下)

思考与练习(共有七道,好好思考下)

015conda简介与安装  conda 从0到1

(18年卖萌哥就在简书上分享了conda,又是一个领域里的强者,得迎头赶上才好)

conda分两部分讲

基础conda简介  conda安装   conda基本使用

进阶conda的进阶技巧   conda报错大赏

Minicoda:清华镜像安装 wget-c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

Conda添加频道,清华四镜像与一条加载

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda config --set show_channel_urls yes

cat ~.condarc(查看安装频道),频道先后顺序为安装顺序

上一篇下一篇

猜你喜欢

热点阅读