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,真的是一门编程语言。等待日后完善吧。
网友评论