1.Linux基础
Linux基础和基因组注释文件解读
I.上机指南
Linux命令行格式:命令 (空格)【选项】(空格)参数1 参数2...
注意:命令、选项、参数之间一定要用空格来区分!
常用命令:
man 查询某一命令的具体参数,例如:man wget
mkdir 创建文件夹
cd 目录切换(区别相对路径与绝对路径)
ls 显示文件夹中文件列表
cat 直接查看文件
wc 查看文件行数、字数
cut 取出文件中的特定列或字符
sort 排序
uniq 去重复
grep 文件中关键词搜索,返回行
chmod 修改文件的访问权限
Note:
更多Linux命令使用指南详见附录
II. 上机任务
1. 了解基因组注释文件 (gff/gtf)
1.1 了解gff和gtf文件格式
Reference link :http://www.genome.ucsc.edu/FAQ/FAQformat.html
1.2 下载yeast的基因组注释文件
1.2.1 先创建一个自己的文件夹
mkdir my_folder
1.2.2 下载
1) 下载方法1: 可以从terminal下载:
wget http://www.ncrnalab.org/lulab/public/1.gtf.gz
2) 下载方法2: yeast基因组注释文件可以从浏览器下载:
3) 下载方法3: 该文件在"虚拟机"中已经下载好,位置在/home/cs/Bioinfo_Lab/0.Linux/myfolder下,文件名为 *.gtf.gz 可以考到自己目录下:
cp /home/cs/Bioinfo_Lab/0.Linux/*.gtf.gz .
Note: 星字符:* 可以代表任何字符,称为wildcard。
1.2.3 解压缩
首先将*.gtf.gz放到自己创建的目录下(可以使用cp或者mv命令), 然后解压缩该文件:
gunzip *.gtf.gz
Tips
1) 命令cp、文件“./*.gtf.gz”、目录“my_folder/”之间均存在空格。
2) 在Linux命令行中, "." 可代表当前目录,".."可代表上一层目录。
3) tab键可以实现命令名及文件名的自动补全。
1.3 统计所下载gff/gtf文件的大小,行数和exon数目
命令示范:
man ls
ls -al *.gtf
wc -l *.gtf
cut -f 3 *.gtf | sort | uniq -c
Tips
1) “|” 是管道命令操作符, 它可以将左边命令传出的正确输出信息(standard output)作为右边命令的标准的输入(standard input). 详细信息请看 IV.附录 3. | 管道
2. 学会使用一个文本编辑器(vi, nano, emacs)编辑新的文件
写一个可执行文件,寻找长度最长的3个exon, 汇报其长度。
命令示范:
vi run.sh
rush.sh的文件内容:
#!/bin/bash
grep exon *.gtf | awk '{print $5-$4+1}' | sort -n | tail -3
(第一行语句一般用来声明这个脚本使用的shell名称,“#”后的语句可作为批注,在执行时会被忽略)
关闭vi编辑器,返回命令行后键入:
chmod +x run.sh
./run.sh
Note:
vi编辑器的使用方法详见附录。
III. 上机作业:
查找、理解并注释上述每一个语句和参数的意义
解释gtf/gff文件中第4、5列($4,$5)代表什么,exon长度应该是$5-$4+1还是$5-$4?
有新的方法加分,但必须注释清楚每个语句和参数的意义和结果。
IV. 附录:Linux常用命令
1.创建、删除与复制文件、文件夹
cd 目录切换(区别相对路径与绝对路径)
cd #切换到家目录
cd /home/usrs #切换到/home/usrs目录
cd .. #返回上级目录
cd ../.. #返回上上级目录
mkdir 创建文件夹
mkdir folder
cp 复制文件
cp old_file new_file
mv 重命名或移动文件、文件夹
mv file_old_name file_new_name #文件重命名
mv folder_old_neme folder_new_name #文件夹重命名
mv file new_folder/ #将文件移动到新目录
rmdir 删除文件夹
rmdir folder
rm 删除文件、文件夹
rm file #删除文件
rm -r folder #删除文件夹
2.读写文件、文件夹
ls 显示文件夹中文件列表
ls -la #显示全部详细格式
ll #显示文件详细信息
cat 直接查看文件
more/less 翻页查看文件
sed 编辑文件
sed ‘s/A/a/g’ file #将文件中所有的A替换为a
sed -n ‘3,6 p’ file #打印第3到6行
sed ‘5 q’ file #打印前5行
> 重定向,将终端结果输出给文件,会创建新文件或者覆盖原文件
sed ‘s/A/a/g’ file > new_file
>> 重定向,将终端结果输出给文件,内容会加在原文件内容尾部
sed ‘5 q’ file >> new_file
3.文件信息提取
wc 查看文件行数、字数
wc -l file #查看文件行
wc -c file #查看文件字数
head 查看文件前几行
head -n [N] file #查看文件前N行
tail 查看文件后几行
tail -n [N] file #查看文件后N行
grep 文件中关键词搜索,返回行
grep ‘CDS’ file #显示匹配上 ‘CDS’ 的所有行
grep -v ‘CDS’ file #显示没有匹配上’CDS’的所有行
grep -w ‘CDS’ file #必须与整个字匹配,如果另外有’CDSs’这样的字符串,就不会与之匹配
grep -x ‘CDS’ file #仅匹配整行,即只显示整行就是’CDS’的所有行
cut 取出文件中的特定列或字符
cut -f [N] file #取出第N列
cut -d “;” -f [N] file #以”;”作为输入字段的分隔符(默认为制表符),取出第N列
sort 排序
sort -n file #按照数值排序(默认为按照ASCII码排序)
sort -k start[,stop] file #按照指定的字段进行排序;start指定开始处字段,stop指定结尾处字段;如果省略stop,默认到行尾
uniq 去重复
uniq -c #去重复并且计算重复频率
| 管道,将左边命令的标准输出作为右边命令接受的标准输入
head -n 20 file | tail -n 10
# 输出file的前20行,通过管道转发给tail 作为输入内容。
cut -f 3 file | sort | uniq -c
# 输出file的第三列,通过管道转发sort 作为输入内容进行排序之后的结果,通过管道转发到 uniq , 去重复并且计算重复频率。
Tips
1)管道命令只处理前一个命令正确输出,不处理错误输出
2)管道命令右边命令,必须能够接收标准输入流命令才行。
4.查找文件
which 寻找可执行文件,显示路径
whereis 寻找特定文件
locate 按照关键词搜索文件
5. 查看、修改文件权限
用户及用户组:文件所有者u (user),用户组g (group),其他人o (other),所有人a (all)
chmod 修改文件的访问权限,分为数字模式和符号模式。
数字模式:
chmod 755 file
chmod -R 755 folder #-R 修改该目录中所有文件的权限
三位数分别表示文件所有者,用户组,其他人
r表示可读,w表示可写,x表示可执行
用数字表示:可读r=1,可写w=2,可执行x=4
例如:777表示所有用户对文件具有读、写、执行权限;755表示文件所有者对文件具有可读、可写、可执行权限,其他用户只具有可读、可执行权限
符号模式:
chmod u+x,go=rx file #使file文件的所有者加上可执行权限,将用户组和其他人权限设置为可读和可执行
chmod o-x file #使其他人对file文件除去可执行权限
chmod -R a+x folder #使所有人对folder文件夹加上可执行权限
符号:+加入,-除去,=设置
6.文件、文件夹的打包,压缩与解压缩
gzip 压缩文件
gzip file
gunzip 解压缩文件(.gz文件)
gunzip file.gz
tar 打包压缩文件、文件夹的产生与解压缩
tar -zcv -f folder.tar.gz folder #打包压缩文件夹(gzip格式)
tar -jcv -f folder.tar.gz folder #打包压缩文件夹(bzip2格式)
tar –ztv -f folder.tar.gz #查看压缩文件夹中的文件名(gzip格式)
tar –jtv -f folder.tar.gz #查看压缩文件夹中的文件名(bzip2格式)
tar -zxv –f folder.tar.gz #打开包并解压缩(gzip格式)
tar -jxv –f folder.tar.gz #打开包解压缩(bzip2格式)
-z 压缩(gzip格式)
-j 压缩(bzip2格式)
-c 打包
-v 显示过程
-f 新建的压缩文件名
-t 查看压缩包里的文件名
-x 解压缩
7. 系统及进程
top 监视计算机使用情况
ctrl-c 终止当前进程
ctrl-z 暂停当前进程
bg 让暂停的进程在后台继续运行
fg 把后台运行的进程调到前台
ps 列出所有用户的进程
ps -e #列出所有的用户的进程
ps -f #列出详细的列表
kill 终止特定进程
kill PID_list #终止PID进程
date 显示系统的时间和日期,可用于为程序运行时长进行计时
8.文本编辑 Vi /Vim
3种工作模式: 编辑模式、 一般模式(Visual)、命令模式.
模式切换方法:
编辑模式到一般模式: 按 Esc
一般模式到编辑模式: 输入 “i、a、o”等
一般模式到命令模式: 输入“:、/、?”
1. 一般模式下:
上下左右移动光标: 键盘方向键
屏幕向下移动半页: ctrl+d
屏幕向上移动半页: ctrl+u
移动到当前行的最前面字符处: ^ 或者 0
移动到当前行的最后面字符处: $
移动到文件的第一行: gg
移动到文件的最后一行: G
移动到文件的第 n 行: n
复制: y
复制: nyy (将当前行开始的 n 行内容复制到缓冲区)
粘贴: p
粘贴: p (将缓冲区的内容复制到光标所在处)
删除: d
删除: ndd (删除当前行及其后 n-1 行)
n 移动到下一个 string 字符串
N 移动到上一个 string 字符串
取消前一次操作: u
重做前一次操作: ctrl+r
查找字符串:
/string #向光标之下查找字符串 string
?string #向光标之上查找字符串 string
替换字符串:
:%s/string1/string2/
2. 命令模式下:
文件存盘: :w
存盘并退出: :wq
不存盘退出: q!
打开文件: :r file_name
新建文件: :e file_name
文件另存为 : :w file_name
移动到指定的行处: :n
鼠标定位: :set mouse=a
自动缩进: :set autoindent
显示行号: :set number
执行 shell 命令: :!command
3.编辑模式下:
可进行文本编辑。
V. 更多阅读
更多Linux命令详见