Linux 基本操作
1,Linux常识
(1)查看文件:
到目标目录下:
cat <<END >text.fa #用cat 创建文件 <<之后的字符串停止编辑文件, > 之后是给文件命名
cat text.fa # 适用于文件比较小的时候阅读,否则就会刷屏
less text.fa #比较推荐,查看后按q退出,不在命令界面留痕迹。
more text.fa #打印在命令行上。
head / tail text.fa #查看text.fa的首/尾
head / tail -n +k text.fa #较为常用,从头/尾查看到指定的K行,比如:矩阵,tail -n +2 text.fa , 就是我的矩阵有标题行,但是我想略过标题行。
faste文件格式:大于号 + 序列名称 后面才是序列
(2)常用操作
man + 命令 # 查看命令的介绍及其参数
ls -a #显示隐藏文件(这都可以用man ls 查看)
ls -lt #按时间进行排序 从新到旧
ls -ltr #从旧到新
pwd #获得当前路径
cd + 路径 #查找目标目录,后什么也不跟,就是回到家目录 . 代表当前目录 ..代表上一级
du -h README.txt #查看文件大小
ls -lsh README #也是查看文件大小
mkdir + 文件名称 #可以多加几个文件名,同时创建多个文件。
mkdir -p a/b #同时创建a文件夹及其子目录b
小技巧:在命令行界面,可以按ctrl + A 到命令行的开头, CTRL + E 则是到命令行结尾
文件上下翻转和左右翻转 : tac: 文件翻转,第一行变为最后一行,第二行变为倒数第二行; rev 每列反转,第一个字符变为最后一个字符,第二个字符变为倒数第二个字符。
(3)linux下文件操作
1) 复制文件
cp filder1 filder2 ... target_dir # 将一个或多个源文件或者目录复制到已经存在的目标目录。
#常用的参数
-i #覆盖前先询问
-f #强制覆盖
-r #递归拷贝
-p #保留文件或目录的属性,主要是文件时间,因为有时候处理文件时还需要时间的先后
-b #备份复制,若目标文件存在,先备份之前的,再把新的覆盖过去
-u #更新复制,若源文件和目标文件都存在,只在源文件的修改时间比较新时才复制
2) 移动文件
mv filder target # 移动文件到目标文件夹
# 常用的参数
-f #强制覆盖
-i #覆盖前询问
mv 小技巧 :想给单个文件重命名的时候 ,可以使用 mv old_name new_name 。但是想给多个文件批量命名 可以使用 rename
- 创建软链接
rename 被替换的字符串 替换的字符串 文件 #可以用*批量替换文件 eg: rename text data *fa
4)ln(link):给文件建立快捷方式(ln -s filder target )
注意:在建立软连接时,原文件要使用绝对路径。如果希望软链可以让不同的用户访问,不要使用 ~。 建立软连接,是简化文件访问方式的一个办法。把其它文件夹下的文件链接到当前目录,使用时只需要写文件的名字就可以了,不需要再写长串的目录了
ln -s /home/lhg/data/text1 target dir #将text1在目标文件夹建立软链接
# 常用参数
-s #软链接
-f #强制链接(一般用于覆盖原有的软链接)
小技巧:每次输入绝对路径都很麻烦,怎么能简便呢?
pwd : 输出当前所在的目录 ,这地方要注意,要在文件所在目录下
``为键盘 Esc 下第一个按键 (与家目录 ~‘符号同一个键),写在反引号内的命令会被运行,运行结果会放置在反引号所在的位置
ln -s `pwd`/text1 target dir #将text1在目标文件夹建立软链接的快捷方式
5) 删除命令
rm : 删除一个或多个文件和目录,也可以递归删除所有子目录,使用时一定要慎重。 rm 命令删除的文件很难恢复。 rm -rf /* ,千万不要执行这个命令!!!!!
rm -rf * #删除当前目录下的所有文件
# 常见参数
-f #强制删除
-i #删除前询问是否删除
-r #递归删除
5)文件压缩和文件解压(gzip , gunzip)
gzip filder #压缩filder文件,默认是将filder删除,然后生成filder.gz
gunzip filder #解压文件,同样也是删除filder.gz , 生成filder
gzip -c filder > filder.gz # 压缩文件,但是保留filder源文件
gunzip -c filder.gz > filder #解压文件,同样保留filder 文件
小诀窍 :gunzip 可以记为滚zip包,即让zip包混蛋(解压)
6)对fasta格式文件的常用处理
wc(what count ) : 一般使用 wc -l 获取文件行数
wc -l data.fa #获取data.fa的行数
grep (对每一行进行模式匹配) : 后跟字符串或正则表达式
grep '>' data.fa #匹配data.fa文件中'>',返回序列的名称
#想统计序列数
grep '>' data.fa | wc -l # | 是管道符号,可以将上一步命令得到的结果传至下一命令
grep -c '>' data.fa #-c 参数 ,返回序列数而不返回序列名称
但是面对fasta文件末尾,有我们不想要的杂字符怎么办?
grep -v '不想要的内容' data.fa >data1.fa #-v 不输出匹配上的行,即data1.fa是清洁数据啦
6)对序列名的修改
有两种方式:
其一:sed ,是文件内容编辑工具,常用于替换、取得行号等操作。
sed 's/被替换的内容/替换内容/' data.fa #替换掉不想用的内容,打印在屏幕上
sed 's/被替换的内容/替换内容/' data.fa > data1.fa #不打印在屏幕上,输入在data1.fa里
sed -i 's/被替换的内容/替换内容/' data.fa #屏幕上没有输出,直接在源文件改
其二:cut , 更适合于矩阵操作,去除其中的一列或者多列。 由于FASTA 文件中序列里面是没有任何符号的,而如果名字比较长,则可以指定相应分隔符就行cut,这样既处理了名字,又保留了序列。
cut -f 1 -d ' ' data.fa #以空格为分隔符,保留第一列。
-f #指定取出哪一列,使用方法为-f 3 (取出第 2 列), -f 3-5 (取出第 3-5 列), -f 2,5 (取出第 2 和第 5 列)。注意不同符号之间的区别。
-d # 设定分隔符, 默认为 TAB 键。如果某一行没有指定的分隔符,整行都为第一列。