




已阅读5页,还剩142页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
生物信息中的计算机基础 白明泽Baimz cqupt WhyUnix 功能强大 应用广泛主要应用于高性能计算机良好的多用户管理与网络服务联系紧密 apache php WWW服务丰富的命令和应用程序 打包 免费 Unix Bioinformatics 在20实际中期之前 只有SGI和Sun的Unix工作站能够实时地可视化蛋白质结果数据 生物信息学的数据库 WWW服务基于网络 而Unix在网络服务上见长 Unix难学 只需要学习部分命令子集不需要了解或使用Unix的每一个程序和特点上手后工作效率很高 常见Unix BSD 伯克利软件发布版 免费商业版SCOUnix工作站生产商发布版 Solaris Sun IRIX SGI DigitalUnix Compaq HP UX AIX IBM 自由发布的 最初面向PC的Linux Linux WhyLinux 天才大学生LinusTorvalds开发用于PC的免费Unix开放源代码 业余爱好者共同开发它的出现 使得Unix成为一个低廉或免费的OS系统资源消耗 WindowsorMac开发软件的接触平台 有用于计算机生物学和一般性研究的丰富工具库 Unix图形界面 基于命令行X窗口系统 让程序在屏幕上画图GNOMEKDE 桌面环境 类似于Windows 建立Linux工作站 一台电脑安装打包的Linux RedHat Debian SuSE 还有窗口界面强大的ubuntu 打包的内容 XWindow系统桌面选择邮件 Web 新闻组工具图形操作工具多媒体支持工具软件和网络化的工作站支持开发包 gcc系列 c c fotran java ifort英特尔fortran编译器ftp mysql php Bioinformatic相关的包 R 用于统计学计算和图形的强大工具OpenGL Mesa 用于创建图形用户界面的开发工具包 可提高一些分子可视化软件性能MySQL小型数据库Octave类似于Matlab的数值计算高级语言Xemac 功能强大的基于XWindow的编辑器JDK JREOpenoffice 来自Sun 原名StarOffice Linux基础 如何使用LinuxLinux的用户界面Linux基础命令Linux文件系统Linux文件属性Linux文件备份和压缩进程管理 使用Linux 开机选择启动注册进入图形界面 startx远程登陆Linux telnet ssh注销 logout exit关机 shutdown halt reboot poweroff Linux用户界面 几个常用的shell命令 Linux用户界面 几个常用的shell命令 命令补全通配符命令历史别名重定向管道提示符作用控制bash配置文件 Linux用户界面 bash的特点 命令的格式 commandoptionsargumentsForExample mail fnewmail 命令格式举例RIGHTWRONG1Spearation mail fnewmail mail fnewmail2Order mail fnewmail mailnewmail f3multiple who m u who m u who mu who mu 键入命令 在shell提示符下 输入命令 然后按下Enter键 shell识别大小写如果找不到你输入的命令 会显示反馈信息 CommandnotFound 如果命令太长 要在第一行行尾键入 字符和按下Enter键 在下一行的 后接着输入 键盘的快捷方式停止命令结束传输或者文件临时停止输出恢复输出擦除整行纠正错误 基础命令 命令的输入与编辑输入teln 这样的效果和输入相同修改口令Passwd查询及修改日期时间dateMMDDhhmm CC YY ss date后面的部分是日期字符串 表示要修改的日期时间 MM代表月份 DD代表日期 hh代表时 mm代表分 CC代表年份的头两位 YY代表年份的后两位 表示括号括住的内容是可以省略的 以下同 如果年份被省略 则表示为当年 ss代表秒 观看日历cal 月 年 基础命令 清屏clear获取用户信息lognameWhoamiwho与其他用户进行简单通讯write用户账号 主机名 终端号 观看主机信息uname a寻找命令使用方法man Linux文件系统 linux文件命名格式目录结构树型结构支持的文件系统路径相对路径绝对路径 Linux文件名称 包含大写键 小写键 数字 不包含空格不包含以下字符 不能以 或者 开头区分大小写最长文件名255 文件的类型 普通文件目录文件设备文件 dev tty1连接文件 存放文件系统中通向文件的路径file文件名 文件的类型 普通文件目录文件设备文件 dev tty1连接文件 存放文件系统中通向文件的路径file文件名 普通文件 也称常规文件 包含各种长度的字符串 例如 信件 报告和脚本 文本文件 由ASCII字符构成 数据文件 由来自应用程序的数字型和文本型数据构成 例如 电子表格 数据库等 可执行的二进制程序 由机器指令和数据构成 Linux文件系统 相关操作命令文件及子目录名称列表 ls显示一个文本文件的内容 cat改变文件 目录名称 搬移整棵目录树 mv删除文件 rm复制文件 cp创建新的子目录 mkdir 删除目录 rmdir通配符与多文件操作硬链接符号链接 1每列仅显示一个文件或目录名称 a显示所有文件或目录 包括以 为名称开头字符的文件 现行目录 与上层目录 l使用详细格式列表 将权限标示 硬件接数目 拥有者与群组名称 文件或目录大小及更改时间一并列出 R递归处理 将指定目录下的所有文件及子目录一并处理 Linux文件系统 通配符与多文件操作 建立目录team02 并让全部人都有rwx的权限 lsteam01 mkdir m777team02 lsteam01team02 目录team03下只有dir1目录 在删除dir1的同时也删除team03 rmdir pteam03 dir1 lsteam01team02 文件属性 文件操作相关命令观看文件名称列表 命令是ls显示一个文本文件的内容 命令是cat删除一个文件 命令是rm改变一个文件的名称 命令是mv复制文件 命令是cp 文件操作命令 cp复制文件或目录mv移动文件和文件换名rm删除文件或目录ln在文件间建立连接find查找特定的文件touch改变文件的时间参数 复制文件或目录命令cp cp命令用来复制文件 在缺省的情况下 这个命令工作的时候不做任何显示 只有在出现一个错误情况的时候才显示状态信息 cp 源文件名 目标文件名 cp r 源目录名 目标目录名 将file1 file2复制到team01目录里 再将team01目录复制到team02目录里 cpfile1file2team01或 cpfile team01 cp rteam01team02 移动 重命名文件命令mv mv命令用来把文件从一个位置移动到另外一个位置 也可以从一个分区移动到另外一个分区 mv 源文件列表 目标文件 将文件file1改名为file mvfile1file将目录team01下的两个文件file1 file2移到team02下 lsteam01team02 mvteam01 file1file2 team02 删除文件或目录rm 从文件系统中删除文件及整个目录rm 选项 文件列表 r删除文件列表中的目录 i指定交互模式 在执行删除前提示确认 文件列表 希望删除的用空格分隔的文件列表 可以包括目录名 删除一个文件file1 rmfile1使用 i选项 rm ifile1rm remove file1 Y 在文件间建立连接ln ln命令用来建立硬连接和符号连接 硬连接是一个文件的额外的名字 没有源文件 硬连接便不能存在 而对于符号连接 当原文件被删除后 符号连接仍然存在 ln 选项 源文件目标文件ln 选项 源文件列表目标目录 s建立一个符号连接而不是硬连接 d建立目录的硬连接现有文件file1 file2与目录team01 欲在team02中建立起符号连接 ln s home file1 home file2 home team01team02设dir3是一个目录的符号连接 现在建立其硬连接dir4 ln ddir3dir4 查找文件命令find find命令可以根据各种检索条件查找文件find 路径 表达式 路径 准备寻找文件所在的路径以及它的子路径 也可以是多个路径 表达式 包含要搜索文件的条件 可以包含文件名 拥有者 最后修改时间等 atimen至少n 24小时内没有访问过的文件 ctimen至少n 24小时内没有修改过的文件 aminnn分钟之前访问过的文件 cminnn分钟之前修改过的文件 empty文件为空 namename指定要寻找的文件或目录的名称 typex 以文件的类型作为寻找的条件 若x为 d 则表示寻找目录 x为 f 表示寻找普通文件 x为 c 表示寻找字符特殊设备 x为 b 表示寻找特殊块设备 x为 p 表示寻找命名管道 x为 l 表示寻找符号连接 x为 s 表示寻找套接字 如果想查找 home子目录中至少7天没有被访问过的文件 请使用下面的命令 find home atime7 print如果想找出 usr src子目录中名字为core的文件并删除它们 请使用下面的命令 find usr src namecore execrm 如果想找出 home中以 jpg结尾并且长度超过100K的文件 请使用下面的命令 find home name jpg size100k 改变文件的时间参数touch 改变文件访问和修改时间 或用指定时间建立新文件 touch 选项 MMDDhhmmYY文件列表 a只更改访问时间 c若目标文件不存在 不建立空的目标文件 使用不带参数的touch命令将文件的时间修改为当前时间 ls rw r r 1rootroot37350Jan272003file1 touchfile1 rw r r 1rootroot37350Jan116 15file1使用选项 t直接修改时间 touch t01201500file1 rw r r 1rootroot37350Jan2015 00file1 文件显示命令 cat显示和合并文件more分屏显示文件head显示文件的前几行tail显示文件的最后几行 显示和合并文件命令cat 可以结合多个文件 并将它们的内容输出到标准输出设备 cat 选项 文件列表 b列出文件内容时 在所有非空白列之开头标上编号 从1开始累加 E在每一列的最后标上 符号 n列出文件内容时 在每一列之开头标上编号 从1开始累加 让cat指令从标准输入设备 如键盘 读取数据 转而输出至标准输出设备 如显示器 cat执行指令 不加任何参数123键入任何文字后 按下回车键123系统回应一模一样的文字利用特殊字符 将名称为file1与file2的文件合并成一个文件file3 catfile1file2 file3若文件file3已经存在 则其内容会被覆盖过去 欲避免这种状况发生 可用 代替 新的内容就会附加在原有内容之后 而不会覆盖它 分屏显示文件命令more more可将文件内容显示于屏幕上 每次只显示一页 可以往下浏览 但无法向上浏览 less指令可以上下浏览 more 选项 文件名 指定每次要显示的行数 在文件中查找选项中指定的字符串 然后显示字符串所在该页的内容 从指定的行数开始显示 n每次只显示n行 c不滚屏 在显示下一屏之前先清屏 在文件file1中查找 123 字符串 然后从改页开始显示文件的内容 more 123file1显示文件file1的内容 每10行显示一次 而且在显示之前先清屏 more c 10file1 显示文件的前几行命令head 在屏幕上显示指定文件的开头若干行 默认值是10行 head 选项 文件名 cN 显示前N个字节 nN 显示前N行 head 5file 显示文件的最后几行命令tail 在屏幕上显示指定文件的末尾若干行 默认值是10行 tail 选项 文件名 cN 显示前N个字节 nN 显示前N行 N 从文件开头的第N行开始显示 比较文件内容命令 comm比较两个已排过序的文件diff比较文件的差异 comm命令 用来对两个已排过序的文件进行逐行比较comm 123 file1file2 1不显示只在第一个文件里出现过的行 2不显示只在第二个文件里出现过的行 3不显示在第一 第二个文件里都出现过的行 file1的内容如下 file2的内容如下 main main printf Hello n printf Good n 用comm命令对这两个文件进行比较只显示它们共有的行 comm 12file1file2main diff命令 比较两个文本文件 并显示它们的不同diff 选项 file1file2 c输出格式是带上下文的三行格式 Cn输出格式是带上下文的n行格式 r两个文件都是目录时 递归比较找到的各子目录 输出的一般形式如下 n1an3 n4n1 n2dn3n1 n2cn3 n4a 附加d 删除c 修改file1的内容如下 file2的内容如下 1main 1main 2 2 3printf Hello n 3intn m 4 4n 10 55printf d n m n 10 6 输入命令 difffile1file23 5c3 63intn m 4n 10 5printf d n m n 10 6 文件权限操作 chmod改变文件或目录的许可权限chown改变文件的所有权chgrp改变用户分组 文件的保护和权限 rwxrwxrwxusergroupothers一个普通文件r 可以查看文件内容w 可以修改文件内容x 可以执行文件 一个路径r 可以查看文件夹下的文件w 可以在文件夹下创建和删除文件x 可以进入文件夹或者访问文件夹下的文件 usergroupothers符号rwxrw r 二进制1111101004 2 14 2 04 0 0八进制764缺省的文件权限 file rw r r 644directorydrwxr xr x755 改变文件属性命令chmod 用来改变文件或目录的权限chmod 选项 模式文件列表 改变文件的权限u ownerofthefileg owner sgroupo otherusersonthesystem addpermissions removepermissions clearspermissionsandsetstomodespecified 使文件file在各个级别拥有所有权限 chmod777file允许所有人读file 但只有拥有者能改变它 chmod644file给所有人增加写权 chmoda wfile对组级和其他用户除去写权和读权 chmodo wr g wrfile建立其他用户的只读权 chmodo rfile 改变文件的所有权命令chown chown命令可以把一个文件的所有权修改为别人的 只有根用户能够进行这样的操作 chmod 选项 用户文件列表 v详细说明所有权的变化 r递归改变目录及其内容的所有权 改变用户分组命令chgrp chgrp命令可以改变一个文件的用户分组设置情况chgrp 选项 用户文件列表 v详细说明文件所属的用户组的变化 r改变本目录及其所有子目录中的文件所属的用户组 文件备份和压缩 tar c 建立新的备份档文件 d 将备份档文件与文件系统中的原始文件进行比较 r 向备份档文件追加文件 t 列出备份档文件中所含的文件 x 从备份档文件中解出文件 f 以文件方式 或使用某设备文件所对应的设备备份文件 M 使用分卷 例如多张软盘 的备份文件 v 在处理过程中显示相关信息 w 进行每一步操作时用户需首先进行确认 W 备份后校验 z 带压缩的备份 gzip压缩 进程管理 进程组件 重要的进程信息进程的地址空间映射 进程的状态 如睡眠状态 停止状态 可运行状态等 进程执行的优先级 进程已经使用的资源信息 进程的信号掩码 进程的属主 进程管理 进程组件 PID进程的ID号PPID父PIDUID和EUID实际用户ID和有效的用户ID 进程管理 查询进程信息 ps启动进程中止进程 killnohup和后台执行nohup nice 定时执行 at设定在当天12 30将 root abc文件以电子邮件方式向用户h1 h2发送 可以输入 at12 30 此时光标停在下一行 可以开始输入要定时执行的命令 cat root abc mail s fileabc h1h2 如果还有其他命令 还可继续输入 最后以 d结束 系统回应 Job35willbeexcutedusing bin sh 35 是对应作业号 此处表示用户所提交的定时执行作业已被接纳 系统会在指定时间以 bin sh为Shell执行该命令 定时执行 查看at状态at l要删除正待执行的一项作业at r定时执行shellat f 定时执行 crontab 每行包括一个和 表示在指定的时间将被执行 而则被空格或制表符分为5栏 分别为 分钟小时日月星期 例如 0 20 40 1 5ls l表示从周一到周五 每隔20分钟 实际上是每小时的正点 20分 40分 执行一次ls l命令 表示 任何有效值 同一栏中如果要指定多个值 则用 分隔 GNULinux下IDE的使用Linux下使用GNUcc开发应用程序Linux程序的调试Linux下使用RCS CVS来管理源程序 Linux程序设计基础 Linux的官方定义 Linux是一种UNIX操作系统的克隆 它 的内核 由LinusTorvalds以及网络上组织松散的黑客队伍一起从零开始编写而成 Linux的目标是保持和POSIX的兼容 Linux具备现代一切功能完整的UNIX系统所具备的全部特征 其中包括真正的多任务 虚拟内存 共享库 需求装载 共享的写时复制程序执行 优秀的内存管理以及TCP IP网络支持等 Linux的发行遵守GNU的通用公共许可证 Linux起初为基于386 486的PC机开发 但现在 Linux也可以运行在DECAlpha SUNSparc M68000 以及MIPS和PowerPC等计算机上 GNU GNU是GNUIsNotUNIX的递归缩写是自由软件基金会的一个项目 该项目的目标是开发一个自由的UNIX版本 这一UNIX版本称为HURD 尽管HURD尚未完成 GNU项目开发了许多高质量的编程工具 emacs gcc和g 这些编译器可以在任何计算机系统上运行 所有的GNU软件和派生工作均适用GNU通用公共许可证 即GPL GPL允许软件作者拥有软件版权 但授予其他任何人以合法复制 发行和修改软件的权利 GNU与Linux的关系 Linux的开发使用了许多GNU工具 Linux系统上用于实现POSIX 2标准的工具几乎都是GNU项目开发的 Linux内核 GNU工具以及其他一些自由软件组成了人们常说的Linux 符合POSIX标准的操作系统Shell和外围工具 C语言编译器和其他开发工具及函数库 XWindow窗口系统 各种应用软件 包括字处理软件 图象处理软件等 其他各种Internet软件 如FTP服务器 WWW服务器等 关系数据库管理系统等 GPL GeneralPublicLicense GPL和软件是否免费无关 它主要目标是保证软件对所有的用户来说是自由的 GPL通过如下途径实现这一目标 它要求软件以源代码的形式发布 并规定任何用户能够以源代码的形式将软件复制或发布给别的用户 它提醒每个用户 对于该软件不提供任何形式的担保 如果用户的软件使用了受GPL保护的任何软件的一部分 那么该软件就继承了GPL软件 并因此而成为GPL软件 也就是说必须随应用程序一起发布源代码 GPL并不排斥对自由软件进行商业性质的包装和发行 也不限制在自由软件的基础上打包发行其他非自由软件 GPL 遵照GPL的软件并不是可以任意传播的 这些软件通常都有正式的版权 GPL在发布软件或者复制软件时声明限制条件 但是 从用户的角度考虑 这些根本不能算是限制条件 相反用户只会从中受益 因为用户可以确保获得源代码 假如准备以二进制的形式发布应用程序 像大多数商业软件那样 则必须确保自己的程序未使用GPL保护的任何软件 如果软件通过库函数调用而使用了别的软件 则不必受到这一限制 大多数函数库 受另一种GNU公共许可证 即LGPL的保护 Linux的主要发行版 除表中列出的发行版之外 还有大量的发行版存在 比如Slackware OpenLinux Mandrake等等 建议新手使用RedHatLinux或自己喜欢的某种本地化发行版 UNIX GNU Linux的关键人物及贡献 KenThompson DennisRitchie UNIX 60年代末BrianKernighan DennisRitchie TheCProgrammingLanguage 70年代末RichardStallman FSF GNU GPL emacs gcc 80年代中AndrewS Tanenbaum MINIX OperatingSystems DesignandImplementation 80年代末 90年代初LinusTorvalds Linux 90年代EricRaymond 黑客文化简史 如何成为一名黑客 大教堂和市集 开拓智域 魔法大锅炉 Linux发展的重要里程碑 1990 LinusTorvalds首次接触MINIX1991中 LinusTorvalds开始在MINIX上编写各种驱动程序等操作系统内核组件1991底 LinusTorvalds公开了Linux内核1993 Linux1 0版发行 Linux转向GPL版权协议1994 Linux的第一个商业发行版Slackware问世1996 美国国家标准技术局的计算机系统实验室确认Linux版本1 2 13 由OpenLinux公司打包 符合POSIX标准1999 Linux的简体中文发行版相继问世2000中 LinuxWorldChina2000展览会召开 涌现大量基于Linux的嵌入式系统 C语言编程风格 良好的编程风格可以增加代码的可读性 并帮助你理清头绪Windows所推崇的匈牙利命名法比较复杂C语言最初来自UNIX操作系统 与UNIX的设计原则一样 C语言被广泛认可和使用的一个重要原因是它的灵活性以及简洁性 因此 在利用C语言编写程序时 始终应当符合其简洁的设计原则 而不应当使用非常复杂的变量命名方法 缩进 缩进时 使用长度为8个字符宽的Tab键 如果程序的缩进超过3级 则应考虑重新设计程序 不应过分强调注释的作用 应尽量采用好的编码风格而不是添加过多的注释 大括号位置 除函数的定义体外 应当将左大括号放在行尾 而将右大括号放在行首 函数的定义体应将左右大括号放在行首 intfunction intx inty if x y elseif x y else return0 命名 与Modula 2和Pascal程序员不同 C程序员不使用ThisVariableIsATemporaryCounter这样可爱的名字 简洁 对变量名 不赞成使用大小写混写的形式 但鼓励使用描述性的名称 不采用匈牙利命名法表示变量的类型 采用短小精悍的名称表示局部变量 尽可能不用全局变量 保持函数短小 从而避免使用过多的局部变量 Linux上的C C 编译器和调试器 运行gcc egcsgcc egcs的主要选项gdbgdb的常用命令gdb使用范例 运行gcc egcs Linux中最重要的软件开发工具是GCCGCC是GNU的C和C 编译器现在的GCC支持 c c java Fortran例子gcchello c ohello hello 多个文件 gcc ofactorialmain cfactorial c factorial5Factorialof5is120 gcc egcs的主要选项 gdb GNU的调试器称为gdb 该程序是一个交互式工具 工作在字符模式 在XWindow系统中 有一个gdb的前端图形工具 称为xxgdb gdb是功能强大的调试程序 可完成如下的调试任务 设置断点 监视程序变量的值 程序的单步执行 修改变量的值 gdb 在可以使用gdb调试程序之前 必须使用 g选项编译源文件 运行gdb调试程序时通常使用如下的命令 gdbprogname gdb的常用命令 gdb使用范例 上面这个程序非常简单 其目的是接受用户的输入 然后将用户的输入打印出来 该程序使用了一个未经过初始化的字符串地址string 因此 编译并运行之后 将出现SegmentFault错误 用gdb查找错误 VIM编辑器 VI是Linux世界里最常用的全屏编辑器 VIM是其加强版 原意 visualinterface用户键入的内容会立即被显示出来VI不是一个排版程序 不象Word或WPS那样可以对字体 格式 段落等其他属性进行编排 它只是一个文本编辑程序 两种操作模式 命令模式 从键盘上输入的任何字符都被作为编辑命令来解释 输入模式 从键盘上输入的所有字符都被插入到正在编辑的缓冲区中 被当作正文 只有在Insertmode下 才可以做文字输入 按 ESC 键可回到命令行模式 进入vi vivifile file Newfile 退出vi q退出未被编辑过的文件 q 强行退出vi x存盘退出vi wq存盘退出vi 文本输入 按 i 切换进入插入模式 insertmode 按 i 进入插入模式后是从光标当前位置开始输入文件 按 a 进入插入模式后 是从目前光标所在位置的下一个位置开始输入文字 按 o 进入插入模式后 是插入新的一行 从行首开始输入文字 移动光标 k Ctrl P Ctrl N j Backspace h Space l 移至行首 0移至行尾 移至指定行 行号 G或下移多少行 行号 Enter 移至指定列 列号 文本删除 1 删除字符x或nx 从光标所在的位置删除一个或n个字符X或nX 删除光标前的一个或n个字符 2 删除文本对象dd 删除光标所在的行D 删除从光标位置开始至行尾dw 删除从光标位置至该词末尾的所有字符d0 删除从光标位置开始至行首d5G 将光标所在行至第5行删除 复原命令 u 如果插入后用此命令 就删除刚插入的正文 如果删除后用它 则插入刚删除的正文 U 把当前行恢复成它被编辑之前的状态 重复命令 重复实现刚才的插入命令或删除命令 屏幕命令 滚屏命令 Ctrl U和Ctrl D 分别向上和向下滚动半个窗口 翻页命令 Ctrl F和Ctrl B 分别向前和向后翻页 要遵守的步骤提要 进入vi键入vi并按回车到输入模式按输入文本将文本键入缓冲区到命令模式按保存缓冲区到文件键入 wfile 并按回车退出vi键入 q 并按回车 Linuxshell简介 什么是ShellShell的主要版本Shell中的命令规则 路径和文件Shell中的命令补齐 别名功能和保留字Shell中的重定向和管道ShellScript简介 什么是Shell shell是linux的一个外壳 它包在linux内核的外面 为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候 实际上是把指令告诉shell 经过shell解释 处理后让内核作出相应的动作 而系统的回应和输出的信息也由shell处理 然后显示在用户的屏幕上 Shell中的二种命令 1 内建命令 包含在shell自身当中的 在编写shell的时候就已经包含在内了 比如cd exit 查看内建命令的方法可以使用help命令 2 外部命令 是存放于文件系统某个目录下的具体的可执行程序 比如cp就是在 bin目录下的一个可执行文件 外部命令也可以是某些商业或自由软件 如netscape 用户工作环境 环境变量 对环境的设置可以通过给各种环境变量赋值来实现 每一种环境变量控制了一项工作环境的设置 不加任何参数直接使用set命令可以显示出用户当前所有环境变量的设置 路径PATH是shell的一个环境变量 每种shell都有自己的配置文件 用户可以在配置文件里设置各种环境变量 环境变量的配置文件有系统环境配置文件和个人环境配置文件两种 常用shell环境变量说明 环境设置文件有两种 1 系统环境配置文件 etc profile和 etc bashrcprofile文件在每个用户登陆系统时都会被执行 把其中的设置加入到用户的环境中 bashrc文件用于对subshell的环境进行设置 比如新启动了一个shell 此时启动的shell就是subshell 新的shell会从 etc bashrc文件中读取环境配置 环境设置文件有两种 2 个人环境配置文件 系统环境配置文件对所有用户对会起作用 只有root用户才有权对其进行修改 普通用户如果想定制自己的工作环境 可以编辑自己的个人环境设置文件 个人环境设置文件主要有二个 HOME bash profile HOME bashrc 22 2 2Shell的主要版本 sh sh就是BourneShell的缩写 是UNIX系统最早的shell bash bash就是BourneAgainShell的简称 是BourneShell的扩展 完全兼容BourneShell csh CShell是一种比Bourneshell更适于编程的shell 是美国加州大学Berkeley分校开发出来的 具有和C语言相似的语法 但和sh不兼容 tcsh tcsh是EnhancedCShell 是CShell的一个增强版 ksh ksh是KornShell的缩写 集合了Cshell和Bourneshell的优点并且和Bourneshell完全兼容 其它 ash zsh 如何去查看shell的版本 Shell搭起了用户与操作系统间的沟通的桥梁 它提供了基本的操作界面 让用户可以下达各种命令 在系统中进行操作 产生彼此间的交互关系 因此可以将Shell看成是一种用户环境 1 命令提示符 lrj hostlrj 这就是命令提示符 提示符主要告诉用户现在可以下达命令 同时也表示先前达的命令已经完成 2 查看默认的Shell的种类 lrj hostlrj echo SHELL查看当前使用的shell回车后显示为 bin bash Shell中的命令规则 路径和文件 1 命令的一般格式是 命令 选项 参数2 命令一般是小写字符串 注意区分大小写 3 选项通常是以减号 加上一个或数个字符表示 当在一个命令中使用多个选项时 可以在减号后面把代表不同选项的字母合并起来 4 参数就是命令执行时处理的对象 可能是文件 目录或是设备 5 在同一行中可以有数个命令 不同命令间以分号 隔开 执行时首先执行前面的命令 执行完后顺序执行后面的命令 6 shell中的命令参数可以由另一个命令执行的结果来替代 shell中的命令补齐 别名功能和保留字 所谓命令补齐 Command LineCompletion 是指当键入的字符足以确定目录下一个唯一的文件时只须按Tab键就可以自动补齐该文件名的剩余部分 Bash还提供了别名功能 alias 用户可以为一些比较长的命令设置别名 这样以后用户便可以输入相对简单的别名来代替该命令了 shell常用保留字的含义 Shell中的重定向和管道 命令文件 输出重定向 表示把命令的输出输出到文件里 以取代标准输出 命令 文件 输出重定向 用 进行输出重定向会把原来的文件覆盖掉 而 是把输出添加到原文件的末尾 命令A 命令B 是管道符号 表示把命令A运行的结果 也就是命令A的标准输出作为命令B的标准输入 重定向 命令 重定向 redirect 可将某命令的结果输出到文件中 它有两种命令 和 可将结果输出到文件中 该文件原有的内容会被删除 则将结果附加到文件中 原文件内容不会被清除 rlj hostlrj ls al dir txt将ls al命令执行结果输出到dir txt文件中 rlj hostlrj catdata1 txt dir txt将data1 txt内容附加到dir txt文件之后 管道 命令 管道 pipe 命令的符号是 可将某命令A的结果输出给另一命令B去执行 格式 A B root hostetc ls grephosts搜索并显示ls命结果中包含有 hosts 字符串的行hostshosts allow显示结果hosts deny shell脚本介绍 一个shell脚本可以包含一个或多个shell命令 可用来自动完成通常在命令行上执行的重复循环或者复杂的工作 节省大量时间 且功能强大shell脚本主要内容脚本按行解释执行 每一行可以是命令 注解 或是流程控制指令等脚本第一行以 开始 后面加所使用的shell 需指明整个路径名称 如 以 bin sh指定使用BourneShell 在脚本中执行一个命令的方法和在命令行中相同 可以前台或后台执行 也可设定一些环境变量注释 后面的同一行文字为注释 解释器对此不予解释脚本的流程控制近似于一般高级语言 这使得脚本的功能比DOS的批处理文件功能更加强大 常用shell命令 文件及文件属性操作ls cp mv rmln ln s chmod chown chgrp输入输出操作echo cat 标准输入0 标准输出1 标准错误输出2目录操作cd pwd lsdirmkdir cp mv rmdir rm r文本过滤Head tail grep sort uniqsed awk其他find expr获取信息 man 正则表达式 sed与awk的基础 正则表达式是一些特殊或不很特殊的字符串模式的集合 字符集包括 普通字符集和元字符集 通配符 普通字符集 大小写字母 数字 空格 下划线 行首 行尾 一个单字符后紧跟 匹配0个或多个此单字符 匹配 内字符 可以是一个单字符 也可以是字符序列 可以使用 来表示 内范围 如 1 5 等价于 1 2 3 4 5 屏蔽一个元字符的特殊含义 如 表示字符 而不表示匹配行尾 匹配任意单字符几个常见的例子 显示可执行的文件 ls l grep x x x不包括文件夹 ls l grep x x x 只显示文件夹 ls l grep d匹配所有的空行 匹配所有的单词 A Za z 匹配任一非字母型字符 A Za z 包含八个字符的行 8个 Sed命令 命令格式sed pattern action filespattern 正则表达式action 操作 包括p d s示例 打印行 sed n 0 0 9 0 9 p fruit prices txt删除行 sed Mm ango d fruit prices txt执行替换 pattern1 s pattern2 pattern3 g sed s paech peach gfruit prices txt 使用多重sedsed e cmd1 e cmdN files sed e s paech peach e s 0 9 0 9 0 9 0 9 fruit prices txt在管道中使用sed awk命令 命令格式awk pattern actions files示例 字段编辑 awk F print 1 3 inputfiles或 awk F printf sis s n 1 3 inputfiles执行指定模式的操作 awk 1 9 0 9 0 9 0 9 print 0 next 0 0 9 0 9 print 0 fruit prices txt比较操作符 value pattern value pattern 相关 awk 2 1 9 0 9 0 9 0 9 3 75 printf input f利用管道符将标准输入作为输入 shell变量 为使shell编程更加容易而且有效 系统提供了一系列shell变量 可以保存诸如文件名 路径名等有用信息 使系统获知用户相关设置本地变量 在用户现在的shell生命期的脚本中使用 若shell启动另一个进程或退出 该变量值无效环境变量 用于所有用户进程 子进程 环境变量可以在命令行中设置 但用户注销时变量值丢失 可将此变量放入 profile文件中使每次登录使这些值都被初始化特定变量参数位置变量参数 本地变量 命名 可以任何不包含空白字元的字串来当做变量名称设置 v name value或 v name value 其中 设置实际值到v name 若已设置v name 重设其值 若未设置v name 报错 若未设置v name 设置新显示 echo可以显示单个变量取值 变量使用时名字前加 清除 可用unset命令清除变量 即 unsetv name查看所有本地变量 可用set命令显示所有本地定义的变量只读变量 在设值变量后加命令 readonlyv name 即将变量设为只读方式 任何人试图改变它均返回错误信息 用readonly命令可察看所有只读变量 环境变量 环境变量的设置和使用基本与本地变量相同 除了环境变量设置时必须用export导出 其格式为V NAME value exportV NAME 或舍去分号 分写成两行 查看所有环境变量使用env命令常用预留环境变量EDITOR设置编辑器 如 EDITOR vi exportEDITORPWD当前路径名MANPATH保存系统上man文本目录 目录间用冒号分隔 如MANPATH usr apps man usr local man exportMANPATH 特定变量参数 位置变量参数 有些变量用以表示脚本运行时的一些相关信息 这些变量一开始执行脚本时就会设定 并且不能被修改 被称作特定变量参数 如 0当前脚本的文件名 当前脚本的参数个数 以一个单字符串显示所有向脚本传递的参数 脚本运行的当前进程PID 后台运行的最后一个进程的PID 显示最后命令的退出状态 0表示没有错误 其他任何值均表明有错误位置变量参数可以完成向一个shell脚本传递信息的功能 位置参数可任意多 但只有前9个被访问 以 n表示当前脚本的第n个参数值 其中n 1 9 变量引用 在脚本中执行变量替换时最容易犯的错误就是由于引用错误 为防止引用时产生误解 shell有一下引用类型双引号 可引用除 外任意字符或字符串 最好在反馈文本字符串时全使用双引号单引号 可引用引号里所有字符 包括引号 A a echo A输出结果为a echo A 输出结果为a echo A 输出结果为 A反引号 设置系统命令输出到变量 shell将反引号内作为一个系统命令并执行 echo date 输出系统时间 echodate输出结果为date反斜线 屏蔽其下一字符的特殊含义 echo 打印当前整个目录列表 echo 输出结果为 流程控制 shell提供了用来控制程序执行流程的命令 用户可以用这些命令建立非常复杂的程序 与传统语言不同的是 shell用于指定条件值的不是布尔表达式而是命令和字符串控制流程包括 条件测试循环结构 条件测试 1 test命令 testcondition或 condition 用于检查某个条件是否成立 它可以进行数值 字符和文件三个方面的测试 其测试符和相应的功能分别如下 数值测试 eq 相等 ge 数1大于等于数2 gt 数1大于数2 ne 不相等 le 数1小于等于数2 lt 数1小于数2字符串测试 相等 不相等 z字符串 空串 n字符串 非空串文件状态测试 e文件名 文件存在 r文件名 文件存在且可读 w文件名 文件存在且可写 x文件名 文件存在且可执行 s文件名 文件存在且非空 d文件名 文件存在且为目录 f文件名 文件存在且为普通文件逻辑操作符shell提供了与 a 或 o 非 三个逻辑操作符用于将测试条件连接起来 其优先级为 最高 a 次之 o 最低 条件测试 2 shell脚本中的条件分支是通过if条件语句来实现 其格式为if条件命令串1then条件1为真时的命令串elif条件命令串2then条件1为假 条件2为真时的命令串else条件1 2均为假时的命令fi例 文件拷贝输出检查ifcp bin sh ifcpifcpmyfilemyfile bakthenecho Goodcopy elseecho basename 0 error fi 其中if语句必须以fi终止elif和else部分可省略也可有多个elif部分if语句各部分不能为空但可使用永远为真的空命令 解决此问题 运行结果 从myfile到myfile bak到文件拷贝正常 shifcpGoodcopycp命令没有完成拷贝 shifcpifcp error 条件测试 3 if条件语句用于在两个选项中选定一项 而case条件选择为用户提供了根据字符串或变量的值从多个选项中选择一项的方法 其格式为 case值in模式1 若干命令行1 模式2 若干命令行2 其他命令行esac模式部分可能包括元字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小米充电器pd协议书
- 合作协议书签订书
- 粮食仓储物流服务合同书
- 2025-2030企业级SaaS服务客户获取成本与留存率优化报告
- 2025-2030人造板行业产能过剩背景下差异化竞争策略分析
- 2025-2030京菜行业市场发展分析及前景与投资研究报告
- 2025-2030互联网家装平台与免漆门企业合作模式探讨报告
- 2025-2030互联网医疗支付体系创新与可持续发展模式研究报告
- 2025-2030乳品添加剂行业数字化转型与智能制造趋势分析
- 2025-2030临床试验法律合规服务监管动态跟踪
- 工业厂区规划设计说明书
- 结直肠癌的转化治疗
- 高中政治-专题五-第四课-亚太经济合作组织:区域经济合作的新形式课件-新人教版选修3
- 顺丰快递分析
- 提高住院病历完成及时性持续改进(PDCA)
- 平舌音和翘舌音学习资料课件
- 免疫学MHC主要组织相容性复合体及其编码分子
- 医保基金监管
- 公司出差行程计划表excel模板
- 新产品APQP开发计划表
- ICU患者的早期活动
评论
0/150
提交评论