课前热身 推荐up主 : 徐洲更 、思考问题的熊
系统查阅所有的Linux命令及详细参数的网站:
http://man./ (中文,很奈斯)
课前准备工作: 安装软件
心理建设: 不用担心学不会,重点是坚持
会不会把服务器搞坏?重点看下图
为什么要学习Linux? 此外,出错不用担心,更重要的是我们解决问题的能力;学习过程中多练习多探究,贵在坚持。
Linux系统简介 登陆服务器
ssh 命令行法
退出服务器 exit
修改命令行配色
复制粘贴下面两行代码:
echo 'export 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\]"' >> ~/.bashrcsource ~/.bashrc
修改字体、修改复制粘贴快捷方式
文件结构:在Linux中,一切皆文件
**文件传输:**Windows,Filezilla(xftp,winscp)
Mac,Filezilla
**命令格式:**命令 + 选项 + 文件
command [-options [parameter]] [FILE]
· command:命令名,相应功能的单词或缩写
· [ ] 代表有时候可以省略
· -options:选项,用来对命令进行控制,也可以省略 两种格式:-h,--help
· parameter:传给命令的参数,可以是零个、一个或者多个
· FILE:要处理的文件
文件夹与文件管理命令 pwd ## Print Working Directory 打印工作目录
ls ## List 列出
cd ## Change Directory 切换目录
mkdir ## Make Directory建立一个新的目录
touch ## 创建文件
mv ## MoVe 移动和重命名
rm ## ReMove 删除
cp ## Copy and Paste 拷贝粘贴
tar ## Tape archive 压缩或者解压文件
ln ## LiNk 链接文件
工作目录 pwd 命令 pwd ## print working directory 打印工作目录 . # 当前目录 .. # 上一级目录 ~ # 家目录 / # 根目录或者目录分隔符
常用Linux快捷键 cd 命令 切换工作目录
常见用法:cd [路径/目录]
cd .. ## 切换到上层目录,相对路径 cd ../.. ## 切换到上上层目录,相对路径 cd / ## 切换到根目录 cd /teach/ ## 切换到根目录下的teach,绝对路径 cd - ## 返回上一次的工作目录 cd ~ ## 回到用户家目录 cd ## 同上,回到用户家目录
ls 命令 常见参数:
-a ## 列出全部的文件,连同隐藏文件 all -l ## 列出目录的详细信息 -h ## 将目录容量转换为人类易读的方式(例如BG,KB等等) human -S ## 以文件大小排序 Size -t ## 以时间排序 time -R ## 以递归目录列出文件 Recursion -d ## 显示目录本身,而非文件下的文件
常见用法:ls [参数] [路径/目录/文件名]
ls ## 列出当前目录的文件 ls ./ ## 同上,'.’号代表当前目录 ls ./*txt ## 列出当前目录下以 txt 结尾的文件 ls ../ ## 列出上层目录的文件 ls -a ## 列出当前目录下的所有文件,包括隐藏文件 ls -l ## 列出当前目录下文件的详细信息 ll ## ls -la 的简写,自定义的别名 ls -lh ## 加上 -h 参数,以 K、M、G 的形式显示文件大小 ls -lh / ## 列出根目录下文件的详细信息
正则表达式
* 匹配任意多个字符(0到正无穷)
?匹配最多一次(0次或一次)
文件属性
创建 mkdir 常见参数:-p/--parents,递归创建目录
常见用法:mkdir [-p] 目录名
# 创建目录 mkdir dir0 ls mkdir -p dir0/sub1/sub2 ls dir0 ls dir0/sub1/ mkdir -p test {1..3}/test {1..3} tree
tree tree:以树的结构展示文件目录结构
常见参数:
-L # level #Descend only level directories deep.
touch 新建文件
常见用法:touch file
touch file.txt new.txt ls touch file{1..5} ls
命名文件/文件夹规则
操作文件 mv mv:移动或者重命名,Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
常见用法:mv 待移动的文件 移动到哪个目录
mv file1 Data/file2
cp cp:Copy and Paste
常见参数:-r, copy directories recursively
常见用法:cp [OPTION] SOURCE DIRECTORY
rm rm :Remove
常见参数 :
- f ## force不显示警告讯息 - i ## 在删除会先询问用户 - r ## 递归删除文件夹
常见用法:rm [-option] file
删库跑路 :rm –rf /
初学者使用rm
要小心,加上-i
参数交互性删除
链接 ln ln:Link 链接,分软链接 (常用)和硬链接 (默认).
常见参数:不加参数即为硬链接,加上 –s
参数即为软链接,
软链接的作用类似快捷方式 ,节约空间
常见用法:ln –s TARGET DIRECTORY
压缩 tar tar:Tape archive 压缩或者解压文件.
常见参数:
-c ## 创建一个新的tar归档文件(创建压缩文件) -x ## 从已有tar归档文件中提取文件(解压缩) -f ## 输出结果到文件或设备 -v ## 在处理文件时显示文件(显示处理进度) -j ## 将输出重定向给bzip2命令 -z ## 将输出重定向给gzip命令
常见用法:
解压:tar [参数] [待解压包]
压缩:tar [参数] <压缩后文件名> [待压缩文件/目录]
其他压缩和解压命令:
zip 和 unzip:用于压缩和解压 *zip 文件
gzip 和 gunzip:用于压缩和解压 *gz 文件
bzip2 和 bunzip2:用于压缩和解压 *bz2 文件
文本查看、操作、统计命令 · head/tail,cat/tac,less/more
· wc,sort,uniq
· cut,paste
cat cat:Concatenate 查看文本文件的内容,输出到屏幕
常见参数:
-A ## 列出所有内容,包括特殊字符,如制表符 -n ## 打印出所有行号,-b 参数仅打印非空白行行号
常见用法:
cat readme.txt cat -n readme.txt## 写入文件 cat >file ## >重定向 Welcome to Biotrainee() ! ^C ## 这里是按Crtl C ## 查看 cat file Welcome to Biotrainee() !
其他:zcat:可以查看压缩的文本文件 tac:逆向查看
head/tail head / tail:查看文件的前/后 n 行,默认 10 行
常见参数:-n
head常结合管道符用于控制输出行数|
more more:逐页查看,按空格翻页,按回车换行,q退出
less less [参数] 文件名
常用参数:
-N:显示行号 -S:单行显示
zless:查看压缩文件
· 上下左右键查看文本内容
· Enter键向下移动一行
· 空格键翻页
· q键退出
wc wc:统计文本
常见参数:
-l # 统计行数 -w # 统计字符串数 -c # 统计字节数
cut cut:文本切割
常见参数:
-d # 指定分隔符,默认\t; -f # 输出哪几列(字段fields)
sort sort:排序
常见参数:
-n # 按照数值从小到大进行排序 -V # 字符串中含有数值时,按照数值从小到大排序 -r # 逆向排序 -k # 指定区域 -t # 指定分隔符
uniq uniq:去除重复行 ** 只去除相邻的重复行*
常见参数:
-c # 统计每个字符串连续出现的行数
paste paste:文本合并
常见参数:
-d # 指定分隔符 -s # 按行合并
常见用法:
paste file1 file2 paste - -
tr tr:字符替换
常见参数:
-d # 删除指定字符 -s # 缩减连续重复字符
小结 命令 功能 cat 查看文本,输出到屏幕 head 显示文档的开头至标准输出中,默认显示十行 tail 显示文档的末尾至标准输出中,默认显示十行 more 逐页查看文档内容 less 逐页查看文档内容,more的升级版 wc 统计文本的行数等 cut 文本切割 sort 排序 uniq 去重复 paste 文本合并 tr 字符替换
生物信息学常见数据格式 FASTA格式 fasta是一种基于文本用于表示核酸序列和多肽序列的格式。其中核酸或氨基酸均以单个字母来表示,且允许在序列前添加序列名及注释
特征:2行,id行和序列行
id行以“>”开头,有时会包含注释信息
序列行一个字母表示一个碱基/氨基酸
>gi|31563518|ref|NP_852610.1| microtubule-associated proteins 1A/1B light chain 3A isoform b [Homo sapiens] MKMRFFSSPCGKAAVDPADRCKEVQQIRDQHPSKIPVIIERYKGEKQLPVLDKTKFLVPDHVNMSELVKI IRRRLQLNPTQAFFLLVNQHSMVSVSTPIADIYEQEKDEDGFLYMVYASQETFGFIRENE
FASTQ格式 fastq是一种存储了生物序列及相应的质量评价的文本格式。测序的原始数据
@SRR001339.3 FC12160_04JAN08_s_3.tar:3:1:230:474 length=36 GTTAGTCGGGAACTAAGGCCTGTAGGCTCTTTCCAT +SRR001339.3 FC12160_04JAN08_s_3.tar:3:1:230:474 length=36 IIIIBIII*II,III$I ′I9IDI%II … 5′E%%(H
在fastq文件中,一个序列通常由四行组成:
第一行id行,以@开头,之后为序列的标识符以及描述信息(与FASTA格式的描述行类似) 第三行附加信息行,以+开头,之后可以再次加上序列的标识及描述信息(可选) 第四行碱基质量行,根据ASCII表,用一个字符来表示对应碱基的测序质量 GFF/GTF格式 gff格式记录序列中转录起始位点、基因、外显子、内含子等组成元件在染色体中的位置信息
image-20210219184105857 更多数据格式:[生信资料 3] 生物信息学常见数据格式,汇总!
文本处理三驾马车 grep grep:一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本,并把匹配的行打印出来
格式:grep [options] pattern file
常见参数:
-w:word 精确查找某个关键词 pattern -c:统计匹配成功的行的数量 -v:反向选择,即输出没有匹配的行 -n:显示匹配成功的行所在的行号 -r:从目录中查找pattern -e:指定多个匹配模式 -f:从指定文件中读取要匹配的 pattern -i:忽略大小写
正则表达式 正则表达式:是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
^ 行首 $ 行尾 . 换行符之外的任意单个字符 ? 匹配之前项0次或者一次 + 匹配1次或者多次 * 匹配0次或者多次 {n} 匹配n次 {n,} 匹配至少n次 {m,n} 至少m,最多n [] 匹配任意一个 [^] 排除字符 | 或者
常见用法
cat readme.txt | grep '^T' cat readme.txt | grep ')$' cat readme.txt | grep 'f.ee' cat readme.txt | grep 'f\?ee' cat readme.txt | grep 're\+' cat readme.txt | grep [bB]
sed sed:流编辑器,一般用来对文本进行增删改查
用法:sed [-options] 'script' file(s)
常见参数:
-n :禁止显示所有输入内容,只显示经过sed处理的行(常用) -e :直接在命令模式上进行 sed 的动作编辑,接要执行的一个或者多个命令 -f :执行含有 sed 动作的文件 -r :sed 的动作支持的扩展正则(默认基础正则) -i :直接修改读取的文件内容,不输出
image-20210219220747572 1.如何做大小写转换?
# 大写转小写 echo "ABCDS" | sed 's/[A-Z]/\l&/g' # 小写转大写 echo "abcds" | sed 's/[a-z]/\u&/g'
2.如何替换每一行的前4个字符?
sed 's/ ^.... / /’
3.如何对奇数行进行操作?
sed '1~2 s///’
4.删除空白行
sed '/^$/d’
awk awk命令 https://man./awk
conda的安装与使用 conda的安装与使用
anaconda官网:https://www./
miniconda则是精简版,需要啥装啥,推荐使用miniconda。
miniconda官网:https:///miniconda.html
下载miniconda # 官网地址: wget -c https://repo./miniconda/Miniconda3-latest-Linux-x86_64.sh# 国内镜像地址: wget -c https://mirrors./anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh wget -c https://mirrors.tuna./anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh# -c 断点续传 # mac用户请用: curl -O https://repo./miniconda/Miniconda3-latest-Linux-x86_64.sh curl -O https://mirrors./anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh curl -O https://mirrors.tuna./anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
安装conda的流程 1.运行 bash Miniconda3-latest-Linux-x86_64.sh
2.查看软件license
3.同意license
4.选择安装位置
5.同意conda初始化
6.设置是否要显示base环境提示(可选)
7.重新加载~/.bashrc
文件或者重新开shell窗口
配置conda频道 方法一:
官方频道:
conda config --add channels bioconda conda config --add channels conda-forge conda config --add show_channel_urls yes
清华镜像频道:
conda config --add channels https://mirrors.tuna./anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna./anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna./anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna./anaconda/cloud/bioconda/ conda config --set show_channel_urls yes
北外镜像频道:
conda config --add channels https://mirrors./anaconda/pkgs/free/ conda config --add channels https://mirrors./anaconda/pkgs/main/ conda config --add channels https://mirrors./anaconda/cloud/conda-forge/ conda config --add channels https://mirrors./anaconda/cloud/bioconda/ conda config --set show_channel_urls yes
注
不要重复添加频道,冗余的频道会让安装软件的过程变慢
添加镜像要看服务器所在的位置,不是使用者所在的位置
方法二:
直接编辑 ~/.condarc
文件
查看已添加的频道
conda config --get channels conda config --show channels
创建独立的环境 建议:1. base环境里最好不要装任何包
2. 除非你知道这个包会对你原生环境造成什么影响
# 创建名为rnaseq的conda小环境 conda create -n rnaseq # -n 指定环境名称 # 每次运行前,激活创建的小环境rna,成功激活进入小环境,即可安装软件 conda activate rnaseq # 激活 conda deactivate # 退出小环境 # 列出已存在的小环境 conda env list # 或 conda info --env
删除&重命名小环境 # 删除一创建的小环境及安装包 conda remove -n myenv --all# 重命名 conda create -n python2 conda create -n py2 --clone python2 conda remove -n python2 --all
安装软件 哪些软件可以用conda安装?
网站查询
https:///search
https://bioconda./
# 查看当前环境所安装的软件 conda list# 查看符合正则表达式的软件 conda list fast*# 查看指定环境的软件 conda list -n rnaseq# 删除软件 conda remove fastqc# 升级软件 conda update fastqc conda update conda
conda常用命令
环境管理 软件管理 conda env list conda search fastqc conda creat -n rnaseq conda install fastqc conda activate rnaseq conda remove fastqc conda deactivate conda update fastqc conda list
mamba的使用 image-20210220133742124 安装mamba
在base环境下安装mamba *安装在base环境中的包在小环境中依然可以调用
conda activate base conda install mamba
除启动环境外,所有conda
命令都可以用mamba
来代替
Mamba
中还提供了mamba repoquery depends
和mamba repoquery whoneeds
,分别用于查看指定库依赖哪些库,以及指定库被哪些库依赖
版本控制和迁移 conda list conda list -n rnaseq --export > conda_rnaseq_list.txt # 导出 # 软件名=版本号=build conda create -n rna -file conda_rnaseq_list.txt # 安装导出的信息
conda env export -n rnaseq > rnaseq.yml # 导出 conda env create -f rnaseq.yml # 创建 conda env update -f rnaseq.yml # 更新
yml文件信息更全面
本地安装
先把安装包下载到本地,然后移动到miniconda3的pkgs文件夹下
alias简化启动
cp ~/.bashrc ~/.bashrc_bak # 备份 echo "alias rna='conda activate rnaseq'" >> ~/.bashrcecho "alias deact='conda deactivate'" >> ~/.bashrcsource ~/.bashrc
删除没有使用的包
conda clean -i # 更换镜像时先运行这一条 conda clean -p # 删除从不使用的包 conda clean -t # 删除tar包 conda clean -a # 删除索引缓存、锁定文件、未使用过的包和tar包。
-a, --all Remove index cache, lock files, unused cache packages, and tarballs. -i, --index-cache Remove index cache. -l, --lock Remove all conda lock files. -p, --packages Remove unused packages from writable package caches. WARNING: This does not check for packages installed using symlinks back to the package cache. -t, --tarballs Remove cached package tarballs.