inode 是什么及绝对路径和相对路径和一些目录相关命令总结

inode是什么

    

    每个分区又分两个区,元数据区和数据区。

    元数据区主要存储文件的权限,属主属组,时间戳,文件的存储位置指针….就如一本书有目录页和内容页一样,目录页上的记录的是内容的页数,可以通过目录页的页数直接找到内容。而不用从第一页去往后翻。这就是inode(文件的索引)

     数据区存储文件内容数据

   每个文件都有一个inode,通过这个inode查找文件,inode中的指针指向文件的数据块,

   而指针又分为直接指针,间接指针,双重间接指针,多重间接指针。。。。

   直接指针:直接指向文件存储位置

   间接指针:当直接指针指向的存储空间不足以容纳文件的大小的时候就采取间接指针指向的数据块,(假设一个数据块4k大小,一个指针占用4个    字节,那么一个数据块可以有1024个指针,而1024个指针可以指向1024个4k大小的数据库,那么就是1024*4k=4096k)从这个指针数据块中有N多指    针指向文件数据块,如此层层扩大以达到存储大文件的目的

   目录的inode指针指向的数据块存储的是文件名和文件的inode,(也就是可以理解为直接指针指向的数据块只是存储文件名和文件inode),通过    间接指针指向的数据块中存储的文件本身的inode再从元数据区去指向文件所对应的数据块,多层目录间接指针如此多一个循环

绝对路径和相对路径

    绝对路径:

   从根开始(/)完整的文件位置路径,可用于任何想指定一个文件名的时候

     相对路径:

   不从根(/)开始,指定相对于当前工作目录或者某一个目录的位置,可作为简短形式指定一个文件名

硬链接和软连接的区别

   硬链接是多个文件名共同指向一个文件内容,一个inode各个链接可以任意访问,如果修改了文件内容,则其他链接受到影响,就如同一个房间有多个门牌号,一个链接删除了文件内容并不影响其他链接的使用。

   软链接只是原始文件的路径,每个链接都有一个inode,但是所有链接都是建立在原始文件的基础上的,如果删除了所有的软连接并不影响原始文件,但是如果原始文件被删除,则所有软连接都会报错

文件通配符

*:匹配任意零个或多个字符

?:匹配任意单个字符

~:当前用户的家目录

~username:用户家目录

~+:当前工作目录

~-:上一个工作目录

[0-9]:指定范围内的一个数字

[a-z]:以小写a开头小写z结尾(中间不区分大小写)

[A-Z]:以大写A开头大写Z结尾(中间不区分大小写)

[xxx]:列表中的任何一个字

[^xxx]:列表中的所有字符以外的

预定义的字符类

[:digit:]任意数字,相当于[0-9]

[:lower:]任意小写字母

[:upper:]任意大写字母

[:alpha:]任意大小写字母

[:alnum:]任意数字和字母

[:space:]空格

[:punct:]标点符号

标准输入和输出

标准输入0

标准输出1

错误输出2

程序:指令+数据

读入数据

输出数据

打开的文件都有一个文件描述符号

linux给程序员提供三种io设备,

标准输入0:默认接受来自键盘的输入

标准输出1:默认输出到终端端口

标准错误2:默认输出到终端端口

查看文件状态

stat:查看文件的元数据

创建空文件和刷新文件时间

touch:刷新时间

-a:刷新atime 访问时间

-c:刷新改动时间,如果ctime发生改动,则mtime(文件内容的更改时间)也跟随刷新

复制文件和目录cp

cp 如果源是一个文件, 目标不存在 则在目标创建一个和源同名的文件,并且把源的内容复制进去,如果目标是目录而且存在,则在目标目录下创建一个和源同名的文件,并把内容复制进去

如果源是多个文件 ,目标是文件的话会报错,如果目标是目录而且存在,则在目标目录下创建和源同名的文件,并把内容复制进去

如果源是目录需要配合-r选项,目标不存在的话就需要创建并且指定命名的目录并把源目录总的内容复制进去,如果目标是文件的话就会报错,如果目标是目录而且存在的话,就在目标目录下新建一个和源同名的目录并把源目录中的内容复制进去

-i:交互式

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

-a:归档

-d:不复制原文件,只复制链接名

–preserv[=ATTR_LIST]

mode: 权限

ownership: 属主属组

timestamp:

links

xattr

context

all

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

-v: –verbose

-f: –force

命令别名

显示当前shell进程可用的所有命令别名

]#alias

定义别名name,其相当于指明命令value

]#alias name=value

在命令行中定义的别名,仅对当前shell进程有效,如果想要永久生效,需要定义在配置文件中

仅对当前用户有效:~/.bashrc

对所有用户有效:/etc/.bashrc

编辑配置给出的新配置不会立即生效,需要重新登录或者使用sourec /path/to/config_file 来重新读取shell进程配置文件

撤销别名

]#unalias name

如果别名与原名同名,如果要执行原命令,可使用

\cmd

或者是使用绝对路径(外部命令)

移动和重命名文件

mv

-i:交互式

-f:强制

删除

rm

-i:交互式

-r:递归删除

-f:强制

目录操作

tree:显示目录树

-d:只显示目录树

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

mkdir:创建目录

-p:存在于不报错,而且自动创建所需的各目录

-v:显示过程

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

rmdir:删除目录

-p:递归删除父目录

-v:显示过程

rm -r:递归删除目录树

确定文件内容

file:

-b:列出文件辨识结果时,不显示文件名称

-c:详细显示指令的执行过程,便于排错或分析序执行

-f:列出文件中文件名的文件类型

-F:使用指定的分隔符替换输出文件名后默认的“:”分隔符

-i:输出mime类型的字符串

-L:查看对应的软连接对应的文件类型

-z:尝试去解读压缩文件

io重定向:改变输入和输出的默认位置

把输出和错误重新定向到文件

命令 操作符号 文件名

>把标准输出定向到文件

2>:把错误输出定向到文件

&>:把所有输出定向到文件

>此符号输出会把定向文件的内容覆盖

可以使用 set -c 禁止覆盖

但是使用>| 强制覆盖

使用set +c 允许覆盖

>>把标准输入追加到文件

把标准输出和错误输出重新定向到文件

2>错误输出(覆盖)

2>>错误输出(追加)

标准输出和错误输出可以指向不同的文件

cmd > /path/to/file.out 2 > /path/to/file.out

标准输出和错误输出可以指向相同的文件

&>:覆盖

&>>:追加

cmd >/path/to/file.out 2> &1(顺序很重要)

cmd >/path/to/file.out 2>> &1

():可以合并多个程序的输出

(cal 2008 ; cal 2016)> all.txt

tr :转换字符

如 tr 'a-z' 'A-Z' < /etc/issue

发邮件

mail -s haha wang

命令     标题    收件人

作业

1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

[root@daxia ~]# tr 'a-z' 'A-Z' <  /etc/issue > /tmp/issue.out

[root@daxia ~]# cat /tmp/issue.out

\L \N \T

WELCOME ALI

2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

root@daxia ~]# echo `who` | tr 'a-z' 'A-Z' > /tmp/who.out

[root@daxia ~]# cat /tmp/who.out

ROOT :0 2016-07-28 07:54 (:0) ROOT TTY2 2016-07-28 07:58 ROOT PTS/1 2016-07-28 17:36 (10.1.250.14)
3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
Hello, I am 用户名,the system version is here,pleasehelp me to check it ,thanks!
操作系统版本信息

[root@daxia ~]# echo "hello,i am `whoami` the system version is here,paleasehelp me to caeck it,thanks! `cat /etc/redhat-release` "| mail -s hi xing

[xing@daxia ~]$ mail

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/spool/mail/xing": 3 messages 3 new

>N  1 root                  Thu Jul 28 21:44  18/583   "haha"

N  2 root                  Thu Jul 28 21:56  19/651   "haha"

N  3 root                  Thu Jul 28 22:02  18/683   "hi"

& 3

Message  3:

From root@daxia.localdomain  Thu Jul 28 22:02:46 2016

Return-Path: <root@daxia.localdomain>

X-Original-To: xing

Delivered-To: xing@daxia.localdomain

Date: Thu, 28 Jul 2016 22:02:46 +0800

To: xing@daxia.localdomain

Subject: hi

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

From: root@daxia.localdomain (root)

Status: R

hello,i am root the system version is here,paleasehelp me to caeck it,thanks! CentOS Linux release 7.2.1511 (Core)

&

将/root/下文件列表,显示成一行,并文件名之间用空格隔开  

[root@centos6 ~]# ls /root |tr "\n" "\040" 

1aA aa anaconda-ks.cfg Desktop f3 install.log install.log.syslog manpages.sh manpages-zh-1.5.1 manpages-zh-1.5.1.tar.gz maxing maxing2016-07-28 公共的 模板 视频 图片 文档 下载 音乐 桌面 [root@centos6 ~]#


原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/26904

(0)
M20-1马星M20-1马星
上一篇 2016-08-02
下一篇 2016-08-02

相关推荐

  • 设计模式(二)单件模式Singleton(创建型)

      几乎所有面向对象的程序中,总有一些类的对象需要是唯一的,例如,通过数据库句柄到数据库的连接是独占的。您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销。再如大家最经常用的IM,如QQ,在同一台电脑,一个帐号只能有唯一的登录。 1. 问题 怎样确保一个特殊类的实例是独一无二的(它是这个类的唯一实例),并且这个实例…

    Linux干货 2015-06-24
  • 马哥教育网络班21期-第二周课程作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp即copy的简写,我们可以用它来复制一些文件即将,源文件的数据流复制到目的文件中。和下面要讲的rm,mv,一样都是一些非常基础的命令。关于这个命令,我们有个小窍门,那就是根据 ls file这个命令是否执行成功来判断file文件是否存在。 关于cp,我们有一些要点要注意: cp…

    Linux干货 2016-07-07
  • Linux下which、locate、find 命令查找文件

    在Linux下我们经常要查找某个文件,但是又不记得文件位置,可以使用一些命令来搜索,目前接触到的文件命令有以下几个 which 查看可执行文件的位置 locate 基于数据库查找文件位置 find 实时搜索文件 1、 Which   语法:which 可执行二进制文件名称   Which是通过PATH环境变量查找文件的,在PATH 指定的…

    2017-08-14
  • 马哥教育网络班21期-第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; 3、删除/tmp/rc.sysinit文件…

    Linux干货 2016-08-05
  • Ansible应用介绍

    Ansible 简介 ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:自动化部署APP;自动化管理配置项;自动化的持续交互;自动化的(AWS)云服务管理。所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说…

    Linux干货 2015-07-03
  • raid各级别简介

    一. raid 是什么       RAID:(Redundant Array of indenpensive Disk) 独立磁盘冗余阵列: 磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存…

    Linux干货 2016-02-14