Linux常用的命令及初窥正则表达式--The learning notes of the biostar handbook(2)

Linux常用的命令

目录操作命令

  • ls 显示目录文件

ls -al
-a 显示所有文件,包括.及..
-l 详细信息
-d 显示目录本身的信息,而不看目录下的内容
-i 显示文件i nodes

  • mkdir 目录创建命令

mkdir -p ~/abc/def 同时创建目录abc及子目录def
-p 递归创建,可同时递归创建多个目录

  • cd 变换进入目标目录

cd ~ 代表进入家目录
cd ..返回上一级目录

  • rmdir 删除空目录

rmdir [dir] 目标目录必须为空目录才能删除,否则报错
rm -r [dir] 删除目录(包括空与非空目录)

  • pwd 输出当前目录

pwd

文件操作命令

  • cp 文件或目录复制命令;复制的同时支持修改文件名
    cp [源文件] [目标文件]

-r 复制目录
-p 保留文件属性

  • mv 剪切文件、重命名
    mv [源文件] [目标文件]
  • rm 删除文件或目录

-r 删除目录
-f 强制执行

  • touch 创建空文件
    touch filename
  • cat 显示文件内容(不适合文件分屏查看)
    cat filename

-n显示行号

  • more 分页显示文件内容
    more filename
  • head 显示文件内容头几行

-n 制定行数 (默认显示头10行)

压缩及解压缩命令

  • .gz Linux下最常用的压缩格式
    命令:gzip(压缩),gunzip|gzip -d(解压缩)

压缩后不保留源文件

  • tar Linux下的压缩命令不能压缩目录,只能压缩单个文件,那么如果需要压缩目录需要对目录先进行打包
    tar [打包后的文件名] [需要打包的目录]

通常我们下载的文件或安装包文件名大部分以.tar.gz结尾,解压缩的命令可用 tar -zxvf filename 压缩生成.tar.gz的文件可用tar -cxvf filename.tar.gz filename
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
如果是tar.bz2结尾的文件则用一下命令解压
tar -xjvf filename.tar.bz2
压缩命令
tar -cjf filename.tar.bz2

"|"管道符

将上一个命令的标准输出结果作为下一个命令的标准输入

实例演示

创建目录~/biostarhandbook/lec03
mldir -p ~/biostarhandbook/lec03
进入目录
cd biostarhandbook/lec03
下载文件:SGD_features.tab及SGD_features.README

wget https://downloads.yeastgenome.org/curation/chromosomal_feature/SGD_features.tab
wget https://downloads.yeastgenome.org/curation/chromosomal_feature/SGD_features.README

查看目录下文件
ls -l

总用量 3192

-rw-rw-r-- 1 *** *** 1557 11月 19 2014 SGD_features.README
-rw-rw-r-- 1 *** *** 3264490 1月 14 2017 SGD_features.tab

显示当前所在目录
pwd
将两个文件打包并压缩为gz格式

cd ..
tar -czvf lec03.tar.gz lec03
ls
# lec03  lec03.tar.gz

解压缩
tar -xzvf lec03.tar.gz
查看SGD_features.tab
more SGD_features.tab
cat命令查看文件
cat SGD_features.tab
用wc命令查看SGD_features.tab文件的行数、字数、字符数
cat SGD_features.tab | wc

将cat命令的标准输出做为wc的标准输入
16454 425719 3264490

如果仅需查看行数
cat SGD_features.tab | wc -l

16454

查看文件的头10行
cat SGD_features.tab | head

grep与正则表达式

在初步学习了grep之后,觉得grep类似与我们常用的文本程序下的查找与替换工具,且支持了强大正则表达式,所以grep的功能变得非常强大。

grep

grep过滤来自一个文件成标准输入匹配模式的内容,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
具体的参数可用man grep查看

实例演示

查找SGD_features.tab文件匹配“YAL060W”的行
cat SGD_features.tab | grep YAL060W

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
grep -n pattern files 即可显示行号信息
grep -c pattern files 即可查找总行数
grep -v pattern files 查找不包含匹配项的行

查看不包含Dubious的总行数
cat SGD_features.tab | grep -v Dubious | wc -l

15737

输入与输出的重定向

Linux的标准输入输出

设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

输出重定向

类型 符号 作用
标准输出重定向 命令>文件 以覆盖的方式
命令>>文件 以追加的方式
标准错误输出重定向 错误命令 2>文件 以覆盖的方式
错误命令 2>>文件 以覆盖的方式

实例演示

如何将匹配得到的行输出为文件。grep命令默认的标准输出的显示器,即为/dev/stdout,要保存为文件,需要将输出重定向>
cat SGD_features.tab | grep YAL060W > match.tab
ls

match.tab SGD_features.README SGD_features.tab

查看match.tab
more match.tab

查看匹配gene的行数
cat SGD_features.tab | grep gene | wc -l

2093

利用cut命令截取第二列中匹配ORF的行
先查看第二列的头10行
cat SGD_features.tab | cut -f 2 | head

-d : 指定字段分隔符,默认是制表符
 -f :指定要显示的字段
 -f1 :显示第一个字段
 -f 1,3 显示第一个和第三个
 -f 1-3 显示第一个到第三个
 -b : 截取字节数
 -c : 截取字符

cat SGD_features.tab | cut -f 2 | grep ORF | head
查看匹配的总行数
cat SGD_features.tab | cut -f 2 | grep ORF | wc -l
同时截取多列
cat SGD_features.tab | cut -f 2,3,4 | grep ORF | head
去除含有Dubious的行
cat SGD_features.tab | cut -f 2,3,4 | grep ORF | grep -v Dubious | wc -l
上述命令如用awk实现

cat SGD_features.tab | awk '{print $2}' | grep ORF | head
cat SGD_features.tab | awk '{print $2,$3,$4}' | grep ORF | head

截取第二列保存为type.txt文件
cat SGD_features.tab | cut -f 2 > type.txt
对type.txt条目进行连续排序并查看头10条
cat type.txt | sort | head
将相同的条目显示为1个
cat type.txt | sort |uniq | head
显示重复条目的个数
cat type.txt | sort | uniq -c | head
显示条目的种类
cat type.txt | sort | uniq -c | wc -l

正则表达式

bash的正则表达式包括基础正则表达式扩展正则表达式,它用来匹配预期要求的字符串。
基础正则表达式:

符号 描述
. 匹配除换行符以外的单个字符
^ 匹配前面字符串的开头
$ 匹配前面字符的结尾
* 匹配前一个字符的0或多个
[] 匹配中括号中的任意一个字符
[a-z][0-9][A-Z] 匹配范围内的任意一个字符
[^] 匹配除中括号内的字符以外的字符
{n}{n,} 匹配大括号前面字符至少n个字符
{n,m} 匹配大括号前面字符至少n个字符,最多m个字符
< 边界符,匹配字符串开始
> 边界符,匹配字符串解释

扩展正则表达式:

符号 描述
+ 匹配前一个字符的1个或多个
? 匹配前一个字符的0个或多个
|
() 单元或组合

sed及awk

目前还学习,感觉好难理解,尤其是awk,真的是一门编程语言。等待日后完善吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容