从零开始学Linux三1121
生新技能树----卖萌哥
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(查看安装频道),频道先后顺序为安装顺序