Linux管理基础教程学习笔记.docx
- 文档编号:3974694
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:27
- 大小:295.59KB
Linux管理基础教程学习笔记.docx
《Linux管理基础教程学习笔记.docx》由会员分享,可在线阅读,更多相关《Linux管理基础教程学习笔记.docx(27页珍藏版)》请在冰豆网上搜索。
Linux管理基础教程学习笔记
第三章安装软件
3.1RPM
RPM(RedHatPackageManager):
RPM软件包管理器是一种用于Internet下载包的打包及安装工具,为二进制已编译文件,与之对应的开源代码的格式为SRPM。
RPM命令中,长命令格式--query与缩写命令格式-q相对应。
下面是简单的命令说明:
命令行选项
--install
安装一个软件包
--upgrade
升级或将当前已安装软件更新到最新版本
--erase
移出或删除一个已安装软件包
--query
查询软件信息
--force
强制进行安装。
-h
使用符号“#”指示安装进度,与-v参数同时显示效果更好。
--percent
显示已完成百分比进度。
-nodeps
不进行依赖关系检查
--test
测试安装是否能成功完成。
-V
检验系统中的RPM包或文件。
-v(/--verbose,详细的)
通知RPM报告每一步操作的详细信息。
例:
rpm-qibash,显示bash包详细信息
rpm-qlbash,列出bash包包含的所有文件
rpm-qcbash,列出bash包中配置文件
rpm-q--qf“[%{INSTALLTIME:
date}%\n]”bash,查找bash包安装至系统中的时间
使用RPM安装软件包
1)#mount/media/cdrom,插入Fedora光盘,将在CDReadOnlyMeida中的文件挂载至/media/cdrom/中;
2)#cd/media/cdrom/Fedora/RPMS/,并#lsjoe*确定文件是否在其目录下;
3)#rpm–install–verbose–hash–testjoe*,测试软件依赖关系;
4)#rpm–ivhjoe*,安装软件;
5)#rpm–qjoe,查询命令以确认应用安装至系统中。
删除RPM软件包
#rpm–e–vvvjoe,删除joe软件包并显示详细信息。
校验包
#rpm–Vbash,检验bash包是否正常;rpm–Vf/bin/ls,检验安装包在文件系统下指定的文件,即检验/bin/ls命令是否有效。
命令行选项
S
文件大小不一致
M
模型不一致(文件许可和类型)
5
MD5检验号不一致
D
主/辅设备号不匹配
L
访问链接路径不匹配
U
用户所者不一致
G
组所有者不一致
T
修改时间不一致
#rpm–Va,校验系统所有安装软件包
命令行选项
--install
安装一个软件包
--upgrade
升级或将当前已安装软件更新到最新版本
--erase
移出或删除一个已安装软件包
--query
查询软件信息
--force
强制进行安装。
-h
使用符号“#”指示安装进度,与-v参数同时显示效果更好。
--percent
显示已完成百分比进度。
-nodeps
不进行依赖关系检查
--test
测试安装是否能成功完成。
-V
检验系统中的RPM包或文件。
-v(/--verbose,详细的)
通知RPM报告每一步操作的详细信息。
包确认
RPM对软件包数据签名,有时需要手动确认哪些签名是值得信赖,则会在安装时出现警告信息。
要阻止这种情况出现,应将厂商的密钥导入本地,如:
#rpm–import
3.2Yum(YellowdogUpdater,Modified)安装方式
Yum主要功能是更方便地添加/删除/更新RPM包。
Yum是RPM系统的自动更新器及包安装/卸载管理器,它能自动的计算出依赖关系并判断安装包中将会发生的事件。
一般使用Yum时,只需启用Yum软件库的配置文件(/etc/yum.config)即可。
#yuminstallgcc,安装gcc软件命令;
#yumsearchheaders,返回匹配headers条件的软件列表,Yum具有强大搜索能力。
3.3GNU(GNU’sNotUnix)软件的编译与安装
1)下载hello包源代码
#wgethttp:
//ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz,其中wget(WorldWideWeb&Get)是在网络上进行下载的简单而强大的自由软件,属于GNU,支持HTTP、HTTPS及FTP。
2)解压缩。
tar归档把许多文件归档为单独一个大文件,并解档;gzip负责在tar归档后进行压缩。
#tar–xvzfhello-2.1.1.tar.gz,-x:
释放文档,-v:
报告tar处理文件信息,-z:
用gzip压缩/解压,-f:
使用档案文件(必选)。
解压时至当前目录并创建hello-2.1.1文件夹。
#lessINSTALL,查看INSTALL文件,Ctrl+F向下翻页,q退出。
3)配置软件包。
大多数软件包都会带有一个执行自动配置操作的脚本程序,通常命名为config或configure,并可以带有参数。
#./configure--help,查看软件包配置选项。
一个常见参数是--prefix,允许设置软件开始安装的基目录,默认为/usr/local/。
#./configure,运行配置后将产生makfile编译文件。
4)编译软件包。
#make,按照Makfile编译软件。
5)安装软件包。
#makeinstall,该命令将软件包安装到configure脚本中默认参数(--prefix)指定位置下,它将启动自动安装脚本程序(经常嵌入Makefile文件中)。
6)测试软件包。
#/usr/local/bin/hello
7)删除hello目录,#rm–rfhello-2.1.1
当库文件(*.so,如同Windows下*.dll)丢失时,如在非/usr/local目录安装了一个软件包,则必须配置系统变量LD_LIBRARY_PATH或在/etc/ld.conf添加新库路径并用”#ldconfig-m”重新加入目录。
第四章用户管理
用户分为根用户,或普通用户。
有用户ID和用户组ID以标识资源权限。
4.1用户信息保存
4.1.1/etc/passwd文件
/etc/passwd文件保存用户登录名、加密口令数据、UID、默认GID、姓名(GECOS)、用户目录、及登录后使用的shell。
格式如下:
Username:
|Password:
|User-ID:
|Group-ID:
|GECOS:
|Directory:
|Shell
Yyang:
*:
500:
500:
YingYnag:
/home/yynang:
/bin/bash
密码项:
通常只包含一个字母’x’,用以表示系统使用的是影子密码。
UID:
用于唯一标识用户并确定其访问特权的数字,与用户名造价,为0的用户具有根用户访问权。
GECOS:
保存用户各种片断信息,包括用户描述、姓名、电话等,多条目之间用逗号隔开。
目录项:
HomeDirectory,一般位于/home目录下。
Shell项:
位于用户主目录下,当用户登录时启动shell命令脚本,对bash(BourneAgainShell,默认shell)而言,为*.bashrc文件。
.bashrc/.profile:
bash的配置文件
.tcshrc/.login:
tcsh的配置文件
.xinitrc:
登录XWindow系统时,覆盖用户默认调用脚本
.Xdefaults:
包含用户对XWindow系统应用指定的默认值
4.1.2/etc/shadow文件(影子密码)
/etc/shadow文件是加密的密码文件,存储账户保存加密的密码信息,包含密码、到期时间、账户是否禁用等信息。
/etc/passwd对全部用户可读,但/etc/shadow只对根用户及具有优先权的程序(如登录程序)可读。
/etc/shadow文件每行都由不同标准项组成,之间用冒号分隔,包括:
登录名、加密口令、距离最后一次修改使用多少天、需要再过多少天才能修改口令、需要再过多少天必需修改口令、失效前提示警告信息天数、口令失效后多少时间禁用帐户、已经禁用多长时间、保留域。
4.1.3/etc/group文件
1、组名称;
2、加密的用户口令;
3、GID;
4、以逗号分隔的用户清单。
如:
bin:
x:
1:
root,bin,daemon。
4.2用户管理工具
4.2.1命令行方式
6种命令:
useradd、userdel、usermod、groupadd、groupdel和groupmod。
useradd命令
useradd[-uuid[-o]][-ggroup][-Ggroup,…]
[-dhomedir][-sshell][-ccomment][-m[-kskel_dir]]
[-finactive-time][-eexpire-date][-ppasswd][-M][-n][-r]name
-ccomment:
用户名,如YingYang;
-ggroup:
默认分组;
-Ggroup[,]:
新用户所属其它附加组;
-eexpire-date:
指定过期日期;
-finactive-time:
密码过期后多少天内帐号还可以使用;0为立即禁用,-1永远不禁用;
-m[-kskel_dir]:
创建用户主目录(默认),当创建时会复制在/etc/skel下默认配置文件至目录中,而-kskel_dir则可更改skel目录;
-M:
不创建主目录;
usermod命令
usermod[-uuid[-o]][-ggroup][-Ggroup,…]
[-dhomedir[-m]][-sshell][-ccomment][-lnew_name]
[-finactive-time][-eexpire-date][-ppasswd][-L|-U]name
-l:
允许改变用户登录名。
userdel命令
userdel[-r]username
-r:
该用户主目录中的所有属于该用户的文件也都将被删除。
groupadd命令
groupadd[-ggroup-id[-o]][-r][-f]group
-r:
默认情况下,Fedora和RHEL自动搜索第一个大于499的GID值。
-r则需要一个小于499的第一个可用数值。
-f:
只用于fedora和RHEL系统,当添加新用户组时,如已存在同名,则执行程序退出,而不修改用户组设备值。
但-f则强制执行。
groupmod命令
groupmod[-ggid[-0]][-nname]group。
4.3用户和访问许可
四种权限——r:
读,w:
写,x:
执行,-:
无。
被应用到3类用户类:
owner:
文件所有者、group、everyone。
并有额外授权机制:
SetUID、SetGID。
SetUID、SetGID是以其owner身份运行该程序,SetUID在分配给它的访问权限数值前+4;SetGID+2,如:
#chmod4755/bin/ls。
4.4可植入认证模块(PAM,PluggableAuthenticationModule)
PAM原理是,由应用程序将请求简单地递交给PAM执行认证(简单函数调用),而PAM在其配置文件或默认配置文件中找认证模式。
文件位置
定义
/lib/security
实际PAM库调用的动态加载认证模块
/etc/security
位于/lib/security目录下模块的配置文件
/etc/pam.d
针对每个PAM应用的配置文件。
如某个PAM无指定配置文件,则使用默认配置文件。
/etc/pam.d文件中每行配置格式如下:
module_typecontrol_flagmodule_patharguments
module_type:
auth
应用程序提示用户输入口令、并赋予其用户权限和组权限
account
不执行认证,但使用其它因素,如当日时间、用户位置(指定控制台登)
session
指定在用户登录之前或之后需要执行的动作
password
指定是否允许用户改变其口令
control_flag
Required
模块认证必需成功,否则返回失败标志
Requisite
如模块认证失败,将不会调用module_path,立即返回失败。
Optional
当前模块认证失败后,继续检查其它模块。
Sufficient
该模块返回成功,并在配置文件中未指定required或sufficient,PAM则返回成功
module_path:
通常位于/lib/security下。
Arguments:
Debug
向系统日志发送调试信息
no_warn
不发送警告
User_first_pass
不向用户提示第二次输入口令(仅限auth和password类型)
Try_first_pass
不提示第二次输入口令,但如失败,则会再次要求输入口令
当PAM找不到对应配置文件,则使用/etc/pam.d/other下文件。
当无法登录时,则配置/etc/pam.d/login文件如下:
authrequiredpam_unix.so
accountrequiredpam_unix.so
passowrdrequiredpam_unix.so
sessionrequiredpam_unix.so
pam_unix.so是用/etc/passwd文件验证。
第五章命令行
5.1bash入门
5.1.1作业管理
如果某个程序正在终端运行,可按Ctrl+Z让程序向bash交出控制权,并暂停运行中的作业。
#jobs,查看bash跟踪作业数目,命令结果显示正在运行或暂停。
#fgnumber,fg:
foreground前台,将编号对应作业调回前台运行。
#bgnumber,bg:
background,后台运行作业。
5.1.2环境变量
#printenv,查看环境变量
#variable=value,设置variable为value值,variable必需已存在,当前shell生效
#exportvariable#variable=value,或#exportvariable=value,以使该变量应用到启动的其他进程中。
环境变量值包含空格,则”value”引起。
#unsetvariable,删除环境变量。
5.1.3管道
管道将程序的输出发送到另外一个程序作为输入。
#printenv|grepTERM,Linux管道:
所有命令同时执行,Windows管道:
按顺序执行。
5.1.4重定向
通过重定向可以获得一个程序的输出,并且立刻把它自动送入一个文件(UNIX无处不文件)。
三种方式:
输出到文件、附加其末尾和以文件作为输入。
#ls>/tmp/dir_listing,输出到dir_listing文件
#echo“DirectoryListing”>>/tmp/dir_listing,将字符串附加至dir_listing文件末尾
#grep‘root’
5.1.5多条命令联合使用
#ls;cat/etc/passwd,分号一条一条执行
#ls&&cat/etc/passwd,若ls执行失败则cat不执行
5.1.6反单引号
反单引号(`)允许把一条命令嵌入到其他命令参数中去,并先执行该命令返回结果。
#kill`cat/var/run/named/named.pid,将named.pid中进程杀死
5.2文档工具
文档工具有两:
man和info。
Info格式优于man,可像HTML链接一起。
man(manual,手册页)命令,在线查询文档,包括工具程序和对应配置文件的使用方法。
#man[type][-f]program_name,查询程序手册
type:
小节号,1、用户工具,2、系统调用,3、C函数库,4、设备驱动,5、配置文件,7、软件包,8、系统工具。
-f:
从全部使用手册中查找总结性有关资料,并把匹配的使用手册页及相应小节号显示。
texinfo格式,GNU组织标准,例:
#infogrub。
5.3文件列表、所有权和访问权限
5.3.1文件清单命令ls
ls命令参数
描述
-l
长列表,包括:
名称、大小、日期等信息
-a
列出全部文件,包括子目录及隐藏文件
-t
列表按最后修改时间排列
-r
列表反序排列
-R
递归列出所有文件及下级子目录
5.3.2文件和子目录类型
文件有如下类型:
1)普通文件
2)目录。
保存文件及子目录信息。
3)硬链接。
每个文件有自己的inode,保存文件属性及数据块。
如需要使两个不同文件名代表同一文件,就可使用硬链接(hardlink)。
硬链接具有与原始文件同样的inode,链接计数器记录链接次数,以便删除使用。
不同硬盘间两文件不可建立硬链接。
因inode在不同文件系统可能不同。
4)符号链接(symboliclink,symlinks)。
通过文件名指向另外一文件,允许不同分区、网络。
5)块设备(blockdevice)。
设备接口,特征:
具有一个主号码、一个从号码、使用访问权限的第一个字母是b。
例:
ls–a/dev
,
1rootdisk是主号码,1是从号码。
主号码代表设备驱动程序,而从号码将被作为参数传入设备驱动程序,通知它正在访问哪个设备。
6)字符设备(characterdevice)。
允许通过文件系统访问硬件设备的特殊文件。
特征:
一个主号码、一个从号码、使用访问权限第一个字母为c。
字符设备以单字符传输,而块设备以数据块传输。
7)命名管道(namedpipe)。
进程间通信。
Mkmod建立管道。
访问权限第一个字母是p。
改变文件所有权chown
#chown[-R]usernamefilename。
filename也可以是目录名称。
当为目录时,使用-R参数,以便递归改变其子目录及文件所有权。
改变用户组命令chgrp
#chggrp[-R]groupnamefilename
等同=#chownusername.groupnamefilename
改变文件属性chmod
文件访问权限分为4部分,第1部分:
访问权限第一个字母,普通文件:
-,子目录:
d,符号链接:
l。
第2部分:
所有者权限(u),第3部分:
所在组权限(g),第4部分:
全系统权限(o,系统全部用户,不论分组)。
r——4,w——2,x——1。
故权限为0~7。
#chmod700foo,将foo的所有者权限为rwx,其它用户无权限。
使用八进制模式会将原来设置的权限替换掉。
可使用符号模式,如:
#chmodu+xfoo,该所有者设置为可执行位
#chmodug+xfoo,组权限,还可用(=)号,(-)号指定并删除其他权限位置。
5.4文件管理和操作
复制文件命令cp
[-f]:
强制性复制,不要求和户确认[-I]:
交互式复制,要求用户确认
#cp–I*.html/tmp#cpfoo.txtfoo.txt.html
touch命令
touch命令是创建空文件最简单的方式。
它不像cp和mv命令那样,若文件已存在,则只修改访问时间,而非覆盖。
#touchfilename
移动文件命令mv
-f:
强制性移动,-i:
交互式移动
可以使用mv命令来进行重命名,如:
#mvfoo.txt.htmlfoo.txt
链接器命令mv
#ln–sfoo.txtlink-to-foo.txt,-s:
符号链接,(另有硬链接)。
查找文件命令find
#findstart_dir[options]
#find.–name‘core’–execrm{}\,在当前目录中查找core文件并删除
=#find.–name‘core’|xargsrm
#find–name‘*.txt’–size100k,大于100K,小于100K时:
-size-100k
文件压缩命令gzip
#gzip-9foo.txt,以最大压缩效果压缩
#gizp-dfoo.txt.gz,解压
bzip2,和gzip类似,压缩后产生.bz扩展名。
#mkdir-pdir/subdir/subsubdir,若subsubdir之前目录不存在,也将会被创建
#pwd,目录当前工作目录,printworkingdirectory
归档命令tar
#taroption……filename……,tar(tape之意)
-c:
建立新的档案文件
-t:
查看档案文件内容
-x:
释放档案文件内容
-f:
定义档案文件的名称
-v:
显示流程信息
-j:
档案使用bzip2进行解压缩
-z:
档案使用gzip进行解压缩
#tar-czf-/home/project5|(cd/export;tar-xvzf-),将/home/project5压缩至标准输出,进入/export,再从标准输出解压。
合并文件命令cat
#cat/etc/passwd/etc/group>user-and-groups.txt,合并并输入至user-and-groups.txt中。
分屏显示文件命令more
#ls|more,分屏显示ls命令结果,还有less命令与之同效。
磁盘操作工具du
检查每一个子目录磁盘利用情况。
-c:
运行完毕后,对各数据项产生总结信息
-h:
以易解的格式显示空间使用情况
-k:
以千字节,而不是以块为单位显示
-s:
总结信息,每参数只给出一项输出值
查找文件所在目录命令which
which命令在用户全部路径中查找指定文件。
#whichrm,与find相比,which仅搜索路径且速度更快
#whereisgrep,whereis命令搜索用户路径,给出程序名称、绝对路径、源文件以及手册。
释放磁盘空间命令df
df程序给每个分区空闲空间总量。
-h:
以易于理解的数字
-l:
只对本地装的文件系统
#df-h/tmp
同步磁盘命令sync
#sync;sync,确保已写至磁盘。
将缓存同步到磁盘,若已写至磁盘,则立刻清空缓存。
列出进程清单命令ps(processstatus)
ps命令列出系统中全部进程,包括它们的状态、大小、名称、所有者、CPU、已运行时间等。
ls命令参数
描述
-a
列出带有控制终端的全部进程,不仅是当前用户
-r
只列出正在运行的进程
-x
列出没有终端的所有进程
-u
列出进程所有者
-f
显示进程父子关系
-l
按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 管理 基础教程 学习 笔记