一、inode节点号

在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据 ),包括:

文件类型,权限,UID ,GID

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

目录的数据内容就是目录里面的文件列表,目录引用的是inode号,也就是目录下的文件名和文件inode号之间的映射

ls -i 查看文件的节点编号

节点编号是由分区分配的,不是由磁盘分配,在同一个分区中,不会存在相同的节点编号,

节点编号是唯一的。但在不同的分区中,节点编号可以相同

在centos7中,根上的目录文件的节点号都是64开始,centos6中,跟上的目录文件的节点号为2,/sys、/proc文件在内存中,节点编号为1,节点编号是有限的

df -i查看磁盘分区上的可用节点号

whatch -n1每秒扫描一次

创建大量节点号

每秒扫描一次观察df节点号的变化

当系统节点数被占用完时,再创建新文件会提示报错,节点编号是可以耗尽的

ls file* 会因为参数过多无法显示报错,故使用ls命令即可

xargs 逐一的传递参数,从而解决参数过多的问题,将ls列出的参数逐一的传递给rm从而删除

cp和inode号

分配一个空闲的inode号,在inode表中生成新条目,在目录中创建一个目录项,将目录与inode编号关联拷贝数据生成新的文件

在同分区移动文件时,仅移动目录的数据块信息,如果不是在同一个分区,则需要同事将节点编号和原数据同时移动。

删除文件时,仅仅是先删除inode节点号,数据并不会删除,但在其他文件写入时,可能会覆盖占用被删除节点的数据空间

rm和inode

使用rm 命令:

链接数递减,从而释放的inode 号可以被重用

把数据块放在空闲列表中

删除目录项

数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

mv和inode

如果mv 命令的目标和源在相同的文件系统,使用mv 命令

用新的文件名创建对应新的目录项

删除旧目录条目对应的旧的文件名

不影响inode 表(除时间戳)或磁盘上的数据位置:没有数据被移动!

如果目标和源在一个不同的文件系统, mv相当于cp 和rm

2、shred:文件粉碎工具(覆盖原文件)

彻底删除文件

shred -u file

shred会用一些随机内容覆盖文件所在的节点和数据块,并删除文件(-u参数)。

假如想清除的更彻底一点可以也可使用-z 参数,意思是先用随机数据填充,最后一次再用0填充。

shred -u -z file另外shred还可以清除整个分区或磁盘,如果想彻底清除/dev/sdb1分区的内容可以这样:

shred /dev/sdb1 (但是不能加-u参数)

还有一些其他参数如下:

-f, –force 更改权限允许写入(如有必要)-n, –iterations=N 重写N次,默认为3次

–random-source=FILE 从指定文件读取数据

-s, –size=N 将文件粉碎为固定大小 (可使用后缀如K、M、C等)

-u, –remove 重写后截短并移除

-v, –verbose 显示进度

-z, –zero – add 用0覆盖数据

–help 显示帮助

–version 显示版本信息

3、复制

cp 复制文件

-i:覆盖前提示 是否覆盖

–n: 不覆盖原文件 -i、-n最后的生效

-r, -R: 递归复制目录及内部的所有内容

-a: 归档,相当于-dR –preserv=all

-d:–no-dereference –preserv=links 不复制原文件,只复制链接名

–preserv[=ATTR_LIST]

mode: 权限

ownership: 属主

timestamp:时间戳

links:复制链接文件

xattr

context 安全上下文

all-p:等同–preserv=mode,ownership,timestamp

-v:–verbose 显示复制过程-f:–force如果原文件不能打开,则删除原文件后再次重新写入,属性发生改变

备份配置文件(-a,文件属性信息完全复制,等同于备份)

cp -a /etc/passwd{,.bak}

cp -a /etc/passwd /etc/passwd.bak

mknod 创建复制设备文件

cp不能复制设备文件,复制设备文件用mknod

创建设备文件/app/sda

mknod /app/sda b 8 0b表示设备文件,8表示设备的主设备号,0表示设备的次设备号

创建设备文件时,应制定文件类型b,以及主设备和次设备号

创建空设备文件

4、rename 批量更改文件名

rename ‘.txt’ ‘.txt.bak’ *.txt 将txt后缀名更改为txt.bak

rename ‘.txt.bak’ ” *.txt 将txt.bak后缀名清除

5、tree 显示目录树

-d:只显示目录

-L level:指定显示的层级数目

-P pattern:只显示由指定pattern匹配到的路径

6、mkdir 创建目录

-p: 递归创建目录

-v: 显示详细信息

-m MODE: 创建目录时直接指定权限 eg:-m 644

7、tr:转换删除字符

tr [OPTION] ... SET1 [SET2]

选项:

-c –C –complement:取字符集的补集

-d –delete:删除所有属于第一字符集的字符

-s –squeeze-repeats:把连续重复的字符以单独一个字符表示

-t –truncate-set1:将第一个字符集对应字符转化为第二字符集

替换重定向到另一文件,或则>>追加重定向

s 重复字符压缩

Linux mode命令,linux命令相关推荐

  1. Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm

    先用一个脚本,模拟创建 14 个测试文件: #!/bin/bash for ((i=1;i<=10;i++)); do if [ $i -lt 3 ] thentouch /home/mysql ...

  2. linux关机重启注销命令,Linux的注销、关机、重启基本命令介绍

    你想知道Linux的注销.关机.重启基本命令么?下面是小编为大家收集的Linux的注销.关机.重启基本命令介绍,希望能帮到大家. Linux的注销.关机.重启基本命令介绍 一.注销,关机,重启 注销系 ...

  3. linux查询重复数据库,Linux如何使用locate命令查找数据搜索数据库

    通常在Linux查找数据库我们都使用find,那么除了find命令我们还可以用locate命令,可以在搜寻数据库时快速找到档案,具体怎么使用呢?下面小编就给大家详细介绍下locate命令的用法. Li ...

  4. linux 命令删除命令,Linux 命令之删除命令

    在Linux下删除文件用rm命令,具体用法如下: rm [选项] 文件 选项说明: -f -force 忽略不存在的文件,强制删除,无任何提示 -i --interactive 进行交互式地删除 -r ...

  5. linux unset命令,Linux unset命令

    Linux unset命令 Linux unset命令用于删除变量或函数. unset为shell内建指令,可删除变量或函数. 语法unset [-fv][变量或函数名称] 参数:-f 仅删除函数. ...

  6. Linux下视频截取命令

    比如你有一个视频,然后你对其中某一段感兴趣,你想把他截取下来,并且不希望画面变差,(当然你也不想花钱买视频编辑软件),可以在Linux下使用如下命令: ffmpeg -ss 00:00:05 -t 0 ...

  7. Linux常用20条命令

    Linux常用20条命令 假装这里有个标题 1.cd 2.ls 3.grep 4.find 5.cp 6.mv 7.rm 8.ps 9.kill 10.kill all 11.file 12.tar ...

  8. VMware里的linux系统里的命令行里会有bee的声音,要如何关掉

    VMware里的linux系统里的命令行里会有bee的声音,要如何关掉 取消bell报警声的方法:登陆linux系统vi /etc/inputrc找到set bell-style none 将前面的# ...

  9. 执行远程linux命令,linux shell 远程执行命令

    经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...

  10. linux文本处理常用命令

    linux文本处理常用命令 linux文本处理命令:grep.sed.printf.awk 1.grep grep的作用是按行查找字符,输出包含字符的行. #从文件查询 grep 'hello' fi ...

最新文章

  1. Oracle优化之表连接方式
  2. 事务管理最佳实践多余的话之一“每次请求,一次数据库连接,一次事务”是不是金科玉律?...
  3. Matlab中fft作频谱横纵坐标
  4. com.android.sadk卸载不掉,Android的Service的两种方式以及使用
  5. 两个listmap合并去重_我是如何用单机实现亿级规模题库去重的?
  6. hdu--4902--线段树
  7. 黑盒测试只会点点点 这些你都需要知道
  8. Tomcat启动会遇到的问题部分解决方案
  9. PKU 1062 昂贵的聘礼
  10. lbe android,LBE安全大师极速版
  11. verilog幂次方_Verilog学习笔记——有符号数的乘法和加法
  12. 80x86汇编小站-公告
  13. 1.1微信小程序做调查问卷
  14. JAVA我的世界怎么做成就_Editing 成就/Java版
  15. 阿里云不重启修改或添加密钥
  16. 阿里经济体大数据平台的建设与思考
  17. 云计算企业级小架构部署应用综合练习-二- Ansible 部署 Elastic Stack(ELK)
  18. PHP处理iso8583报文
  19. 三分钟用HCaaS打造一台拥有公网IP的服务器
  20. H5+JavaScript 剪刀石头布小游戏完整代码

热门文章

  1. Linux shell输出制表符,关于bash:如何在终端中打印制表符分隔文件
  2. [Android]用迅雷去下载更新我们的Sdk.嘿嘿``~
  3. 抖音小店无货源店群、实操分享,“4000字最全讲解!
  4. 22 款终端生产力工具,效率飞起!
  5. 2011年第七届“博创杯”全国大学生嵌入式设计大赛大赛命题
  6. 网络 - TCP大全
  7. BurpSuite修改服务器端返回数据
  8. 大众点评的爬虫代码(php版本)
  9. 《深度学习及其在生物医学中的应用》
  10. 腾讯视频MP4转换最新方法2019-7