运维培训2.28
---目录处理命令---
(34)gzip *:对目录中的文件进行压缩;压缩后文件格式:gz。
(35)gunzip:解压缩.gz的压缩文件。
(36)tar:打包目录;-c,打包;-v,显示详细信息;-f,指定文件名;-z,打包同时压缩;压缩后文件格式:.tar.gz。| -x,解包;-z,解压缩。
(37)bzip2:压缩文件;-k,产生压缩文件后保留原文件;-j,压缩;压缩后文件格式:.bz2。| -x,解包;-j,解压缩。
(38)wall:发广播信息。
(39)ping:测试网络连接性;-c,指定发送次数。
(40)ifconfig(ip addr):查看和设置网卡信息。
(41)last:列出目前与过去登入系统的用户信息。
(42)lastlog:检查某特定用户上次登录的时间。
(43)netstat:显示网络相关信息;-t,TCP协议;-u,UDP协议;-l,监听;-p,显示相关链接的程序名;-n,显示IP地址和端口号,能显示数字的都转换为数字;-a,显示所有网络连接。
(44)setup:配置网络。(界面)
(45)shutdown:关机重启命令;-c,取消前一个关机命令;-h,关机;-r,重启;+m,相对时间表示法,从命令提交开始多少分钟之后;hh:mm,绝对时间表示,指明具体时间。
---重定向符号---
(1)>,输出重定向到一个文件或设备,覆盖原文件;>>,追加;<,输入重定向。
(2)<,(标准输入)代码为0;1>,(标准输出)代码为1;2>,(错误输出)代码为2,覆盖原件;2>>,追加标准输出。
(3)2>&1(>&),将一错误输出重定向到标准输出。
3. VI/VIM编辑器使用
(1)查找:/word,从上而下查找字符串“”“word”;?word,从下而上查找字符串“”“word”;n,定位下一个匹配的被查找字符串;N,定位上一个匹配的被查找字符串。
(2)保存文件及退出编辑器::w,保存;:w/root/newfile,另存为其他文件;:q,未修改退出;:q!,放弃修改并退出;:wq,保存退出;:x,若有修改存盘退出;ZZ,存盘并退出。
(3)替换::%s/old/new/g,在整个文件范围内替换所有的字符串“old”为“new”;:%s/old/new/gc,在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认。
(4)0,移动到该行首;$,移动到该行末;G,移至文件最后行;nG,移至文件第n行。
(5)dd,删除光标所在的行;ndd,删除包括光标所在行的n行文本;u,恢复刚才被修改的文本;U,恢复光标所在行的所
有修改;Y,复制到当前行的编辑缓冲区;nY,复制当前行开始的n行至编辑缓冲区;p,将编辑缓冲区的内容粘贴到光标后的一行;P,将编辑缓冲区的内容粘贴到光标前的一行;:set nu,显示行号;:set nonu 不显示行号。
4. RPM软件包管理
软件包分源码包(脚本安装包)、二进制包(RPM包、系统默认包)。
源码包优点:可以修改源代码;可以自由选择所需功能;软件是编译安装,更适合自己操作;更稳定也效率更高;卸载方便。
源码包缺点:安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误;编译过程时间较长,安装比二进制安装时间长;因为是编译安装,安装过程中一旦报错新手很难解决。
RPM源码包: *.src.rpm结尾的这类软件包是包含了源代码的rpm包,使用rpm -ivh来进行安装,生成源程序和SPEC文件,能够
直接生成RPM包。
RPM二进制包优点:包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;安装速度比源码包安装快的多。
二进制包缺点:经过编译,不再可以看到源代码;功能选择不如源码包灵活;依赖性。
RPM包命名原则:(例:httpd-2.2.15-15.el6.centos.1.i686.rpm)—httpd,软件包名;2.2.15,软件版本号(主版本.次版本.修正号);15,软件发布的次数;el6.centos ,适合的Linux平台;i686,适合的硬件平台;rpm,包扩展名。
RPM包依赖性:树形依赖: a->b->c;环形依赖: a->b->c->a;模块依赖,模块依赖查询网站(www.rpmfind.net)。
包全名:操作的包是没有安装的软件包时,使用包全名。包名: 操作已经安装的软件包时,使用包名;其实是搜索/var/lib/rpm/中的数据库。
(1)RPM安装:rpm -ivh 包全名;-i(install),安装;-v(verbose),显示详细信息;-h(hash),显示进度。
(2)RPM包升级:rpm -Uvh 包全名;-U(upgrade),升级。
(3)卸载:rpm -e 包名;-e(erase ) 卸载;--nodeps 不检查依赖性;若有依赖关系:先卸载后安装的rpm。
(4)查询是否安装:rpm -qa 包名;-q,查询(query);-a,所有包(all)。
(5)查询软件包详细信息:rpm –qi 包名(已安装的软件信息);-i,查询软件信息(information)。
(6)查询包中文件安装位置:rpm –ql 包名;-l,列表(list)。
(7)查询系统文件属于哪个RPM包:rpm –qf 系统文件名;-f,查询系统文件属于哪个软件包(file)。
(8)查询软件包的依赖性: rpm –qR 包名;-R,查询软件包的依赖性(requires)。
5. YUM仓库配置
yum:使用中心仓库的概念来自动计算各种安装包的依赖关系,能够自动查询并安装用户请求安装的软件包所依赖的其他软件包。1)搜索命令:yum search 关键字;2)安装命令:yum install packages;3)升级命令:yum update packages;4)查询命令:yum info / list packages;5)卸载命令:yum remove/erase packages;6)清理缓存命令:yum clean packages。
中心仓库repository的配置:yum通过指定网络中的软件包更新源或者软件包服务器来实现对yum中心仓库的定义,中心仓库repository配置文件在/etc/yum.repos.d目录中。
全局管理man的配置:yum通过对下载的软件包的存储目录、软件包是否保存、日志记录等进行定义,实现Linux系统yum命令全局管理的配置,全局管理man的配置文件在/etc/yum.conf目录中。
[main]
cachedir=/var/cache/yum #yum下载的RPM包的缓存目录
keepcache=0 #缓存是否保存,1保存,0不存
debuglevel=2 #调试级别(0-10),默认为2
logfile=/var/log/yum.log #yum的日志文件所在位置
exactarch=1 #更新时,是否允许更新不同版本的RPM包
obsoletes=1 #update参数,是否允许更新陈旧RPM包
gpgcheck=1 #是否检查GPG(秘钥签名)
plugins=1 #是否允许使用插件,默认是0不允许
installonly_limit=3 #允许保留几个内核包
exclude=selinux* #屏蔽不更新的RPM包可用通配符,多个RPM包之间使用空格分离
6. 源码包的安装
RPM包默认安装路径:/etc/,配置文件安装目录;/usr/bin/,可执行的命令安装目录;/usr/lib/,程序所使用的函数库保存位置;/usr/share/doc/,基本的软件使用手册保存位置;/usr/share/man,帮助文件保存位置。
RPM包安装的服务可以使用系统服务管理命令(service)来管理,而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中,所以只能用绝对路径进行服务的管理。
源码包安装位置:一般是 /usr/local/软件名/;源代码保存位置:/usr/local/src/;软件安装位置:/usr/local/ 。
软件配置与检查:./configure;定义需要的功能选项,及安装位置;检测系统环境是否符合安装要求;把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编译。
./configure的常见参数
--prefix=PREFIX #把所有文件安装在PREFIX中而不是默认的路径(如 /usr/local/xxx 中)。默认是"/"或者是"/usr/local"等
--exec-prefix=EXEC-PREFIX #指定体系相关的文件的安装位置,默认是PREFIX
--bindir=DIRECTORY
--sbindir=SBINDIR #可执行文件的安装位置。默认是PREFIX/bin和PREFIX/sbin
--datadir=DIRECTORY #指定所安装的只读文件的目录,默认是PREFIX/share
--sysconfdir=SYS-CONFDIR #用于各种配置文件,默认是PREFIX/etc,也可能是PREFIX/var
--libdir=LIBDIR #库文件目录,默认EXEC-PREFIX/lib
--includedir=INCLUDEDIR #C/C++头文件的目录,默认是PREFIX/include
--docdir=DOCDIR #文档文件(除了man)被安装的路径,默认PREFIX/doc
--mandir=MANDIR #Manual为之,默认是PREFIX/man
--with-includes=WITH-INC #一系列冒号分割的目录,这些会被加入-I选项中
--with-libraries=WITH-LIB #一系列冒号分割的目录,指定编译时搜索的库的位置
CC=... #指定编译器,默认为gcc、cc或者HOST-gcc