初入命令世界

一、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 0 b表示设备文件,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 重复字符压缩

          初入命令世界         

         初入命令世界

          初入命令世界

原创文章,作者:danran,如若转载,请注明出处:http://www.178linux.com/76999

(0)
danrandanran
上一篇 2017-05-26 17:09
下一篇 2017-05-27 12:59

相关推荐

  • Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式

    文本处理 各种文本工具,查看,分析,统计文本文件 grep 正则表达式 扩展正则表达式 sed cat -n f1 加行号(空格行都计算) cat -b f1 加行号(只计算有字符的行) cat -ns f1 加行号(压缩空行) cat -v f1 能看windows文件的M`符号 cat -T f1 能够显示里面的tab空位,显示为^I cat -A f1…

    Linux干货 2016-08-07
  • Linux防火墙之基本原理

    本系列文章主要讲述Linux防火墙的基本原理和基础使用方法: 1.什么是防火墙: 当我们把计算机连入互联网与其他计算机进行通信时,这无疑也将自己的信息暴露了,那就意味着可能会有一些心怀不轨的人会利用这些信息来攻击自己的主机,尤其是作为一台服务器向互联网用户提供服务时,就迫切需要一种隔离和保护机制,来隔离外部网络,达到保护自我的目的。而这种隔离机制就叫做防火墙…

    Linux干货 2016-12-27
  • keepalived配置

    前两个配置做完实验没截图,后面的实验有图片。 keepalived的的单独设置 1.确保时间同步 ntpdate 10.1.0.1 2.保证/etc/hosts文件可以解析到 3.本机配置ssh-keygen -t rsa -P ''  ,然后ssh-copy-id -i .ssh/id_rsa.pub root@10.1.44…

    Linux干货 2016-11-11
  • 一切皆文件——Linux基本命令(1)

    1.一切皆文件 在dev下有很多硬件的文件 sr0是光驱 console是终端,也划为一个文件   2.查看终端   3.两个终端发信 首先右键选择Clone Session,新客隆了一个centos6 分别使用tty命令查看终端名。 分别为0和1 通过命令:echo “想发送的信息“ > 终端名 即可发送 在0中输入命令: 在1中…

    Linux干货 2017-07-13
  • 操作系统,内核以及硬件之间的关系

    一般我们将计算机系统区分为硬件系统与软件系统构成。 计算机硬件我们可以分成5大组件构成,即: 1)计算器:用于数据计算,如:CPU 2)控制器:控制数据流和指令流,与各个组件之间进行数据交互,并控制协调各个组件之间协同工作,如:主板的南桥,内桥,各个组件自身的独立控制芯片等 3)存储器:用户数据的存放,如:一级/二级等内存芯片;flash芯片 4)输入设备:…

    Linux干货 2016-10-26
  • Linux下如何使用sendEmail来发送邮件

    1)什么是sendEmail sendEmail是一个轻量级,命令行的SMTP邮件客户端(注意,不要跟sendmail混淆了)。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大,从此以后你就爱上了它。 2)安装sendEmail [root@zabbix ~]# wget http://…

    系统运维 2016-07-29