1、Linux 基础与常用命令简介Linux 简介p 起源p 发行版p 应用领域p 与 Windows 比较Linux 的起源Linux内核最初只是由芬兰人李纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。操作系统分类Linux 发行版Linux 发行版即通常所
2、说的“Linux 操作系统”。由一些组织、团体、公司或者个人制作并发行。Linux 内核主要作为 Linux 发行版的一部分而使用。Linux 发行版包括 Linux 内核,以及将整个软件安装到电脑上的一套安装工具,还有各种 GNU 软件,和其他的一些自由软件,在一些 Linux 发行版中可能会包含一些专有软件。目前正在积极开发中的发行版超过三百个,最普遍被使用的发行版有约十二个。目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora 等。一个典型的发行版包括:Linux 内核,GNU 库和各种系统工具,命令行 Shell,图形界面底层的X窗口系统和上
3、层的桌面环境等。桌面环境有如 KDE 或 GNOME 等,并包含数千种应用软件。Linux 的应用领域今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。p 个人电脑p 服务器、主机和超级计算机p 嵌入式设备与 Windows 比较比较WindowsLinux界面界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键
4、也几乎相同图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux的终端机是从UNIX传承下来,基本命令和操作方法也几乎一致。驱动程序驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的Windows下的驱动,也会比较头痛。由志愿者开发,由Linux核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式
5、下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。使用使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。图形界面使用简单,容易入门。文字界面,需要学习才能掌握。生物信息学与 Linux 应用为什么要选择 Linux/Unix 平台作为生物信息学研究的主要平台?生物信息学的重点研究目标是生物数据分析。尤其是未来生物学研究的特点是大量大规模测序数据产生。Windows 的窗口化软件适合可视化小规模运算,支持鼠标,缺乏对大数据的支持,可定制性差; Windows Shell 的使用体验差
6、,没有完善的命令;远程功能不够好。Linux 具备大数据高性能支持,shell 可编程能力强;包含大量开发者开发生物信息学软件包和脚本;可定制性好;支持轻量化的远程交互;开源,对生物数据分析来说是最好的平台。生物信息学与 Linux 应用软件或平台名称描述BioLinux强大的生物信息学分析平台,是基于 Linux 的免费操作系统,整合了大量生物信息学软件BioPerl整合大量生物学数据处理模块的 Perl 语言工具包BioPython整合大量生物学数据处理模块的 Python 语言工具包Bioconductor整合大量生物学数据处理软件包的 R 语言软件库EMBOSS欧洲分子生物学开源软件套
7、装,用于序列数据处理及分子生物学研究Mothur16s RNA 数据分析blast+BLAST 本地 blast 软件,建库及序列比对TopHat, Cufflinks 等转录组测序数据分析工具Linux 操作系统安装国内 Linux 操作系统资源下载:http:/以 Ubuntu 为例:http:/ ubuntu-16.04.1-desktop-amd64.iso系统刻录软件 UltraISO 等其他(U盘、虚拟机软件)主机安装主机的安装与通用的操作系统安装方法一致1.获取系统安装镜像2.利用刻录软件将镜像刻录至U盘或光盘中3.计算机开机 BIOS 设置为U盘启动4.在初始界面中选择 “In
8、stall Ubuntu”5.进行后续设置虚拟机安装1.通过 ISO 安装,和主机安装步骤类似(见文档);2.通过安装好的虚拟机镜像直接使用p安装虚拟机软件 VirtualBoxp新建虚拟机p选择专家模式,载入已有盘片p调整虚拟机设置p运行虚拟机LinuxLinux的目录结构v/bin bin是binary的缩写。这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令。例如:cp,ls,cat等。v/boot 这里存放的是启动Linux时使用的一些核心文件。v/dev dev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Window
9、s下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘v/etc 这个目录用来存放所有系统管理所需要的配置文件和子目录。Linux 文件结构查看文件结构基本命令: ls /bin: bin是 Binary 的缩写, 这个目录存放着最经常使用的命令。/boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev : dev 是 Device (设备)的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc: 这个目录用来存放所有的系统管理所需
10、要的配置文件和子目录。/home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。Linux 文件结构/lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的DLL文件。几乎所有的应用程序都需要用到这些共享库。/root: 该目录为系统管理员,也称作超级权限者的用户主目录。/tmp: 这个目录是用来存放一些临时文件的。/usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 Windows 下的 Program files 目录。/usr/bin: 系统用户使用的应用程序。/usr/
11、src: 内核源代码默认的放置目录。/var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。文件名与文件类型文件名是一个文件的标识。Linux系统中的文件名的命名规则与Windows系统基本相同。它同样是由字母、数字、下划线、圆点等组成,最长不能超过255个字符。在Linux系统中,没有像Windows系统那样明显的扩展名,但它对字母大小写是严格区分的。Linux有四种基本文件系统类型:(1) 普通文件:如文本文件、C语言源代码、Shell脚本、二进制的可执行文件等。(2) 目录文件:包括文件名、子目录名及其指针。它是Linux储存文件名
12、的惟一地方。(3) 链接文件:它是一个文件的第二个名字,这是针对多用户共享同一文件而产生的文件。(4) 特殊文件:Linux的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,这一类文件就是特殊文件,常放在/dev目录内。文件和目录权限rwxr-xr-rwxr-xr-1组:组:文件所有者文件所有者2组:组:同组用户同组用户3组:组:其他用户其他用户n权限组成共9位,每3位为一组 共3组各组依次代表文件所有者、同组用户和其他用户对该文件的权限。每组的3位依次代表读、写、执行权限。每一组都是rwx三个符号与“-”符号的组合 r:读权限w:写权限 x:执行权限:禁止权限组成n八进制表示: r:4
13、 w:2 x:1 -:0rwx74+2+1读、写、执行rw-64+2+0读、写r-x54+1读、执行r-44+0+0只读-wx32+1写、执行-w-20+2+0只写-00+0+0禁止读、写、执行认识你的机器查看系统的版本和处理器架构 uname -a查看内存大小 free -m查看硬盘空间 df h查看cpu信息 less /proc/cpuinfo远程登录 Linux使用 putty 远程登录 Linux ssh 服务器 打开 Putty 软件 添加服务器地址 登录服务器1服务器服务器 IP 地址地址服务器备注服务器备注在在login as: 后填写用户名,回车后填写用户名,回车在在pass
14、word: 出现后输入密码(不显示)出现后输入密码(不显示)Linux 文件属性Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用 ll 或者ls -l 命令来显示一个文件的属性以及文件所属的用户和组,如: 第一位的 d 在 Linux 中代表该文件是一个目录文件。接下来的字符中,以三个为一组,均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,
15、这三个权限的位置不会改变,如果没有权限,就会只显示为减号 - 而已。Linux 文件属性更改文件属性1.chgrp -R 组名 文件名2.chown -R 用户名 文件名 or chown -R 用户名:组名 文件名3.chmod -R xyz 文件名解释:1.-R 为可选操作,用于对一个文件夹下的所有文件进行操作,使用时加在命令后,如 chgrp -R group1 dir/ (dir/ 是一个文件夹)2.Linux 文件的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的 read/write/execute 权限。各权限分数对照表为 r=4, w=2, x
16、=1。所以将每种用户身份的三个权限各自累加(如 rwx=4+2+1=7)的数值依次排列就是要设定的文件属性值,如 -rwxrwx- = 770。Linux 文件属性chmod u=rwx,g=rx,o=r 文件名chmod (u/g/o/a) (+/-/=) (r/w/x) 文件名解释:1.用户身份可以归类为 user, group, others 三种,用 u, g, a 概括,另加 a 代表全部身份。+代表增加某种权限,-代表除去某种权限,=代表设为某种权限。2.当需要给文件指定某种身份的权限时,就使用 chmod 命令对权限进行修改。如 chmod a+w a.txt 全部增加写入权限c
17、hmod a-x a.txt 除去全部可执行权限chmod u=rwx,g=rx,o=r a.txt 把 a.txt 权限修改为 -rwxr-xr-常用命令1.文件与目录管理2.用户管理3.磁盘管理4.文本输入5.软件管理6.其他命令文件与目录管理概念p绝对路径:从顶级目录”/”写起,如 /usr/binp相对路径:用 “.” 代替当前目录,用”.”代替上级目录,如 ./Downloads 表示上一层目录中的 Downloads 文件夹常用命令ls: 列出目录mkdir: 创建一个新的目录cd: 切换目录rmdir: 删除一个空的目录pwd: 显示目前的目录cp: 复制文件或目录rm: 删除文
18、件或目录mv: 移动文件或目录文件与目录管理ls 选项与参数 例: ls -a 目录名-a : 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)-d : 仅列出目录本身,而不是列出目录内的文件数据(常用)-l : 长数据串列出,包含文件的属性与权限等等数据;(常用) cd 选项与参数 例: cd 目录名cd 相对路径/绝对路径,如 cd Docments/cd 回到用户家目录,等于直接运行 cdcd . 回到上一级目录文件与目录管理 pwd 选项与参数 例: pwd -P-P: 展示真实路径,因为有些目录是从其他位置链接过来的 mkdir 选项与参数 例: mkdir -mp
19、 目录名-m: 配置文件夹权限,如 mkdir -m 711 test-p: 创建多级目录,如 mkdir -p test1/test2/test3/ rmdir 选项与参数 例: rmdir -p 目录名-p: 删除多级空目录,如 rmdir -p test1/test2/test3/ cp 选项与参数 例: cp -f 源文件 目标文件-r: 复制目录文件与目录管理 rm 选项与参数 例: rm -fir 文件或目录-f :忽略不存在的文件-i : 互动模式,在删除前会询问使用者是否动作-r : 删除目录(慎用) mv 选项与参数 例: mv -fiu 源文件 目标文件-f : force
20、 强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i : 若目标文件已经存在时,就会询问是否覆盖-u : 若目标文件已经存在,仅在复制文件比目标文件新的情况下覆盖文件与目录管理文件内容查看常用命令cat: 由第一行开始显示文件内容more: 一页一页的显示文件内容tac: 从最后一行开始显示less: 与 more 类似nl: 显示并输出行号head: 只看头几行tail: 只看末尾几行用户与用户组管理概念Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。每个用户账号都拥有一个惟一的用户名和各
21、自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。常用命令useradd: 添加用户groupadd: 添加用户组userdel: 删除用户groupdel: 删除用户组usermod: 修改用户groupmod: 修改用户组passwd: 管理用户密码newgrp: 切换用户所在用户组用户与用户组管理useradd 参数与选项 -c : comment 指定一段注释性描述。-d : 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g : 用户组 指定用户所属的用户组。-G : 用户组,用户组 指定用户所属的附加组。-s : Shell
22、文件 指定用户的登录Shell。-u : 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。useradd -u /usr/user1 -m user1 创建用户并创建目录useradd -s /bin/sh -g group G adm,root user2 创建用户并指定其登录 /bin/sh, 属于 group 用户组,也同时属于 adm 和 root用户与用户组管理 passwd 参数与选项 例: passwd 选项 用户名-l : 锁定密码,即禁用账号。-u : 解锁密码。-d : 使用户无密码。-f : 强迫用户下次登录时修改密码。超级用户可以 pass
23、wd 用户名 直接指定任何用户的密码用户与用户组管理与用户账号有关的系统文件/etc/passwd 文件用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell/etc/shadow 文件:用于分离加密的用户密码/etc/group 文件: 用于存放用户组信息磁盘管理 df : 列出文件系统的整体磁盘使用量 例: df -m 目录或文件名-a : 列出所有的文件系统,包括系统特有的 /proc 等文件系统-k : 以 KBytes 的容量显示各文件系统-m : 以 MBytes 的容量显示各文件系统-h : 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自
24、行显示-H : 以 M=1000K 取代 M=1024K 的进位方式-T : 显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出-i : 不用硬盘容量,而以 inode 的数量来显示磁盘管理 du : 检查磁盘空间使用量 例: du -m 目录或文件名-a : 列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已-h : 以人们较易读的容量格式 (G/M) 显示-s : 列出总量而已,而不列出每个各别的目录占用容量-S : 不包括子目录下的总计,与 -s 有点差别-k : 以 KBytes 列出容量显示-m : 以 MBytes
25、列出容量显示磁盘管理fdisk : 用于磁盘分区 -l : 列出系统所有装置分区其他选项:对磁盘进行分区操作mkfs -t 文件系统格式 装置文件名: 对该装置进行格式化,文件系统格式包括 ext2, ext4, fat, ntfs 等fsck : 磁盘检查 mount : 挂载磁盘 例: mount -t 文件系统 -L Label名 -o 额外选项 -n 装置文件名 挂载点 umount : 卸载磁盘 例: umount -fn 装置文件名或挂载点文本输入 VimVim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。运行 vim
26、: 直接在终端输入 vim创建或打开文本文件: vim a.txt一般模式:打开文件时的默认模式。在该模式中, 可使用左下上右(hjkl 分别表示)按键移动光标,使用删除字符、删除整行、复制和粘贴等操作处理文件编辑模式:一般模式无法编辑文件内容,按下 i, I, o, O, a, A, r, R 等任何一个字母进入编辑模式。按 Esc 退出编辑模式命令模式:在一般模式中,输入 : / ? 三个中任何一个,进行读取、保存、退出、大量替换等指令功能。如 :wq 表示保存并退出, :q! 表示不保存并强行退出文本输入 VimVim 三种工作模式简化表示文本输入 VimVim 键位图进程管理进程是操作
27、系统上非常重要的概念,所有系统上面跑的数据都会以进程的类型存在。在 Linux 系统当中:触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个 ID,称为 PID,同时根据触发这个进程的用户,给予这个 PID 一组有效的权限设置。Linux 为我们提供了一系列方便的命令来查看正在运行的进程。首先是 ps 命令,比如 ps -l 命令能查看当前 bash 下的相关进程全部信息。pstree 展示进程树command 前台执行命令command & 后台执行命令在前台工作运行时,ctrl + z 使之进入后台暂停jobs 查看后台工作状态其各个参数的含义如下-l :同时列出 PI
28、D 的号码-r:仅列出正在后台 run 的工作-s:仅列出在后台 stop 的工作进程管理实例ping localhost log &1 中的1 为工作号,2250为进程号vim test.txt 然后 ctrl + z 退出,屏幕显示工作号2停止jobs 查看工作fg %1 将工作1转到前台bg %工作号 将后台工作状态变为运行中进程管理nohup command & 将命令放置后台运行并将输出内容存放到 nohup.txt 中kill 终止进程kill -9 进程号或工作号 立即终止进程top 动态监控进程运行及资源占用变化ctrl + c 退出前台进程软件管理软件仓库是收集可用软件包(应
29、用程序)的“图书馆”。Ubuntu 仓库包含数万个可供您自由下载和安装的可用软件包。这些软件包是专门为 Ubuntu 构建和挑选的。Ubuntu 仓库分为四个类别,每个类别对应于不同的等级,包括软件开发团队对某个程序的支持程度,以及该程序与自由软件观念的符合程度。pMain 组件 pRestricted 组件 pUniverse 组件 pMultiverse 组件软件管理p Main 组件包含自由软件的软件包,由 Canonical 团队完全支持。这些软件包与自由软件观念一致,并且安装 Ubuntu 时就默认可用。所有 Main 组件中的软件包都可免费获得安全更新和技术支持。OpenOffic
30、e.org、Abiword 和 Apache 网络服务器就在其中。p Restricted 组件包含通常使用的软件,由 Ubuntu 团队支持,但不是完全的自由软件许可授权。一些显卡厂商生产的二进制驱动。此组件中的软件包在标准 Ubuntu 安装 CD 中同样可用,但能很容易删除。p Universe 组件包含了数千个不由 Canonical 官方支持的软件包。这些软件授权于各种自由软件许可协议,来自各种公共来源。此组件只能通过互联网下载获得。在此组件中的所有软件包都能完美地运行工作。不过,这些软件包不保证有安全修正和支持。这些软件包由社区维护。p Multiverse 组件包含非自由软件,也
31、就是说软件的许可协议需求与 Ubuntu Main 组件的许可协议规则不符。用户需负责验证自己是否有权使用该软件并接受单一的许可协议条款。Ubuntu 不提供支持和安全更新。这些软件包包括 VLC 和 Adobe Flash 插件。软件管理apt 命令apt install 软件名称apt update 更新,查看可更新软件apt upgrade 升级,将可更新软件升级到最新版apt remove 软件名称 卸载软件apt purge 软件名称 彻底卸载软件apt autoremove 卸除不再需要的软件apt autoclean 清除软件残留软件管理dpkg 命令如果获取了未知来源的软件包(
32、通常为 .deb 格式),可以直接双击 deb 文件利用 Ubuntu 软件商店进行第三方软件安装也可以在终端运行 dpkg -i XXX.deb 进行安装Shell 的使用Shell 是一个用C语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写的脚本程序。Linux的Shell种类众多,常见的有:p Bourne Shell(/usr/bin/sh或/bin/sh)p Bo
33、urne Again Shell(/bin/bash)p C Shell(/usr/bin/csh)p K Shell(/usr/bin/ksh)p Shell for Root(/sbin/sh)编写 shell 脚本创建任意扩展名的文本文件(通常为 .sh)如: vi test.sh输入代码#!/bin/bashecho Hello Bioinformatics !* #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 shell。保存并退出文本编辑使脚本具有执行权限 chmod +x ./test.sh 执行该脚本 ./test.sh 或者用确定的某种解释器运行
34、此脚本 /bin/sh test.sh常见 shell 语句变量赋值 a_1=“Bioinformatics”注意1.变量名首位字符必须位英文字母2.变量名不可带空格,可由”_”分隔3.不能用标点符号4.不能用 shell 中用到的关键字循环 forfor file in ls /etc /etc目录下文件名循环赋值给 file常见 shell 语句使用赋值后的变量,在变量名前加”$”a_1=“Bioinformatics”echo $a_1echo “Hello $a_1!”* 可有可无,如果加上就能方便将变量与其他内容分隔开来,避免混淆删除变量 unset a_1单引号与双引号的区别单引号
35、原样输出内部内容,内部单引号和变量均无效双引号可内含变量,也可以通过转义符”来内含一些特殊符号常见 shell 语句输出字符串变量长度 echo $#a_1切片(从第2位开始截取4个字符) echo $a_1:1:4查找位置 echo expr index $a_1 mat定义数组 array_name=(a b c d)单独定义数组各个分量 array_namen = a读取数组 $array_namen获取数组所有元素 echo $array_name获取数组长度 length=$#array_name注释一行语句,在开头加#,注释一段语句,在段前段后分别加 和 运算符算术运算符说明举例+
36、加法expr $a + $b-减法expr $a - $b*乘法expr $a * $b/除法expr $a / $b%取余expr $a % $b=赋值a=$b=相等,相等则返回 true,否则返回 false$a = $b!=不等,不等返回 true,否则返回 false$a != $b表达式和运算符之间要有空格运算符关系运算符说明举例-eq相等 $a -eq $b -ne不等 $a -ne $b -gt大于 $a -gt $b -lt小于 $a -lt $b -ge大于等于 $a -ge $b -le小于等于 $a -le $b 关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
37、运算符布尔运算符说明举例!非运算,表达式为 true 则返回 false,否则返回 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 返回 trueshell echo 命令应用实例输入输出变量#
38、!/bin/shread nameecho $name It is a test运行 test.sh,在输入区输入任意字符,脚本将值付给变量,并返回变量值输出结果到文件echo It is a test test.txt输出日期echo date条件与循环if conditionthencommand1elsecommand2fi命令行一行式可写成:if condition; then command; fifor var in arraydocommandDone命令行一行式可写成:for var in array; do command; done;while conditiondocom
39、manddone条件与循环if else 条件语句,如果满足 condition 中的内容,则允许 command1, 否则运行 command2。condition 可以结合 test 命令,如num1=$2*3 num2=$1+5if test $num1 -eq $num2thenecho Equal!elseecho Not equal! fi条件与循环for 循环,对列表内的每个变量值执行一次 command如for loop in 1 2 3 4 5doecho The value is: $loopdone条件与循环while 循环,当满足 condition 时不断执行 com
40、mand如echo Press to exitecho -n Input your favorite film title: while read FILMdoecho Yes! $FILM is a nice film.done条件与循环until 循环,格式与 while 相似,处理方式相反。直到 condition 为真时循环停止。case 循环,是一种多选择语句可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。echo Input a number in range from 1 to 4:echo Your input is:read aNumcase $aNu
41、m in1) echo 1;2) echo 2;3) echo 3;4) echo 4;*) echo Out of range;esac条件与循环跳出循环break : 跳出所有循环,直接结束continue : 跳出当前循环,继续下一个循环#!/bin/bashwhile :doecho -n Input a number in range from 1 to 5: read aNumcase $aNum in 1|2|3|4|5) echo Your input is $aNum! ; *) echo Input out of range! continue(换成 break 检查效果) echo Game over! ;esacdone输入/输出重定向command file 将输出重定向到 filecommand file 将输出加到 file 最末command file 从文件输入内容到命令command outfile 从 infile 读入并输出到 outfilecommand /dev/null 不在屏幕上显示输出结果command /dev/null 2&1 屏蔽输出与错误63Thank you!