文件系统结构
查看CPU信息
Thread per core:线程,翻译成人话就是说,一个八核八线程就是说,一份活有八个人干,效率可能不会X8,但是一定大于1
查看内存信息 free -h
查看硬盘信息 df -h
查看文件大小 du -h -d 1
也可以用du -h -d 2 ,后面的数字显示的是展开的层级
查看文件大小:du -sh ~
查看系统的进程和任务:1.top (htop) 2. ps -ef
top: 类似于任务管理器
退出:Ctrl C 或者 type C
htop: 配色很好看,高级版,鼠标可以和界面交互作用
这个图片里上面的八个框框代表的是八个线程
ps -ef
jobs
top & : 将top任务放在后台运行,底下显示的数字指的是 这个任务所代表的编号
jobs 可以查看正在运行的任务,为什么这里显示top的任务是stopped,因为top本身就是显示终端,这里在后台不能运行
kill
kill -9 16570 : 关闭这个进程
“-9”的意思是kill的参数有很多,-9 是其中的一种
变量
自定义变量
由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等(注:前后不要有空格)
echo a : 打印字符串 ,不解释变量
echo $a : 打印其背后的值 , 解释变量
单引号:变量不被解释
双引号:变量被解释
环境变量
奇怪的数字是 颜色代码
\U 指的是user
状态变量
用于记录命令的运行结果
$?: 返回值是否是非零值,这个很重要,一定要记住,后面的代码经常出现
位置参数变量
用于向命令或者程序脚本中传递信息
!/bin/bash : 位置是$0
analysis_dir=$1 : 位置是上面之后的1号位置
诸如此类,2号位置,3号位置等等
结构化语句
条件语句 if
if 数值判断
这里要注意[ ],这个中括号里面是有空格的!!!,如果没有空格,例如 1] ,这个会被判断成是一个东西
if字符串判断
if 文件判断
for 循环
常见格式:for i in list
for循环常见格式 : list ,fo i in list
反引号
里的内容会被优先执行
While 循环语句的常见格式
read id里面的id是一个形式参数,任意命名。它也可以叫别的名字,比如说,read qyy ,后面跟着也写一样的东西就行
cat config | while read id; do mv $id ${id%.txt}; done
#%的意思是拿掉点之后的后缀
参数扩展
去尾比掐头更重要
作业
$ for i in {01..10}
> do
> echo SRR12345${i}.sra >> config
> done
$ cat config |while read id
> do
> echo ${id%.sra}.fastq
> done
snakemake bpipe nextflow make+makefile
Shell脚本
shell 脚本:一般会以.sh为后缀 , 可以和普通文件区分开
bash: shell的解释器 另一种编译器是dash
shell脚本更改权限
脚本的$ 符号的意思是:这里是普通用户,
#! 符号的意思是:这里是管理员权限
chmod :change mode 改变模式
764:自己是可读可写可执行 同组是可读可写 其他人是可读
777: 权限最大,所有人都可以可读可写可执行
参数传递
1: 标准输出流:打印到屏幕上的
任务提交
nohup:不要挂断,把任务提交到服务器上运行,如果没有这个命令,×掉对话框之后,就会打断任务,有了这个命令就可以像B站一样后台运行