生物信息学数据分析方面使用的最多的操作系统就是Linux,许多开源生物信息软件都是都是基于命令行的,并且是只有Linux的版本。尽管有不同的 GUI(图形用户界面)可用于生物信息学分析,但它们使用起来并不比在Linux上轻松。 因此,学习Linux命令是生物信息学数据分析的必备技能。这篇文章将介绍日常生物信息学数据分析所需的基本 Linux 命令。
当我们打开 Linux 终端时,通常应该会看到带有’$’标识 的shell 提示符(命令行界面)。Shell是一个程序,它从用户那里获取命令输入并将其传递给操作系统进行处理,并在屏幕上打印输出。
查看当前目录下的文件
您可以使用 ls (list) 命令列出当前路径中的文件。如果不为 ls 提供参数,它只会列出文件和目录的名称。
ls
file1.txt file2.txt
#如果添加 -l 选项,可以看到一个长列表格式,包括权限、所有者、日期、磁盘大小和时间
ls -l
total 0
-rw-rw-r-- 1 ubuntu ubuntu 0 Jun 4 11:10 file1.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 Jun 4 11:10 file2.txt
#如果添加 -lrt 选项,则按按升序时间排序(最后修改时间为最后)的长列表格式,
#包括权限、所有者、日期、磁盘大小和时间
ls -lrt
total 0
-rw-rw-r-- 1 ubuntu ubuntu 0 Jun 4 11:10 file1.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 Jun 4 11:10 file2.txt
查看当前所在的路径
可以使用 pwd 命令获取当前工作目录的绝对路径,这也是生物信息学数据分析过程使用比较多的命令。
pwd
/home/ubuntu/test
#变量 $PWD 包含当前工作目录的路径,可以使用 echo 命令打印
echo $PWD
/home/ubuntu/test
切换目录
使用 cd命令切换到另一个目录。这是生物信息学分析中使用最广泛的命令,用于浏览目录结构。我们可以在当前路径中给出目录名称,也可以在另一个路径中给出目录的绝对(或相对)路径。如果您只键入 cd 而没有任何目录名称,则当前目录将更改为主目录。
#切换回主目录(/home/ubuntu)
cd
#切换至上级目录
cd ..
#切换至根目录
cd /
创建和删除目录
mkdir 和 rmdir(或 rm)命令可分别用于创建和删除目录。
#创建名为一个temp的目录
mkdir temp
#在另一个目录下创建一个目录
mkdir -p parent/temp
#删除目录
rmdir temp
#删除目录及其内的文件
rmdir -rf temp
*注意谨慎使用 rm -r 或 rm -rf 命令,因为它们会递归地删除所有文件和子目录。一旦删除文件夹和文件,将无法恢复已删除的数据。
创建和编辑文件
使用 vim、touch、cat 和echo命令来创建文件。
#vim创建文件
vim file.txt
#touch创建一个空文件
touch file.txt
#cat创建文件
cat > file.txt
#echo写入文件
echo "This is a test file" > file.txt
查看文件内容
在 Linux 中,您可以使用多个命令或文本编辑器来读取完整或部分文件。最流行的用于读取文件的 Linux 命令包括 less、more、cat、head 和 tail。
#less和more是浏览大文件的首选
less file.txt
more file.txt
#cat一次性显示文件的内容到终端
cat file.txt
#head默认查看前十行
head file.txt
#tail默认查看后十行
tail file.txt
合并文件
使用 cat 命令合并和追加两个或多个文件,这里分别使用重定向运算符 > 和 >> 来合并和追加文件。
#合并file1.txt和file2.txt的内容
cat file1.txt file2.txt > merged_file.txt
#追加file3.txt的内容到merged_file.txt
cat file3.txt >> merged_file.txt
复制、重命名和删除文件
cp 命令将一个文件复制到另一个文件, mv 命令重命名文件,rm删除文件。
#创建file1.txt的副本file2.txt
cp file1.txt file2.txt
#重命名file1.txt为file2.txt
mv file1.txt file2.txt
#删除file1.txt
rm file1.txt
压缩和提取文件
大多数生物信息学工具和文件都被压缩为 .tar.gz 或.zip、.gz 、.bz2等其他压缩格式。在生物信息学分析中,我们经常压缩和解压缩数据文件。
tar 命令对于将文件和目录压缩到存档(.tar、.tar.gz、.tar.bz2 等)以及从 tar 存档中提取文件很有用。
# 从.tar 存档中提取文件
tar -xvf archive.tar
# 列出.tar存档中的文件(不提取)
tar -tf archive.tar
# 从 .tar.gz 存档中提取文件
tar -xvf archive.tar.gz
# 从 .tar.bz2 文件中提取文件
tar -xvf archive.tar.bz2
# 创建 tar 存档
tar -cvf archive.tar dir
tar -czvf archive.tar.gz dir
tar -cjvf archive.tar.bz2 dir
# 提取 .gz 压缩文件
gunzip file.gz
# 创建 .gz 压缩文件
gzip file.fastq
# 提取 .bzip2 压缩文件
bunzip2 file.bz2
# 创建 .bzip2 压缩文件
bzip2 file.fastq
# 提取 .zip 存档
unzip archive.zip
# 创建 .zip存档
zip archive.zip file.txt
#创建 .zip存档(对文件夹)
zip -r archive.zip dir
标准输出 (STDOUT) 和标准错误 (STDERR)(>、>2 和 &>)
标准输出 (STDOUT) 和标准错误 (STDERR) 是 Linux 命令的两个输出流,它们直接在屏幕上打印输出和错误消息。我们还可以使用重定向运算符 (>) 将标准输出(>1 或 >)和错误 (2>) 重定向到文件。 &> 可用于将标准输出和错误重定向到文件。
# 在屏幕上打印标准输出
cat file.txt
# 使用重定向运算符(> 或 >1)将标准输出打印到文件
cat file.txt > file2.txt
# 使用重定向运算符(> 和 >2)将标准输出和标准错误打印到文件(file3.txt不存在)
cat file2.txt file3.txt > stdout.txt >2 stderr.txt
# 使用重定向运算符 (&>) 将标准输出和标准错误打印到同一个文件
cat file2.txt file3.txt &> out.txt
搜索可执行文件的路径
在Linux 中,which命令可用于定位可执行文件(已安装的命令或工具)的绝对路径。例如,如果我们想知道 fastqc 命令的绝对路径,你可以使用 which fastqc。 which 命令也可用于检查特定工具是否已安装并在系统路径中可用。
如果你喜欢这篇文章,还请点赞支持一下,欢迎你关注vx公众号“生物信息技术”。