Linux是一种广泛使用的类UNIX操作系统,是多用户、多任务操作系统,继承UNIX系统的主要特征,具有强大的信息处理能力;
Shell是一个命令解释器(也是一种应用程序),同时也可以作为一门强大的编程语言;
用户接口定义了用户与计算机交互作用的方式;Linux操作系统提供了4种不同的用户接口:
- 命令行接口:
- 支持命令行的系统程序是命令解释程序;Linux/UNIX系统中通常称为Shell;
- Bouren Again shell (bash)【红旗Linux默认shell】
- Bourne shell(sh) 【 $ |】
- C shell(csh)
- Korn shell(ksh)
- Bouren Again shell (bash)【红旗Linux默认shell】
- 命令解释程序的主要功能是:接收用户输入的命令,然后予以解释并执行;
- 系统提示符:由字符$+空格组成,(提示符可修改)
- 支持命令行的系统程序是命令解释程序;Linux/UNIX系统中通常称为Shell;
- 菜单
- 图形用户接口
- 程序接口
(1)核心版本(kernel):
(2)发行版本(Distribution):
- Red Hat Linux/Fedora Core
- Debian:三个版本分支:stable、testing、unstable;
- Ubuntu:基于Debian,采用GNOME桌面环境,使用Sudo工具,分为桌面版和服务器版;
- Slackware
- OpenSuSE
- 红旗Linux
- 中标普华
GNOME(GNU Network Object Model Environment)
KDE(K Desktop Environment)
在UNIX和类UNIX操作系统中常用的用户图形界面是:X-Windows
Linux系统安装包括:
- “多启动”系统:在一台机器上同时安装多个操作系统,每个操作系统单独占用硬盘的一个分区,每一时刻只能运行一个系统,在系统切换时需要重新启动机器,(麻烦);
- “虚拟机”系统:在一台机器上可以安装多个Windows、DOS、Linux系统,可以在主系统的平台上同时运行,就像Windows标准应用程序那样切换;每个操作系统都可以进行虚拟分区、配置=而不影响真实硬盘的数据;
VMware是常见的建立虚拟机平台的软件;其他还有Parallels、VTbox等;
VMware:建立虚拟机平台的软件;
VMware产品版本:
- 服务器版本(vShpere)
- 工作站版本(VMware workstation)
VMware workstation虚拟机是一个在Windows或Linux系统上运行的应用程序,它可以模拟一个基于x86的标准PC环境;与真实裸机平台一样,该虚拟环境具有芯片组、CPU、内存、显卡、软驱、硬盘、光驱、串口、并口等设备;提供该应用程序的窗口就是虚拟机的显示器;使用时,虚拟机与真正的物理机没有太大区别,都需要分区、格式化、安装操作系统、安装应用程序和软件等;
在VMware虚拟机上安装Linux步骤:
- 下载VMware,安装,创建虚拟机;
- 下载Linux操作系统;
- 安装VMware Tools(相当于给Linux装驱动);
- 用户在系统提示符之后输入命令,由shell予以解释并执行,这是Linux系统与用户的交互界面;
- 用户从系统的联机帮助、用户手册中可以找到命令的功能、格式、用法等信息;
- Linux系统有一个突出的特性:只有被授权的用户才能使用系统命令;
- Linux系统提示的命令需要在Shell环境下运行,so需要进入Shell界面(即命令行界面):Ubuntu下快捷键:Ctrl+Alt+T
**命令名 [选项] [参数1] [参数2]...**:之间空格隔开,多个空格shell解释为单个空格;
- 命令名必须是小写英文字母;
- 选项是对命令的特别定义,以“-”开始,多个选项可用“-”连起来:
ls -a -l <等价于> ls -al; - 命令行参数提供命令运行的信息、或命令执行过程中所使用的文件名;通常命令是一些文件名,告诉命令从哪里可以得到输入,以及把输出送到什么地方;
- 若命令行中没有提供参数,命令行将从标准输入文件(键盘)上接收数据,输出结果显示在标准输出文件(显示器)上,错误信息显示在标准错误输出文件(显示器)上;可使用重定向功能对这些文件进行重定向;
- 命令行在正常执行后返回0,表示执行成功;在命令执行过程中出错,或没有完成全部工作,则返回非0值(shell中用变量$ ?查看);shell脚本中可用此返回值作为控制逻辑流程的一部分;
- 联机帮助对每个命令的准确语法都做了说明;
- 在shell提示符后面 输入相应的命令、选项、参数后 按回车确认,shell程序会读取命令并执行;
- 命令区分大小写;
- 命令太长一行放不下时,可在第一行尾输入“\”字符,按回车键,这时shell会返回大于号“>”作为提示符,表示该命令尚未结束,允许继续输入命令;
XX --help:打印XX命令用法;who:列出所有正在使用系统的用户、所有终端名和注册到系统的时间;
- who am i:列出使用该命令的当前用户的相关信息;
echo:将命令行中的参数显示到标准输出(屏幕)上,类似printf;
- echo命令常用于shell脚本中,作为一种输出提示信息的手段;
若参数用单引号括起来,则表示原样输出,否则多个空格将合并为单个空格;
- echo命令常用于shell脚本中,作为一种输出提示信息的手段;
date:在屏幕上显示或设置系统时间和日期;
- 可以指定日期、时间的显示格式;若无选项、参数,将直接显示系统当前日期个时间;
cal:显示1~9999年中任意一年或一月的日历;
- 无参:显示当前月份日历;
- 1个参数:解释为年份;
- 2个参数:月份 年份;(年份写完全形式:08!=2008)
clear:清屏;
password:修改密码口令;
ls:列出当前工作目录中文件和子目录的名字;
-a选项:显示以“.”开头的隐含文件;-l选项:显示文件的I节点号;-d选项:只显示当前目录下的各个子目录名;
cat:连接文件、并打印到标准输出设备上;常用来显示文件的内容;类似于DOS下的type命令;
- 功能1:显示文件内容:一次读取参数 file 指明的文件,将内容输出到标准输出上;
- 功能2:连接两个或多个文件:
cat f1 f2 > f3,将 f1、f2 的内容合并起来,通过重定向符号”>”将它们放到文件 f3 中;
more:显示文件内容,每次显示一屏,满屏后停止,屏幕底部出现提示信息:给出至今已显示到额该文件的百分比;
- 按Space键,显示文本的下一屏内容;
- 按Enter键,只显示文本下一行内容;
- 按斜线“/”,接着输入一个模式,可以在文本中寻找下一个相匹配的模式;
- 按H键,显示帮助屏,该屏上有相关的帮助信息;
- 按B键,显示上一屏内容;
- 按Q键,退出more命令;
less:分屏显示文件内容;
- 与more区别:more只能向前浏览,less能向前、向后浏览文件;
- 按PageUp键,向上翻页;
- 按PageDown键,向下翻页;
- 按Q键,退出 less 程序;
head:
在屏幕上显示指定文件开头若干行,默认参数是10行;tail:在屏幕上显示指定文件的末尾若干行(默认10行);若给定文件不止1个,则在每个显示的文件前加一个文件名标题;若没有指定文件,或文件名是”-“,则读取标准输入;
touch:修改指定文件的时间标签,把已存在的文件的时间标签更新为系统当前时间(默认方式),它们的数据原封不动的保存下来;若该文件尚未存在,则创建一个空新文件;
grep:在文本文件中查找指定模式的词或短语,并在标准输出设备上显示包括给定字符串模式的所有行;
- 该命令组包含三个命令:
grep:一次只能搜索一个指定的模式;
egrep:等同于grep -E,可以使用扩展的字符串模式进行搜索;
fgrep:等同于grep -F,是快速搜索命令,它检索固定字符串,但是不识别正则表达式; - 注意事项:
(1)在命令名之后先输入搜索的模式,然后是要搜索的文件;
(2)在文件名列表中可以使用通配符 *;
(3)要查找指定目录的子目录中的文件,使用-r选项;
(4)若在搜索模式的字符串中包含空格,应该用单引号把模式字符串括起来;
(5)利用-f选项可以大批的在文件中搜索字符串;
- 该命令组包含三个命令:
sort:逐行对指定文本文件的各行进行排序,并将结果显示在标准输出上;若不指定文件、或使用“-”表示文件,则排序内容来自标准输入;
排序关键字进行的,排序关键字定义了用来排序的最小字符序列;默认情况下,排序关键字的顺序由系统使用的字符集决定;uniq:从排好序的文件中去除重复行;
uniq命令读取输入文件,并比较相邻的行,去掉重复的行,只留下其中的一行,该命令加工后的结果写到输出文件中;输入文件与输出文件 必须不同!comm:
comm [-123] f1 f2;对两个已经排序的文件进行逐行比较;
“-“,表示从标准输入中读取;diff:逐行比较两个文本文件,并列出它们的不同之处,并且告诉用户为了使两个文件一致,需要修改它们的哪些行;若两个文件完全一样,则该命令不显示任何输出;它比comm命令完成更复杂的检查,并且不要求两个文件预先排好序;
“-”表示文件1或文件2,则意味着标准输入;cp:将源文件或目录 复制到 目标文件或目录中,源文件保持不变;若目标文件已经存在,那么该目标文件的内容将被破坏;
(1)若源文件是普通文件,则该命令将其复制到指定目标文件中;
(2)若源文件是目录,需要使用-r选项将整个目录下所有文件和子目录都复制到目标位置;
(3)此命令中所有参数既可以是绝对路径名,也可以是相对路径名;
(4)所有目标文件指定的目录必须已经存在,cp命令不能创建目录!
(5)若没有文件复制的权限,系统会提示错误信息;
Eg:cp file /home/mengqc/f:将file复制到/home/mengqc目录下,并改名为f;rm:删除指定的文件,默认情况下不能删除目录;若文件不可写,则标准输出是tty(终端设备);若没有给出选项
-f或--force,则删除文件之前会提示用户是否删除该文件,若用户没有回答y/Y,则不删除文件;
(1)rm命令删除的文件不可恢复,so删除前要确认是否真的删除文件;
(2)rm命令可以使用-i选项,在使用文件扩展名字删除多个文件时很有用;使用这个选项,系统会要求用户逐一确定是否要删除,这时必须要输入y并按回车,才能删除文件;若仅按回车或其他字符,文件不会删除;mv:
mv [选项] source target;对文件或目录重新命名,或将一个目录移到另一个目录中;
(1)source表示源文件或目录,target表示目标文件或目录;
(2)若将一个文件移到另一个已经存在的目标文件中,则目标文件的内容会被覆盖;
(3)mv 命令可将源文件移至一个目标文件中,或将一组文件移至一个目标目录中;
(4)源文件被移至目标文件有两种结果:
(5)当目标文件是目录时,源文件或目录参数可以有多个,则所有源文件都会被移至目标文件中,所有移到该目录下的文件都将保留以前的文件名;wc:统计指定文件的字节数、字数、行数,并将结果显示出来;若没有指定文件或文件名“-”,则从标准输入读取数据;若多个文件一起进行统计,wc最后给出所有指定文件的总统计数;(字是由空格符隔开的字符串)
(1)wc命令输出的顺序和 数目不受选项顺序和数目的影响:【行数 字数 字节数 文件名】,若命令行中没有给出文件名,则输出中不出现文件名列;
磁盘上的文件系统是层次结构的,由若干目录和其子目录组成,最上层目录称为根目录(root),用“/”表示;
(1)文件与目录定义:
- 文件系统:磁盘上有特定格式的一片区域;
- 文件:文件系统中存储数据的一个命名的对象;是Linux操作系统处理信息的基本单位,所有软件都组织成文件;文件可以是空文件;
- 目录:其中包含许多文件项目的一类特殊文件;目录支持文件系统的层次结构;文件系统中每个文件都登记在一个或多个目录中;
- 字目录:被包含在一个目录中的目录;除root目录外,所有目录都是子目录;并且有父目录;root目录就作为自己的父目录;
- 文件名:用来表示文件的字符串,保存在一个目录文件项中;
- 路径名:由斜线“/”字符组合在一起的一个或多个文件名的集合;指的是一个文件在分层树形结构(文件系统)中的位置;
- 当前工作目录:查看文件系统的参考点目录;ls命令列出当前工作目录中文件和子目录的名字;
(2)文件结构:
文件是文件系统中存储数据的一个命名的对象;是Linux操作系统处理信息的基本单位,所有软件都组织成文件;文件可以是空文件;
- 文件的成分:
- 索引节点(I节点):是文件系统结构中包含相应文件信息的一个记录,这些信息包含文件权限、文件主、文件大小等;
- 数据:文件的实际内容,可以是空的,也可以非常大,并且有自己的结构;
- 文件命名:文件名保存在目录文件中;
- 文件名应该尽量简单并反映文件的内容;
- 除“/”和空字符(ASCII字符“\0”)外,可以是任意ASCII字符;
- 习惯上,允许使用下划线“_”和句点“.”来区别文件的类型,使文件名更易读,但应避免使用一下字符:
; \ < > " ' $ ! % & * ? \ ( ) [ ](这些对于系统的shell来说,具有特殊的含义) - 文件名应避免使用空格、制表符、其他控制字符;
- 同类文件应使用相同的后缀、或扩展名;
- Linux系统区分文件名的大小写;
- 以圆点“.”开头的文件名是隐含文件,默认方式下,ls命令不能显示出,
ls -a可显示出隐含文件;
(3)文件类型:
- 普通文件:(常规文件),包含各种长度的字符串;
- 文本文件:由ASCII字符构成;Eg:信件、报告、脚本的命令文本文件等;
- 数据文件:由来自应用程序的数字型和文本型数据构成;Eg:电子表格、数据库、字处理文档等;
- 可执行的二进制程序文件:由机器指令和数据构成;Eg:系统命令;
- 目录文件:是一种特别的文件,利用它可以构成文件系统的分层树形结构;跟普通文件一样,目录文件也包含数据,但目录文件与普通文件的差别是:核心对这些数据进行结构化处理,即它是由成对的
“I节点号/文件名”构成的列表;- I节点号:是检索I节点表的下标,I节点中存放有文件的状态信息;
- 文件名:是给一个文件分配的文本形式的字符串,用来标记该文件;在一个指定目录中,文件名不能重复;
- 每个目录文件的第一项都表示目录本身,并以“点(.)”作为它的文件名
- 每个目录的第二项名字“点点(..)”表示该目录的父目录;
- 设备文件:是一种特别的文件,除了在其文件I节点中存放属性信息外,不包含其它任何信息;系统利用它们来标记各个设备驱动器,核心使用它们与硬件设备进行通信;设备文件通常放在
/dev命令下;
有两类特别设备文件,它们对应不同的设备驱动器:- 字符设备:最常用的设备类型,允许I/O传送任意大小的数据,取决于设备本身的容量;使用这种接口的设备:终端、打印机、鼠标等;
- 块设备:这些设备利用核心缓冲区的自动缓存机制;缓冲区进行I/O传送总是以KB为单位;使用这种接口的设备:硬盘、软盘、RAM盘等;
- 符号链接文件:是一种特殊文件,提供对其他文件的参照;它们存放的数据是文件系统中通向文件的路径;当使用符号链接文件时,核心自动访问所保存的这个路径;