前言
上一篇:Linux操作(3)实用操作 - 文件目录类
继续熟悉Linux指令
对着敲一遍,能够更好的熟悉指令
目录
- 时间日期类
1.1. 显示日历cal
1.2. 时间date - 搜索查找类
2.1. find指令
2.2. locate指令
2.3. grep指令和管道符号| - 压缩和解压类
3.1. gzip/gunzip指令
3.2. zip/unzip指令
3.3. 打包指令tar
时间日期类
显示日历cal
calendar:日历
cal [选择]
当仅一个cal命令,表示当月日历,且标黑本日
选择为年份:cal 2019
,显示一年的日历
选择某一月:cal 6 2019
时间date
date [选项]
date指令可以显示时间,也可以设置时间
选项参数:
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
-r, --reference=文件 显示文件指定文件的最后修改时间
-R, --rfc-2822 以RFC 2822格式输出日期和时间
-d指令无法改变系统时间,需要-s(当然,只有拥有该权限的才能修改时间)
同步时间
如果想要同步网络时间,需要安装ntp
yum -y install ntpdate
通过ntpdate同步时间
安装好后
使用ntpdate -u 210.72.145.44
会报错
处理,修改文件:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate pool.ntp.org
时间同步成功
时间格式
显示时间不仅仅这样,通过设置标记可以显示不同格式的时间
%a : 星期几 (Sun…Sat)
%A : 星期几 (Sunday…Saturday)
%b : 月份 (Jan…Dec)
%B : 月份 (January…December)
%c : 直接显示日期与时间
%d : 日 (01…31)
%D : 直接显示日期 (mm/dd/yy)
等等》》菜鸟教程:Linux date指令
+号加上上面的格式就可以显示不同格式的时间
-号加上上面的格式,可以去掉0
但是关于-号的使用要注意:仅仅是在指定月、日、小时等具体的时间标记才会去掉0
搜索查找类
find指令
find [搜索范围] [选项]
find path -option [ -print ] [ -exec -ok command ] {} \;
find指令将从指定目录向下递归遍历各个子目录,将满足条件的文件或目录显示在终端
-option有很多类型:
-name 按照指定文件名查找文件find path -name "name"
将当前文件夹下文件名为hello,无视后缀的文件找出:find . -name "hello.*"
记得要表示前缀后缀
-user 查找指定用户所有文件
find . -user "xm"
找到xm用户的所有文件
-size 按照指定的文件大小查找文件
find . -size 0;
找到/opt目录下所有大小为0的文件
-type 将该目录及子目录下所有文件列出
后面应该带有参数:-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
find /opt -type f;
找到/opt目录下所有一般文件
-ctime 指定时间内更新过出文件列出
find . -ctime -10;
找到10天内/opt目录下更新过的文件
locate指令
locate 搜索文件
locaate指令可以快速定位文件路径
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,/var/lib/slocate资料库
Locate指令无需遍历整个文件系统,查询速度较快
为了保证查询结果的准确度,管理员必须定期更新locate时刻
如果事先没有创建资料库是没法查找的,所以再这个指令之前需要通过updatedb指令创建或更新命令所必需的数据库文件
grep指令和管道符号|
grep命令用于查找文件里符合条件的字符串
grep 过滤查找 , 管道符“|”表示将前一个命令的处理结果输出传递给后面的命令处理
两者配合可以用于搜索过滤得到期待的结果
grep [选项] 查找内容 源文件
选项有:
-a 或 --text : 不要忽略二进制的数据
-n 显示匹配行和行号
-c 或 --count : 计算符合样式的列数
-i 忽略字母大小写
grep -c public hello.java
找到hello.java文件里的public字符串,并计算列数
配合管道符号|
find . -name "hello.*" | grep public hello.*
找到/opt 文件夹下名称是“hello.*”后缀不限的文件,并找到这些文件夹里包含public的行
压缩和解压类
现如今有多种压缩技术,针对这些技术,有不同的指令
gzip/gunzip指令
专门针对.gz文件的指令
gizp [选项] 文件 (压缩文件成*.gz文件)
gunzip [选项] 文件 (解压.gz文件)
gzip、gunzip是个使用广泛的压缩、解压程序
常用选项有:
-l或–list 列出压缩文件的相关信息
-n或–no-name 压缩文件时,不保存原来的文件名称及时间戳记
-N或–name 压缩文件时,保存原来的文件名称及时间戳记
-q或–quiet 不显示警告信息
-r或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理
zip/unzip指令
zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件
unzip对应的就是解压zip压缩文件的指令
zip [选项] 文件
unzip [选项] 文件
常用选项有:
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-q 不显示指令执行过程
但是要注意的是,zip不是内置的,需要先安装zip程序
yum安装zip和unzip
yum install zip
yum install unzip
zip hello.java
zip与gzip不同,它会保存原文件,且要自定义压缩文件名(*.zip),显示压缩过程
而解压unzip:unzip b.txt.zip
解压后产生的文件如果有同名会提醒是否替代
而且解压后并不会删除zip文件
需要知道gzip和zip两种压缩方式:
- gzip为高压,可以把文件压缩得更小,便于放网盘或者网上供人下载;gzip是Linux下面用的格式,一般在Linux下解压,如果用Windows下的程序解压有可能丢失其中某些文件或属性,普遍使用的是zip压缩,Windows系统下就用zip
打包指令tar
tar指令打包后的文件是.tar.gz文件,是Linux最常见的压缩包
tar [选项] 文件 打包内容
tar指令可以打包目录,也可以用来解压.tar、.tar.gz文件
通过不同的选项处理:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
-czvf 压缩为.tar.gz文件
-tzvf 列出压缩文件内容
-xzvf 解压.tar.gz文件
tar -czvf b.tar.gz b.txt
将b.txt压缩为b.tar.gz(可以自命名)
列出压缩文件内容
解压.tar.gz
解压后文件依然存在
gzip、zip、tar是最常用的三种压缩指令,分别压缩成相应的格式:.gz 、.zip 、.tar.gz
gzip和gunzip是在原文件上操作,而zip/unzip和tar是会复制一份文件
tar打包工具即能压缩,也能解压