文件或目录属性主要包括:

  • 索引节点,inode
  • 文件类型
  • 文件权限
  • 硬链接个数
  • 归属的用户和用户组
  • 最新修改时间

查看命令

ls -lhi  /opt

图解:

  1. Inode索引节点号,(人的身份证,家庭地址等信息,唯一),系统寻找文件名 > Inode号 > 文件内容
  2. 文件权限,第一个字符是文件类型,随后9个字符是文件权限,最后一个. 有关selinux
  3. 文件硬链接数量,与ln命令配合
  4. 文件所属用户
  5. 文件所属用户组
  6. 文件目录大小
  7. 文件修改时间
  8. 文件名

文件扩展名

windows下的文件扩展名

  • docx
  • pptx
  • pdf
  • jpg
  • avi
  • mp4
  • gif
  • rar
  • Zip

对于windows系统,文件名后缀有问题则会影响使用

扩展名

Linux文件的扩展名只是方便阅读,对文件类型不影响

Linux通过文件属性区分文件类型

  • .txt文本类型
  • .conf .cfg .configure 配置文件
  • .sh .bash 脚本后缀
  • .py 脚本后缀
  • .rpm 红帽系统二进制软件包名
  • .tar .gz .zip 压缩后缀

文件类型

可以通过ls -F 给文件结尾加上特殊标识

格式 类型
ls -l看第一个字符  
- 普通文件regular file,(二进制,图片,日志,txt等)
d 文件夹directory
b 块设备文件,/dev/sda1,硬盘,光驱
c 设备文件,终端/dev/tty1,网络串口文件
s 套接字文件,进程间通信(socket)文件
p 管道文件pipe
l 链接文件,link类型,快捷方式

普通文件

通过如下命令生成都是普通文件(windows中各种扩展名的文件,放入linux也是普通文件类型)

  • echo
  • touch
  • cp
  • cat
  • 重定向符号 >

普通文件特征就是文件类型是,"-"开头,以内容区分一般分为

  • 纯文本,可以用cat命令读取内容,如字符、数字、特殊符号等
  • 二进制文件(binary),Linux中命令属于这种格式,例如ls、cat等命令

文件夹

文件权限开头带有d字符的文件表示文件夹,是一种特殊的Linux文件

  • mkdir
  • cp拷贝文件夹

链接类型

  • ln命令创建

类似windows的快捷方式

file命令

显示文件的类型

[root@luffycity tmp]# file /usr/bin/python2.7        #二进制解释器类型
/usr/bin/python2.7: ELF 64-bit LSB executable [root@luffycity tmp]# file /usr/bin/yum #yum是python的脚本文件
/usr/bin/yum: Python script, ASCII text executable [root@luffycity tmp]# file /usr/bin/cd #shell脚本,内置命令
/usr/bin/cd: POSIX shell script, ASCII text executable [root@luffycity tmp]# file hehe.txt #text类型
hehe.txt: ASCII text [root@luffycity tmp]# file heihei #文件夹
heihei: directory [root@luffycity tmp]# file /usr/bin/python2 #软链接类型
/usr/bin/python2: symbolic link to `python2.7'

which

查找PATH环境变量中的文件,linux内置命令不在path中

[root@luffycity tmp]# which python
/usr/bin/python

whereis命令

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

[root@luffycity tmp]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz

tar命令

tar命令在linux系统里,可以实现对多个文件进行,压缩、打包、解包

打包

将一大堆文件或目录汇总成一个整体。

压缩

将大文件压缩成小文件,节省磁盘空间。

语法:
tar(选项)(参数) -A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extract或--get:从备份文件中还原文件;
-t或--list:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;不建议使用
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。
-h, --dereference跟踪符号链接;将它们所指向的文件归档并输出

案例

仅打包,不压缩

#tar 参数 包裹文件名  需要打包的文件
[alex@luffycity tmp]$ tar -cvf alltmp.tar ./*

打包后且用gzip命令压缩,节省磁盘空间

[alex@luffycity tmp]$ tar -zcvf alltmp.tar ./*

注意

  • f参数必须写在最后,后面紧跟压缩文件名
  • tar命令仅打包,习惯用.tar作为后缀
  • tar命令加上z参数,文件以.tar.gz或.tgz表示

列出tar包内的文件

#根据tar包文件后缀,决定是否添加z参数,调用gzip
[alex@luffycity tmp]$ tar -ztvf alltmp2.tar.gz

拆开tar包

[root@luffycity tmp]# tar -xf alltmp.tar

拆开tar的压缩包

tar -zxvf ../alltmp2.tar.gz ./

拆除tar包中部分文件

#正常解压命令,单独加上你要拆除的文件名,指定路径
#先看下tar包中有什么内容,再指定文件解压 [root@luffycity tmp]# tar -ztvf ../alltmp2.tar.gz [root@luffycity tmp]# tar -zxvf ../alltmp2.tar.gz ./alltmp.tar
./alltmp.tar

指定目录解tar包

[root@luffycity tmp]# tar -xf alltmp.tar -C /opt/data/

排除文件解包

#注意--exclude 跟着文件名或是文件夹,不得加斜杠,排除多个文件,就写多个--exclude
[root@luffycity tmp]# tar -zxvf ../alltmp2.tar.gz --exclude data

打包链接文件

-h参数能够保证,打包的不仅仅是个快捷方式,而是找到源文件

打包/etc下所有普通文件

[root@luffycity tmp]# tar -zcvf etc.tgz `find /etc -type f`
[root@luffycity tmp]# tar -tzvf etc.tgz

gzip命令

要说tar命令是个纸箱子用于打包,gzip命令就是压缩机器

gzip通过压缩算法lempel-ziv 算法(lz77) 将文件压缩为较小文件,节省60%以上的存储空间,以及网络传输速率

gzip(选项)(参数)

-a或——ascii:使用ASCII文字模式;
-c或--stdout或--to-stdout  把解压后的文件输出到标准输出设备。
-d或--decompress或----uncompress:解开压缩文件;
-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或--no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N或——name:压缩文件时,保存原来的文件名称及时间戳记;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;
-<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
--best:此参数的效果和指定“-9”参数相同;
--fast:此参数的效果和指定“-1”参数相同。

案例

#压缩目录中每一个html文件为.gz,文件夹无法压缩,必须先tar打包
gzip *.html #gzip压缩,解压都会删除源文件

列出压缩文件中信息

[root@luffycity tmp]# gzip -l *.gz        #不解压显示压缩文件内信息,以及压缩率
compressed uncompressed ratio uncompressed_name
28 0 0.0% 10.html
24 0 0.0% 123
27 0 0.0% 1.html
27 0 0.0% 2.html
27 0 0.0% 3.html
27 0 0.0% 4.html
27 0 0.0% 5.html
27 0 0.0% 6.html
27 0 0.0% 7.html
27 0 0.0% 8.html
27 0 0.0% 9.html
23581672 118888884 80.2% alex.txt
23582535 118896640 80.2% alltmp.tar
289 470 44.9% glances.log
45 16 -12.5% hehe.txt
47164836 237786010 80.2% (totals)

解压缩且显示过程

[root@luffycity tmp]# gzip -dv *.gz
10.html.gz: 0.0% -- replaced with 10.html
123.gz: 0.0% -- replaced with 123
1.html.gz: 0.0% -- replaced with 1.html
2.html.gz: 0.0% -- replaced with 2.html
3.html.gz: 0.0% -- replaced with 3.html
4.html.gz: 0.0% -- replaced with 4.html
5.html.gz: 0.0% -- replaced with 5.html
6.html.gz: 0.0% -- replaced with 6.html
7.html.gz: 0.0% -- replaced with 7.html
8.html.gz: 0.0% -- replaced with 8.html
9.html.gz: 0.0% -- replaced with 9.html
alex.txt.gz: 80.2% -- replaced with alex.txt
alltmp.tar.gz: 80.2% -- replaced with alltmp.tar
glances.log.gz: 44.9% -- replaced with glances.log
hehe.txt.gz: -12.5% -- replaced with hehe.txt

压缩保留源文件

#-c参数
[root@luffycity tmp]# gzip -c alltmp.tar > alltmp.tar.gz

gzip套件提供了许多方便的工具命令,可以直接操作压缩文件内容

  • zcat,直接读取压缩文件内容zcat hehe.txt.gz
  • zgrep
  • zless
  • zdiff

zip命令

zip 命令:是一个应用广泛的跨平台的压缩工具,压缩文件的后缀为 zip文件,还可以压缩文件夹

语法:
zip 压缩文件名 要压缩的内容 -A 自动解压文件
-c 给压缩文件加注释
-d 删除文件
-F 修复损坏文件
-k 兼容 DOS
-m 压缩完毕后,删除源文件
-q 运行时不显示信息处理信息
-r 处理指定目录和指定目录下的使用子目录
-v 显示信息的处理信息
-x “文件列表” 压缩时排除文件列表中指定的文件
-y 保留符号链接
-b<目录> 指定压缩到的目录
-i<格式> 匹配格式进行压缩
-L 显示版权信息
-t<日期> 指定压缩文件的日期
-<压缩率> 指定压缩率
最后更新 2018-03-08 19:33:4

案例

#压缩当前目录下所有内容为alltmp.zip文件
[root@luffycity tmp]# zip alltmp.zip ./* #压缩多个文件夹
[root@luffycity tmp]# zip -r data.zip ./data ./data2

unzip命令用于解压

参数

-l:显示压缩文件内所包含的文件;
-d<目录> 指定文件解压缩后所要存储的目录。

案例

#查看压缩文件内容
[root@luffycity tmp]# unzip -l data.zip #解压缩zip文件
[root@luffycity tmp]# unzip data.zip

date命令

date命令用于显示当前系统时间,或者修改系统时间

语法

date  参数   时间格式

参数

-d, --date=STRING
显示由 STRING 指定的时间, 而不是当前时间 -s, --set=STRING
根据 STRING 设置时间 -u, --utc, --universal
显示或设置全球时间(格林威治时间)

时间格式

%%
文本的 %
%a
当前区域的星期几的简写 (Sun..Sat)
%A
当前区域的星期几的全称 (不同长度) (Sunday..Saturday)
%b
当前区域的月份的简写 (Jan..Dec)
%B
当前区域的月份的全称(变长) (January..December)
%c
当前区域的日期和时间 (Sat Nov 04 12:02:33 EST 1989)
%d
(月份中的)几号(用两位表示) (01..31)
%D
日期(按照 月/日期/年 格式显示) (mm/dd/yy)
%e
(月份中的)几号(去零表示) ( 1..31)
%h
同 %b
%H
小时(按 24 小时制显示,用两位表示) (00..23)
%I
小时(按 12 小时制显示,用两位表示) (01..12)
%j
(一年中的)第几天(用三位表示) (001..366)
%k
小时(按 24 小时制显示,去零显示) ( 0..23)
%l
小时(按 12 小时制显示,去零表示) ( 1..12)
%m
月份(用两位表示) (01..12)
%M
分钟数(用两位表示) (00..59)
%n
换行
%p
当前时间是上午 AM 还是下午 PM
%r
时间,按 12 小时制显示 (hh:mm:ss [A/P]M)
%s
从 1970年1月1日0点0分0秒到现在历经的秒数 (GNU扩充)
%S
秒数(用两位表示)(00..60)
%t
水平方向的 tab 制表符
%T
时间,按 24 小时制显示(hh:mm:ss)
%U
(一年中的)第几个星期,以星期天作为一周的开始(用两位表示) (00..53)
%V
(一年中的)第几个星期,以星期一作为一周的开始(用两位表示) (01..52)
%w
用数字表示星期几 (0..6); 0 代表星期天
%W
(一年中的)第几个星期,以星期一作为一周的开始(用两位表示) (00..53)
%x
按照 (mm/dd/yy) 格式显示当前日期
%X
按照 (%H:%M:%S) 格式显示当前时间
%y
年的后两位数字 (00..99)
%Y
年(用 4 位表示) (1970...)
%z
按照 RFC-822 中指定的数字时区显示(如, -0500) (为非标准扩充)
%Z
时区(例如, EDT (美国东部时区)), 如果不能决定是哪个时区则为空 默认情况下,用 0 填充数据的空缺部分. GNU 的 date 命令能分辨在 `%'和数字指示之间的以下修改. `-' (连接号) 不进行填充 `_' (下划线) 用空格进行填充

案例

显示当前系统部分时间

1.显示短年份
date +%y 2.显示长年份
date +%Y 3.显示月份
date +%m 4.显示几号
date +%d 5.显示几时
date +%H 6.显示几分
date +%M 7.显示整秒
date +%S 8.显示时间如,年-月-日
date +%F 9.显示时间如,时:分:秒
date +%T

-d参数指定时间显示,仅仅是显示

1.显示昨天
date +%F -d "-1day" 2.显示昨天
date +%F -d "yesterday" 3.显示前天
date +%F -d "-2day" 4.显示明天日期
date +%F -d "+1day" 5.显示明天,英文表示
date +%F -d "tomorrow" 6.显示一个月之前,之后
[root@pylinux /]# date +%F -d "1month"
2019-12-01
[root@pylinux /]# date +%F -d "-1month"
2019-10-01 7.显示一年后
date +%F -d "1year" 8.显示60分钟后
date +%T -d "60min" +表示未来
-表示过去
day表示日
month表示月份
year表示年
min表示分钟

-s设置时间

设置时间较少,一般配置ntp时间服务器

1.设置时间
[root@pylinux /]# date -s "20170808"
2017年 08月 08日 星期二 00:00:00 CST
[root@pylinux /]#
[root@pylinux /]# date
2017年 08月 08日 星期二 00:00:00 CST 2.修改分钟
[root@pylinux /]# date -s "05:06:33"
2017年 08月 08日 星期二 05:06:33 CST
[root@pylinux /]# date
2017年 08月 08日 星期二 05:06:33 CST 3.修改日期和分钟
[root@pylinux /]# date -s "20180606 05:30:30"
2018年 06月 06日 星期三 05:30:30 CST
[root@pylinux /]# date
2018年 06月 06日 星期三 05:30:31 CST 4.可设置不同格式的时间
date -s "2018-06-06 05:30:30"
date -s "2018/07/07 05:30:30"

shred命令

用法:shred [选项]... 文件...

多次覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原。

-u, --remove 覆盖后截断并删除文件
shred heihei.txt 随机覆盖文件内容,不删除源文件

案例

彻底粉碎且删除文件

[root@pylinux tmp]# ls -lh
总用量 25M
-rw-r--r-- 1 root root 25M 10月 14 15:02 heihei.txt
[root@pylinux tmp]#
[root@pylinux tmp]# shred -u heihei.txt

最新文章

  1. ECMA中的switch语句
  2. YTU 3027: 哈夫曼编码
  3. 文本XSS攻击过滤
  4. Python初学者需要注意的问题
  5. ffmpeg的内部Video Buffer管理和传送机制
  6. NopCommerce 数据库初始化
  7. 新发现。css3控制浏览器滚动条的样式
  8. centos6.5 升级python 到 python 2.7.11 安装 pip
  9. php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间
  10. (中等) POJ 2948 Martian Mining,DP。
  11. mybatis新手入门常见问题集(持续更新)
  12. js实现图片旋转、模板文件查看图片大图之记录篇[二]
  13. leetcode range sum query
  14. linux常见命令实践.
  15. 初识Restful架构
  16. MFC原理第五讲.消息映射.以及如何添加消息
  17. vue学习笔记——路由
  18. Shell - 文本处理
  19. python接口自动化测试二十:函数写接口测试
  20. DownloadProvider源码解析——与Volley对比

热门文章

  1. 如何在Linux快速搭建一套ADB环境
  2. HCIA-Datacom 1.1实验 华为VRP系统基本操作
  3. ArkUI 条件渲染
  4. rcu使用遇到问题汇总
  5. [CF1526F] Median Queries(交互 / 构造)
  6. HTML初学者小知识2
  7. cobaltstrike进行局域网远控
  8. 被一位读者赶超,手摸手 Docker 部署 ELK Stack
  9. xtrabackup增量备份MySQL-5.7操作说明
  10. Centos7中用Docker安装MySQL教程