Biostar_Handbook学习笔记(2)Linux命令行学
生物信息学数据的处理环境都是在unix环境中进行的,所以学习linux命令行下的命令就是必须的了,一直以来都没有系统的学习过命令行的使用,都是靠着需要的时候再去查的方式在学习,乘着这次学习Biostar_Handbook的机会来稍微系统的学习一下linux的命令行。将暂时想到的之前学到的命令以及新学习的命令记录下来,作为这一次学习的笔记。
查看帮助文档
可以通过man
命令加其他的linux命令来查看其他命令的帮助文档,当然通过man man
可以查看man
的帮助文档。
查看文件以及目录的命令
cd
打开指定目录
cd ..
可以打开上级目录
cd /
可以打开根目录
cd ~
可以打开当前账户的home目录
仅输入cd
也可以快速打开当前账户的home目录
ls
可以查看当前目录或指定目录下的文件目录
添加-a
参数可以查看目录下的所有文件(包含隐藏文件)使用la
也可以达到同样的目的
添加-l
参数可以查看目录下的文件的详细信息(不包含隐藏文件)
添加-sh
参数可以显示目录文件总大小以及目录下的各文件的大小
mv
可以移动指定文件或目录到指定目录或修改文件名
添加-r
参数可以移动目录
cp
可以将文件拷贝至指定目录
添加-r
参数可以拷贝目录
pwd
可以打印当前的绝对路径
新建以及删除文件或目录
mkdir
新建目录
添加-p
参数可以强制创建目录(当上级目录不存在时,同时创建上级目录)
rmdir
删除目录
touth
创建文件
rm
可以删除指定文件
添加-r
参数可以删除目录
添加-f
参数可以强制删除文件
添加-i
参数会在删除时询问是否删除文件
文本的查看以及输出
echo "xxx"
表示打印xxx至屏幕
echo "xxx" > yyy.yyy
表示打印xxx并输出至yyy.yyy文件中,且覆盖原本内容(若没有该文件则创建该文件)
echo "xxx" >> yyy.yyy
表示打印并输出至yyy.yyy文件末尾(若没有该文件则创建该文件)
echo $USER
打印当前用户名
echo $HOME
打印当前账户的home目录路径
echo $PATH
打印当前的环境变量
more
和less
都可以将文件中的内容打印至屏幕中,但是more
只能下翻页,而less
可以上下翻页。
cat
可以将单个或多个文件同时打印至屏幕中,可以通过cat xxx > yyy
来快速合并文件或是拷贝文件。
wc
可以显示文件的行数,单词数和字符数,通过添加-l
参数可以只查看该文件的行数。
nano
是一个unix自带的文本处理工具,可以进行简单的处理文件。
grep的使用
grep
可以将文件中包含条件的字符的行打印出来
创建一个文件opening_lines.txt
,作为练习grep
命令使用其中包含
Call me Ishmael.
The primroses were over.
Now is the winter of our discontent.
All children, except one, grow up.
The Galactic Empire was dying.
In a hole in the ground there lived a hobbit.
It was a pleasure to burn.
It was a bright, cold day in April, and the clocks were striking thirteen.
It was love at first sight.
I am an invisible man.
It was the day my grandmother exploded.
When he was nearly thirteen, my brother Jem got his arm badly broken at the elbow.
Marley was dead, to begin with.
输入grep was opening_lines.txt
输入
grep --color=AUTO was opening_lines.txt
好像没有什么差别
grep -v was opening_lines.txt
可以显示不包含was
的行unix管道命令
在unix命令行中存在可以通过|
将前面输出的内容向后输入的命令,我们称这种使用命令的方式为管道命令。
grep was opening_lines.txt | wc -c
表示输出文件opening_lines.txt
中存在was
的行中有多少字符
grep was opening_lines.txt | sort | head -n 3 | wc -c
表示将文件opening_lines.txt
中存在was
的行进行顺序排列后前三行的字符数总之管道命令只能将前面的输出输入后面,而无法反过来。
vim的简单配置
在命令行有时候会用到文本处理,使用vim对文本进行处理虽然开始的时候用着不习惯,但是简单配置了之后用着还是蛮舒服的。
syntax on
filetype indent plugin on
set ruler
set showcmd
set number
nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set autoindent
set hlsearch
下载命令
通过wget
和curl
都可以对文件完成下载,其中的区别,我也没有弄清楚,但是使用curl下载时如果没有加上-o
或-O
参数就会将结果输出到屏幕上。