linux_shell使用
一、hash命令
说明:linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找:
hits表示最近输入的该命令的次数
参数:
hash -l #参数-l 既可以看到hash表命令的路径,也可以看到它的名字,结果如下 #builtin hash -p /bin/rm rm #builtin hash -p /usr/bin/wget wget #builtin hash -p /usr/bin/awk awk #builtin hash -p /usr/bin/man man hash -p # hash -p /usr/bin/grep grep#将grep 添加到hash表中 hash -r #清空hash表 hash -d grep#清除hash表中的grep记录
二、shell多行注释
<< COMMENT 注释行1 注释行2 ... 注释行n COMMENT if [ ! -d temp ] then mkdir temp fi >temp/exon_all.fa >exon_all.fa << Comment #step1:读取exon_bed的每一行,每一行相当于一个circRNA,将每一行值付给相应变量 #step2:生成过程文件:chrom_start_end_bed记录了exon_bed的每一行信息 #step3:bedtools intersect获取all_exon_from_gtf文件和chrom_start_end_bed交集 #step4:bed_over.py对step3产生的交集chrom_start_end_over_lap.bed文件中的overlap行选取最大外显子区间 #step5:使用bedtools getfasta获取chrom_start_end_over_lap_bed文件对应的fa序列,即完成对exon_bed文件一行的序列提取工作 #step6:进行合并序列操作,先将exon_bed中的>header写入chrom_start_end.fa #step7:将bedtools getfasta获取的exon序列去掉>行后再去掉换行符,并追加到step6对应的chrom_start_end.fa中 #setp8:最后合并exon_bed文件每一行对应的fa序列,生成exon_all.fa序列文件 Comment
三、crontab
/etc/cron.deny 表示不能使用crontab 命令的用户。
/etc/cron.allow 表示能使用crontab的用户。
如果两个文件同时存在,那么/etc/cron.allow 优先。如果两个文件都不存在,那么只有超级用户可以安排作业。
每个用户都会生成一个自己的crontab 文件。这些文件在/var/spool/cron/crontabs/$USER,查看这个文件内容,和crontab -l结果一致
如果crontab不重定向输出,并且crontab所执行的命令有输出内容的话,是一件非常危险的事情。因为该输出内容会以邮件的形式发送给用户,内容存储在邮件文件/var/spool/mail/$user
crontab -e 0 22 * * 2,4,0 python crap.py > zhcw.csv
四、linux下解压.rar文件
sudo apt-get install unrar unrar x cell_pic.rar pic/
五、vim编辑文件,换行后行首总有双引号
试试:set paste
六、大文件获取行数
time awk 'END{print NR}' InputFile
自己做的测试:12G文件,time用了10.5s(但是time wc -l 用了3.5s,怎么回事?)