碎碎念:完蛋了,虽然补完了linux的课程但是感觉linux对我来说还像新的一样,完全不知道怎么用以及有什么用,唯一能记住的东西只有自己以前在书上学过的部分,现在回想起来觉得前面R的内容学的好,不会只是因为我本来就会吧!!!∑(゚Д゚ノ)ノ,突然就明白了曾老师在群里说完成Linux的题目需要至少1个月才能完成,简直保守了----
附上曾老师Linux题目的链接:http://www.bio-info-trainee.com/2900.html
笔记正文如下:
lscpu
# 查看CPU信息
free -h
#查看内存信息
df -h
#查看硬盘信息
du -h -d 1
##查看第一层文件夹的大小
du -sh ~
#查看家目录的总结,~可以被其他文件夹名代替
top
#查看系统进程和任务,按q或者ctrl+C退出
htop
#可以达到相同的效果,但是需要用conda安装
htop -u <username>
#可以只看某一个用户名的使用情况
由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等(注:=前后不要有空格)
a=gene
echo $a
#gene
echo 'This is a $a'
#This is a $a
echo "This is a $a"
#This is a gene
单引号:变量不会被解释
双引号:变量会被解释
用于记录命令的运行结果,常用的是$?,用于获取上一条命令的执行情况,输出0时代表成功,不是0就代表出错了
ls
echo $?
#0
# 写法1
if commad
then
commands
fi
# 写法2
if command
then
commands
else
commands
fi
if [ 1 -eq 1 ]
then
echo 'Hi'
else
echo '???'
fi
#Hi!
#另一种写法
if [ 1 -eq 1 ]; then echo 'Hi'; else echo '???'; fi
注意方括号[]和两个1之间都有空格,否则会报错
;表示语句的分隔,各干各的
如果写&&就有承接关系,只有前面执行成功了后面才能执行
for i in list
do
commands
done
for i in 1 2 3 4 5
do
echo "${i} Hi!"
sleep 3s
done
for i in {1..10}
do
touch file${i}
done
# 注意:变量前要加${}
# 两种使Linux把内部正则表达式提前展开的方式
for i in $(ls file\*)
for i in `ls file\*`
while read id
do
commands
done
for i in {1..10}
do
touch file${i}.txt
done
ls file* > config
cat config | while read id
do
mv ${id} ${id%.txt}
done
id=example.test.fq
echo ${id#example}
脚本首行的 #! 符号是Linux的Shebang符号,指定解释器,一般用bash
#!/bin/bash
但作为文件而言,有没有这一行不影响脚本的使用
但当做命令来用在Linux在使用其他编程语言,需要在shebang中定义解释器,Python是python、python2、python3,R是 Rscript
可以用which来查找解释器的位置,例如which Rscript
shebang具有扩展性
通用写法如下
#!/usr/bin/env bash
#!/usr/bin/env python
#!/usr/bin/env Rscript
bash test.sh 1>test.log 2>$1
1是标准输出流,2是标准误输出流
tail -f nohub.out
# 可以实时查看命令
结尾:Linux的内容实在太干了,感觉要反复练习好久才能掌握。一个3小时的直播回发要反复拖回来看,学习起来要花至少5小时,再接再厉吧~
生信技能树,生信马拉松,卖萌哥
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。