这一部分内容和软件安装有部分重叠
(关于变量和环境变量)
1 Linux系统环境
- 文件系统结构:一切皆文件 / 虚拟目录的根目录,通常不会在这里存储文件 /bin 二进制目录,存放许多用户级的GNU工具 /home 主目录,Linux在这里创建用户目录 /lib 库目录,存放系统和应用程序的库文件 /media 媒体目录,可移动媒体设备的常用挂载点
Linux系统一般有4个主要部分:内核、shell、文件系统、应用程序
查看CPU信息:lscpu
查看内存信息:free -h
查看硬盘信息:df -h
查看文件大小:du -h -d 1/du -sh ~
查看系统进程与任务:
top(htop)
ps -ef
jobs
2 变量
调用变量时,要在变量前加一个$
2.1 环境变量
用于存储有关shell会话和工作环境的系统变量
常见环境变量见上一篇笔记
2.2 位置参数变量
用于向命令或程序脚本中传递信息
$n:n为数字
$0代表命令本身
$1~$9代表第1~9个参数
10以上的参数需要用大括号包含,如${10}
2.3 状态变量
用于记录命令的运行结果
$?:获取执行上一个指令的执行状态返回值,返回0表示上一个命令或程序执行成功,返回的值非0表示上一个命令执行失败
2.4 自定义变量
由用户自行定义的变量
可用于用户编写的脚本,多个命令间的值传递等
= 前后不要有空格
在单引号中,变量不会被解释
双引号中,变量被解释
因此在使用文本处理三驾马车时都用' ',awk要直接接收到$1 $2 $3,如果用" " $1会被shell提前展开
3 结构化语句
3.1 if条件语句
3.1.1 if条件语句的常见格式:
if进入 fi退出
3.1.2 if条件语句的常见条件
3.1.2.1 数值判断
equal: INT1 -eq INT2
两数相等返回为真
INT2和]之间也有空格!
每一个空格都要打出来!
常用:判断上一个命令是否执行成功?
3.1.2.2 字符串判断
-z STRING 如果STRING的长度为零返回为真 空为真
3.1.2.3 文件判断
!取反
3.2 for循环语句
3.2.1 for循环语句的常见格式
for i in list
do
commands
done
变量要加{ },否则容易分辨不出变量
- 如何能打印出gene1?
list的三种方法:
1.直接写出list
2.先定义一个list变量
3.可以用命令生成,注意加反引号代表命令优先被执行
3.3 while循环语句
3.3.1 while循环语句的常见格式
while read id
do
commands
done
3.3.2 参数扩展
作用:掐头去尾
一般来说,去尾比掐头更常用
%常用
注意. *的相对位置
- 练习题
一个> 重定向 会把里面的内容清空
两个>> 表示追加
第2题先把结尾的.sra删除再加上.fastq完成替换
4 shell 脚本编程
env调用当前环境下激活的编译器
shell脚本:修改shell脚本的文件权限后,可以直接通过路径调用(充当command的作用)
file1.sh变成可执行文件,可以当作一个命令直接执行
这个命令是否在环境变量中?
不在环境变量中可通过路径来调用
复习之前的421
shell脚本:参数传递
通过位置参数可以重复利用脚本
fq2fa.sh脚本完成格式转换
shell脚本提交
1:标准输出流
2:标准误输出流
报错也和1一起输出
重点:任务提交
使用PS找出PID
-9 现在马上立刻无条件停下来这个任务