Linux基础(2)

  • 一、网络管理
  • 1.Centos 7服务管理命令
  • 2.Centos 6服务管理命令
  • 3.主机名和域名映射
  • (1)在windows系统上修改域名映射
  • (2)在linux上修改域名映射
  • (3)修改linux主机名
  • 4.netstat:检测主机的网络配置和状况
  • 5.连接不到虚拟机
  • 二、系统命令
  • 1、su:切换用户
  • 2、sync:将数据由内存同步到硬盘中
  • 3、reboot:重启
  • 4、halt:关机
  • 5、shutdown:定时关机
  • 6、du:用于查看文件或目录的大小(磁盘使用空间)
  • 7、df:显示目前在 Linux 系统上的文件系统磁盘使用情况统计
  • 8、free:查看内存及交换空间使用状态
  • 9、top:查看系统的负载情况以及每个进程的资源耗费情况
  • 三、进程管理
  • 1、kill:关闭进程
  • 2、ps:查看系统中的进程信息
  • 3、pstree:查看当前进程树
  • 4、进程后台执行
  • (1)挂起到后台
  • (2)运行在后台
  • (3)查看后台进程
  • 四、linux软件安装
  • 1、rpm包管理器
  • 2、yum包管理器
  • (1)基本命令
  • (2)更换国内镜像源
  • (3)wget工具
  • 五、ssh工具包
  • 1.ssh工具包简介
  • 2.ssh登录
  • 2.ssh远程执行指令
  • 3.scp远程拷贝
  • 4.ssh免密登录配置
  • 六 、时间管理
  • 1、时间命令
  • (1)date显示当前时间
  • (2)date显示非当前时间
  • (3)date设置系统时间
  • 2、时间同步客户端
  • 3、时间同步服务


一、网络管理

1.Centos 7服务管理命令

systemctl管理服务
systemctl 提供了一组子命令来管理单个的 unit,其命令格式为:
systemctl [command] [unit]
command 主要有:

  • start:立刻启动后面接的 unit。
  • stop:立刻关闭后面接的 unit。
  • restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
  • reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
  • enable:设置下次开机时,后面接的 unit 会被启动(开机自启)。
  • disable:设置下次开机时,后面接的 unit 不会被启动(开机不自启)。
  • status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
  • is-active:目前有没有正在运行中。
  • is-enable:开机时有没有默认要启用这个 unit。
  • kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
  • show:列出 unit 的配置。
  • mask:注销 unit,注销后你就无法启动这个 unit 了。
  • unmask:取消对 unit 的注销。
systemctl status  mysqld   查看mysql服务状态
systemctl stop    mysqld   关闭mysql服务
systemctl start   mysqld   启动mysql服务 
systemctl enable  mysqld   设置mysql服务开机自启
systemctl disable mysqld   设置mysql服务开机不自启

d意思是后台服务进程

2.Centos 6服务管理命令

  • service 服务名 start (功能描述:开启服务)
  • service 服务名 stop (功能描述:关闭服务)
  • service 服务名 restart (功能描述:重新启动服务)
  • service 服务名 status (功能描述:查看服务状态)
  • chkconfig (功能描述:查看所有服务器自启配置)
  • chkconfig 服务名 off (功能描述:关掉指定服务的自动启动)
  • chkconfig 服务名 on (功能描述:开启指定服务的自动启动)
  • chkconfig 服务名 --list (功能描述:查看服务开机启动状态)

3.主机名和域名映射

主机名,是一台主机的字符串名称标识
域名,是为了方便网络访问者(请求方),不需要直接通过ip地址来指定被访问者(被请求方)

(1)在windows系统上修改域名映射

访问C:\Windows\System32\drivers\etc\hosts.ics,添加或修改域名映射

192.168.133.11	linux1
192.168.133.22	linux2
192.168.133.33	linux3

(2)在linux上修改域名映射

vi /etc/hosts

192.168.133.11	linux1
192.168.133.22	linux2
192.168.133.33	linux3

修改完域名映射后不需要重启即可起作用

(3)修改linux主机名

有两种方法:

  • vi /etc/sysconfig/network
    需要写:hostname=修改后的主机名
  • vi /etc/hostname
    直接写修改后的主机名
    修改完主机名后需要重启

4.netstat:检测主机的网络配置和状况

英文:network statistics

命令路径:/bin/netstat

执行权限:所有用户

作用:主要用于检测主机的网络配置和状况

参数 :

  • -a all显示所有连接和监听端口
  • -t (tcp)仅显示tcp相关连接
  • -u (udp)仅显示udp相关连接
  • -n 使用数字方式显示地址和端口号
  • -l (listening)显示监控中的服务器的socket
  • -p port
eg:# netstat -tlnu      查看本机监听的端口
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
协议  待收数据包  待发送数据包  本地ip地址:端口 远程IP地址:端口
#netstat -au 列出所有 udp 端口 
#nestat -at 列出所有tcp端口

netstat –nltp | grep 端口:查看端口占用情况

5.连接不到虚拟机

有可能是network服务和NetworkManager服务出现冲突
解决方法:

关闭NetworkManager

service NetworkManager stop

关闭NetworkManager服务开机自启

chkconfig NetworkManager off

重启网络

service network restart

二、系统命令

1、su:切换用户

Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

使用权限:所有使用者。

su 用户名:切换用户
whoami:显示当前用户
exit:退出到原来的用户

2、sync:将数据由内存同步到硬盘中

sync:将数据由内存同步到硬盘中
Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。

3、reboot:重启

参数:

  • -n : 在重开机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
  • -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
  • -f : 强迫重开机,不呼叫 shutdown 这个指令
  • -i : 在重开机之前先把所有网络相关的装置先停止

无参数则正常重启

4、halt:关机

参数:

  • -n : 在关机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的关机,只是把记录写到 /var/log/wtmp 文件里
  • -d : 不把记录写到 /var/log/wtmp 文件里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
  • -i : 在关机之前先把所有网络相关的装置先停止
  • -p : 当关机的时候,顺便做关闭电源(poweroff)的动作

无参数则正常关机

5、shutdown:定时关机

参数 :

  • -k 不执行任何关机操作,只发出警告信息给所有用户
  • -r 重新启动计算机
  • -h 关机并彻底断电
  • -f 快速关机且重启动时跳过fsck
  • -n 快速关机不经过init程序
  • -c 取消之前的定时关机

eg:shutdown -h now:立即关机
shutdown -r now:立即重启
注意,此处的now不能省略,算是特殊用法。
shutdown -h n:n分钟后关机
此时,如果希望取消定时关机,则直接按Ctrl+C强制终止命令即可。
shutdown -h 20:13:20:13关机

6、du:用于查看文件或目录的大小(磁盘使用空间)

作用:用于查看文件或目录的大小(磁盘使用空间)

语法:du [-abhs] [文件名目录]

  • -a 显示每个子文件的大小
  • -h以易读的方式显示 KB,MB,GB等
  • -s summarize 统计总占有量
eg:
du -a(all) /home   显示/home 目录下每个子文件的大小,默认单位为kb
du -b /home     以bytes为单位显示/home文件夹大小
du -h /home      以K,M,G为单位显示/home文件夹大小
du -ah /home     以K,M,G为单位显示/home文件夹下各个子目录的大小
du -sh /home     以常用单位(K,M,G)为单位显示/home 目录的总大小 -s summarize

7、df:显示目前在 Linux 系统上的文件系统磁盘使用情况统计

作用:用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。看剩余空间

语法:df [-hkam] [挂载点]

  • -h(human-readable)根据磁盘空间和使用情况 以易读的方式显示 KB,MB,GB等
  • -k  以KB 为单位显示各分区的信息,默认
  • -M 以MB为单位显示信息
  • -a  显示所有分区包括大小为0 的分区
df命令和du命令的区别:
df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。
du命令面向文件,只计算文件或目录占用的空间。

8、free:查看内存及交换空间使用状态

作用:查看内存及交换空间使用状态

语法: free [-kmg]

选项:

  • -k: 以KB为单位显示,默认就是以KB为单位显示
  • -m: 以MB为单位显示
  • -g: 以GB为单位显示
  • -h: 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
    B = bytes
    K = kilos
    M = megas
    G = gigas
    T = teras

清理缓存命令:
echo 1 > /proc/sys/vm/drop_caches

> 或 >> ,叫做重定向,作用:将左边命令的标准(错误)输出,重定向到右边所指定的文件
>  覆盖    
>>  追加内容

9、top:查看系统的负载情况以及每个进程的资源耗费情况

作用:查看系统的负载情况以及每个进程的资源耗费情况,显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。
语法:top [选项]

  • -d 秒数,指定几秒刷新一次,默认3秒(动态显示)

三、进程管理

1、kill:关闭进程

作用:关闭进程

语法:kill [-选项] 进程id

  • kill -9 进程号(强行关闭) 常用
  • kill -1 进程号(重启进程)

2、ps:查看系统中的进程信息

作用:查看系统中的进程信息

语法:ps [-auxle]

常用选项

  • a:显示所有用户的进程
  • u:显示用户名和启动时间
  • x:显示没有控制终端的进程
  • e:显示所有进程,包括没有控制终端的进程
  • l:长格式显示
# ps aux      #查看系统中所有进程,使用BSD操作系统格式,unix
# ps -le      #查看系统中所有进程,使用Linux标准命令格式
ps应用实例
# ps -u or ps -l  查看隶属于自己进程详细信息
# ps aux | grep sam      查看用户sam执行的进程 
# ps -ef | grep init        查看指定进程信息

ps与top都是查看系统进程信息的命令,他俩的区别:

  • ps看到的是命令执行瞬间的进程信息,而top可以持续的监视
  • ps只是查看进程,而top还可以监视系统性能,如平均负载,cpu和内存的消耗
  • 另外top还可以操作进程,如改变优先级(命令r)和关闭进程(命令k)

3、pstree:查看当前进程树

手动安装:yum -y install psmisc

作用:查看当前进程树

语法:pstree [选项]

  • -p 显示进程PID
  • -u 显示进程的所属用户
[root@linux01 ~]# pstree
init─┬─auditd───{auditd}
     ├─6*[mingetty]
     ├─mysqld_safe───mysqld───9*[{mysqld}]
     ├─portreserve
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd───sshd───bash───pstree
     └─udevd───2*[udevd]

4、进程后台执行

(1)挂起到后台

ctrl +z 可以把一个前台运行的程序挂起到后台(挂起,就意味着程序被暂停了)

(2)运行在后台

将一个程序放后台运行的标准写法:
nohup sh back.sh 1>/dev/null 2>&1 &

1>/dev/null : 表示将程序的标准输出重定向到/dev/null 文件
2>&1 : 表示将程序的标准错误输出,重定向到“标准输出通道”
& : 表示将程序放在后台执行
nohup : 表示不要挂起

文件描述符:
当执行shell命令时,会默认打开3个文件,每个文件有对应的文件描述符来方便我们使用:

类型

文件描述符

默认情况

对应文件句柄位置

标准输入(standard input)

0

从键盘获得输入

/proc/self/fd/0

标准输出(standard output)

1

输出到屏幕(即控制台)

/proc/self/fd/1

错误输出(error output)

2

输出到屏幕(即控制台)

/proc/self/fd/2

所以我们平时在执行shell命令中,都默认是从键盘获得输入,并且将结果输出到控制台上。但是我们可以通过更改文件描述符默认的指向,从而实现输入输出的重定向。比如我们将1指向文件,那么标准的输出就会输出到文件中。

输出重定向:

命令

介绍

command >filename

把标准输出重定向到新文件中(若该文件已存在会删除)

command 1>filename

同上

command >>filename

把标准输出追加到文件中(不会删除原文件)

command 1>>filename

同上

command 2>filename

把标准错误重定向到新文件中(若该文件已存在会删除)

command 2>>filename

把标准错误追加到新文件中(不会删除原文件)

我们使用>或者>>对输出进行重定向。符号的左边表示文件描述符,如果没有的话表示1,也就是标准输出,符号的右边可以是一个文件,也可以是一个输出设备。当使用>时,会判断右边的文件存不存在,如果存在的话就先删除,然后创建一个新的文件,不存在的话则直接创建。但是当使用>>进行追加时,则不会删除原来已经存在的文件。

输入重定向:

命令

介绍

command <filename

以filename文件作为标准输入

command 0<filename

同上

command <<delimiter

从标准输入中读入,直到遇到delimiter分隔符

我们使用<对输入做重定向,如果符号左边没有写值,那么默认就是0。

使用<<delimiter,需要手动输入内容,直到输入指定的分隔符后,命令结束。

>/dev/null
这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

2>&1
这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

(3)查看后台进程

jobs 查看当前在后台挂起的程序
fg job_id 将指定id的job放回前台继续运行
通过jobs命令查看job号(假设为num),然后执行kill %num终止进程

四、linux软件安装

1、rpm包管理器

RPM软件包也称为二进制软件包
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的发行版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便

rpm的常用参数

  • i:安装应用程序(install)
  • vh:显示安装进度;(verbose hash)
  • U:升级软件包;(update)
  • qa: 显示所有已安装软件包(query all)
  • e:卸载应用程序(erase)

注意:如果其它软件包有依赖关系,卸载时会产生提示信息,可使用–nodeps强行卸载。
查询所有安装的rpm包: # rpm –qa
查询mysql相关的包: # rpm –qa | grep mysql
安装:rpm -ivh jdk.rpm
卸载: rpm –e mysql*
强行卸载:rpm –e mysql* --nodeps
图形化界面,手动挂载

缺点 :依赖关系 (手动的解决)

2、yum包管理器

yellowdog updater modified 软件包管理工具

应用yum的好处:
1、自动解决软件包依赖关系
2、方便的软件包升级

yum工具的工作原理: 根据你命令中指定的软件包名称,去软件仓库服务器(yum源)上下载并安装

软件仓库服务器,yum是如何知道的?
它是看 /etc/yum.repos.d/ xx.repo 配置文件来知道的
我们也可以在该目录下添加centos以外的别的公司所提供的软件仓库地址配置

(1)基本命令

  • yum list:查询所有可用软件包列表
  • yum search 关键字:搜索服务器上所有和关键字相关的包
    可以通过yum info 关键字 来查找包名
  • yum -y install 包名:安装
    -y 自动回答yes
  • yum -y update 包名:升级
    注意:如果不加包名,就升级所有的,包括内核。必须加包名升级单个软件包,慎用升级所有的
  • yum check-update:检测升级
  • yum -y remove 包名:卸载
  • yum --help、man yum:帮助
  • yum clean all:清除缓存和旧的包
  • yum repolist:查看当前可用的yum源
  • yum deplist httpd: 列出一个包所有依赖的包

列举资源信息命令:

  • yum info:列出资源库中所有可以安装或更新的rpm包的信息
  • yum info perl :列出perl 包信息
  • yum info perl* :列出perl 开头的所有包的信息
  • yum info updates:列出资源库中所有可以更新的rpm包的信息
  • yum info installed:列出已经安装的所有的rpm包的信息
  • yum info extras:列出已经安装的但是不包含在资源库中的rpm包的信息

(2)更换国内镜像源

# 在这个文件夹里改yum源的配置, 就是要把CentOS-Base.repo给改掉
cd /etc/yum.repos.d
# 修改默认Base源文件名,使之失效
mv CentOS-Base.repo CentOS-Base.repo.bak
# wget命令下载这个yum源, 这里用的阿里的
wget -nc http://mirrors.aliyun.com/repo/Centos-7.repo
# 对下载的yum源配置文件改名
mv Centos-7.repo CentOS-Base.repo
# 清空本地缓存
sudo yum clean all
# 更新yum源软件包列表
sudo yum list

wget -nc的意思是:文件存在时,下载文件不覆盖原有文件

sudo:简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。

国内的yum源
阿里yum源:http://mirrors.aliyun.com/repo/
网易yum源:http://mirrors.163.com/.help/
搜狐yum源:http://mirrors.sohu.com/

(3)wget工具

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。”wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。

自动下载文件是什么意思呢?其实就是指:wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

语法:wget [选项] [参数]
其中参数为:URL地址。
其中选项如下:

  • -a<日志文件>:在指定的日志文件中记录资料的执行过程;
  • -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
  • -b:进行后台的方式运行wget;
  • -B<连接地址>:设置参考的连接地址的基地地址;
  • -c:继续执行上次终端的任务;
  • -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
  • -d:调试模式运行指令;
  • -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
  • -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;
  • -h:显示指令帮助信息;
  • -i<文件>:从指定文件获取要下载的URL地址;
  • -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
  • -L:仅顺着关联的连接;
  • -r:递归下载方式;
  • -nc:文件存在时,下载文件不覆盖原有文件;
  • -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
  • -q:不显示指令执行过程;
  • -nh:不查询主机名称;
  • -v:显示详细执行过程;
  • -V:显示版本信息;
  • –passive-ftp:使用被动模式PASV连接FTP服务器;
  • –follow-ftp:从HTML文件中下载FTP连接文件。

五、ssh工具包

1.ssh工具包简介

ssh是用于远程登录的工具(CRT,xshell本质是就是一个ssh客户端程序,windows版本的)
ssh是一个工具包中(open-ssh)的登录命令
open-ssh工具包中,不光包含ssh客户端命令,还包含sshd这个服务端进程,还包含scp等便利工具;

2.ssh登录

  • 从linux1登录到linux2
    ssh linux2
  • 指定身份lxl,从linux1登录到linux3
    ssh lxl@linux3

linux1、linux2、linux3均为主机名,需要配好主机名和域名映射
exit退出登录,若是从linux1登录到linux2,输入exit并回车后,会退出到linux1

2.ssh远程执行指令

ssh 主机名或ip 指令
ssh linux2 mkdir /a/c/d

3.scp远程拷贝

语法:
scp 要拷贝的文件路径 [用户名@]目标主机名:目标路径 scp [用户名@]目标主机名:要拷贝的文件路径 目标路径 scp [用户名@]目标主机名:要拷贝的文件路径 [用户名@]目标主机名:目标路径

以上三种分别是:
从当前主机拷贝到远程主机
从远程主机拉取到当前主机
将远程主机1的内容拷贝到远程主机2

加上用户名@可以指定文件的所有者

  • 拷贝文件:
    scp /a/c.txt linux2:/a/d.txt
    将linux1的a文件夹下的c.txt拷贝到linux2的a文件夹下,并改名为d.txt
  • 拷贝文件夹:
    scp -r aaa linux2:/root/
    scp -r 文件夹 linux2:$PWD
    将文件夹拷贝到linux2的当前目录下(linux1在哪个目录,就拷贝到linux2的哪个目录)

4.ssh免密登录配置

安全验证机制有两种:

  • 用户名和密码
  • 公钥和私钥机制

远程登录进行操作指令的时候都要输入密码,为了方便,设置免密登录

过程:请求方需要事先创建一对密钥(公钥,私钥; 私钥自己持有,公钥交给目标机器)

centos修改文件后如何保存_重定向


以上图为例,A服务器将自己的公钥交给B服务器后,当A向B发送ssh请求时,B会用A的公钥加密一个随机字符串生成密文,并发送给A,A用自己的私钥解密密文,生成字符串再返回给B,B通过对比这两个字符串是否相同来决定是否建立连接

命令语法
ssh-keygen [选项]

  • -b:指定密钥长度;
  • -e:读取openssh的私钥或者公钥文件;
  • -C:添加注释;
  • -f:指定用来保存密钥的文件名;
  • -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
  • -l:显示公钥文件的指纹数据;
  • -N:提供一个新密语;
  • -P:提供(旧)密语;
  • -q:静默模式;
  • -t:指定要创建的密钥类型。支持RSA和DSA两种认证密钥。如果没有指定则默认生成用于SSH-2的RSA密钥

实现步骤:

  • 在第1台机器上生成密钥对:
    ssh-keygen 回车
  • 将生成好的公钥注册给目标机器(linux1,linux2,linux3):
    ssh-copy-id linux1
    ssh-copy-id linux2
    ssh-copy-id linux3

以后再进行连接这些目标机器的时候或者是在发送指令的时候就不需要在输入密码了
注意:公钥也需要发给自己一份,因为有时候也需要连接自己的服务,如mysql

在当前用户目录下的.ssh文件夹下(~/.ssh)的文件功能解释

  • known_hosts 记录ssh访问过计算机的公钥(public key)
  • id_rsa 生成的私钥
  • id_rsa.pub 生成的公钥
  • authorized_keys 存放授权过的无密登录服务器公钥

要重新生成密钥可以删除.ssh文件夹,在重新发送

六 、时间管理

1、时间命令

(1)date显示当前时间

  • 基本语法
    (1)date (功能描述:显示当前时间)
    (2)date +%Y (功能描述:显示当前年份)
    (3)date +%m (功能描述:显示当前月份)
    (4)date +%d (功能描述:显示当前是哪一天)
    (5)date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒)
  • 案例实操
(1)显示当前时间信息
	[root@hadoop101 ~]# date
	2017年 06月 19日 星期一 20:53:30 CST
(2)显示当前时间年月日
	[root@hadoop101 ~]# date +%Y%m%d
	20170619
(3)显示当前时间年月日时分秒
	[root@hadoop101 ~]# date "+%Y-%m-%d %H:%M:%S"
	2017-06-19 20:54:58

(2)date显示非当前时间

  • 基本语法
    (1)date -d ‘1 days ago’ 或 date -d ‘-1 day’ (功能描述:显示前一天时间)
    (2)date -d ‘-1 days ago’ 或 date -d ‘1 day’ (功能描述:显示明天时间)
  • 案例实操
(1)显示前一天
	[root@hadoop101 ~]# date -d '1 days ago'
	2017年 06月 18日 星期日 21:07:22 CST
(2)显示明天时间
	[root@hadoop101 ~]#date -d '-1 days ago'
	2017年 06月 20日 星期日 21:07:22 CST
(3)显示明天时间并指定日期格式
	date  -d '1 day'  +%Y-%m-%d
(4)其他
	date  -d '-1 month'  
	date  -d '-1 hour'
	date  -d '1 year'

(3)date设置系统时间

  • 基本语法
    date -s 字符串时间
  • 案例实操
    设置系统当前时间
    [root@hadoop101 ~]# date -s “2021-07-17 20:52:18”

2、时间同步客户端

# 安装时间同步工具
yum -y install ntpdate   

# 同步时间
ntpdate time.windows.com
ntpdate time.aliyun.com
ntpdate time.apple.com

3、时间同步服务

  • 首先,安装时间同步服务
    yum install npt -y
  • 启动服务
    systemctl start ntpd
    systemctl enable ntpd
  • 配置时间同步服务器
    [root :linux1 ~]# vi /etc/ntp.conf
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
    server npt1.aliyun.com
    server time.windows.com
    server time.apple.com
小提示:
为了让集群中的所有节点都保持时间同步
可以把所有节点都安装上ntpd,并且配好时间同步服务器

或者,也可以,只让节点1去向public同步服务器同步,其他节点向节点1同步
[root :linux3 ~]# systemctl start ntpd
[root :linux3 ~]# systemctl enable ntpd
[root :linux3 ~]# vi /etc/ntp.conf
server linux1.com