Linux培训基础教程.docx
《Linux培训基础教程.docx》由会员分享,可在线阅读,更多相关《Linux培训基础教程.docx(70页珍藏版)》请在冰点文库上搜索。
Linux培训基础教程
Linux培训
基
础
教
程
上海华平计算机技术有限公司
目录
1LINUX简介4
1.1Linux起源、特性及应用领域4
1.2主流Linux操作系统发行版简介4
2linux文件系统基础5
2.1linux文件结构5
2.2linux文件系统7
2.3挂载文件系统8
2.4自动挂载10
3用户(user)和用户组(group)概念;11
3.1用户(user)的概念11
3.2用户组(group)的概念11
4用户和用户组相关的配置文件、命令或目录;12
4.1与用户(user)和用户组(group)相关的配置文件;12
4.2管理用户(user)和用户组(group)的相关工具或命令12
5文件的权限12
5.1关于权限位;13
5.2改变权限的命令chmod13
5.2.1通过chmod八进制语法来改变文件或目录的权限;14
5.2.2通过chmod助记语法来改变文件或目录的权限;16
6Linux文件和目录管理18
6.1列文件或目录的信息工具ls或dir;18
6.1.1ls的基础语法和参数;18
6.1.2ls的参数示例应用;19
6.1.3通配符在ls命令中的应用;20
6.1.4获得ls的帮助;20
6.2移动文件或目录的命令mv21
6.3文件或目录的复制工具cp;21
6.3.1cp的语法和参数21
6.3.2示例说明cp应用;22
6.4目录创建工具mkdir和删除空目录工具rmdir;24
6.4.1mkdir是目录创建工具;24
6.4.2删除空目录工具rmdir和rm;24
6.5创建一个空文件的工具:
用touch、echo、cat等工具;26
6.6修改文件名工具mv26
7Linux进程管理27
7.1程序和进程;27
7.1.1进程分类;27
7.1.2进程的属性;28
7.1.3父进程和子进程;28
7.2进程管理;28
7.2.1监视进程工具;28
7.2.2pgrep30
7.2.3终止进程的工具kill、killall31
7.2.4top监视系统任务的工具;33
8Linux网络设置指南34
8.1ifconfig配置网络接口的工具介绍;34
8.1.1ifconfig查看网络接口状态;34
8.1.2ifconfig配置网络接口;35
8.1.3如何用ifconfig来配置虚拟网络接口;36
8.1.4如何用ifconfig来激活和终止网络接口的连接;37
8.2Redhat发行版专用网络接口配置工具;37
8.2.1Redhat网络接口的配置文件和网络接口专用配置工具;38
8.3Redhat或类似系统,配置网络的工具介绍;38
8.3.1Redhat系统中的netconfig39
9Linux文件搜索39
9.1关于搜索39
9.2通过搜索文件名来查找文件40
9.2.1find40
9.2.2locate40
9.2.3whereis命令和which命令41
9.2.4在一个文件或输出中查找;41
10文本编译器43
10.1关于文本编辑器;43
10.2vi编辑器;43
10.3vi编辑器的使用方法;43
10.3.1如何调用vi;43
10.3.2vi的三种命令模式;43
10.3.3文件的保存和退出;44
10.3.4光标移动;44
10.3.5插入模式(文本的插入);44
10.3.6文本内容的删除操作;45
10.3.7恢复修改及恢复删除操作;45
10.3.8可视模式;45
10.3.9复制和粘帖的操作;46
10.3.10关于行号;47
10.3.11查找和替换功能;47
11Linux的压缩打包方式48
11.1Linux常用的压缩文件的格式48
11.2Linux下常用的压缩与解压缩命令49
11.2.1tar命令49
11.2.2gzip,zcat命令50
11.2.3bzip2,bzcat命令51
Linux培训基础教程
1LINUX简介
1.1Linux起源、特性及应用领域
Linux操作系统核心最早是由芬兰的LinusTorvalds1991年8月在芬兰赫尔辛基大学上学时发布的[那年Torvals25岁],后来经过众多世界顶尖的软件工程师的不断修改和完善,Linux得以在全球普及开来,在服务器领域及个人桌面版得到越来越多的应用,在嵌入式开发方面更是具有其它操作系统无可比拟的优势,并以每年100%的用户递增数量显示了Linux强大的力量。
Linux的是一套免费的32位多人多工的操作系统,运行方式同UNIX系统很像,但Linux系统的稳定性、多工能力与网络功能已是许多商业操作系统无法比拟的,Linux还有一项最大的特色在于源代码完全公开,在符合GNUGPL(GeneralPublicLicense)的原则下,任何人皆可自由取得、散布、甚至修改源代码。
与其它操作系统相比,Linux还具有以下特色:
①采用阶层式目录结构,文件归类清楚、容易管理
②支持多种文件系统,如Ext2FS,ISOFS以及Windows的文件系统FAT16,FAT32,NTFS等
③具有可移植性,系统核心只有小于10%的源代码采用汇编语言编写,其余均是采用C语言编写,因此具备高度移植性
④可与其它的操作系统如Windows98/2000/xp等并存于同一台计算机上
1.2主流Linux操作系统发行版简介
就Linux的本质来说,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等。
LinuxKernel(内核)并不负责提供用户强大的应用程序,没有编译器、系统管理工具、网络工具、Office套件、多媒体、绘图软件等,这样的系统也就无法发挥其强大功能,用户也无法利用这个系统工作,因此有人便提出以LinuxKernel为核心再集成搭配各式各样的系统程序或应用工具程序组成一套完整的操作系统,经过如此组合的Linux套件即称为Linux发行版。
国外封装的Linux以RedHat(又称为“红帽Linux”)、OpenLinux、SuSE、TurboLinux等最为成功:
RedHatLinux:
RedHat是个商业气息颇为浓厚的公司,不仅展现开创Linux商业软件的企图心,也在1999年在美国科技股为主的那斯达克让公司股票成功上市,RedHat渐渐被拱为Linux商业界龙头。
RedHat是目前销售量最高、安装最简便、最适合初学者的Linux发行版,也是目前世界上最流行的Linux发行套件,它的市场营销、包装及服务做的相当不错,自行开发了RPM套件管理程序及X桌面环境Gnome的众多软件并将其源代码回馈给OpenSourcecommunity。
国内Linux发行版做的相对比较成功是红旗和中软两个版本,界面做得都非常的美观,安装也比较容易,新版本逐渐屏蔽了一些底层的操作,适合于新手使用。
两个版本都是源于中国科学院软件研究所承担的国家863计划的Linux项目,但无论稳定性与兼容性与国外的版本相比都有一定的差距,操作界面与习惯与Windows越来越像,提供一定技术支持和售后服务,适宜于国内做低价的操作系统解决方案。
2linux文件系统基础
2.1linux文件结构
文件结构是文件存放在磁盘等存贮设备上的组织方法。
主要体现在对文件和目录的组织上。
目录提供了管理文件的一个方便而有效的途径。
Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
linux采用的是树型结构。
最上层是根目录,其他的所有目录都是从根目录出发而生成的。
微软的DOS和windows也是采用树型结构,但是在DOS和windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。
但是在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。
从结构上讲,各个磁盘分区上的树型目录不一定是并列的。
例子:
有一块硬盘,分成了4个分区,分别是“/”;“/boot”;“/usr”和windows下的fat
对于“/”和“/boot”或者“/”和“/usr”,它们是从属关系;对于“/boot”和“/usr”,它们是并列关系。
如果我把windows下的fat分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr或者/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
因为linux是一个多用户系统,制定一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。
但就是这一点让很多从windows转到linux的初学者感到头疼。
下面列出了linux下一些主要目录的功用。
目录名称
目录功能
/bin
二进制可执行命令
/dev
设备特殊文件
/etc
系统管理和配置文件
/etc/rc.d
启动的配置文件和脚本
/home
用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib
标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin
系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp
公用的临时文件存储点
/root
系统管理员的主目录
/mnt
系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found
这个目录平时是空的,系统非正常关机而留下碎片的文件(windows下是.chk文件)就在这里
/proc
虚拟的目录,是系统内存的映射。
可直接访问这个目录来获取系统信息
/var
某些大文件的溢出区,比方说各种服务的日志文件
/usr
最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
其中包含下面的目录.
/usr/X11R6
存放Xwindow的目录
/usr/bin
众多的应用程序
/usr/sbin
超级用户的一些管理程序
/usr/doc
linux文档
/usr/includelinux
下开发和编译应用程序所需要的头文件
/usr/lib
常用的动态链接库和软件包的配置文件
/usr/man
帮助文档
/usr/src
源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin
本地增加的命令
/usr/local/lib
本地增加的库
2.2linux文件系统
文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。
linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。
一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。
linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。
系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
linux文件系统将文件索引节点号和文件名同时保存在目录中。
所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。
对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。
因此,在磁盘上的同一个文件可以通过不同的路径去访问它。
可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。
连接有软连接和硬连接之分,软连接又叫符号连接。
它们各自的特点是:
硬连接:
原文件名和连接文件名都指向相同的物理地址。
目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)
文件在磁盘中只有一个拷贝,节省硬盘空间;
由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。
符号连接:
用ln-s命令建立文件的符号连接
符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。
类似windows下的快捷方式。
可以删除原有的文件而保存连接文件,没有防止误删除功能。
2.3挂载文件系统
由上一节知道,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。
linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。
这里所说的“按一定方式”就是指的挂载。
将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。
把该子目录称为挂载点。
举个例子:
根分区:
/usr分区:
挂载之后就形成了文章开始时的那个图。
像不像挂上去的?
注意:
1、挂载点必须是一个目录。
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
对于其他操作系统建立的文件系统的挂载也是这样。
但是需要理解的是:
光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。
光盘是ISO9660;软盘是fat16或ext2;windowsNT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、NTFS。
挂载前要了解linux是否支持所要挂载的文件系统格式。
挂载时使用mount命令:
格式:
mount[-参数][设备名称][挂载点]
其中常用的参数有
-t<文件系统类型>指定设备的文件系统类型,常见的有:
minixlinux最早使用的文件系统
ext2linux目前常用的文件系统
msdosMS-DOS的fat,就是fat16
vfatwindows98常用的fat32
nfs网络文件系统
iso9660CD-ROM光盘标准文件系统
ntfswindowsNT2000的文件系统
hpfsOS/2文件系统
auto自动检测文件系统
-o<选项>指定挂载文件系统时的选项。
有些也可用在/etc/fstab中。
常用的有
codepage=XXX代码页
iocharset=XXX字符集
ro以只读方式挂载
rw以读写方式挂载
nouser使一般用户无法挂载
user可以让一般用户挂载设备
常用的设备名称
/dev/sda1第一个SCSI(SCSIID反向地址)硬盘的第一分区
/dev/sda2第一个SCSI(SCSIID反向地址)硬盘的第二分区
/dev/sdb1第二个SCSI(SCSIID反向地址)硬盘的第二分区
/dev/sdb2第二个SCSI(SCSIID反向地址)硬盘的第二分区
/dev/hda1主IDE驱动器下的主磁盘的第一分区
/dev/hdb2主IDE驱动器下的从磁盘的第二分区
/dev/fd0第一个软盘驱动器
提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。
(就是你要把文件系统挂载到哪,首先要先建上个目录。
)
例子:
windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。
#mk/mnt/winc
#mk/mnt/floppy
#mk/mnt/cdrom
#mount-tvfat/dev/hda1/mnt/winc
#mount-tmsdos/dev/fd0/mnt/floppy
#mount-tiso9660/dev/cdrom/mnt/cdrom
现在就可以进入/mnt/winc等目录读写这些文件系统了。
要保证最后两行的命令不出错,要确保软驱和光驱里有盘。
如果你的windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。
这就要用到-o参数里的codepageiocharset选项。
codepage指定文件系统的代码页,简体中文中文代码是936;iocharset指定字符集,简体中文一般用cp936或gb2312。
2.4自动挂载
每次开机访问windows分区都要运行mount命令显然太烦琐,为什么访问其他的linux分区不用使用mount命令呢?
其实,每次开机时,linux自动将需要挂载的linux分区挂载上了。
那么我们是不是可以设定让linux在启动的时候也挂载我们希望挂载的分区,如windows分区,以实现文件系统的自动挂载呢?
这是完全可以的。
在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。
我的/etc/fstab文件如下:
/dev/hda2/ext3defaults11
/dev/hda1/bootext3defaults12
none/dev/ptsdevptsgid=5,mode=62000
none/procprocdefaults00
none/dev/shmtmpfsdefaults00
/dev/hda3swapswapdefaults00
在/etc/fstab文件里,第一列是挂载的文件系统的设备名,第二列是挂载点,第三列是挂载的文件系统类型,第四列是挂载的选项,选项间用逗号分隔。
第五列是该文件系统需不需要做文件检查,0为不需要,1为需要。
通常只有ext2或ext3文件系统才需要做文件系统检查,第六列是文件系统检查的顺序,0是不做系统检查,1是最先执行系统检查,2是执行文件系统检查的第二顺序,一般只有根目录才为1,其他的都为2。
参数defaults实际上包含了一组默认参数:
rw以可读写模式挂载
suid开启用户ID和群组ID设置位
dev可解读文件系统上的字符或区块设备
exec可执行二进制文件
auto自动挂载
nouser使一般用户无法挂载
async以非同步方式执行文件系统的输入输出操作
3用户(user)和用户组(group)概念;
3.1用户(user)的概念
Linux是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。
比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他使用新的用户名,这从计算机安全角度来说是符合操作规则的;
当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp等,我们访问的网页程序,就是nobody用户;我们匿名访问ftp时,会用到用户ftp或nobody;如果您想了解Linux系统的一些帐号,请查看/etc/passwd;
3.2用户组(group)的概念
用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;
举例:
我们为了让一些用户有权限查看某一文档,比如是一个时间表,而编写时间表的人要具有读写执行的权限,我们想让一些用户知道这个时间表的内容,而不让他们修改,所以我们可以把这些用户都划到一个组,然后来修改这个文件的权限,让用户组可读,这样用户组下面的每个用户都是可读的;
用户和用户组的对应关系是:
一对一、多对一、一对多或多对多;
一对一:
某个用户可以是某个组的唯一成员;
多对一:
多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组;
一对多:
某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员;
多对多:
多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解;
4用户和用户组相关的配置文件、命令或目录;
4.1与用户(user)和用户组(group)相关的配置文件;
1)与用户(user)相关的配置文件;
/etc/passwd注:
用户(user)的配置文件;
/etc/shadow注:
用户(user)影子口令文件;
2)与用户组(group)相关的配置文件;
/etc/group注:
用户组(group)配置文件;
/etc/gshadow注:
用户组(group)的影子文件;
4.2管理用户(user)和用户组(group)的相关工具或命令
1)管理用户(user)的工具或命令;
useradd注:
添加用户
adduser注:
添加用户
passwd注:
为用户设置密码
finger注:
查看用户信息工具
su注:
用户切换工具
2)管理用户组(group)的工具或命令;
groupadd注:
添加用户组;
groupdel注:
删除用户组;
5文件的权限
每个文件或目录都有一组9个权限位,每三位被分为一组,他们分别是属主权限位(占三个位置)、用户组权限位(占三个位置)、其它用户权限位(占三个位置)。
比如rwxr-xr-x,我们数一下就知道是不是9个位置了,正是这9个权限位来控制文件属主、用户组以及其它用户的权限。
5.1关于权限位;
Linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主(Ower)的读、写、执行,用户组(Group)的读、写、执行以及(Other)其它用户的读、写、执行;
文件属主:
读r、写w、执行x
用户组:
读r、写w、执行x
其它用户:
读r、写w、执行x
如果权限位不可读、不可写、不可执行,是用-来表示。
对于普通文件的读、写、执行权限可以这样理解:
可读:
意味着我们可以查看阅读;
可写:
意味着,可以修改或删除(不过删除或修改的权限受父目录上的权限控制);
可执行:
意味着如果文件就可以运行,比如二进制文件(比如命令),或脚本(要用脚本语言解释器来解释运行)。
比如:
[root@localhost~]#ls-llsfile.sh
-rwxr-xr-x1rootroot704-2112:
47lsfile.sh
第一个字段-rwxr-xr-x中的第一个字符是-,表示lsfile.sh是一个普通文件;
lsfile.sh的权限是rwxr-xr-x,表示lsfi