自动化运维pytest生信小白入门Linux

Linux系统环境与变量

2022-04-03  本文已影响0人  Ashu
  • Linux 系统环境

  • 变量

Linux 系统环境

文件系统结构

• 文件系统结构:一切皆文件(软件,命令,文本或是文件夹)

生信技能树小郭老师的课件图-文件系统结构

普通用户一般不会操作以下的文件夹,即使是管理员一般也很少操作以下的文件夹。普通用户一般只在自己的家目录操作,认清自己的家目录(Jan22)就可以:

/ 虚拟目录的根目录。通常不会在这里存储文件
/bin 二进制目录,存放许多用户级的GNU工具
/boot 启动目录,存放启动文件
/dev 设备目录,Linux在这里创建设备节点
/etc 系统配置文件目录
/home 主目录,Linux在这里创建用户目录
/lib 库目录,存放系统和应用程序的库文件
/media 媒体目录,可移动媒体设备的常用挂载点
/root root用户的主目录
/sbin 系统二进制目录,存放许多GNU管理员级工具
/run 运行目录,存放系统运作时的运行时数据
/tmp 临时目录,可以在该目录中创建和删除临时工作文件
/usr 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里

Linux系统

一般有4个主要部分:内核、shell、文件系统应用程序
内核shell文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
shell是一种应用程序,为用户提供操作界面,是用户与内核进行交互操作的接口。
shell也是一门编程语言(脚本编程)

生信技能树小郭老师的课件图-Linux系统

查看系统资源

查看CPU信息:lscpu
查看内存信息:free -h
查看硬盘信息:df -h
查看文件大小:du -h -d 1查看文件大小:du -h -d 1
查看系统进程:top(htop)或者 ps -ef 或者 jobs

du -h miniconda3
##查看miniconda3有多大,递归性去查,把地层的文件都给罗列出来
du -h -d 1 miniconda3
##列出一层,1是数字的1,不是L的小写
du -sh
##也可以直接查看

##查看系统进程
top
##打开一个窗口,显示正在运行的程序,类似windows的任务管理器
##按q退出
 htop
##显示更美观
##按q退出
 ps -ef 
 ##把服务器上所有正在运行的命令,程序都展示出来
 
ps -ef | grep Jan22
##一般只关心自己运行的程序

用top命令查看系统进程

top命令查看实时进程

htop命令显示更美观

htop命令直观展示

ps -ef命令

ps -ef展示所有正在运行的程序

查看自己运行的程序

ps -ef | grep Jan22
查看自己的运行程序

一般只要登录服务器,系统会自动帮我们运行一些程序。

补充知识

挂载物理硬盘

mount /dev/sda /trainee/Jan22
##挂载在上,原来的文件就不见了
##马哥linux课程,教怎么管理服务器,linux基础与shell脚本编程,鸟哥linux编程(台湾人)
#至少学半年以上才可以管理Linux

(初学者不适合去管理服务器,管理服务器要学习对应的管理方法。)

变量

Linux的变量有:环境变量,位置参数变量、状态变量、自定义变量。

环境变量、状态变量、位置参数变量、自定义变量,在调用变量时,要在变量前面加一个 $符号

环境变量:用于存储有关shell会话和工作环境的系统变量(如$PATH);

状态变量:用于记录命令的运行结果(如果正确运行,状态变量为0,如果运行错误,状态变量为非零);

位置参数变量:用于用于向命令或程序脚本中传递信息(传参);

自定义变量:由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等。

自定义变量

由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等,用等于号=来赋值(注:= 前后不要有空格)。在Linux里面,空格是一个字符,有无空格是天壤之别。

a=gene
a
##linux不识别a这个变量,linux格式:命令 [参数] 文件

变量前后有无$区别

echo打印变量前有无$的区别
echo 'This is a $a'
##This is a $a
echo "This is a $a"
#This is a gene
#单引号:变量不会被解释
#双引号:变量被解释

单双引号的区别

单双引号的区别

单引号:变量不会被解释
双引号:变量被解释

在用sed,awk的时候,script的部分都用单引号。

环境变量

用于存储有关shell会话和工作环境的系统变量。

$HOME:当前用户的主目录;

$PATH:shell查找命令的目录列表,由冒号(:)分隔。(最主要的环境变量,它保存的信息是几个路径,路径里面的工具是随时随地可以调用,安装软件要涉及到PATH变量);

$SHELL:bash shell的全路径名;

$LOGNAME:当前用户的登录名;

$PS1:shell命令行界面的主提示符;

$PS2:shell命令行界面的次提示符。

echo:①打印字符串②打印变量的值,变量调用要加$

echo $HOME
##记录每个人的家目录
echo $PS1
##命令行配色
source ~/.bashrc
##激活~/.bashrc

需要注意的是~/.bashrc和PATH的关系,PATH与变量之间的关系。

~/.bashrc系统配置文件,包含专用于你的bash shell 的bash信息、设置,每次登录或打开新的shell 时,该文件会被自动读取和执行。

$PATH输入命令时Linux会去查找PATH里面记录的路径,如果命令存在某一个路径中,就可以成功调用。

状态变量

用于存储有关shell会话和工作环境的系统变量

状态变量 作用
$? 获取执行上一个指令的执行状态返回值,返回0表示 上一个命令或者程序执行成功,返回的值为非0则表 示上一个命令执行失败。
$$ 获取当前执行的shell脚本的进程号PID。
$! 获取上一个后台工作的进程的进程号PID。
$_ 获取在此之前执行的命令或脚本的最后一个参数。
#####$?非常重要
ls
echo $?
##ls执行成功返回0
$?的用法

不成功的例子

sodjfa
##随便输如的命令(或是输入错的命令)
echo $?
#127
##上一句命令不成功,$?就会出现非零的参数,
$符号演示

位置参数变量

用于向命令或程序脚本中传递信息。

位置参数变量 作用
$n n 为数字,$0 代表命令本身,$1〜$9 代表第 1〜9 个参数, 10 以上的参数需要用大括号包含, 如${10}
$* `这个变量代表命令行中所有的参数,把所有的参数看成一个 整体
$@ 这个变量也代表命令行中所有的参数,不过 $@ 把每个参数 区别对待
$# 这个变量代表命令行中所有参数的个数

$n非常重要

说明

以上内容是听生信技能树小郭老师授课内容以及参考课件。

上一篇 下一篇

猜你喜欢

热点阅读