本文是来自【生信人应该这样学linux】的学习笔记,希望能在5天内看完视频!
生信人应该这样学linux
优雅的Linux
cheatsheet
生物信息学100个软件安装代码
优秀学员笔记
linux命令行文本操作一文就够
督促自己好好学习,天天向上呀!
常用命令
1.登录及熟悉服务器
w显示当前登录用户
ssh username@ip地址 登录ssh
passwd username更改用户密码
df -h查看硬盘信息
free -m看可用内存
ifconfig查看ip地址
su切换用户
2.文件
linux所有目录都在/下面
tree -h显示当前文件夹下结构及文件大小(各子文件夹下有哪些文件)。若无tree命令,可sudo yum install tree下载;出现乱码时可将 alias tree='tree --charset ASCII'加入~/.bashrc文件里
pwd 显示当前路径
touch创建新文件
history显示历史命令
mkdir创建文件夹
mkdir folder{1..10}创建了folder1-10个文件夹
mkdir -p folder1/folder2/folder3若folder不存在,创建folder,且可以同时递归创建多层;若folder存在,则不创建
[user@lab temp]$ mkdir -p folder_{1..5}/folder_{1..5}
[user@lab temp]$ ls */
folder_1/:
folder_1 folder_2 folder_3 folder_4 folder_5
folder_2/:
folder_1 folder_2 folder_3 folder_4 folder_5
folder_3/:
folder_1 folder_2 folder_3 folder_4 folder_5
folder_4/:
folder_1 folder_2 folder_3 folder_4 folder_5
folder_5/:
folder_1 folder_2 folder_3 folder_4 folder_5
cd ~ 回到自己主目录
|管道符,传递数据
grep文本搜索
history | grep cat将history的结果传递给grep 查找cat
top 查看进程
&放在最后,命令在后台执行
ps默认展示显示运行在当前控制台下的属于当前用户的进程
ps -a 显示除控制进程( session leader① )和无终端进程外的所有进程
ps -ef标准格式显示进程 -e显示所有进程,-f显示完整格式的输出
sleep 沉睡
*通配符
echo将内容打印到屏幕
echo {1..10} 打印1-10
echo $PATH变量在shell里是$变量名变量名要大写
echo $PATH | tr ":", "\n" tr将一个字符替换为另一个字符
export PATH=$PATH:/cluster/home/yzhan/bin/bin/ 将路径导出到环境变量中
wsx@wsx-ubuntu:~ echo $PATH | tr ":", "\n"
/opt/scm/bin
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/opt/ibutils/bin
which mkdir 查看mkdir命令的位置
man ls 查看ls的帮助文档
locate file_name searches a file
cp file file_copy copy a file
cp -r copy files contained in directories
rm file deletes a file
rm -rf同时删除文件及目录
mv file1 file2 moves or renames a file
rename regexp files renames multiple files
PS1="\[\e[32;1m\]\u[\e[33;1m\]\t\[\e[35;1m\]\w\n\[\e[0;40m\]$" PS1="\[\e[35;1m\][\u@\h \W]$>\[\e[0m\]"使界面好看一点(慎用)
3. 压缩与解压缩
1.压缩
2.解压缩
unzip file.zip
tar xvfj file.tar.bz2
tar xvfz file.tar.gz
gunzip file
3. 批量解压缩
for i in `ls *tar.gz`
do
tar -zxvf $i
done
tar –xvf file.tar 解压 tar包
tar -xvfz file.tar.gz 解压tar.gz
tar -xvfj file.tar.bz2 解压 tar.bz2
tar –xZvf file.tar.Z 解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip
linux下解压命令大全
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
cat file 查看文件
cat -n file 查看的同时显示行数
cat > test.txt 创建并开启输入文件模式,之后ctrl+c退出即可
cat file1 file2 > file3 merges files 1 and 2 into file3
cat *fasta > all.fastaconcatenates all fasta files in
the current directory
head file prints first lines from a file
head -n 5 file prints first five lines from a file
tail file prints last lines from a file
tail -n 5 file prints last five lines from a file
less file view a file
less -N file includes line numbers
less -S file chops long lines
less -SN file q退出
space bar翻页, g第一行, G最后一行,j下, k上, /<pattern>往下搜索模式,?<pattern>往上搜索模式, n前一个匹配字符,N后一个匹配字符。
more test.txt慢慢查看文件的内容,q退出,Enter向下查看
wc file counts lines, words and bytes of the file
wc -l filecount lines
grep pattern file Prints lines matching a pattern
grep -c ‘pattern’ file counts lines matching a pattern
grep -n ‘pattern’ file同时显示行数
grep -c "[^ \\n\\t]" some_data.bed grep命令实现非空行计数
cat -n test.bed | grep H3K4me1
grep -v pattern file选择不带pattern的行; -o选项只抽离输出匹配的部分;-v选项排除匹配到的,-w进行完全匹配。这样可以防止,你想排除 abc结果把 abc1, abcd也排除掉了。-B指定输出包括匹配到的前多少行,比如 -B1就是前一行; -A指定输出包括匹配到的后多少行,比如 -A2就是包括了后两行。 -C指定输出包括匹配到的前后多少行。 grep支持基本正则表达式, -E指定支持扩展表达式,或者用egrep命令。
cut -f 1,3 file retrieves data from selected column in a tab-delimited file,显示文件的1,3列,-d指定分隔符,如-d ,指定,为分隔符
cut -f 1-3 file显示文件的1到3列
cut -f 1-3 test.bed | awk '{print $1$2}'传递给awk让其打印1-2行
cut -f 1-3 test.bed |awk '{print $1":"$2","$3}' 双引号
cut -c1-3 file显示文件的1-3个字符
得到坐标可以索取序列
column -t将输出列排列整齐,-s指定分隔符
sort排序应用
sort默认用空格或tab键作为域(列)分隔符
sort -t如果我们用其他形式的分隔符,需要用-t选项指定。
sort -k1,1V -k2,2nr test.bed
sort -k选项指定某列的排序方式。而每次使用 -k选项都要带上指定列的范围(start, end)。如果只指定一列,就为(start,start)了,像上面命令的 sort -k1,1就是。
sort -k2,2n这里的 n指定程序把第二列当做数值对待。如果不做设定,都是当做字符对待(shell都是这么对待数值数据的)。所以总结其他这一行命令就是对第一列按照字符排序,第二列按照数值排序。
sort -r反向排序,如果你只想反转一列,可以把它加在 -k选项后。
sort -V这里可以添加 V选项修改,让shell按照数字顺序排序而不是查字典的形式。
sort -M根据时间戳按月排序(3字符月份)
sort -c检查一个文件是不是已经按照过某种方式排过序了,一般echo $?shell返回0表示成功执行。
wsx@wsx-ubuntu:~$ sort -k1,1 -k2,2n test.bed | sort -k1,1 -k2,2 -c
sort:-:2:无序: chr1 10 19
wsx@wsx-ubuntu:~$ echo $?
1
wsx@wsx-ubuntu:~$ sort -k1,1 -k2,2n test.bed | sort -k1,1 -k2,2n -c
wsx@wsx-ubuntu:~$ echo $?
0
awk用法
awk的程序结构是pattern {action}
pattern可以是表达式或者正则表达式。pattern有点像 if语句,当它满足时就会执行相应的动作。
另一个 awk核心是它用$0表示所有列,$1,$2...等等表示对应的列
wsx@wsx-ubuntu:/tmp$ awk '{ print $2 "\t" $3}' example.bed
26 39
32 47
11 28
wsx@wsx-ubuntu:/tmp$ awk '{ print $2 $3}' example.bed
2639
3247
1128
wsx@wsx-ubuntu:/tmp$ awk '{ print $2 , $3}' example.bed
26 39
32 47
11 28
awk作为一门编程语言,它支持各种操作符(运算,逻辑,判断)喔。
wsx@wsx-ubuntu:/tmp$ awk '$3 - $2 >18' example.bed
chr1 9 28
wsx@wsx-ubuntu:/tmp$ awk '$1 ~/chr1/ && $3 - $2 > 10' example.bed
chr1 26 39
chr1 32 47
chr1 9 28
# 这里 ~ 符号用来匹配正则表达式
还有 awk存在一些变量,像 NR表示行号, OFS表示输出分隔符等
wsx@wsx-ubuntu:/tmp$ awk 'NR >= 3 && NR <= 5' example.bed
chr3 11 28
chr1 40 49
chr3 16 27
如果我们想把 gtf文件转换成为 bed格式,可以使用
wsx@wsx-ubuntu:~/Work/research/Promoter_Research$ head -n1000 Homo_sapiens.GRCh37.75.gtf | awk '!/^#/{ print $1 "\t" $4-1 "\t" $5}'| head -n 3
1 11868 14412
1 11868 14409
1 11868 12227
软件安装示例
非二进制可执行文件
cd ~/biosoft
mkdir samtools && cd samtools
wget https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2
tar xvfj samtools-1.3.1.tar.bz2
cd samtools-1.3.1
./configure --prefix=/home/jianmingzeng/biosoft/myBin
make
make install
~/biosoft/myBin/bin/samtools --help
~/biosoft/myBin/bin/plot-bamstats --help
cd htslib-1.3.1
./configure --prefix=/home/jianmingzeng/biosoft/myBin
make
make install
~/biosoft/myBin/bin/tabix