01 Linux 系统环境
文件系统结构
/ 虚拟目录的根目录。通常不会在这里存储文件
/bin 二进制目录,存放许多用户级的GNU工具
/boot 启动目录,存放启动文件
/dev 设备目录,Linux在这里创建设备节点
/etc 系统配置文件目录
/home 主目录,Linux在这里创建用户目录
/lib 库目录,存放系统和应用程序的库文件
/media 媒体目录,可移动媒体设备的常用挂载点
/root root用户的主目录
/sbin 系统二进制目录,存放许多GNU管理员级工具
/run 运行目录,存放系统运作时的运行时数据
/tmp 临时目录,可以在该目录中创建和删除临时工作文件
/usr 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里
• 查看CPU信息:lscpu • 查看内存信息:free -h • 查看硬盘信息:df -h • 查看文件大小:du -h -d 1 • 查看文件大小:du -sh ~ • 查看系统进程: top htop 动态查看,看所有用户; htop -u June16【即自己的登录名】,看自己在运行的命令 ps -ef | grep "$LOGNAME" 该命令执行瞬间在进行的命令
变量
环境变量、状态变量、位置参数变量、自定义变量,调用变量时,要在变量前面加一个 $ 符号
• 环境变量: 用于存储有关shell会话和工作环境的系统变量
常见环境变量:
• $HOME:当前用户的主目录
• $PATH:shell查找命令的目录列表,由冒号(:)分隔。
• $SHELL:bash shell的全路径名
• $LOGNAME:当前用户的登录名
• $PS1:shell命令行界面的主提示符
• 位置参数变量: 用于用于向命令或程序脚本中传递信息
• 状态变量: 用于存储有关shell会话和工作环境的系统变量
• 自定义变量
由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等
03 结构化语句
• 条件语句 if
常见格式
常见条件:数值、字符串、文件判断
数值判断
if [ $? -eq 0 ] ##前后要有空格 then touch ok.txt fi
字符串判断
文件判断
• 循环语句 for 和 while
for
常见格式
for i in {1..10} do touch file${i} ##为了不出问题,可以变量都加上{} done
!!!!!
不按shift时直接按~键即可打出反引号
while
常见格式
• 参数扩展
索引位置从0开始
练习
1.生成SRR1234501.sra到SRR1234510.sra这10个id
2.将结尾的.sra替换成.fastq
for i in {01..10} do echo SRR12345{i}.sra >> config done cat config | while read id do echo ${id%.sra}.fastq done cat config | while read id do echo ${id//sra/fastq} done
两个>>,否则不行
生成文件时sra前多了一个空格,while循环中没有空格→替换失败
04 Shell 脚本编程
• Shell 脚本
保存脚本
写三句命令,两句正确一句错误 vim test.sh #!bin/bash pwd pwd ppp 1.不进行重定向,结果直接输出到标准输出流(屏幕) bash test.sh 2.进行重定向,但不指定标准输出和标准误输出 正确的在out.log中,错误的输出到标准输出流(屏幕) bash test.sh > out.log 3.进行分开重定向,正确与错误分别进入两个log文件 bash test.sh > out.log 2 > error.log 4.进行分开重定向,将2输出到1中,两者都输出到out.log bash test.sh > out.log 2>&1 ## 最推荐,可以把有问题的命令清晰呈现 cat out.log
shell脚本的文件权限
ll test.sh chmod 764 test.sh
参数传递
vim test2.sh i #!/bin/bash cat $1 ESC :wq bash test2.sh readme.txt
• 任务提交
• nohup :不要挂断任务,即把任务提交到服务器上运行 • & :任务后台运行,通常与 nohup 连用 • top :实时显示系统中各个进程的资源占用状况,按 q 退出 • ps :Process Status列出当前系统中运行的进程列表, 一般加上 –ef 参数 • kill :杀掉进程,kill [PID]
vim sleep.out i #!/bin/bash for i in {1..500} do echo $i>>sleep.out sleep 2s done ESC :wq 1.挂后台运行 nohup bash sleep.out & 2.动态查看输出内容(此处查看nohup.out是没有内容的哦) tail -f sleep.out 3.用top、htop分别查看命令的运行情况 top -u Last30 htop -u Last30 4.用ps -ef查看挂后台的命令 ps -ef | grep "June16" ##"登录名" 5.杀死命令 kill -9 id ## kill -9 无条件杀死
推荐bash教程
1.阮一峰的bash脚本教程Bash 脚本教程 - 网道
2. 鸟哥的Linux私房菜:基础学习篇 第四版 (第14章)第十二章、学习 Shell Scripts | 鸟哥的 Linux 私房菜:基础学习篇 第四版
更多推荐
Linux 之shell脚本编程
发布评论