文件查询、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)
mcgeewangmcgeewang
上一篇 2016-08-26
下一篇 2016-08-26

相关推荐

  • Linux下 文件类型不同颜色的含义

    linux 文件颜色的含义 蓝色代表目录 绿色代表可执行文件 红色表示压缩文件 浅蓝色表示链接文件 灰色表示其他文件 红色闪烁表示链接的文件有问题了 黄色表示设备文件 蓝色文件———-目录 白色文件———-一般性文件,…

    Linux干货 2016-10-18
  • 8-8 处理文本工具sed及vim文本编辑工具

    处理文本工具sed及vim文本编辑工具 Sed:   sed是一种在线编辑器、行编辑器,一次处理一行内容。在处理时,把当前处理的行存储在临时缓冲区中,该缓冲区称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完毕后,把缓冲区的内容送到标准输出;然后紧接着处理下一行,重复完成相同的操作,直到文件末尾;sed处理的整个过程中,对象文件…

    Linux干货 2016-08-11
  • linux文件管理

    目录创建删除,软硬链接的区别和注意,file命令的使用,工作中遇到一些情况的处理方法

    2017-11-18
  • 文件权限

    普通文件 r: 可以读取文件的内容 w: 可以修改文件的内容 x: 可以执行该文件 执行脚本(不要随便给文件加x权限) 目录文件 r: 用户可以列出目录下有哪些文件(不能查看文件的详细信息) w: 只有w无意义。 x: 用户可以进入该目录(如果知道文件名,且有相对应的文件权限 ,可以执行对应的操作) 权限一般配合使用,不同权限配合有不同效果 rx: 用户可以…

    2017-07-30
  • 一波三折的尝试,windows下通过VMware虚拟机安装windows操作系统

    已经尝试过多次VMware下linux系统的安装,均安装正常,同样环境下安装windows系统会发生什么情况,首先选择的是windows10系统,然而在安装过程中,iso镜像光盘一直无法挂载,在经历更换iso镜像,更换另一台电脑之后,初步判定问题为win10系统iso镜像顺坏,因为同样环境用win7的镜像却能正常挂载,且正常启动到安装系统界面…..
    但是,问题真的会是这样吗?

    2018-03-27
  • 磁盘管理的补充及扩展

    磁盘管理的补充及扩展 挂载点和/etc/fstab(配置文件) 使用mount命令挂载为临时挂载开机重启后就会自动卸载,为了永久挂载必须写在配置文件中! 配置文件系统体系  被mount、fsck和其它程序使用  系统重启时保留文件系统体系  可以在设备栏使用文件系统卷标  使用mount  -a 命令挂载/etc/fstab中的所有文件系…

    Linux干货 2016-08-30