一、Linux系统简介

  • 命令格式:命令 + 选项 + 文件
    • command [-options [parameter]] [file] ```r

      工作目录

      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 链接文件

  1. <a name="fOG33"></a>
  2. ### 1、如何操作工作目录:`ls: List information about the FILES`
  3. ```r
  4. # 常见参数
  5. -a # 列出全部的文件,连同隐藏文件也一起列出来 all
  6. -l # 列出目录的详细信息
  7. -h # 将目录容量转换为易读的方式:GB,KB等 human
  8. -S # 以文件大小排序 Size
  9. -t # 以时间排序 time
  10. -R # 递归目录列出文件 Recursion
  11. -d # 显示目录本身,而非目录下文件
  12. r w x 可读、可写、可执行 4 2 1 0/1/2/3/4/5/6/7

2、如何新建文件及文件夹

  1. mkdir -p 1/2/3 #递归创建文件夹
  2. tree . # 展示出文件夹层级关系
  3. -L level
  4. touch file{1..5} # 创建file1,file2,....file5文件夹

3、文件夹与文件管理命令

  1. cp # copy and paste
  2. -r ## 递归复制粘贴
  3. rm # remove
  4. -f ## force 不显示警告讯息,强制删除
  5. -i ## 在删除前会先询问用户
  6. -r ## 递归删除文件夹

3.1 创建软链接

  1. # 创建软链接
  2. # 软链接相当于Windows下的快捷方式
  3. # 节约空间
  4. ln # link 链接,分软链接(常用)和硬链接(默认)
  5. # 常见参数:不加参数即为硬链接,加上-s参数即为软链接,软链接的作用类似快捷方式
  6. ln -s target directory # 前面是要链接的绝对路径,后面是当前目录或者要放置‘快捷方式’的绝对路径
  7. ln -s usr/local/bin/python3.7 python3

4、如何处理压缩文件-tar

  1. tar # tape archive 压缩或者解压文件
  2. # 常见参数
  3. -c # 创建一个新的tar归档文件(创建压缩文件)
  4. -x # 从已有tar归档文件中提取文件(解压缩)
  5. -f # 输出结果到文件或设备
  6. -v # 在处理文件时显示文件处理进度
  7. -j # 将输出重定向给bzip2命令
  8. -z # 将输出重定向给gzip命令
  9. # 常见用法
  10. tar [-参数] [待解压文件] # 解压
  11. tar [-参数] [压缩后文件名] [待压缩文件/目录] # 压缩
  12. # 其他压缩和解压的命令
  13. zip/unzip # *zip
  14. gzip/gunzip # *gz
  15. bzip2/bunzip2 # *be2

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

  1. head/tail
  2. cat/tac
  3. less/more
  4. cat
  5. # concatenate 查看文本文件内容,输出到屏幕
  6. -A # 列出所有内容,包括特殊字符,如制表符
  7. -n # 打印出所有行号,-b参数仅打印非空白行行号

6、如何操作和统计文件-wc、cut、sort、uniq、paste、tr

  1. wc # 统计文本
  2. # 常见参数
  3. -l # 统计行数
  4. -w # 统计字符串数
  5. -c # 统计字节数
  6. cut # 文本切割
  7. # 常见参数
  8. -d # 指定分隔符,默认\t
  9. -f # 输出哪几列(字段fields)
  10. sort # 排序
  11. # 常见参数
  12. -n # 按照数值从小到大排序
  13. -v # 字符串中含有数值时,按照数值从小到大排序
  14. -r # 逆向排序
  15. -k # 指定区域
  16. -t # 指定分隔符

二、conda相关

1、conda基础:

conda简介
anaconda是所有语言的包、依赖和环境管理器,像一个硬件商店
miniconda类似于工作台

1.1 conda安装、配置镜像、为特定环境设置特殊频道

  1. # 下载miniconda 第二个是镜像 # -c 断点续传
  2. wget -c https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-x86_64.sh
  3. wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
  4. # 运行bash文件
  5. bash Miniconda3-latest-Linux-x86_64.sh
  6. # 更新(重新配置)配置文件
  7. source ~/.bashrc # 将后面这个当成整体使用
  8. # echo 'export PATH=~/miniconda3/bin:$PATH' >> ~/.bashrc # 与上面命令作用相同
  9. # 运行conda,得到命令
  10. conda -h
  11. # 配置conda镜像,这三个都是必须的
  12. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  13. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  14. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  15. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  16. conda config --set show_channel_urls yes
  17. # 如果添加一个已经添加过的频道,conda会把这一频道的优先级提前
  18. # 添加的频道写到哪里去了?查看已添加的频道 先添加的频道会到最下面,后添加的频道优先级更高
  19. cat ~/.condarc
  20. conda config --get channels
  21. conda config --show channels
  22. # 为特定环境设置特殊频道
  23. conda config --env --add channels genomedk
  24. ## 取消自动激活conda环境
  25. conda config --set auto_activate_base false
  26. ## 恢复自动激活conda环境
  27. conda config --set auto_activate_base true

1.2 创建独立的环境

为什么要创建独立的环境?全装在bash里面不好吗?

  • 1、conda会改变原来设置好的环境
  • 2、不同的软件的依赖会相互冲突:a软件依赖python3.7,b软件依赖python3.8
  • 3、方便项目管理:做基因组、转录组、Chip-seq
  • bash环境里最好不要装任何包,除非知道这个包会对原生环境造成什么影响 ```r

    创建名为rnaseq的conda小环境

    conda create -n rnaseq -n # 指定环境名称

启动rnaseq这个conda小环境

conda activate rnaseq

退出rnaseq这个conda小环境

conda deactivate

列出已存在的小环境

conda env list conda info —env

查看conda中已安装的软件

conda list # 查看当前环境所安装的软件 conda list fast* # 查看符合正则表达式的软件 conda list -n rnaseq # 查看指定环境中的软件

  1. <a name="zaKWj"></a>
  2. #### 1.3 删除&重命名小环境
  3. ```r
  4. # 删除已创建的小环境及安装的包
  5. conda remove -n rnaseq --all
  6. # 删除特定环境下的特定软件,如何指定?
  7. conda remove -n rnaseq fastqc
  8. # 不指定-n参数就要进入该环境之后才能进行删除操作,同样,-y 能够跳过确认执行的步骤
  9. # 重命名一个小环境
  10. conda create -n Python2
  11. conda create -n p2 --clone Python2 # 重命名,克隆了一个
  12. conda remove -n p2 --all

1.4 删除没有使用的包

清除掉下载了但是没有用到的包

  1. conda clean -i
  2. -i # 清除索引缓存 注:更换镜像后记得运行这一条
  3. -p #
  4. -t
  5. -a # all

1.5 安装软件

哪些软件可以用conda装?

  1. # 方法一:网站查询
  2. https://anaconda.org/search
  3. https://bioconda.github.io/
  4. # 方法二:conda search xxx

1.5.1 如何安装指定版本的软件?
  1. # 在不指定版本的情况下,conda默认安装该软件的最新版
  2. # 1、先看看有哪些可以安装的版本
  3. conda search [软件名称]
  4. mamba repoquery search fastqc # 这个更快
  5. # 2、安装指定版本的软件
  6. conda install [软件名称]=[版本号]
  7. # 添加 -y 参数跳过确认步骤

1.5.2 升级软件
  1. # 升级安装的软件
  2. conda update fastqc
  3. # 升级conda本身
  4. conda update conda # 只要不影响使用,就不建议升级
  5. # 安装旧版本的软件只需要指定该软件的旧版本就可以

1.5.3 如何用conda将软件安装到指定位置
  1. mkdir biosoft # 先创建一个文件夹
  2. cd biosoft
  3. mkdir samtools # 进入文件夹,再创建一个文件夹
  4. conda install -p ~/biosoft/samtoos samtools # 使用-p参数指定安装位置

2、Rstudio使用conda环境的R

  1. # 对rstudio的配置文件进行编辑
  2. vi /etc/rstudio/rserver.conf
  3. # 将conda虚拟环境中固定版本的R的路径设置为rstudio的路径
  4. rsession-which-r=/home/geneteam/miniconda3/envs/rnaseq/bin/R

3、mamba

3.1 用mamba装软件更加迅速

mamba加速了其中的一些线速度的步骤,对conda install进行改造,使其可以并行下载;增加了一些新功能

  1. # 切换到base环境
  2. conda activate base
  3. # 在base环境下安装mamba
  4. conda install mamba
  5. # 搜索软件
  6. mamba search [软件名称]
  7. mamba repoquery search fastqc # 更快
  8. # 安装软件 mamba可以多线程装软件
  9. mamba install fastqc
  10. # 装在base环境中的包在小环境中依然可以调用,因此不需要在每个环境里都安装一遍

3.2 除启动环境外(conda activate rnaseq),所有conda的命令都可以用mamba代替

查看依赖关系

  1. # mamba可以查看安装的软件之间的依赖关系
  2. # 我依靠谁 -t 以树状列出
  3. mamba repoquery depends -t samtools
  4. # 谁依赖我
  5. mamba repoquery whoneeds -t python

3.3 版本控制和迁移

1、发文章时候提供版本号
2、更换服务器、分享的时候保持软件版本不变

3.3.1 方法:用conda listexport功能
  1. conda list # 查看当前环境所安装的软件
  2. # 导出环境中安装的包的列表
  3. conda list -n rnaseq --export > conda_rnaseq_list.txt
  4. # 内容:软件名 = 版本号 = build
  5. # 安装导出的信息
  6. conda create -n rna -file conda_rnaseq_list.txt

3.3.2 方法:用conda envexport功能
  1. # 导出想要的环境
  2. conda enc export -n rnaseq > rnaseq.yml
  3. # 根据导出的yml文件创建环境
  4. conda env create -f rnaseq.yml
  5. # 根据导出的yml文件更新环境
  6. conda env update -f rnaseq.yml
  7. # yml文件提供的信息更全面

3.3.3 方法:本地安装【没试过】

适用于:网络不行、不连外网的服务器
先通过wget把包下载到本地,移动到miniconda3的pkgs文件夹下

  1. conda --use-local [包名]