liunx操作入门
命令格式:命令+选项+文件
command [-optons [parameter]] [FILE]
ssh
ssh 用户名@ip地址
ssh xiongxiangyi@10.225.3.1
su 切换用户
w命令
查看当前使用集群用户
free -g 查看电脑内存使用状况
top看下大家有没有跑命令
实时查看系统运行状况
sleep暂停系统几秒
后加&放到后台
ifconfig 查看一些网络参数
echo 输出命令
echo{1..10}
history 查看历史命令
mkdir创建文件夹
mkdir -p tmp
cd 移动目录
cd ~ 回到自己的目录
cat 查看文档
cat >
快速输入脚本
cat -n 文件|grep 匹配内容 与grep -n 效果一样
cat ../sample.txt | tail -n +2#从sample.txt文件的第二行开始现实重点是通过tail命令调控
wget 下载
head
more 慢慢查看文件
less
less -S 文件 可以规范查看文件行和列清楚
VI 文本处理
grep
grep -n 匹配字符 文件
#返回匹配的行数和行内容,没有-n则只返回行内容
cut
cut -f 1 test.bad
cut表示我想按列提取文本,显示文件的第一列。可以通过使用管道|awk来扩展数据结构,$0代表着所有的数据,$1,2,3,4分别为第1:4列。
awk
awk 'print "http:genome.usc.edu/cgi-bin/das/hg38/dna?segment="$1":$2","$3'}' 文件名
# 双引号把常量括起来,就是不是变量的量如"asdadw"前面没有$符号。
学习吧
sort 排序
sort -k2,2nr 文件名|cut -f -1-3
-k2 -----第二列
2n------第二列看成数字
r----return反过来排
tr替换命令
软件安装
基础安装
1、先搜索安装软件下载地址
2、先为软件设置一个安装文件名字按自己习惯来
wget https://nchc.dl.sourceforge.net/project/bowtie-bio/bowtie2/2.4.1/bowtie2-2.4.1-linux-x86_64.zip
#下载软件包
unzip bowtie2-2.4.1-linux-x86_64.zip
#解压软件包
查看下解压的文件,绿色的为可执行文件
全路径调用,方便调用就加入环境变量
samtools安装
下载好包
解压j
tar xvfj samtool-1.10.tar.bz2
x----解压的意思
v-----弹出选项告诉你解压了啥
fj 文件类型
没有看见samtools
安装后需要make一下
就安装成了
快速启动方法
1、将程序位置赋值给变量使用$bowtie2 调用程序
bowtie2='/ldfssz1/ST_META/P18Z10200N0127_VC/tianliu/xiong/tools/bowtie2/bowtie2-2.4.1-linux-x86_64/bowtie2'
2、
alias bowtie2='/ldfssz1/ST_META/P18Z10200N0127_VC/tianliu/xiong/tools/bowtie2/bowtie2-2.4.1-linux-x86_64/bowtie2'
直接使用程序bowtie2相当于快捷方式
3、环境变量
export PATH="$PATH:/ldfssz1/ST_META/P18Z10200N0127_VC/tianliu/xiong/tools/bowtie2/bowtie2-2.4.1-linux-x86_64/"`
查看安装的版本
bowtie2 --version
conda类似于aptget
conda 包 install
shell脚本
for i in $wkd/*sra
do
echo $i
nohup fsatq &
done
source activate rna
bin_trim_galore=trim_galore
dir='/home/project/airway/clear'
cat $1 |while read id
do
arr=(${id})
fq1=${arr[0]}
fq2=${arr[1]}
nohup $bin_trim_galore=trim_galore -q --phred33 --length 36 --stringency 3
done
source deactibate
bash qc.sh config #config是传递进去的参数congfig 就是输入的值$1
什么是变量?
shell表格非常严格的
参数 $0
$1
外部参数传递进去了
注意 1 的 正 确 书 写 其 实 是 1的正确书写其实是 1的正确书写其实是{1},所以要注意规范防止出错到了${10}以来上就不能缩写了
通配符
*号这一类的
echo S[12]*
输出一类相似的东西
标准头文件
#!/bin/bash
循环的使用
ls sRR103952* |while read id;do echo $id;done
for i in {20..30};do echo SSR10395${i}.fsatq.gz;done
for i in SSR103952*;do echo ${i},done
for i in 'ls SSR103952*';do echo ${i},done #' '这个括号有点捕获的意思
批量软连接
ls /pbulice/project/RNA/ariway/raw_faq/*gz | while read id;ln -s $id $(basename $id);done
任何脚本存在两中输出一种标准输出一种—1or—2
脚本
bed=exon_probe.hg38.gene.bed
for bam in /home/project/*.bam
do
file=$(basename $bam)
sample=$(file%%.*)
echo $sample
export total_reads=$(samtools idxstats $bam|awk -F '\t' '{s+$3}END{print s}')# 为了把变量带入子程序中运行
echo The number of reads is $total_reads
beadtools
关于返回值的捕抓方式两种$()和’ '两个中间都是捕抓内容。
tmp='date'
echo $tmp
tmp=$(date)
echo='date'
可以通过借用捕抓捕抓出来的数据1,2两种欧
cut -f 2 configmapping|while read id;do echo $(basename $id);done|cut -d '_' -f 1
关于任务后台运行调到前台运
Shell支持作用控制,有以下命令实现前后台切换:
- command& 让进程在后台运行
- jobs 查看后台运行的进程
- fg %n 让后台运行的进程n到前台来
- bg %n 让进程n到后台去
- kill %n 杀死job PS:"n"为jobs命令查看到的job编号,不是进程编号.
fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的.
###可以通过对命令的组合调用后台将前台命令终止到后台然后后台启动运行
通过使用命令对集群的上自己的任务进行操作
nohup
qsub 提交任务
qstat -u username(这是你的用户名)
qdel -j id (删除服务器上的对应id的任务)
qsub -clear -cwd -l vf=4g,num_proc=4 -P P18Z10200N0127 -q st.q seqcat.sh
qstat|tail -n +3|awk '{print $1}'|while read line;do qdel $line;done
#直接移除所有的任务
从集群下载文件的方法:
除了xshell中的xftp以后的命令方法
sz
scp
上面这两个命令都可以下载资料下来,但是sz命令需要安装lr和sz支持就需要超级权限,由于公司服务器没有统一安装这两个命令也没有权限所以不测试了,这里scp,scp是通过ssh的方法进行下载,例如我现在电脑使用的系统是liunx的所以我使用这个命令就很方便。
== 我只在liunx系统上试过这个命令==
```powershell
scp xiongxiangyi@xx.xxx.x.x:/ldfssz1/ST_META/P18Z10200N0127_VC/xiongxiangyi/work/1.assay/03.profile/metaphlan3/FP200000077TR_L01_37.mp3_vir.profile /home/xiongxiangyi/Downloads
#@前面是你的用户名每个集群账户都有的东西,xxx处为你要下载位置的集群ip地址后面加:加全路径, 后面为你现在想要下载到的目录。
__移动到下载目录查看__文件已经下载过来了
通配符
就是通过一些简单的特殊表达形式来表达一类类似的东西。
D后面的*就是通配符,来暗指一类相似的文件。[]
脚本
一般格式,通过脚本来实现批量操作数据,或者运行流程
#!/bin/bash
#
#脚本内容
#!/bin/bash #bin下面有个bash
#MD5
#前面这里写一些头文件,不影响运行,但是可以方便别人的查阅
#可以将参数什么的放这里
#写脚本要注意所有情况
捕获
$()或者:``
通过捕获可以获取输出值并赋值给变量
xiongxiangyi@xiongxiangyi-PC:~$ a=$(ls ./)
xiongxiangyi@xiongxiangyi-PC:~$ echo $a
模板 Desktop Documents Downloads Music mywork.sh Pictures Videos work.py
xiongxiangyi@xiongxiangyi-PC:~$
%%.*删除两个点后面的部分
export bead=llll
echo $bid
perl -e 'print $ENV{bed}'
脚本要写好
cut -f 2 config.mopping | while read id ;do echo $(basename $id) ;done |cut -d"_" -f 1 1>a
文本处理
awk\grep\sed\paste\cat\diff\wc\vim
grep -w 匹配出你要的东西
grep -v
https://www.cnblogs.com/kevingrace/p/9299232.html
通过大概的方法来观察数据的ID
head -1 ample.txt|tr '\t' '\n'|cat -n
cut -f1 sample.txt|sort -u
cut -f1 sample.txt|sort |unique -c|sort -k1,1 -r|head -20
awk '{print $1}' sample.txt|paste -s -d +|bc
#bc是简易计算器
666