笔记 | 学习Linux基础

Posted 琪音

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记 | 学习Linux基础相关的知识,希望对你有一定的参考价值。

一个月总有几天踌躇满志,作为一名无所事事的科研狗,最喜欢的地方就是休息区,最喜欢的状态就是坐在电脑前面学习摸鱼。


Linux的学习一直断断续续,上次卡壳是看到管道,不理解,遂放弃。就是这么没志气。最近感觉又要好好学习了,答应了曾老师做一份生信人Linux的考试答案。人的信誉是慢慢积累的,一旦崩塌,是很难再建立起来。凭着这份信念再次和Linux正面交锋。


此篇纯属逼迫自己学习之作,如果一不小心点开...就点个赞走吧hhh


操作系统



计算机主要包括五个部分:运算器、控制器、存储器、输入设备和输出设备(I/O设备)。


运算器和控制器加上其他部件构成CPU(central processing unit),存储器是内存。他们实现计算机数据的处理。输入设备包括键盘鼠标等、输出设备为屏幕打印机等。


操作系统(Operaing System,OS),相当于配置在上述硬件上的第一层软件,让硬件协调工作,有条不紊的完成任务。一个完整的操作系统包括内核(kernel)和一些辅助软件。典型的操作系统:UNIX、Linux、Mac OS、Windows、iosandroid等。


那么,在Linux系统中,用户用什么和计算机沟通呢? 答案是:bash(Bourne Again shell)。它是Shell的一种,连接用户和Linux系统内核的桥梁。Shell是一个命令语言解释器,分图形界面和命令行。


打个招呼,一个简单的bash命令:


qiyindeMacBook-Pro-8:~ qiyin$ #!/bin/bash
qiyindeMacBook-Pro-8:~ qiyin$ echo "hello,world"
hello,world



基础知识



目录结构


Linux系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,依次往下。绝对路径是由根目录 / 写起,比如/home/test。相对路径以当前路径为起点。




通配符


通配符是一种特殊语句,用来对字符串进行模糊匹配,可以使用它来代替一个或多个真正字符等。常用的通配符如下:


  • *:任意个任意字符;

  • ?:单个任意字符;

  • [list]:匹配list中的任意字符;

  • [!list]:不匹配list中的任意字符;

  • [c1-c2]:匹配c1-c2中的任意单个字符,如[0-9],[a-z];

  • {string1,string2,...}:匹配{}中的任意一个字符串;

  • {c1..c2}:匹配c1-c2的全部字符,如{1..10};



命令结构


command options arguments


命令+选项+参数


  • 基于软件安装整理了基础命令,幕布链接:

https://mubu.com/doc/3xHR33Ngng 

  • Linux命令大全:

http://man.linuxde.net/



生信人的Linux考试



题目链接:

http://www.bio-info-trainee.com/2900.html



涉及知识点


  • SAM/BAM


SAM是一种序列比对格式标准,由sanger制定,是以TAB为分隔符的文本格式。主要应用于测序序列mapping到基因组上的结果表示,也可以表示多重比对的结果。SAM分为两部分,注释信息(header section)和比对结果部分(alignment section)。


BAM是SAM的二进制格式,占用储存空间更小,运算更快。



  • samtools


用于处理处理sam与bam格式的工具软件,能够实现二进制查看、格式转换、排序合并等功能,结合sam格式中的flag、tag等信息,还可以完成比对结果的统计汇总。


参数说明:

  • view :将sam文件转换为bam文件,然后才能对bam文件进行各种操作,比如数据的排序和提取,最后输出为bam或者sam格式

    基本命令转换 :

    samtools view -Sb *.sam > *.bam    

        查看bam文件:

         samtools view *.bam | less -S

  • sort,index : 排序索引。

  • faidx : 对fasta文件建立索引,生成的索引文件以 .fai 后缀结尾。可以快速提取部分序列。

  • merge、cat : 整合聚合多个排序的bam文件

  • tview : 直观显示reads比对基因组的情况

  • flagstat : 统计比对结果

  • depth : 得到每个碱基位点的测序深度



命令参考


答案绝不唯一!答案绝不唯一!答案绝不唯一!



#级联创建文件夹
mkdir -p 1/2/3/4/5/6/7/8/9
#添加文件,输入内容,ctrl+d退出
cat > me.txt
#查看文件内容
cat me.txt
#删除以上文件以及文件夹
rm -r 1
#批量创建文件夹
mkdir -p folder{1..5}/folder{1..5}
#不同文件夹下都创建同一文件
cat > me.txt
echo folder{1..5}/folder{1..5} |xargs -n1 cp me.txt
#删除建立的文件以及文件夹
rm -r folder{1..5}
#下载文件
wget http://www.biotrainee.com/jmzeng/igv/test.bed
##查看文件行数
wc -l test.bed
##查看关键词在第几行
grep -n "H3K4me3" test.bed
#下载压缩文件并解压
wget http://www.biotrainee.com/jmzeng/rmDuplicate.zip && unzip *.zip
#查看文件夹结构
tree rmDuplicate
#打开bam文件
samtools view -H tmp.sorted.bam
#计算bam文件第二列0和16数字个数
samtools view tmp.sorted.bam | cut -f2 | sort -n | uniq -c
#同样解压,统计以 >> 开头有多少行
cat fastqc_data.txt | grep '>>' | wc -l
#在hg38.tss文件中找基因,如OTOF基因
cat hg38.tss | grep 'NM_001287489'
##结果为 NM_001287489  chr2  26556698  26560698  1
#每条染色体的基因个数——染色体名出现次数

cut -f2 hg38.tss | sort -rn | uniq -c
#统计NM、NR开头的序列
##NM : 转录产物序列,成熟mRNA转录本序列
##NR : 非编码的转录子序列,包括结构RNAs,假基因转子

cat hg38.tss | grep 'NM' | wc -l
cat hg38.tss | grep 'NR' | wc -l


参考来源:

2、生信菜鸟团论坛

3、CSDN博客相关内容



九儿说:不太懂我为什么要和生信较真。


就感觉和它耗了很久很久,却没有一点起色。去学SVG排版也是换种自己熟悉的方式去认识代码,培养耐心。不过后来发现,虽然操作命令不同,但从处理和逻辑角度,很多知识都是相通的。没有可能一下子都学会,但也不能一直耗着不学,不如强迫自己直接上手练习。对于自己认定的事情,总会去慢慢做好它。嗯,真的是很慢很慢了。


以上是关于笔记 | 学习Linux基础的主要内容,如果未能解决你的问题,请参考以下文章

C#学习笔记——需要注意的基础知识

学习笔记:python3,代码片段(2017)

unity shader学习笔记 shader基础结构以及Properties面板

python学习笔记-第一天(Linux基本操作与Python的基础)

20179223《Linux内核原理与分析》第十一周学习笔记

linux学习笔记--工程师技术:shell脚本基础