Linux | March 24, 2019
markdown语法
3个实用的markdown语法
- 标题: ###
- 引用: >号
- 代码块:```
This is where you put your codes.
xshell简介
服务器登录的三种方式
### windows电脑
# 1. ssh usrID@ip
# 2. 使用xshell输入
# 3. 点击收藏夹
### mac电脑
# 1. 使用终端登录
# 2. 传输文件使用FIlezilla
linux相关词汇
-
环境变量
- $PATH:都是由路径组成的环境变量
- 软件的路径加到环境变量中就可以在任意地方调用
-
任务、权限、ftp传输、通配符等
-
linux命令
-
命令 空 [argument][info] 空 操作对象
-
默认标准:
- $PATH一定要以':'分割,且有前后顺序(调用的时候可能会因为顺序,发生错误)
- 变量赋值:PATH="$PATH:/home/bin"
对变量进行操作的一个例子
-
# 变量需要加上$符号
a=1
a #会报错:command not found
echo $a
-
linux的目录结构
- /:根目录;即再无上层目录
- 其它目录做了解
-
linux系统
- 不同的发行版
- 优势
- 批量处理
- 处理大文本
- 运行速度快
- 远程登录
-
报错
- 权限
- 命令输错
- 学会搜索解决报错
-
常见分隔符
- Tab 分割:\t
- cut命令默认\t切割文件
- 换行符\n:即enter键
- csv常用","分割
- Tab 分割:\t
-
小技巧
- tab快速匹配
#命令+tab补全 ## 包括命令的补全以及路径的补全 mk + tab #mac 下可能需要按两次 mkd + tab # 可以出现相关命令 # 能匹配就不要复制,能复制不要手打 cd /tea # +tab
- mac的跳到行尾、行首、Home、end键以及删除的快捷键
# ctrl+A: 到句首,到Home键的效果 # Ctrl+E: 到句尾,达到End键的效果 # Ctrl+N: 到下一行 # Ctrl+P: 到上一行 # Ctrl+K: 从光标处开始删除,直到行尾 # fn+←:HOME # fn+→:END # fn+↑:page up # fn+↓:page down
-
linxu常用命令
#创建文件夹 mkdir mkdir test # + [参数] 目录名 mkdir -p # 建多层目录 #目录切换 cd cd ~ #家目录 cd / #根目录 cd .. #后退 # 目录展示 ls ls # + [参数][目录] ## 参数 ## -l: 显示长的完整细腻 ## -a: 显示隐藏文件(all) ## -tr:按修改时间反向排序 ## -h: 查看文本大小 # 创建文本 touch touch new.txt touch del{1..10}.txt #批量操作 # 注意权限 # 文件、目录删除: rm rm txt.txt ## 参数: # -i: 删除前询问 # -r: 递归删除|删除路径 # -f: 强制删除 # 删除后不能修复,要慎重,可以用ls确认之后,再进行删除 # 拷贝/改名 cp cp [参数] 源文件 目标文件 ## 参数 # -i :覆盖前询问,防止同名文件覆盖 # -r :复制目录及目录内的所有内容 # -f :强制覆盖 # 需要两个路径 # 拷贝与软连接的区别:不要拷贝只存在一份的东西,占内存,可以直接调用 # 查看文本(只能查看不能编辑) less ## 参数 ## -S:单行显示 ## -N:行号加入编号 ## 查看大文本时必用,不能编辑 # 输出/入文本 cat cat [参数] 文本 ## 查看小文本 cat >newfile cat >>test.txt #追加 # 从头从尾展示文件- head/tail ## 参数 ## -n num: 展示文本前num行
-
Linux 命令进阶
cut # 切割文件,按照要求对列进行选择,默认分割是\t less 文件 | cut -f 1,3-5|less -S # zless 看压缩文件 paste #可以对文件进行左右合并的功能 seq10 seq10 >t1.txt seq20 >t2.txt paste t1.txt t2.txt #默认分隔符是\t # 使用参数 -d:可以指定分隔符。 也可以使用tr的转换功能 paste t1.txt t2.txt |tr '\t' '#' # less -S/teach/database/gtf/gencode.v29.annotation.gtf.gz |cut -f 1,3-5|less -S # zless -S /teach/project/1.rna/3.raw_fq_25000reads/SRR1039512_2_100000.rawfq.gz|paste - - - - |cut -f 1-2|tr '\t' '\n'| tr '@' '>'|less -S ## - - - - 代表的是每一行的转置,由于fq的格式是四行,space把每一行进行分割 sort uniq # 搭配,uniq去重功能只去掉临近功能 # sort按照ASCII码排序,-n可以按照数字 # 指定区域 -k;按照数字相反的: -n -r # sort -r -n -k 3 tmp == sort -k 3nr tmp uniq #去除文件中的重复行 #参数: -c: 显示每行连续出现的次数 find [参数] 目录/文本 find / -name '*fa' >~/tmp.txt find /teach/ -name '*gz' find ~/ -size +500M tr # 替换 例子:碱基互补配对 cat seq.txt cat seq.txt|tr [atcg] [tagc]|cat >seq2.txt wc #统计行数、字符、文本大小 bc #数学运算 scale =2 #保存两个小数点 quit 退出
-
文本处理的三个工具:sed, grep, awk
vim:https://www.jianshu.com/p/8c150a68a277
通配符:https://www.jianshu.com/p/b7f8c97b2ba6
grep :https://www.jianshu.com/p/22a4324ddfdf
sed:https://www.jianshu.com/p/1a853a0315d5
awk:https://www.jianshu.com/p/b6aec932adcf
vim .bashrc # 用vim 打开.bashrc,GG到最后一行,粘贴以下内容。 PS1="\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\] source .bashrc #source之后才能生成
less .bashrc |grep 'ing$'|less -S less .bashrc |grep '^#'|less -S
https://www.jianshu.com/p/22a4324ddfdf # 实例: 对gtf来进行操作,gtf是fq的注释文件,-w 参数,精确匹配第三列是'gene'的行 # -i 忽略大小写 # -ie either,忽略大小写并且可以多搜几个 nl /etc/passwd | grep -ie 'Server' -e 'root' -e 'qmcui'
https://www.jianshu.com/p/1a853a0315d5 # 对文本的行了进行处理
https://www.jianshu.com/p/b6aec932adcf #awk echo 1 2 3 |awk '{ print "total pay for", $1, "is", $2 * $3 }' echo $PATH|awk -F ':' '{print $1}' echo $PATH|awk -v FS=":" '{print $1}' cat /etc/passwd |awk -F ':' -v OFS="\t" '{print $1,$7}' cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}' echo 1 2 3 |awk '{ print "total pay for", $1, "is", $2 * $3 }' echo $PATH|awk -F ':' '{print $1}' echo $PATH|awk -v FS=":" '{print $1}' cat /etc/passwd |awk -F ':' -v OFS="\t" '{print $1,$7}' cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}' 对第四列求和: zless -S /teach/database/gtf/gencode.v29.annotation.gtf.gz |grep -v '^#'|head -n 5|awk '{sum=sum+$4}END{print sum}' 准确输入第100行: zless -S /teach/database/gtf/gencode.v29.annotation.gtf.gz|nl|awk 'NR==100{print $0}' zless -S /teach/database/gtf/gencode.v29.annotation.gtf.gz |awk '$1=="chr1" && $3=="gene" && $4>10000 && $5<50000{print $14}' zless -S /teach/database/gtf/gencode.v29.annotation.gtf.gz |awk '{if($1=="chr1" && $3=="gene" && $4>10000 && $5<50000)print $14}'
-
软件安装
#使用conda安装软件 # 安装miniconda # 配置镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda conda config --set show_channel_urls yes # 创建软件安装的环境 conda create -n rna python=2 # 由于很多生信软件基于python2,所以安装python2,如果碰到不兼容的软件,则可以重新安装新的环境来安装,小环境可以无限安装(激活特定的python) # 查看当前的conda环境 conda info -envs # 激活进入conda的rna环境
RNA-seq分析
#mapping
hisat2 -x /teach/database/index/hisat/hg38/genome -1 /teach/project/1.rna/4.clean_data_25000reads/SRR1039512_1_val_1.100000.fq.gz -2 /teach/project/1.rna/4.clean_data_25000reads/SRR1039512_2_val_2.100000.fq.gz | samtools sort -o ~/SRR1039512.sort.bam -
# 查看bam
samtools view -h SRR1039512.sort.bam|less -S
# 计数,拿到表达矩阵
## 需要一个注释文件以及所有样品的bam文件
featureCounts -T 5 -p -t exon -g gene_id -a /teach/database/gtf/gencode.v29.annotation.gtf.gz -o ~/all.id.txt /teach/project/1.rna/5.sort.bam/*sort.bam
## 对数据进行提取
less -S /home/qmcui/all.id.txt|cut -f 1,7-|grep -v '^#'|less -S
网友评论