Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linux 基础与常用命令简介 生物信息学培训班 杭州,2018年1月18日 周银聪.

Similar presentations


Presentation on theme: "Linux 基础与常用命令简介 生物信息学培训班 杭州,2018年1月18日 周银聪."— Presentation transcript:

1 Linux 基础与常用命令简介 生物信息学培训班 杭州,2018年1月18日 周银聪

2 Linux 简介 起源 发行版 应用领域 与 Windows 比较

3 Linux 的起源 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而 编写的。
Linux是一套免费使用和自由传播的类Unix操作系统 ,是一个基于POSIX和UNIX的多用户、多任务、支 持多线程和多CPU的操作系统。Linux能运行主要的 UNIX工具软件、应用程序和网络协议。它支持32位 和64位硬件。 Linux继承了Unix以网络为核心的设计思想,是一个 性能稳定的多用户网络操作系统。

4 操作系统分类

5 Linux 发行版 Linux 发行版即通常所说的“Linux 操作系统”。
Linux 发行版包括 Linux 内核,以及将整个软件安装到电脑上的一套安装工具,还 有各种 GNU 软件,和其他的一些自由软件,在一些 Linux 发行版中可能会包含一 些专有软件。 目前正在积极开发中的发行版超过三百个,最普遍被使用的发行版有约十二个。目 前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora 等。 一个典型的发行版包括:Linux 内核,GNU 库和各种系统工具,命令行 Shell,图 形界面底层的X窗口系统和上层的桌面环境等。桌面环境有如 KDE 或 GNOME 等 ,并包含数千种应用软件。 Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。

6 Linux 的应用领域 个人电脑 服务器、主机和超级计算机 嵌入式设备
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服 务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP )或 LNMP(Linux + Nginx+ MySQL + PHP)组合。 目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。 个人电脑 服务器、主机和超级计算机 嵌入式设备

7 与 Windows 比较 比较 Windows Linux 界面 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键也几乎相同
图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux的终端机是从UNIX传承下来,基本命令和操作方法也几乎一致。 驱动程序 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的Windows下的驱动,也会比较头痛。 由志愿者开发,由Linux核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。 使用 使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 图形界面使用简单,容易入门。文字界面,需要学习才能掌握。 学习 系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。 软件 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 大部分软件都可以自由获取,同样功能的软件选择较少。

8 生物信息学与 Linux 应用 为什么要选择 Linux/Unix 平台作为生物信息学研究的主要平台?
生物信息学的重点研究目标是生物数据分析。尤其是未来生物学研究的特点是大量 大规模测序数据产生。 Windows 的窗口化软件适合可视化小规模运算,支持鼠标,缺乏对大数据的支持, 可定制性差; Windows Shell 的使用体验差,没有完善的命令;远程功能不够好。 Linux 具备大数据高性能支持,shell 可编程能力强;包含大量开发者开发生物信息 学软件包和脚本;可定制性好;支持轻量化的远程交互;开源,对生物数据分析来 说是最好的平台。

9 生物信息学与 Linux 应用 软件或平台名称 描述 BioLinux
BioPerl 整合大量生物学数据处理模块的 Perl 语言工具包 BioPython 整合大量生物学数据处理模块的 Python 语言工具包 Bioconductor 整合大量生物学数据处理软件包的 R 语言软件库 EMBOSS 欧洲分子生物学开源软件套装,用于序列数据处理及分子生物学研究 Mothur 16s RNA 数据分析 blast+ BLAST 本地 blast 软件,建库及序列比对 TopHat, Cufflinks 等 转录组测序数据分析工具

10 Linux 操作系统安装 国内 Linux 操作系统资源下载:http://mirrors.163.com
以 Ubuntu 为例: 安装镜像 ubuntu desktop-amd64.iso 系统刻录软件 UltraISO 等 其他(U盘、虚拟机软件)

11 主机安装 主机的安装与通用的操作系统安装方法一致 获取系统安装镜像 利用刻录软件将镜像刻录至U盘或光盘中
计算机开机 BIOS 设置为U盘启动 在初始界面中选择 “Install Ubuntu” 进行后续设置

12 虚拟机安装 通过 ISO 安装,和主机安装步骤类似(见文档); 通过安装好的虚拟机镜像直接使用 安装虚拟机软件 VirtualBox
新建虚拟机 选择专家模式,载入已有盘片 调整虚拟机设置 运行虚拟机

13 Linux的目录结构 /bin bin是binary的缩写。这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令。例如:cp,ls,cat等。 /boot 这里存放的是启动Linux时使用的一些核心文件。 /dev dev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Windows下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘 /etc 这个目录用来存放所有系统管理所需要的配置文件和子目录。

14 Linux 文件结构 查看文件结构基本命令: ls / /bin: bin是 Binary 的缩写, 这个目录存放着最经常使用的命令。
/boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜 像文件。 /dev : dev 是 Device (设备)的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 /home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名 是以用户的账号命名的。

15 Linux 文件结构 /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL文件。几乎所有的应用程序都需要用到这些共享库。 /root: 该目录为系统管理员,也称作超级权限者的用户主目录。 /tmp: 这个目录是用来存放一些临时文件的。 /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类 似与 Windows 下的 Program files 目录。 /usr/bin: 系统用户使用的应用程序。 /usr/src: 内核源代码默认的放置目录。 /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放 在这个目录下。包括各种日志文件。

16 文件名与文件类型 文件名是一个文件的标识。Linux系统中的文件名的命名规则与Windows 系统基本相同。它同样是由字母、数字、下划线、圆点等组成,最长不 能超过255个字符。在Linux系统中,没有像Windows系统那样明显的扩展 名,但它对字母大小写是严格区分的。 Linux有四种基本文件系统类型: (1) 普通文件:如文本文件、C语言源代码、Shell脚本、二进制的可执行文件等。 (2) 目录文件:包括文件名、子目录名及其指针。它是Linux储存文件名的惟一地方。 (3) 链接文件:它是一个文件的第二个名字,这是针对多用户共享同一文件而产生的文件。 (4) 特殊文件:Linux的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,这一 类文件就是特殊文件,常放在/dev目录内。

17 文件和目录权限 rwx r-x r-- rwxr-xr-- 权限组成 共9位,每3位为一组  共3组
各组依次代表文件所有者、同组用户和其他用户对该文件的权限。 每组的3位依次代表读、写、执行权限。 每一组都是rwx三个符号与“-”符号的组合 r:读权限 w:写权限  x:执行权限 -:禁止 rwx r-x r-- rwxr-xr-- 1组:文件所有者 2组:同组用户 3组:其他用户

18 权限组成 八进制表示: r:4 w:2 x:1 -:0 rwx 7 4+2+1 读、写、执行 rw- 6 4+2+0 读、写 r-x 5
4+1 读、执行 r-- 4 4+0+0 只读 -wx 3 2+1 写、执行 -w- 2 0+2+0 只写 --- 0+0+0 禁止读、写、执行

19 认识你的机器 查看系统的版本和处理器架构 uname -a 查看内存大小 free -m 查看硬盘空间 df –h
查看cpu信息 less /proc/cpuinfo

20 远程登录 Linux 使用 putty 远程登录 Linux ssh 服务器 打开 Putty 软件 添加服务器地址 登录服务器 1
服务器 IP 地址 在login as: 后填写用户名,回车 在password: 出现后输入密码(不显示) 服务器备注

21 Linux 文件属性 Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权 限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文 件)的权限做了不同的规定。 在Linux中我们可以使用 ll 或者ls -l 命令来显示一个文件的属性以及文件所属的用户 和组,如: 第一位的 d 在 Linux 中代表该文件是一个目录文件。 接下来的字符中,以三个为一组,均为 rwx 的三个参数的组合。其中, r 代表可读 (read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的 位置不会改变,如果没有权限,就会只显示为减号 - 而已。 对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。 同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。 因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

22 Linux 文件属性 更改文件属性 chgrp [-R] 组名 文件名
chown [-R] 用户名 文件名 or chown [-R] 用户名:组名 文件名 chmod [-R] xyz 文件名 解释: [-R] 为可选操作,用于对一个文件夹下的所有文件进行操作,使用时加在命令 后,如 chgrp -R group1 dir/ (dir/ 是一个文件夹) Linux 文件的基本权限就有九个,分别是 owner/group/others 三种身份各有自 己的 read/write/execute 权限。各权限分数对照表为 r=4, w=2, x=1。所以将每 种用户身份的三个权限各自累加(如 rwx=4+2+1=7)的数值依次排列就是要设 定的文件属性值,如 -rwxrwx--- = 770。

23 Linux 文件属性 chmod u=rwx,g=rx,o=r 文件名
chmod (u/g/o/a) (+/-/=) (r/w/x) 文件名 解释: 用户身份可以归类为 user, group, others 三种,用 u, g, a 概括,另加 a 代表全 部身份。+代表增加某种权限,-代表除去某种权限,=代表设为某种权限。 当需要给文件指定某种身份的权限时,就使用 chmod 命令对权限进行修改。 如 chmod a+w a.txt 全部增加写入权限 chmod a-x a.txt 除去全部可执行权限 chmod u=rwx,g=rx,o=r a.txt 把 a.txt 权限修改为 -rwxr-xr--

24 常用命令 文件与目录管理 用户管理 磁盘管理 文本输入 软件管理 其他命令

25 文件与目录管理 概念 绝对路径:从顶级目录”/”写起,如 /usr/bin
相对路径:用 “.” 代替当前目录,用”..”代替上级目录,如 ../Downloads 表示上 一层目录中的 Downloads 文件夹 常用命令 ls: 列出目录 mkdir: 创建一个新的目录 cd: 切换目录 rmdir: 删除一个空的目录 pwd: 显示目前的目录 cp: 复制文件或目录 rm: 删除文件或目录 mv: 移动文件或目录

26 文件与目录管理 ls 选项与参数 例: ls [-a] [目录名]
-d : 仅列出目录本身,而不是列出目录内的文件数据(常用) -l : 长数据串列出,包含文件的属性与权限等等数据;(常用) cd 选项与参数 例: cd [目录名] cd 相对路径/绝对路径,如 cd Docments/ cd ~ 回到用户家目录,等于直接运行 cd cd .. 回到上一级目录

27 文件与目录管理 pwd 选项与参数 例: pwd [-P] -P: 展示真实路径,因为有些目录是从其他位置链接过来的
mkdir 选项与参数 例: mkdir [-mp] 目录名 -m: 配置文件夹权限,如 mkdir -m 711 test -p: 创建多级目录,如 mkdir -p test1/test2/test3/ rmdir 选项与参数 例: rmdir [-p] 目录名 -p: 删除多级空目录,如 rmdir -p test1/test2/test3/ cp 选项与参数 例: cp [-f] 源文件 目标文件 -r: 复制目录

28 文件与目录管理 rm 选项与参数 例: rm [-fir] 文件或目录 -f :忽略不存在的文件
mv 选项与参数 例: mv [-fiu] 源文件 目标文件 -f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 -i : 若目标文件已经存在时,就会询问是否覆盖 -u : 若目标文件已经存在,仅在复制文件比目标文件新的情况下覆盖

29 文件与目录管理 文件内容查看常用命令 cat: 由第一行开始显示文件内容 more: 一页一页的显示文件内容
tac: 从最后一行开始显示 less: 与 more 类似 nl: 显示并输出行号 head: 只看头几行 tail: 只看末尾几行

30 用户与用户组管理 概念 Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户 ,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。每个 用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名 和口令后,就能够进入系统和自己的主目录。 常用命令 useradd: 添加用户 groupadd: 添加用户组 userdel: 删除用户 groupdel: 删除用户组 usermod: 修改用户 groupmod: 修改用户组 passwd: 管理用户密码 newgrp: 切换用户所在用户组

31 用户与用户组管理 useradd 参数与选项 -c : comment 指定一段注释性描述。
-d : 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g : 用户组 指定用户所属的用户组。 -G : 用户组,用户组 指定用户所属的附加组。 -s : Shell文件 指定用户的登录Shell。 -u : 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 useradd -u /usr/user1 -m user1 创建用户并创建目录 useradd -s /bin/sh -g group –G adm,root user2 创建用户并指定其登录 /bin/sh, 属于 group 用户组,也同时属于 adm 和 root

32 用户与用户组管理 passwd 参数与选项 例: passwd 选项 用户名 -l : 锁定密码,即禁用账号。 -u : 解锁密码。
-f : 强迫用户下次登录时修改密码。 超级用户可以 passwd 用户名 直接指定任何用户的密码

33 用户与用户组管理 与用户账号有关的系统文件 /etc/passwd 文件
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell /etc/shadow 文件:用于分离加密的用户密码 /etc/group 文件: 用于存放用户组信息

34 磁盘管理 df : 列出文件系统的整体磁盘使用量 例: df [-m] 目录或文件名
-a : 列出所有的文件系统,包括系统特有的 /proc 等文件系统 -k : 以 KBytes 的容量显示各文件系统 -m : 以 MBytes 的容量显示各文件系统 -h : 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示 -H : 以 M=1000K 取代 M=1024K 的进位方式 -T : 显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出 -i : 不用硬盘容量,而以 inode 的数量来显示

35 磁盘管理 du : 检查磁盘空间使用量 例: du [-m] 目录或文件名
-a : 列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已 -h : 以人们较易读的容量格式 (G/M) 显示 -s : 列出总量而已,而不列出每个各别的目录占用容量 -S : 不包括子目录下的总计,与 -s 有点差别 -k : 以 KBytes 列出容量显示 -m : 以 MBytes 列出容量显示

36 磁盘管理 fdisk : 用于磁盘分区 -l : 列出系统所有装置分区 其他选项:对磁盘进行分区操作
mkfs [-t 文件系统格式] 装置文件名: 对该装置进行格式化,文件系统格式包括 ext2, ext4, fat, ntfs 等 fsck : 磁盘检查 mount : 挂载磁盘 例: mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件 名 挂载点 umount : 卸载磁盘 例: umount [-fn] 装置文件名或挂载点

37 文本输入 Vim Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的 功能特别丰富,在程序员中被广泛使用。
创建或打开文本文件: vim a.txt 一般模式:打开文件时的默认模式。在该模式中, 可使用左下上右(hjkl 分别表示 )按键移动光标,使用删除字符、删除整行、复制和粘贴等操作处理文件 编辑模式:一般模式无法编辑文件内容,按下 i, I, o, O, a, A, r, R 等任何一个字母 进入编辑模式。按 Esc 退出编辑模式 命令模式:在一般模式中,输入 : / ? 三个中任何一个,进行读取、保存、退出、 大量替换等指令功能。如 :wq 表示保存并退出, :q! 表示不保存并强行退出

38 文本输入 Vim Vim 三种工作模式简化表示

39 文本输入 Vim Vim 键位图

40 进程管理 进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的类型存在。在 Linux 系统当中: 触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个 ID,称为 PID,同时根据 触发这个进程的用户,给予这个 PID 一组有效的权限设置。 Linux 为我们提供了一系列方便的命令来查看正在运行的进程。首先是 ps 命令,比如 ps -l 命令能查看当前 bash 下的相关进程全部信息。 pstree 展示进程树 command 前台执行命令 command & 后台执行命令 在前台工作运行时,ctrl + z 使之进入后台暂停 jobs 查看后台工作状态 其各个参数的含义如下 -l :同时列出 PID 的号码 -r:仅列出正在后台 run 的工作 -s:仅列出在后台 stop 的工作

41 进程管理 实例 ping localhost > log & [1] 中的1 为工作号,2250为进程号
vim test.txt 然后 ctrl + z 退出,屏幕显示工作号2停止 jobs 查看工作 fg %1 将工作1转到前台 bg %工作号 将后台工作状态变为运行中

42 进程管理 nohup command & 将命令放置后台运行并将输出内容存放到 nohup.txt 中 kill 终止进程
top 动态监控进程运行及资源占用变化 ctrl + c 退出前台进程

43 软件管理 Main 组件 Restricted 组件 Universe 组件 Multiverse 组件
软件仓库是收集可用软件包(应用程序)的“图书馆”。Ubuntu 仓库包含数万个可供您自由下 载和安装的可用软件包。这些软件包是专门为 Ubuntu 构建和挑选的。 Ubuntu 仓库分为四个类别,每个类别对应于不同的等级,包括软件开发团队对某个程序的支 持程度,以及该程序与自由软件观念的符合程度。 Main 组件 Restricted 组件 Universe 组件 Multiverse 组件

44 软件管理 Main 组件包含自由软件的软件包,由 Canonical 团队完全支持。这些软件包与自由软件观 念一致,并且安装 Ubuntu 时就默认可用。所有 Main 组件中的软件包都可免费获得安全更 新和技术支持。OpenOffice.org、Abiword 和 Apache 网络服务器就在其中。 Restricted 组件包含通常使用的软件,由 Ubuntu 团队支持,但不是完全的自由软件许可授 权。一些显卡厂商生产的二进制驱动。此组件中的软件包在标准 Ubuntu 安装 CD 中同样 可用,但能很容易删除。 Universe 组件包含了数千个不由 Canonical 官方支持的软件包。这些软件授权于各种自由 软件许可协议,来自各种公共来源。此组件只能通过互联网下载获得。在此组件中的所有 软件包都能完美地运行工作。不过,这些软件包不保证有安全修正和支持。这些软件包由 社区维护。 Multiverse 组件包含非自由软件,也就是说软件的许可协议需求与 Ubuntu Main 组件的许 可协议规则不符。用户需负责验证自己是否有权使用该软件并接受单一的许可协议条款。 Ubuntu 不提供支持和安全更新。这些软件包包括 VLC 和 Adobe Flash 插件。

45 软件管理 apt 命令 apt install 软件名称 apt update 更新,查看可更新软件
apt upgrade 升级,将可更新软件升级到最新版 apt remove 软件名称 卸载软件 apt purge 软件名称 彻底卸载软件 apt autoremove 卸除不再需要的软件 apt autoclean 清除软件残留

46 软件管理 dpkg 命令 如果获取了未知来源的软件包(通常为 .deb 格式),可以直接双击 deb 文件利用 Ubuntu 软件商店进行第三方软件安装 也可以在终端运行 dpkg -i XXX.deb 进行安装

47 Shell 的使用 Shell 是一个用C语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又 是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内 核的服务。 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 Linux的Shell种类众多,常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh)

48 编写 shell 脚本 创建任意扩展名的文本文件(通常为 .sh) 如: vi test.sh 输入代码
#!/bin/bash echo "Hello Bioinformatics !" * "#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪 一种 shell。 保存并退出文本编辑 使脚本具有执行权限 chmod +x ./test.sh 执行该脚本 ./test.sh 或者用确定的某种解释器运行此脚本 /bin/sh test.sh

49 常见 shell 语句 变量赋值 a_1=“Bioinformatics” 注意 变量名首位字符必须位英文字母
变量名不可带空格,可由”_”分隔 不能用标点符号 不能用 shell 中用到的关键字 循环 for for file in `ls /etc` /etc目录下文件名循环赋值给 file

50 常见 shell 语句 使用赋值后的变量,在变量名前加”$” a_1=“Bioinformatics” echo $a_1
echo “Hello ${a_1}!” * {}可有可无,如果加上就能方便将变量与其他内容分隔开来,避免混淆 删除变量 unset a_1 单引号与双引号的区别 单引号原样输出内部内容,内部单引号和变量均无效 双引号可内含变量,也可以通过转义符”\”来内含一些特殊符号

51 常见 shell 语句 输出字符串变量长度 echo ${#a_1} 切片(从第2位开始截取4个字符) echo ${a_1:1:4}
查找位置 echo `expr index "$a_1" mat` 定义数组 array_name=(a b c d) 单独定义数组各个分量 array_name[n] = a 读取数组 ${array_name[n]} 获取数组所有元素 echo 获取数组长度 注释一行语句,在开头加#,注释一段语句,在段前段后分别加 { 和 }

52 运算符 算术运算符 说明 举例 + 加法 `expr $a + $b` - 减法 `expr $a - $b` * 乘法
/ 除法 `expr $a / $b` % 取余 `expr $a % $b` = 赋值 a=$b == 相等,相等则返回 true,否则返回 false [$a == $b] != 不等,不等返回 true,否则返回 false [$a != $b] 表达式和运算符之间要有空格

53 运算符 关系运算符 说明 举例 -eq 相等 [ $a -eq $b ] -ne 不等 [ $a -ne $b ] -gt 大于
[ $a -gt $b ] -lt 小于 [ $a -lt $b ] -ge 大于等于 [ $a -ge $b ] -le 小于等于 [ $a -le $b ] 关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

54 运算符 布尔运算符 说明 举例 ! 非运算,表达式为 true 则返回 false,否则返回 true。
-o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。 -a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。 逻辑运算符 说明 举例 && 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false || 逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true

55 shell echo 命令应用实例 输入输出变量 #!/bin/sh read name echo "$name It is a test"
运行 test.sh,在输入区输入任意字符,脚本将值付给变量,并返回变量值 输出结果到文件 echo "It is a test" > test.txt 输出日期 echo `date`

56 条件与循环 if condition then command1 else command2 fi 命令行一行式可写成:
if condition; then command; fi for var in array do command Done 命令行一行式可写成: for var in array; do command; done; while condition done

57 条件与循环 if else 条件语句,如果满足 condition 中的内容,则允许 command1, 否则运行 command2。
condition 可以结合 test 命令,如 num1=$[2*3] num2=$[1+5] if test $[num1] -eq $[num2] then echo 'Equal!' else echo 'Not equal!' fi

58 条件与循环 for 循环,对列表内的每个变量值执行一次 command 如 for loop in 1 2 3 4 5 do
echo "The value is: $loop" done

59 条件与循环 while 循环,当满足 condition 时不断执行 command 如
echo 'Press <CTRL-D> to exit' echo -n 'Input your favorite film title: ' while read FILM do echo "Yes! $FILM is a nice film." done

60 条件与循环 until 循环,格式与 while 相似,处理方式相反。直到 condition 为真时循环停止。
case 循环,是一种多选择语句可以用case语句匹配一个值与一个模式,如果匹配 成功,执行相匹配的命令。 echo 'Input a number in range from 1 to 4:' echo 'Your input is:' read aNum case $aNum in 1) echo '1' ;; 2) echo '2' 3) echo '3' 4) echo '4' *) echo 'Out of range' esac

61 条件与循环 跳出循环 break : 跳出所有循环,直接结束 continue : 跳出当前循环,继续下一个循环 #!/bin/bash
while : do echo -n "Input a number in range from 1 to 5: " read aNum case $aNum in 1|2|3|4|5) echo "Your input is $aNum!" ;; *) echo "Input out of range!" continue(换成 break 检查效果) echo "Game over!" esac done

62 输入/输出重定向 command > file 将输出重定向到 file
command < infile > outfile 从 infile 读入并输出到 outfile command > /dev/null 不在屏幕上显示输出结果 command > /dev/null 2>&1 屏蔽输出与错误

63 谢谢!


Download ppt "Linux 基础与常用命令简介 生物信息学培训班 杭州,2018年1月18日 周银聪."

Similar presentations


Ads by Google