UNIX 是一种能够同时处理多个用户活动的计算机操作系统。UNIX 由 AT&T 贝尔实验室的肯汤普森和丹尼斯 · 里奇开发完成,并于 1969 年左右面世。本教程对 UNIX 做了详细的介绍。适用人群本教程为初学者准备了帮助他们理解先进的理念基础,涵盖 UNIX 命令、 UNIX Shell 脚本和各种实用程序。学习前提我们假设您对操作系统和其功能的了解很少。
到现在为止你肯定对 UNIX 系统已经有了一些大概的理解和一些命令的基本使用方式。本教程将介绍一些非常基本的但重要的 UNIX 实用工具。打印文件在 UNIX 系统中,您打印一个文件之前,您可能想要重新格式化它调整它的边距,高亮显示一些单词等等。大多数文件也可以打印而不用重新格式化,但未经处理的打印可能不那么好看。
UNIX 系统有一个非常灵活和强大的日志系统,它让你能够记录几乎任何你能想象的东西,然后你可以操作日志来获取你需要的信息。许多版本的 UNIX 提供了一个名为 syslog 的通用日志工具,有信息需要记录的单独程序要将信息发送到 syslog。Unix syslog 是一个主机可配置的,统一的系统日志工具。该系统采用集中式的系统日志进程,其运行程序 /etc/syslogd 或者 /etc/syslog。
本教程的目的是介绍一些可用的免费性能分析工具来对 UNIX 系统性能进行监控和管理,并提供了如何分析和解决 UNIX 环境中性能问题的指导。
函数允许你将一个脚本的整体功能分解成更小的逻辑子部分,然后当需要的时候可以被调用来执行它们各自的任务。使用函数来执行重复性的任务是一个创建代码重用的很好的方式来。代码重用是现代面向对象编程的原则的重要组成部分。Shell 函数类似于其他编程语言中的子程序和函数。
什么是替代?当它遇到包含一个或多个特殊字符的表达式时 Shell 执行替代。例以下是一个例子,在这个例子中,变量被其真实值所替代。同时,“\n” 被替换为换行符: #!/bin/sh a=10 echo -e "Value of a is $a \n"这会产生以下结果。在这里 -e 选项可以解释反斜杠转义。
循环是一个强大的编程工具,可以使您能够重复执行一系列命令。针对 Shell 程序员,有 4 种循环类型:while 循环for 循环until 循环select 循环根据不同的情况使用不同的循环。例如只要给定条件仍然是 true,while 循环将执行给定的命令。而 until 循环是直到给定的条件变成 true,才会执行。一旦你有了良好的编程实践,你就会开始根据情况使用适当的循环。
编写 Shell 脚本时,可能存在一种情况,你需要在两条路径中选择一条路径。所以你需要使用条件语句,确保你的程序做出正确的决策并执行正确的操作。UNIX Shell 支持条件语句,这些语句基于不同的条件,用于执行不同的操作。在这里,我们将介绍以下两个决策语句:if……else语句case…… esac语句if……else 语句:if……
一个 Shell 变量只能够容纳一个值。这种类型的变量称为标量变量。Shell 数组变量可以同时容纳多个值,它支持不同类型的变量。数组提供了一种变量集分组的方法。你可以使用一个数组变量存储所有其他的变量,而不是为每个必需的变量都创建一个新的名字。Shell 变量中讨论的所有命名规则都将适用于命名数组。定义数组值一个数组变量和一个标量变量之间的差异可以解释如下。
变量就是被赋值后的字符串。那个赋给变量的值可以是数字、文本、文件名、设备或其他类型的数据。 本质上,变量就是执行实际数据的指针。Shell 可以创建、赋值和删除变量。 变量名变量名仅能包含字母、数字或者下划线。约定俗成的,UNIX Shell 的变量名都使用大写。
UNIX 中一个重要的概念是环境,它是由环境变量所定义。一些环境变量是由系统设置,有一些是由用户设置的,还有一些是被 Shell,或任何会加载另一个程序的程序所设置。一个变量是由一个字符组成的串,并且我们会给它赋值。给变量赋的值可以是一个数字,文本,文件名,设备或任何其他类型的数据。
目录是一个文件,它的作用是存储文件的名称和相关的信息。所有的文件,无论是普通,特殊,或目录都包含在目录中。UNIX 使用层次结构来组织文件和目录。这种结构通常被称为一个目录树。树上有一个根节点,斜杠字符 (/),所有其他目录包含在它之下。主目录主目录是当您第一次登录时所在的目录。您的大部分工作将在主目录及您自定义的子目录中完成。
在 UNIX 中的所有数据被都组织成文件。所有文件被都组织成目录。这些目录被组织成一个称为文件系统的树状结构。当您使用 UNIX 时,你将花费大部分时间用一种方式或另一种方式去处理文件。本教程将教你如何创建和删除文件,复制和重命名它们,创建链接到它们等。在 UNIX 中有三种基本类型的文件:普通文件: 一个普通的文件是系统上包含数据、 文本或程序指令的文件。
UNIX 操作系统是一系列的程序,将计算机和用户联系在一起。分配系统资源和协调计算机内部的所有详细信息的计算机程序被称为操作系统或内核。用户通过一个称为 Shell 的程序内核进行通信。Shell 是一个命令行解释器; 它将用户输入的命令进行转换,并将它们转换为一种可以使内核理解的语言。
如果用户在分布式环境下工作,那么用户就需要与远程用户通信,用户也需要远程方式访问 UNIX 主机。 如下是一些 UNIX 操作系统中的实用工具,这些工具专用于分布式环境下的用户间的网络通信。ping 工具ping 指令会发送一个应答请求到网络中某个主机。该指令主要用于检测远端主机是否可以正常通信。 ping 指令可以用于如下用途: 追踪并区分硬件或软件的问题。
信号是发送给程序的软件中断,表明已发生的重要事件。这些事件的范围可以是从用户请求到非法内存访问错误。这些信号,如中断信号,表明用户要求程序做一些非一般流程控制下的事情。
在 UNIX 系统中,有三种类型的账户:root 帐户:这也被称为超级用户,这类用户对系统拥有完整的和不受约束的控制权。超级用户可以运行任何命令,而不受任何限制。这类用户应该承担作为一个系统管理员的任务。系统账户:系统账户是为操作系统特定组件的需要提供的,例如邮件账户和 sshd 账户。
文件系统是一个分区或磁盘上的文件的逻辑集合。一个分区是一个信息的容器,如果需要可以跨整个硬盘。你的硬盘可以有不同的分区,但通常只包含一个文件系统,如一个文件系统涵盖 /file 系统,另一个包含 /home 文件系统。一个文件系统分区允许不同文件系统的逻辑维护和管理。UNIX 中一切都被认为是一个文件,包括物理设备,如 DVD-ROMs、USB 设备、软盘驱动器等等。
正则表达式是一个字符串,可以用来描述几个字符序列。UNIX 的这些命令中会用到正则表达式,包括 ed、sed、awk、grep,以及 vi。本教程将教你如何使用正则表达式和 sed。这里 sed 代表的流编辑器是一个面向流的编辑器,是专门为执行脚本创建的。因此你的所有输入都会被送到 STDOUT 并且它不改变输入文件。
UNIX 命令都有许多可选的和强制性的选项,而忘记这些命令的完整语法是很常见的事情。因为没有人能记住每个 UNIX 命令及其所有选项,所以在 UNIX 的最早版本中,用户就可以获得在线帮助。UNIX 版本的帮助文件被称为 Manpage。如果你知道所有命令的名称,但你不知道如何使用它,这时 Manpage 可以在每一步中帮助你。
关注时代Java