01-centos7安装与管理命令

第一章:centos7安装与管理命令

1.1 centos7安装:

Install CentOS 7 #安装CentOS 7

Test this media & install CentOS  7 #测试安装文件并安装CentOS  7

Troubleshooting #故障修复

请选择第一项安装Centos7

选择语言:中文-简体中文(中国)

1.2 软件包定制

继续 下一步选择 “软件选择(s)” 选择“GNOME桌面” 与 “开发工具” 点击完成。

软件选择注解:

最小安装(Minimal Install)

这个选项只提供运行CentOS 的基本软件包。最小安装为单一目的服务器提供基本需要,并可在这样的安装中最大化性能和安全性。

基础设施服务器(Infrastructure Server)

这个选项提供在服务器中使用的CentOS 基本安装,不包含桌面。

文件及打印服务器(File and Print Server)

用于企业的文件、打印及存储服务器。

基本网页服务器(Basic Web Server)

基本系统平台,加上PHP,Web server,还有MySQL和PostgreSQL数据库的客户端,无桌面。

虚拟化主机(Virtualization Host)

这个选项提供 KVM 和 Virtual Machine Manager 工具以创建用于虚拟机器的主机。

带GUI的服务器(Server with GUI)

带有用于操作网络基础设施服务GUI的服务器。

GNOME桌面(GNOME Desktop)

GNOME是一个非常直观且用户友好的桌面环境。

KDE Pasma Workspaces(KDE桌面)

一个高度可配置图形用户界面,其中包括面板、桌面、系统图标以及桌面向导和很多功能强大的KDE应用程序。

开发及生成工作站(Development and Creative Workstation)

这个选项提供CentOS 编译软件所需的工具。

如果使用文本模式安装Linux,将不能进行软件包选择。安装程序只能自动从基本和核心组群中选择软件包。这些软件包足以保证系统在安装完成后可操作,并可安装更新和新的软件包。要更改软件包选择,需要在完成安装后,使用 Add/Remove Software 程序安装。

1.3 磁盘分区

继续选择 安装位置(D)。我要配置分区-点击 完成。

1.3.1 创建/boot分区

1.3.2 centos7方案:
/boot:boot分区设备类型,必须为标准分区。用来存放与Linux系统启动相关的程序,比如启动引导装载程序grub等,建议大小为500MB。

 

其他分区为了方便存储大数据充分利用磁盘资源,设备类型必须为lvm, 文件系统类型为xfs, 我自定义卷组名为“zhangbin”。


/usr :用来存放Linux系统的内核文件,其相关数据较多,建议大于6GB以上。

/usr/local: 用来存放Linu应用程序文件 建议大于6GB以上。
/var :用来存放Linux系统中经常变化的数据以及日志文件,建议大于4GB以上。
/home:存放普通用户的数据,是普通用户的宿主目录,建议根据业务需要分配大小。
/ :Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小为6GB以上。
/tmp:将临时分区独立分割,可避免在文件系统被塞满时影响到系统的稳定性。建议大小为2G以上。
swap:实现虚拟内存,建议大小是物理内存的1~2倍。

1.3.3手动分区 注解:

名称(Name):分配一个名称,一个LVM或Btrfs的量。需要注意的是boot标准分区自动命名不能被编辑,如/boot被分配的名称sda1。

挂载点(Mount point):输入分区的挂载点。例如,如果分区是根分区,输入/;启动boot分区输入/ boot,依此类推。对于一个交换分区,挂载点不需要设置 – 只要设置文件系统类型交换就足够了。

标签(Label):分配一个标签的分区。标签更容易地识别分区。

所需的容量(Desired capacity):输入的分区的所需尺寸。可以使用普通大小的单位,如千字节,兆字节,GB或TB。兆是默认选项。

设备类型(Device type):标准分区,BTRFS,LVM或LVM精简配置之间进行选择。如果被选择的分区分隔在两个或多个磁盘上,RAID也是可用的。检查相邻的加密框,分区加密。系统将提示您以后设置密码。

下面是设备类型简短描述,以及它们是如何被使用:

标准分区:标准分区可以包含文件系统或交换空间。

逻辑卷(LVM):创建一个LVM分区自动生成一个LVM逻辑卷。 LVM可以提高物理磁盘利用率。

LVM精简配置:使用自动精简配置,可以管理自由空间,被称为精简池,它可以根据需要,由应用程序可以分配给设备任意数量的存储池。所需的存储空间具有成本效益的分配时,薄池可以动态地扩展。

BTRFS:它在处理大文件和大体积数据要比的ext2,ext3和ext4 甚至是xfs文件系统更有优势。缺点是稳定性相对略差。

软件RAID:创建两个或两个以上的软件RAID分区,就可以创建RAID设备。一个RAID分区被分配到不同的磁盘上。

文件系统(File system ):在下拉菜单中,选择该分区中的相应的文件系统类型。检查相邻的格式化对话框 格式化现有的分区,或将其选中保留。

下面是文件系统的描述,以及它们是如何被使用:

XFS:XFS是一个支持的文件系统多达16艾字节(约16万TB)的高度可扩展,高性能的文件系统.子目录结构支持上千万条目。 XFS支持元数据日志,有利于更快的崩溃恢复。 除此之外XFS文件系统也可以进行碎片整理和调整。这个文件系统是默认选择,并强烈推荐。单个XFS分区可以支持到500 TB大小。

EXT4:ext4文件系统是基于ext3文件系统,并采用了多项改进。这些措施包括对更大文件系统和更大的文件,磁盘空间,子目录的目录中的数量的限制,更快的文件系统检查速度更快,更有效地分配支持,更强大的日志记录 和可操控性。

EXT3:ext3文件系统是基于ext2文件系统上,它有一个主要优点。使用文件系统减少花费的时间恢复崩溃后的文件系统,因为没有必要通过每次碰撞发生时运行fsck实用程序来检查元数据的一致性的文件系统。

EXT2:ext2文件系统支持标准Unix文件类型,包括普通文件,目录或符号链接。它还提供了分派长文件名,最多255个字符的能力。

VFAT:VFAT文件系统是Linux文件系统与FAT文件系统上的Microsoft Windows长文件名兼容。

swap:交换分区被用于支持虚拟内存。换句话说,数据被写入到交换分区的时候没有足够的内存来存储您的系统正在处理的数据。

BIOS boot:需要有一个GUID分区表(GPT)在BIOS中的系统引导设备一个非常小的分区。

EFI系统分区:需要有一个GUID分区表(GPT)在UEFI系统引导装置一个小分区。

1.4 配置网络与设置用户密码

完成 接受更改-开始安装。设置root用户密码 并创建用户。安装完后重启系统。

登陆root,链接网络配置有线网卡为on.主机会通过dhcp获得ip地址。

或者是右上角 右击 网络设置-有线-配置 -ipv4 设置网络。

另外还需要选择,认证选项- 勾选自动链接,否则服务器网络不会自动启用。

然后使用 systemctl restart network.service 命令来重新启动网络使设置生效。

1.5系统更新

请确定主机可以访问互联网。使用yum upgrade 或者 yum update 更新系统。

1.6系统初始配置

1.6.1安装必备的组件

yum install wget telnet perl perl-devel net-tools kernel-devel

安装这些组件之后会大大方便安装其他应用时碰到依赖关系的问题。其中net-tools是为了提供dig, nslookup, ifconfig等命令,方便配置CentOS 7初始化网络环境。如果不安装net-tools,在CentOS 7中,可以使用ip addr命令来代替ipconfig进行当前ip地址查询。

确认开发工具组已经安装 否则需要使用 yum groupinstall "Development tools" -y进行安装。

1.6.2安装第三方软件源

安装epel与remi第三方软件源,为了避免软件冲突,可自行选择是否安装。也可以安装完成后关闭,需要时再开启安装源。

yum install epel-release.noarch

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

启用remi安装源,编辑remi.repo文件

vim /etc/yum.repos.d/remi.repo

[remi]

name=Les RPM de remi pour Enterprise Linux 7 – $basearch

#baseurl=http://rpms.famillecollet.com/enterprise/7/remi/$basearch/

mirrorlist=http://rpms.famillecollet.com/enterprise/7/remi/mirror

enabled=1 #enabled改为1, 0为关闭状态。

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

或者直接下载remi源安装即可。

rpm -ivh remi-release-7.rpm

为了安全起见先使用yum clean all 清除yum缓存与旧的数据包。再用yum update重新更新源。

添加多媒体源与fedora源可选,再生产环境中不建议安装多媒体源,同样也是避免软件版本冲突:

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

fedora源: rpm -Uh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

ElRepo源(地址:http://elrepo.org/tiki/tiki-index.php):

        导入公钥:rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

        导入源:rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum 指定安装某个源下的软件的方法,为了避免rpm软件包冲突,该源也可以处于关闭状态 –enablerepo选项 就可以将其开启。

yum install nginx –enablerepo=epel

nginx是要安装的软件,epel是repo源的名字。
建议安装的时候尽量选择同一个源。因为不同的源安装的软件可能会有冲突。

例如安装nginx : yum install nginx –enablerepo=epel

本例是禁用所有的源,只应用epel源,在此源中查找并安装htop包

yum –disablerepo=\* –enablerepo=epel search htop

yum –disablerepo=\* –enablerepo=epel install htop

1.6.3 关闭CentOS 7的firewall防火墙

临时关闭防火墙服务的命令是systemctl stop firewalld.service。

stop只是临时停止防火墙服务器,重启系统后防火墙服务还会开启,要想永久关闭防火墙需要使用systemctl disable firewalld.service 命令永久关闭防火墙服务。

1.6.4修改CentOS 7网络设备名称:

在centos6系列的操作系统中,安装好系统后网卡名称为eth0 eth1 eth2……。但centos7版本的系统安装好系统后网卡名称为eno1777736。网卡名称可以修改成eth0,当然不修改也可以正常使用,个人习惯问题,我习惯把网卡名称改为eth0。

修改方法如下:

输入如下命令,进入对应目录,编辑文件:

vim /etc/sysconfig/grub

然后,往这个文件中添加“net.ifnames=0 biosdevname=0”内容,如下图所示:

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="rd.lvm.lv=zhangbin/root rd.lvm.lv=zhangbin/swap rhgb quiet net.ifnames=0 biosdevname=0"

GRUB_DISABLE_RECOVERY="true"

执行如下命令更新grub使设置生效

grub2-mkconfig -o /boot/grub2/grub.cfg

NetworkManager 是linux的图形界面管理网络的工具,它支持无线,但是在工作中一般都用network来配置网络,所以可以把NetworkManager关闭(可选)。

命令如下:

关闭NetworkManager.service

临时关闭:systemctl stop NetworkManager.service

永久关闭:systemctl disable NetworkManager.service

1.6.5修改网卡配置文件

cd /etc/sysconfig/network-scripts/

mv ifcfg-eno16777736 ifcfg-eth0

vim ifcfg-eth0

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

DEVICE=eth0

ONBOOT=yes

IPADDR=192.168.1.200

PREFIX=24

重启系统初始服务命令为reboot

1.6.6 删除kvm nat网络

需要删除kvm默认网络,因为它会影响物理机防火墙规则。在本书的实验中不会用到kvm的nat网络,所以可以删除。

先使用virsh net-list查看所有的虚拟网络:

使用virsh net-list可以列出kvm虚拟网络,会看到default的网络,然后将其删掉

执行以下两个命令:

virsh net-destroy default 摧毁网络,但是重启libvirtd服务会恢复

virsh net-undefine default 彻底删除,重启系统后不会恢复

1.6.7 debian/ubuntu系统注意事项

如果安装的是debian /ubuntu系统 root用户默认是不能登陆图形界面的。当然这是为了让系统更加安全。如果你觉得这样在学习过程中不是很方便。可以修改它的设置让root用户可以登陆。配置方法如下:

Debian桌面环境默认不允许root登录,所以需要修改配置。

一、让Debian可以使用root登录

1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[security]字段后面追加如下一行:

[security]

AllowRoot = true

2)最后修改gdm3的登录pam文件:

vi /etc/pam.d/gdm-password

将auth required pam_succeed_if.so user != root quiet_success注释掉 在本行前加#,使之不生效。

二、让Debian以root自动登录

1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[daemon]字段后面追加如下两行:

AutomaticLoginEnable =true 改为true

#AutomaticLogin =root 以root自动登录

如果想等几秒再登录,可以在[daemon]字段后面追加如下内容:

TimedLoginEnable = true

TimedLogin = root

TimedLoginDelay = 5 延迟5秒登录,可修改

2)最后修改gdm3的自动登录pam文件:

vi /etc/pam.d/gdm-autologin

将auth required pam_succeed_if.so user != root quiet_success注释掉。 在本行前加#,取消Debian不让root登录的限制。

重启系统即可生效。

1.7基本命令详解:

1.7.1 Linux服务器的维护与调试

lscpu #查看cpu

lsblk #显示硬盘布局 baobab

lspci | grep Ethernet #网卡型号

lspci | grep VGA #显卡型号

lspci | grep audio #声卡信息

lsusb #显示服务器usb接口数量

free #查看内存 ,free指令会显示内存的使用情况。包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等

-b  以Byte为单位显示内存使用情况。
 -k  以KB为单位显示内存使用情况。
 -m  以MB为单位显示内存使用情况。
 -o  不显示缓冲区调节列。
 -s<间隔秒数>  持续观察内存使用状况。
 -t  显示内存总和列。
 -V  显示版本信息。

cat /etc/redhat-release #查看系统发行版本

uname -r #显示内核版本

uname -n #显示主机名

1.7.2 服务器时钟

服务器时钟问题非常重要,因为关键点主机是不允许时间错误的。否则会导致一下三种后果。

1 网站反复注册

2 数据库数据回写

3 服务器后台无法登陆等

Cento7简单有效的应急解决办法:

设置服务器时钟为网络时钟

timedatectl set-ntp BOOL

这里的BOOL是yes或者no

1.7.3设置时区:

手动设置时区与时间的方法

查看系统所有的时区使用的命令是:

timedatectl list-timezones

Africa/Abidjan

Africa/Accra

Africa/Addis_Ababa

Africa/Algiers

Africa/Asmara

Africa/Bamako

Africa/Bangui

Africa/Banjul

Africa/Bissau

Africa/Blantyre

Africa/Brazzaville

Africa/Bujumbura

Africa/Cairo

……

timedatectl 显示时间与时区,只有在centos7中可以使用这个命令。

用以下命令设置时区:

timedatectl set-timezone time_zone

除了以上用法,timedatectl 还支持通过-H参数进行远程主机的时间设置。

Centos6版本之前的操作系统可以使用tzselect 来设置时区,centos7之后的版本设置时区都是使用timedatectl。

开启与关闭ntp自动同步时钟

timedatectl set-ntp true

timedatectl set-ntp false

timedatectl set-time 15:30 #设置系统时间

1.7.4 服务器系统时钟管理

在centos6之前的版本设置系统时钟需要使用date命令才可以。

date #查看服务器系统时钟

date -s "13:24" #设置时间

date -s "2018/10/11" #设置日期

date -s "2019/12/24 10:50" #同时设置时间与日期

hwclock –help #查看命令帮助

hwclock -s或–hctosys #从硬件时钟设置系统时间

hwclock -w 或–systohc #从当前系统时间设置硬件时钟

hwclock –set –date="03/19/2017 11:48" #设置硬件时钟的命令

1.7.5 服务器基本管理命令

1、关闭计算机的命令:

poweroff

init 0

halt

2、重启计算机的命令:

reboot

init 6

3、shutdown既可以关闭系统也可以重启系统

在Linux系统中每个命令都有很多选项。如何才能方便的记忆与使用这些选项呢?哪就需要掌握Linux帮助的使用方法了。

4、Linux 命令帮助

命令名 –help | more

显示一个简略的命令帮助(对大部分命令有效)。举个例子,试着使用 “cp help | more”。“–help”和和DOS下的“/h”开关功能类似。当输出超过一个屏幕时,加上“more”是很有必要的。

man 命令名 

显示对应命令系统的帮助手册。输入“q”退出浏览器。如果你设置了高级选项,试着输入“man man”。命令“info 命令名” 和命令“man 命令名”功能相似,但是包含更多的最新信息。帮助手册对于新手可能有点难于读懂,因为它们最初是写来给UNIX程序员看的。使用“命令名 –help”可以得到一个简略容易消化的命令帮助。有些程序自带README文件或者其他帮助信息文件—-建议你可以看看目录/usr/share /doc。在指定的部分显示命令帮助,可以使用这样的命令“man 3 exit”,这个命令只显示exit命令帮助手册的“第三部分”;或者使用命令“man –a exit”, 这个命令显示exit命令帮助手册的“所有部分”。exit命令帮助的所有部分是: 1-用户命令;2-系统调用;3-子调用;4-设备;5-文件格式;6-游戏;7-杂项;8-系统管理;9-新内容。打印完整的命令帮助,可以使用命令 “man 命令名 | col -b | lpr”(可选项col –-b删除所有的退格键和一些难以阅读的特殊字符)。

info 命令名

显示指定命令的帮助信息。info 命令取代man 命令的一个好处是,它通常带有最近更新的系统资料。多使用“空格键”和“退格键”,否则你可能会晕头转向。按“q”键退出。如果觉得用于翻阅的办法不太好用你也可以试着使用pinfo命令,看你会不会更喜欢这个替代品。

apropos 命令名

对所输入的命令名给出一个帮助一览表。

whatis 命令名

给出匹配所输入命令名的简短清单。whatis命令有点象apropos,它们使用相同的数据库。不同的是,whatis搜索的是关键字,apropos搜索的是关键字的具体描述。

例如:

shutdown –help –help可以寻求帮助,help只适用内部命令。

man shutdown #man适用于外部命令

info shutdown #info是man手册的扩展

shutdown -r now #立即重启

shutdown -r +1 -k "计算机将关闭,请保存未完成的配置!"

shutdown -r +1 -k "计算机将关闭,请保存未完成的配置!"

+1默认单位为分钟,当然业主支持小时 与天数,本例事设置一分钟之后重启系统。-k 提示信息。

shutdown -r 23:30 #指定特定时间重启系统

shutdown -p now #立即执行关机任务

shutdown -c  #取消关机任务

5、基本管理命令

cp 命令复制文件,格式为 cp [源文件路径] [目标文件路径] 对于新手来说需要注意的是, 路径中间要有空格分割。否则系统会认为是一个路径。以下内容就是一次错误复制的报错结果。把/root/initial-setup-ks.cfg文件复制到 /opt/目录下。源于目标路径之间没有空格将会出现以下错误。

[root@192 ~]# cp /root/initial-setup-ks.cfg/opt/

cp: 在"/root/initial-setup-ks.cfg/opt/" 后缺少了要操作的目标文件

由于本书重点不是讲解Linux基本命令,需要读者配合Linux的帮助或其他学习资料掌握以下基本命令的基本使用。

mv 移动或重命名

rm 删除文件

rm –rf 强制删除文件与目录

mkdir 建立空文件

rmdir 删除空目录

6、linux链接

Linux 系统中有软链接和硬链接两种特殊的“文件”。

软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。

硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。

创建方法都很简单:

软链接(符号链接) ln -s source target (使用绝对路径)

硬链接 (实体链接)ln source target (使用绝对路径)

要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 。当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inode区和data block(实际数据放置在数据区域中)这个inode即是(目录、档案)文件在一个文件系统中的唯一标识,需要访问这个文件的时候必须先找到并读取这个文件的 inode。 Inode 里面存储了文件的很多重要参数,其中唯一标识称作 Inumber, 其他信息还有创建时间(ctime)、修改时间(mtime) 、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息。

7、硬链接与软链接的区别:

①硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;

②在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;

③链接数目是不一样的,软链接的链接数目不会增加;

④文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了。

⑤软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接

⑥硬链接只能给文件做链接,不能跨目录 跨分区。软链接可以为目录做链接,可以跨目录 跨分区。

1.7.6 linux 查找命令的使用

find 查找命令根据文件属性查找

实例:

find /etc/ -name “*.conf” –size +20K –exec du –a –k {} \; |sort –rn

find 查找 /etc/ 在/etc/目录下查找 –name 查找名称后缀是.conf的文件 –size 文件大小大于 20K 的, -exec 可以再执行其它命令 du 显示大小 ,{} 代表前面命令输出的结果给后边的命令执行。\;代表结束。

find /etc/ -name “*.conf” –size +20K –exec du –a –k {} \; -exec cp –Rf {} /opt/ \;

在/etc/下查找名字后缀是.conf的大于20K的文件,并复制到 /opt/下。

find命令安时间查找文件

在讲解按时间查找文件之前我们首先普及一下Linux文件时间属性的相关知识;

stat查看文件时间

时间属性说明:Access访问时间,Modify修改时间,Change状态改变时间。

modification time(mtime,修改时间):当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性。 
status time(ctime,状态时间):当该文件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。 
access time(atime,存取时间):当“取用文件内容”时,就会更新这个读取时间。

通过ls举例:

ls参数里没有–mtime这个参数,因为我们默认通过ls -l查看到的时间就是mtime 。

通过touch命令修改文件时间

创建文件我们可以通过touch来创建。同样,我们也可以使用touch来修改文件时间。touch的相关参数如下:

-a : 仅修改access time。

-c : 仅修改时间,而不建立文件。

-d : 后面可以接日期,也可以使用 –date="日期或时间"

-m : 仅修改mtime。

-t : 后面可以接时间,格式为 [YYMMDDhhmm]

如果touch后面接一个已经存在的文件,则该文件的3个时间(atime/ctime/mtime)都会更新为当前时间。若该文件不存在,则会主动建立一个新的空文件。

利用touch修改文件时间:

1. 同时修改文件的修改时间和访问时间

2. 只修改文件的修改时间

touch -m -d "2015-12-24 08:10:30" install.log

3. 只修改文件的访问时间

touch -a -d "2015-12-31 08:10:30" install.log

下面再给一个rootkit木马常用的小技巧。就是把后一个文件的时间修改成和前一个相同。

touch -acmr /bin/ls /etc/sh.conf

此外touch还支持像date命令一样参数修改文件时间:

[root@web10 ~]# touch -d "2 days ago" install.log ; ll install.log

-rw-r–r– 1 root root 33386 07-11 16:35 install.log

总结下常用的文件操作与时间的关系:

1、访问时间,读一次这个文件的内容,这个时间就会更新。例如使用more命令。ls、stat命令都不会修改文件的访问时间。

2、修改时间,对文件内容修改就会更新。比如:vim后保存文件。ls -l列出的时间就是这个时间。

3、状态改变时间。通过chmod命令更改文件属性,就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令 文件名。

好现在以已经具备了时Linux间相关属性的知识,

下面我们讲find根据时间查找文件的方法:

find在/log下 查找`2016-08-08`到`2016-09-01`号之间的文件,使用如下命令即可:

find /log/ -name 'production.log-2016*' -newermt '2016-08-08' ! -newermt '2016-09-01

找出 3 天”以前”被改动过的文件 (前第三天以前 > 72 小时)
find /var/log/ -mtime +3 -type f –print

找出 3 天內被改动过的文件(0 ~ 72 小时內)
find /var/log/ -mtime -3 -type f -print

find /var/log/ -mtime 3 -type f -print
找出第 3 天被改动过的文件 (也可以这样写)
find /var/log/ -mtime +2 -mtime -4 -type f -print

1.7.7 whereis 文件查找命令

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果不制定任何参数,则返回所有信息。 和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis时,会从数据库中查找数据,可以使用updatedb手动更新数据库,默认情况下时一星期更新一次,whereis有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有更新。


whereis -m svn查出说明文档路径,whereis -s svn找source源文件。
whereis –b 查找二进制(命令)文件路径

which 查找文件、显示命令路径

which是根据使用者所配置的 PATH 变量内的目录搜寻可运行档命令!所以,不同的 PATH 配置内容所找到的命令也会有所不同!