Linux系统管理
第一章:Linux系统安装及基本操作
单词:
Platform:平台 Kernel:核心 General:一般的 Swap:交换的 Lesser:次要的
Dump:倒 Postfix:后缀 Grand:极好的 Bootloader:启动器
Linux的相关概念。
通常所说的Linux指的是Linux操作系统,其中包括Linux内核、系统基本库和应用程序等组成部分。长期以来,Linux内核采用了稳定版本和开发版本并存的版本控制方式,版本号的命名格式为x.yy.zz,其中x为主版本号,yy为次版本号,zz表示修订的版本号。
x主版本号:表示内核结构、功能等方面的重大升级,主版本号升级比较慢,目前只使用了“1”和“2”两个主版本号。
yy次版本号:用于表示内核版本是开发版本还是稳定版本,使用奇数代表开发版本,使用偶数代表稳定版本。
zz修订版本号:表示对同一个内核次版本的不断修订和升级。
Linux的主流发行版本:Red Hat、Novell、Debian、CentOS、Ubuntu、SUSE等。
Linux中硬盘和分区的表示。
Linux内核读取光驱、硬盘等资源时均通过“设备文件”的形式进行,因此在Linux系统中,将硬盘和分区表示为不同的文件。
硬盘:对于IDE接口的硬盘设备,表示为“hdX”形式的文件名;而对于SCSI接口的硬盘设备,则表示为“sdX”形式的文件名。其中X可以为a、b、c、d等字母序号。(例如,第一个IDE硬盘表示为:hda)
分区:表示分区时,以硬盘设备名为基础,在后边添加该分区(无论是主分区、扩展分区、逻辑分区)对应的数字序号即可。
PS:需要注意的是,由于硬盘中的主分区只有4个,因此主分区和扩展分区的序号就限制在1-4之间。而逻辑分区始终从5开始。(例如,第一个IDE硬盘中划分的第一个主分区是hda1)
Linux中使用的文件系统类型。
文件系统类型决定了向分区中存放数据的方式和效率,在对分区进行格式化时需要选择所使用的文件系统类型。在Linux系统中,最常使用的文件系统包括一下两种格式。
EXT3:第三代扩展文件系统,是是目前大多数Linux系统中默认使用的文件系统类型,属于较典型的日志型文件系统。
SWAP:交换文件系统,主要用于为Linux系统建立交换分区。交换分区的作用相当于虚拟内存。
Linux中的目录结构。
在Linux系统中,将所有的文件数据组织为一个“树形”的目录结构,所有的分区、目录、文件等都具有一个相同的位置起点——“根目录”。
整个树型结构目录中,使用独立的一个“/”表示根目录,根目录是Linux文件系统的起点,其所在分区称为根分区。
常见子目录及其作用
/boot:存放启动Linux系统所必须的文件,包括内核文件、启动菜单配置文件等。出于安全考虑,该目录通常被划分为独立的分区。
/bin:存放Linux系统中最基本的用户命令,普通用户都有权限执行。
/dev:存放Linux系统中的硬盘、键盘、鼠标、光驱等各种设备文件。
/etc:存放Linux系统及各种程序的配置文件,配置文件较多的程序会在“etc”目录中建立独立的子目录,用于存放各自的配置文件。
/home:存放所有系统普通用户的默认工作目录(又称宿主目录)。如果服务器需要提供大量的普通用户,建议将“/home”目录也划分为独立的分区,以方便用户数据的备份。
/root:该目录是Linux系统管理员root的宿主目录。
/sbin:存放Linux系统中最基本的管理命令,一般管理员用户才有权限执行。
/var:存放系统中经常需要变化的一下文件,如系统日志文件、用户邮箱目录等,在实际应用系统中,该目录也通常划分为独立的分区。
Linux的安装方式:光盘引导、USB引导。(过程比较简单,跟安装Windows系统界面差不了多少,就不再多叙了。)
切换Linux操作界面
在服务器应用领域,很多Linux/Unix服务器甚至不需要显示器,对服务器的绝大部分管理、维护操作都是通过远程登录的方式进行的。图形操作界面虽然操作简单,但是需要占用更多的资源,不利于远程传输数据,而字符界面的效率则要高得多。要切换进入Linux系统的字符界面,可以使用以下几种方式。
1.使用控制台快捷键。
大多数的Linux系统中默认开启了六个虚拟终端(也称虚拟控制台),用于登录到纯字符模式的操作界面,分别表示tty1-tty6。在RHEL5系统的图形界面环境中,按快捷键Ctrl+Alt+Fn可以切换到第n个虚拟字符控制台,其中n代表数字序号1-6 。需要从字符返回图形桌面环境时可以按快捷键Alt+F7,而在字符控制台切换时,只需要使用Alt+Fn即可。(虚拟机里面快捷键需要加上Shfit)
2.使用远程登录的方式登录到Linux主机。
SSH(安全命令解释器)是目前最常用的远程登录方式。
3.使用图形界面中的伪字符终端。
不管上述哪种方式登录到字符界面后,都可以看到类似“[root@localhost~]#”形式的提示符,其中root表示当前登录的用户,localhost表示本机的主机名,最后的“#”表示当前用户是管理员,如果登录的是普通用户,则是“$”。
安装了图形包,开机就是字符模式,怎么打开图形界面,可以使用startx或者init 5的方式。
关机及重启的命令操作。
shutdown -r now(立刻重启电脑)
shutdown -h now(立刻关闭电脑)
shutdown -r +15 ‘gaun ji’!(15为时间,这个命令设置,15分钟后自动重启系统,同时通知已登录到主机的各用户“guan ji!”)
halt -p(关闭系统,同时关闭主机电源。)
reboot(用于重启系统。)
第二章:管理文件和目录
单词:
Manual:手册 Shell:贝壳,命令解释器 Expression:表达式 List:列表 Remove:删除
Move:移动 Which:哪一个 Concatenate:连结 More:更多的 Less:更少的 Head:头部
Tail:尾部 Count:计算 Executable:执行 Symbolic:符号的
Linux命令的分类
内部命令:指的是集成于Shell解释器程序内部的一些特殊命令,也称为内建命令。
外部命令:指的是Linux系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应了系统中的一个文件,是属于Shell解释器程序之外的命令,所以称为外部命令。
Linux命令行的格式
命令字 [选项] [参数]
命令字即命令名称,是整条命令最关键的一部分。 Linux的命令环境中,无论是命令名还是文件名,对英文字符的处理是区分大小写的。
选项的作用是调节命令的具体功能,决定这条命令如何执行。
参数是命令的处理对象,通常情况下命令参数可以说文件名、目录名或者用户名等内容。
使用Linux命令的快捷键
Tab键:可以将输入的不完整的命令和或文件、目录名自动补齐。如输入“ifcon”后按Tab键,即可自动补齐为ifconfig命令字。该功能只能向后补齐,且必须以以输入的部分字母开头,能够唯一定位一个命令字或文件、目录名;否则可按两次Tab键,系统将输出可用的名称列表。
反斜杠\:如果命令过长,为了美观方便查看,可以插入“\”符合强制换行。
Ctrl+U:快速删除当前光标处之前的所有字符。
Ctrl+K:快速删除当前光标处到行尾的所有字符。
Ctrl+L:快速情况当前屏幕中显示的内容。
Ctrl+C:取消当前命令的编辑,并切换为新的一行命令提示符。
获得命令帮助
使用help命令,help命令本身是Linux Shell中的一个内建指令,其用途是查看各Shell内部命令的帮助信息。使用help命令时,是需要添加内部指令的名称作为参数即可。
如:
使用“–help”选项,对于大部分的外部命令,都可以使用这个选项,用于显示命令字的格式及选项等帮助信息。
如:
使用man手册页,它是Linux系统中最为常用的一种在线帮助形式,绝大部分的外部软件都在安装时为执行程序、配置文件提供了详细的帮助手册页。这些手册页中的信息按照特定的格式进行组织,通过统一的手册页浏览程序man进行阅读。
如:执行man touch后的内容。
使用info命令,信息页是Linux系统中提供的另外一种在线帮助形式,功能与man手册页累死,但提供的信息通常会更加详尽,而且提供了不同帮助主题间的跳转功能。通常使用man手册页已经能够满足绝大部分的命令在线帮助需求,因此使用到info的情况较少。
目录操作命令
pwd命令——查看当前的工作目录(Print Working Directory)
cd命令——切换工作目录(Change Directory)
在Linux系统中表示某个目录或文件的位置时,根据其参照的起始目录不同,可以使用两种不同的形式,分别称为相对路径和绝对路径。
相对路径:这种方式一般以当前工作目录为起点,输入的时候比较简便。
绝对路径:这种方式以根目录“/”作为起点。
使用cd – 用于返回上一次执行cd所处的目录。
ls命令——列表显示目录内容
ls命令主要用于显示目录中的内容,包括子目录和文件的相关属性信息等。常用选项是:
-l:以长格式显示文件和目录的列表,包括权限、大学、最后的更新时间等详细信息。
-a:显示所有子目录和文件的信息,包括名称以点号”.”开头的隐藏目录和文件。
-d:显示目录本身的属性而不是目录中的内容。
-h:以更人性化的方式显示出目录或文件的大小。
-R:以递归的方式显示指定目录及其子目录中所有内容。
使用ls命令显示目录或文件信息时,可以使用通配符”?”或”*”以提高命令编写效率。其中,问号可以匹配文件名中的一个未知字符,而星号可以匹配文件名中任意多个字符。
mkdir命令——创建新的目录(Make Directory)
mkdir命令用于创建新的空目录,也可以同时创建多个目录。可能较常用到的选项为“-p”,改命令用于创建嵌套的多层目录结构。若不使用-p选项,则只能在已经存在的目录中创建其它子目录。
du命令——统计目录及文件的空间占用情况(estimate file space usage)
du命令可用于统计指定目录(或文件)所占磁盘空间的大小。使用目录或文件名称作为参数,可以同时添加多个参数。du命令常用的选项如下:
-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。
-h:以更人性化的方式显示出统计结果。
-s:只统计每个参数所占用空间的总大小。
文件操作命令
touch命令——新建空文件
touch命令本用于更新文件的时间标记,但在实际使用中经常用于创建新的测试文件。使用文件名作为参数,可以同时创建多个文件。当目标文件已经存在时,将更新该文件的时间标记,否则将创建指定名称的空文件。
file命令——查看文件类型
file命令用于查看文件的类型,可以根据文件的内部存储结构来进行判别,而不根据文件的扩展名来进行判别。在Linux系统中,文件扩展名与文件类型没有绝对的关系。
cp——复制文件或者目录
cp命令用于复制文件或者目录,将需要复制的文件或目录(源)重建一份并保存为新的文件或目录(目标)中。cp命令的基本使用格式:cp [选项] …源文件或目录…目标文件或目录
若需要复制的是多个文件或目录时,则目标必须是目录。
cp命令常用的几个选项:
-f:覆盖目标同名文件或目录时不进行提醒,而直接强制(Force)复制。
-i:覆盖目标同名文件或目录时提醒用户确认。
-p:复制时保持源文件的权限、属主及时间标记等属性不变。
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。
rm命令——删除文件或目录
rm命令用于删除指定的文件或目录,在Linux命令行界面中,删除的文件是难以恢复的,因此使用rm命令删除文件时需要格外小心。rm命令使用要删除的文件或目录名作为参数。常用选项:
-f:删除文件或目录时不进行提醒,而直接强制(Force)删除。
-i:删除目标同名文件或目录时提醒用户确认。
-r:删除目录时必须使用此选项,表示递归删除整个目录树。
mv命令——移动文件或目录
mv命令用于将指定的文件或目录转移位置,如果目标位置与原位置相同,则效果相当于为文件或目录重命名。mv命令基本格式:mv [选项] …源文件或目录…目标文件或目录
which命令——查找Linux命令文件并显示所在的位置
which命令用于查找Linux命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量PATH决定(可以执行”echo $PATH”命令查看),这个范围也是Linux系统在执行命令或程序时的默认搜索路径。在RHEL5系统中,为which命令添加了特定的别名设置,因此其查找范围还包括用户环境中设置的命令别名。
find命令——查找文件或目录
find命令是Linux系统中功能非常强大的文件和目录查找命令,可以根据目标的名称、类型、大小等不同属性进行查找。find命令在查找时将采用递归查询的方式,其使用形式相当灵活,也可以相当复杂。这里介绍最基本的几种用法。
find命令的基本使用格式:find [查找范围] [查找条件表达式]
其中,查找范围对应的是在其中查找文件或子目录的目录位置(可以有多个),而查找条件则决定了find命令根据哪些属性、特征来进行查找。常用的几种查找类型如下:
-name:按名称查���。根据目标文件的部分名称查找,允许使用通配符(*或?)。
-size:按文件大小查找。根据目标文件的大小进行查找,一般使用”+”、”-“号设置超过或小于指定的大小作为查找条件,常用容量单位k、M、G。
-user:按文件属主查找。根据文件是否属于目标用户进行查找。
-type:按文件类型查找。这里的类型指的是普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。
需要同时使用多个查找条件时,各表达式之间可以使用逻辑运算符”-a”、”-o”,分别表示而且(And)、或者(Or)。
ln命令——为文件或目录建立链接(Link)
ln命令用于为文件或目录建立快捷方式(在Linux系统中称为链接文件),提高用户定位文件或目录的效率。链接文件分为符号链接、硬链接两种类型,主要区别是:不能对目录创建硬链接,也不能跨越不同分区创建硬链接文件。如果需要创建符号链接(又称为软链接)文件,需要为ln命令添加”-s”选项。ln命令的基本使用格式:ls [-s] 源文件或目录… 链接文件或目标目录
当目标是一个已经存在的目录时,新创建的链接文件将保存到该目录中,并使用与源文件或目录相同的名称。
文件内容操作命令
1.cat命令——显示并连接文件内容
cat命令本用于连接多个文件的内容,但在实际使用中更多的用于查看文件内容。cat命令是应用最为广泛的文件内容查看命令。使用该命令时,只需要指定文件名作为参数即可。
2.more和less命令——分页查看文件内容
使用cat命令可以非常简单直接地显示出文件的全部内容,但是当文件中的内容较多时,很可能只能看到最后一部分信息,而文件的大部分内容却来不及看到。使用more和less命令可以采用全屏的方式分页显示文件内容更便于从头到尾仔细地阅读文件内容。
more命令为较早出现的分页显示命令,表示文件内容还有更多的意思。less命令是较晚出现的分页显示命令,提供了比早期more命令更多的一些扩展功能,两个命令的用法基本类似。
使用more命令查看超过一屏的文件内容时,将进行分屏显示,按Enter键逐行滚动查看,按空格键向下翻一屏,按q键退出并返回原来命令环境。
3.head和tail命令——查看文件开头或末尾的部分内容
head和tail是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容。可以使用-n选项(n为具体的行数)指定需要显示多少行的内容,默认显示十行。
tail命令更多地用于查看系统日志文件,以便观察相关的网络访问、服务调试等相关信息。添加-f选项的命令还可以用于跟踪日志文件末尾的内容变化,实时显示更新的日志内容。
4.wc命令——统计文件内容中的单词数量等信息
wc命令用于计算文件内容中包含的行数、单词数、字节数等信息,使用文件名作为参数,可以同事统计多个文件。较常用的选项如下(默认情况相当于三个选项都使用):
-c:统计文件内容的字节数。
-l:统计文件内容的行数。
-w:统计文件内容的单词个数。
grep命令——检索、过滤文件内容
grep命令用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字作为查找条件,也可以使用复杂的条件表达式(如”^word”表示以word开头,”word$”表示以word结尾,”^$”表示空行)。
使用grep命令的基本格式:grep [选项] … 查找条件 目标文件
grep命令较常用到的选项:
-i:查找内容时忽略大小写。 -v:反转查找,即输出与条件不符的行。
归档及压缩命令
1.gizp和bzip2命令——制作压缩文件或解开已成压缩的文件
这两个命令的压缩算法各不相同,但命令使用格式基本相似,一般来说bzip2的压缩效率更要好一些。使用gzip制作的压缩文件建议使用扩展名”.gz”,而使用bzip2制作的压缩文件建议使用扩展名”.bz2″。制作压缩文件时使用”-9″选项可以有效提高压缩的比率,但文件较大时会需要更多的时间。需要解压文件时,可以使用”-d”选项(使用解压专用命令gunzip、bunzip2也可以)。
2.tar命令——制作归档文件或释放已归档文件
tar命令可以只对目录或文件进行归档,而不进行压缩。但是在实际的备份工作中通常在归档的同时也将包文件进行压缩,以便节省磁盘空间。使用tar命令时,选项前”-“引导字符可以省略。
-f:表示使用归档文件。
-c:创建.tar格式的包文件
-C:解包时指定释放的目标文件夹。
-x:解开.tar格式的包文件。
-j:调用bizp2程序进行压缩或解压缩。
-z:调用gzip程序进行压缩或解压缩。
-p:打包时保留文件及目录的权限。
-t:列表查看包内的文件。
-v:输出详细信息。
使用vi文本编辑器
配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。vi是一个功能强大的全屏幕文本编辑工具,vim是vi编辑器的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是习惯上也将vim称作vi。
vi编辑器的工作模式:
命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成光标移动、字符串查找、以及删除、复制、粘贴文件内容等操作。
输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件进行修改,或者添加新的内容。出于输入模式时,编辑器最后一行会出现“–insert–”的状态提示信息。
末行模式:该模式可以设置vi编辑环境、保存文件、退出编辑器,以及对文件女儿进行查找、替换等操作。出于末行模式,最后一行会出现”:”提示符。
一、vi打开编辑文件
vi <filePathAndName>(示例:vi test.conf, vi /tmp/test.conf,…)
如果指定的filePathAndName存在则会自动载入该文件内容,如果不存在则会自动创建。
注:每行前显示波浪符号的表示该行为空行。
二、模式切换:在命令模式中,使用a、A、i、I、o、O等按键快速切入输入模式,返回命令模式按Esc按键即可。进入末行模式在命令模式按”:”即可。
三、vi编辑指令
1、屏幕翻页
Ctrl+u: 向上翻半屏
Ctrl+f: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+b: 向下翻一屏
2、移动光标指令
移动光标普遍使用的是方向键,考虑兼容问题,vi定义太多的方向指令,下面只是一小小部分(常用的几个):
space: 光标右移一个字符
Backspace: 光标左移一个字符
Enter: 光标下移一行
nG: 光标移至第n行首
n+: 光标下移n行
n-: 光标上移n行
n$: 光标移至第n行尾
0: 光标移至当前行首
$: 光标移至当前行尾
3、插入删除指令
常用插入、删除指令如下:
i:在当前光标前插入,光标后文本向后移
a:从当前光标后插入,光标后文本后移
I:在光标所在行首插入(第一个非空白字符前)
A:从光标所在行末插入
o: 在光标所在行下面新增一行(并进入输入模式)
O: 在光标所在行上方新增一行(并进入输入模式)
x: 删除光标所在字符,等同于[Delete]功能键
X: 删除光标前字符,相当与[Backspace]
dd: 删除光标所在的行
yy:复制当前行正行内容到剪切板
#yy:#是具体数字,可以复制从光标处开始的#行内容
p:粘贴剪切板中的内容到当前光标位置之后
P:粘贴剪切板中的内容到当前光标位置之前
r: 修改光标所在字符
R: 替换当前字符及其后的字符,直到按 [ESC]
s: 从当前光标位置处开始,以输入的文本替代指定数目的字符
S: 删除指定数目的行,并以所输入文本代替之
do: 删至行首
d$: 删至行尾
四、vi查找、保存和退出
退出输入模式,先按一下[ESC]键(有时要多按两下),然后执行:
按/键——输入指定的字符串,从当前光标处向下查找。
按?键——输入指定的字符串,从当前光标处向上查找。
查找完按n、N键在不同的查找结果中进行选择。
按u——取消最近一次操作,可按多次,类似撤销。
按U——取消当前行所做的所有编辑。:w ——保存当前文件
:wq —— 存盘退出(与指令 😡 功能相同)
:q —— 直接退出,如已修改会提示是否保存
:q! ——不保存直接退出
五、打开新文件或读入其它文件内容
在当前vi编辑器中,执行”:e 新的文件”形式的末行命令可以编辑新文件。
在当前vi编辑器中,执行”:r 其他文件”形式的末行命令读入其他文件的内容,将其复制到当前光标的所在位置。
六、文件内容替换
在vi编辑器的末行模式中,能够文件中特定的字符串替换成新的内容。格式如下:
: [替换范围] sub /旧的内容/新的内容[/g]
上述格式中,主要关键字为sub(Subsititute,替换),也可以简写为s。替换范围是可选部分,缺省时只对当前行的内容进行替换,一般可以分为两种形式:
①、%:在整个文件内容中进行查找替换。②、n,m:在指定行数范围内进行查找替换。
最后的”/g”也是可选内容,表示对替换范围内每一行所有的匹配结果都进行替换,省略时将只替换每行第一个匹配结果。
在末行模式执行”set nu”命令可显示行号,执行”set nonu”取消显示行号。第三章:安装及管理应用程序
单词:
Package:包 Manager:管理者 Configure:配置
Prefix:前缀 Erase:擦除 Upgrade:升级 Freshen:更新
Linux应用程序的组成
1.普通的可执行程序文件,一般保存在/usr/bin目录中,普通用户即可执行。
2.服务器程序、管理程序文件,一般保存在/usr/sbin目录中,需要管理员才能执行。
3.配置文件,一般保存在/etc目录中,配置文件较多时会建立相应的子目录。
4.日志文件,一般保存在/var/log目录中。
5.关于应用程序的参考文档等数据,一般保存在/usr/share/doc/目录中。
6.执行文件及配置文件的man手册页,一般保存在/usr/share/man目录中。
软件包的封装类型
1.RPM软件包:这种软件包文件的扩展名为”.rpm”,只能在使用RPM机制的Linux操作系统中安装。RPM软件包一般针对特定版本的系统定制,因此依赖性较强。安装RPM包需要使用rpm命令。
2.DEB软件包:这种软件包文件的扩展名为”.deb”,只能在使用DPKG机制的Linux操作系统中安装。安装DEB软件包需要使用Linux系统中的dkpg命令。
3.源代码包:这种软件包是程序员开发完成的原始代码,一般被制作成”.tar.gz”、”.tar.bz2″等格式的压缩包文件,因多数使用tar命令打包而成,所以经常被称为”TarBall”。安装源代码软件包需要使用相应的编译工具,由于大部分Linux系统中都安装有基本的编译环境,因此使用源码软件包要更加灵活。
4.提供安装程序的软件包:这种软件包的扩展名不一,但仍以TarBall格式的居多。软件包中会提供用于安装的可执行程序或脚本文件,如install.sh、setup等,只需运行安装文件就可以根据向导完成安装。
5.绿色免安装的软件包:这种软件包直接包含有编译好的执行程序文件,因此不需要特别安装。
RHEL5系统的光盘中携带大部分软件包都组织在Server目录中,通过该目录中的文件可以熟悉RPM软件包的一般命名格式。挂载光盘的命令如下:
使用RPM包管理工具及命令
RPM软件包管理机制最早由Red Hat公司提出,后来随着版本的升级逐渐融入了更多的优秀特性,成为众多Linux发行版中工人的软件包管理标准。
使用RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名-软件版本-发布次数.硬件平台类型.rpm”的文件名形式。
使用rpm命令能够实现几乎所有对RPM软件包的管理功能,执行”man rpm”命令可以查看关于rpm命令的帮助信息。
1.查询RPM软件包信息
rpm命令的查询功能主要通过”-q”选项实现,主要针对当前系统已经安装的软件包;通过”-qp”选项可以针对尚未安装的RPM包文件进行查询。
-qa:显示当前系统中以RPM方式安装的所有软件列表。
-qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息(–info)。
-ql:显示指定的软件包在当前系统中安装的所有目录、文件列表(–list)。
-qf:查看指定文件或目录是由哪个软件包所安装的。
-qc:显示指定软件包在当前系统中安装的配置文件(–configfiles)列表。
-qd:显示指定软件包在当前系统中安装的文档文件(–docfiles)列表。
使用”-qp”选项时,需要使用RPM包文件作为参数(可以有多个)。其相关的子选项与”-q”查询时类似。例如:-qpc:查看该软件包准备要安装的配置文件列表。
2.安装、升级、卸载RPM软件包
-i:在当前系统中安装(Install)一个新的RPM软件包。
-e:卸载指定名称的软件包。
-U:检查并升级系统中某个软件包,若该软件包并未安装,则等同于”-i”选项。
-F:检查并更新系统中某个软件包,若该软件包并未安装,则放弃安装。
-h:在安装或升级软件包过程中以”#”号显示安装过程。
-v:显示软件安装过程中的详细信息。
更多选项参考man信息。
3.维护RPM数据库
当RPM数据库损坏时,使用rpm命令的”–rebuilddb”或”–initdb”功能进行重建。
从源代码编译安装程序
现代的Linux发行版本通常使用包管理机制对软件进行打包安装,这样就省去了软件的编译安装过程,大大简化了Linux系统的安装和使用难度。但是在有些情况下,仍然需要使用源代码编译的方式为系统安装新的应用程序,例如:
1.安装较新版本的应用程序时:大多数的Linux发行版都提供了相当丰富的应用程序,而这些程序的版本往往滞后于该软件的最新源码版本,因为大多数的开源软件总是以源码的形式最先发布,之后才会出现.rpm、.deb等二进制封装的版本。下载应用程序的最新源码包并编译安装,可以在程序功能、安全补丁等方面得到及时更新。
2.当前安装的程序无法满足应用需求:对于RPM格式封装的应用程序,一般只包含了该软件所能实现的一小部分功能,而难以由用户自行修改、定制。通过对程序的源码进行重新配置并编译安装后,可以定制更灵活、更丰富的功能。
3.为应用程序添加新功能时:当需要利用现有的应用程序源代码进行适当的修改,以便增强新的功能时,也必须释放出该软件的源代码,进行适当修改后重新编译安装。
编译源代码需要相应的开发环境,对于自由软件来说,gcc编译器是最佳选择。确认系统中编译环境:
源码编译安装的基本过程
1.解包:源代码吧一般为TallBall形式,使用tar命令进行解压释放。在Linux系统中,可以将各种软件的源代码文件保存到/usr/src/目录中,便于集中管理。
2.配置:配置工作通常由源代码目录中的”configure”脚本文件来完成,具体参数可以在源码目录中执行”./configure –help”进行查看。不同的程序其配置参数会存在区别,但是”–prefix”形式的参数却是大多数开源软件通用的,该配置参数用于指定软件包安装的目标文件夹,未指定参数时,”configure”配置脚本将采用默认值。若将应用程序的相关文件安装到同一个目录中,需要卸载时就非常方便,一般只要将程序文件夹删除即可(有些软件可以在源码包目录中执行”make uninstall”命令完成卸载)。
3.编译:编译的过程主要是根据Makefile文件中的配置信息,将源代码文件编译、连接成二进制的模块文件、执行程序等。第二步的配置完成后执行”make”命令可以完成编译工作,一般比需配置步骤更长的时间,期间同样会出现大量的配置信息。
4.安装:编译完成后,就可以执行”make install”命令将软件的执行程序、配置文件、帮助文档等相关文件复制到Linux系统中了,即应用程序的最后安装过程。
上述过程中,有时候为了简单起见,也可以将编译、安装的步骤写成一行命令执行,中间使用”&&”符合分隔即可(make && make install)。第四章:管理用户和文件权限
单词:
Identify:确定 Owner:所有者 Change:更改 Ownership:所有权 Modify:修改 Daemon:后台程序 Mode:模式 Sticky:粘的 Shadow:阴影 Finger:手指、查找器
管理用户和组账号
一、用户账号
超级用户:root用户是Linux系统中默认的超级用户账号,对本机拥有至高无上的完全权限。
普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有权限受到一定限制,一般只在用户自己的宿主目录下有完全权限。
程序用户:在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。
二、组账号
基于某种特定联系将多个用户集合在一起,即构成一个用户组,用于表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为基本组(或私有组);如果该用户同时包括在其他组中,则这些组称为该用户的附加组(或公共组)。
三、UID和GID号
Linux系统中每一个用户账号都有一个数字形式的身份标记,称为UID(User Identity,用户标识号),对于系统核心来说,UID作为区分用户的基本依据,原则上每个用户的UID号应该是唯一的。root用户账号的UID号为固定值0,而程序用户账号的UID号默认在1~499之间,500~60 000的UID号默认分配给普通用户账号使用。
与UID类似,每一个组账号也有一个数字形式的身份标记,称为GID(Group Identity,组标识号)。root组账号的GID号为固定值0,而程序组账号的GID号默认在1~499之间,普通组账号使用的GID号默认为500~60 000。
用户账号管理
1.用户账号文件:与用户账号相关的配置文件主要有两个,分别是/etc/passwd、/etc/shadow。前者用于保存用户名称、宿主目录、登录Shell等基本信息,后者用于保存用户的密码、账号有效期等信息。这两个配置文件中,每一行对应一个用户账户,不同的配置项之间用”:”号分隔。
passwd文件中的配置行格式
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户能够修改。新增用户保存到passwd文件的末尾,每一行的内容包含了七个用冒号分割的配置字段。从左到右各配置字段的含义如下所述。
第一字段:用户账号的名称,也是登录系统时使用的名称。
第二字段:密码占位符“X”。
第三字段:用户账号的UID号。
第四字段:所属基本组账号的GID号。
第五字段:用户全名,可填写与用户相关的说明信息。
第六字段:宿主目录,即该用户登陆后所在的默认工作目录。
第七字段:登录Shell等信息,用户完成登录后使用的Shell。
shadow文件中的配置行格式
shadow文件又被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该严格限制。默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件内容。每一行的内容包含了九个用冒号分割的配置字段,从左到右个配置字段的含义如下所述。
第一字段:用户账号名称
第二字段:使用MD5加密的密码字串信息,当为”*”或”!!”时表示此用户不能登录到系统。若该字段为空,则该用户无需密码即可登录到系统。
第三字段:上次修改面膜时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数。
第四字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制。
第五字段:密码最长有效天数,自本次修改密码后,进过该天数必须再次修改密码。默认值为99999,表示不进行限制。
第六字段:提前多少天警告用户口令将过期,默认值为7。
第七字段:在密码过期之后多少天禁用此用户。
第八字段:账号失效时间,此字段指定了用户作废的天数,默认值为空,表示账号永久可用。
第九字段:保留字段,目前没有特定的用途。
useradd命令——添加用户账号
命令格式:useradd [选项] 用户名
-u:指定用户的UID号,要求该UID号码未被其他用户使用。
-d:指定用户的宿主目录位置。
-e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
-g:指定用户的基本组名(或使用GID号)。
-G:指定用户的附加组名(或使用GID号)。
-M:不建立使用者目录,即使/etc/log in.defs系统档设定要建立使用者目录。
-s:指定用户的登录Shell。
useradd命令在添加用户账号的过程中主要完成以下几项任务
1.在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录。
2.若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户同名的宿主目录,并在该目录中建立用户的初始配置文件。
3.若没有明确指定用户所属的组,则自动创建与该用户帐号同名的基本组账号,组账号的记录信息将保存到/etc/group、/etc/gshadow文件中。
passwd命令——为用户账号设置密码
使用passwd命令除了可以修改账号的密码外,还能够对用户账号进行锁定、解锁等操作。(高管)
-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户。
-S:查看用户账号的状态(是否被锁定)。
-u:解锁用户帐户。
root用户可以指定账号名称作为参数,对指定账号的密码进行管理。但是普通用户只能执行单独的passwd命令修改自己的密码,而且普通用户设置自己的密码时,密码要求有一定的复杂性,否则系统可能拒绝进行设置。
usermod命令——修改用户账号属性
对于系统中已经存在的账号,可以使用usermod命令重新设置各种属性。同样需要指定账号名称作为参数。
-u:修改用户的UID号。
-d:修改用户的宿主目录位置。
-e:修改用户的失效时间,可使用YYYY-MM-DD的日期格式。
-g:修改用户的基本组(或使用GID号)。
-G:修改用户的附加组名(或使用GID号)。
-M:不为用户建立并初始化宿主目录。
-s:指定用户的登录Shell。
-l:更改用户账号的登录名称(Login Name)。
-L:锁定用户账户。
-U:解锁用户账户。
userdel命令——删除用户账号
当系统中某个用户账号已经不再需要使用时,使用该命令加指定账号名称作为参数(添加-r选项时可以将该用户的宿主目录一并删除)删除用户。
用户账号的初始配置文件
在Linux系统中添加用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模版目录/etc/skel/,基本上都是隐藏文件,较常用的厨师配置文件包括”.bash_logout”、”.bash_profile”、”.bashrc”。其中,”.bash_profile”文件中的命令将在该用户每次登陆时被执行;”.bashrc”文件中的命令会在每次加载/bin/Bash程序时(当然也包括登录系统)被执行;而”.bash_logout”文件中的命令将在用户每次退出登录时被执行。
组账号管理
组账号文件:与组账号文件相关的配置文件也有两个,分别是/etc/group、/etc/gshadow。前者用于保存组账号名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少用到)。
groupadd命令——添加组账号
使用groupadd命令可以添加一个组账号,需要指定GID号时,可以使用-g选项。
gpasswd命令——添加、删除组成员
gpasswd命令本来是用于设置组账号密码的,但是该功能极少使用,实际上更多地用来为指定组账号添加、删除用户成员,对应的选项分别为-a、-d。使用-M选项时可以同时添加多个用户。
groupdel命令——删除组账号
当系统中的某个组账号已经不再使用时,可以使用groupdel命令删除该组。
用户和组账号查询
groups命令——查询某个用户账号所属的组
finger命令——查询用户账号的详细信息
users、w、who命令——查询当前登录到主机的用户信息。
管理文件/目录的权限和归属
使用ls命令的-l选项时,将以长格式显示出文件或目录的详细信息,其中包括了该文件的权限和归属等参数。
在文件或目录的详细属性信息中,第3、4个字段分别表示该文件或目录的属主、数组。
第一个字段表示该文件或目录的访问权限,如”drwx-xr-x”和”-rw-r–r–“。权限字段由四部分组成,各自的含义如下:
第一个字符:表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、减号”-“(普通文件)、字母”l”(链接文件)等。
第2~4个字符:表示该文件属主对该文件的访问权限。
第5~7个字符:表示该文件数组内各用户对该文件的访问权限。
第8~10个字符:表示其它任何用户对该文件的访问权限。
设置文件/目录的权限
设置文件或目录的权限时,主要通过chmod命令进行,在设置某一类用户的访问权限时,可以采用两种形式的权限表示方法:字符形式和数字形式。r、w、x权限字符可分别为八进制数字4、2、1,表示一个权限组合时需要将数字累加。例如:rwx可用八进制数字7表示。
基本命令格式:chmod [ugoa] [+-=] 文件或目录
chmod nnn 文件或目录
PS:ugoa分别代表用户、组、其他、所有。+代表增加相应权限,-代表减少相应权限,=代表设置相应权限。需要将不同类别的用户对文件或目录的权限设置为不同时,可以用逗号进行分割。
设置文件/目录的归属
需要设置文件或者目录的归属时,可以通过chown、chgrp命令进行。前者可以同时修改文件或目录的属主或属组,而后者只能用于修改数组信息。因此常用命令为前者。
chown命令格式:chown 属主[:[属组]] 文件或目录
使用附加权限
1.SET位权限:多用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限。执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。
为执行文件添加SET位权限同样可以通过chmod命令实现,使用u+s、g+s的权限模式分别用于设置SUID、SGID权限。若使用数字形式,SUID对应八进制数字是4,SGID对于八进制数字是2,在权限模式中可采用”nnnn”的形式,如”4755″表示设置SUID权限,”6755″表示同时设置SUID、SGID权限。
2.粘滞位权限:主要用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。
使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限。将数字权限模式nnnn中的第一位数字 改为1、0,也可以实现添加、移除粘滞位权限。