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

相关推荐

  • Python基础语法习题

    1、~12为什么是-13?解1:12 二进制:0000 1100补码: 0000 1100按位取反 :1111 0011求这个原码,即负数求补码的逆过程:先减1,再取反 (符号位不变)-1 1111 0010取反 1111 1101 还原成十进制-13 2、10^9等于?10^-9等于?解:(1)10^910的二进制:0000 10109的二进制: 0000…

    Linux干货 2018-03-24
  • 文本处理工具应用练习

    练习:  1 、找出ifconfig 命令结果中本机的IPv4 地址 思路:我们使用ifconfig命令可知,ip地址是在第二行,所以我们先筛选出第二行,       第二行中的分隔符看起来很混乱,都是不规则的,有一个空格或多个空格的,没有标准       所以我们最好是建立一个标准分隔,…

    Linux干货 2016-08-08
  • DNS原理详解02

    9、子域授权     1、在父域的区域配置文件中增加以下记录,即为增加了子域授权            opt.patrickli.com.         IN      NS     &…

    Linux干货 2016-08-29
  • Mariadb基于ssl的主从复制

    Mariadb基于ssl的主从复制 一、前言 备份数据库是生产环境中的首要任务,重中之重。一般配置中mariadb的主从传输是明文传输,但是有时候对一些特殊业务来说是不允许的,为了保证数据在传输过程中的安全性,因此使用基于SSL的复制会大大加强数据的安全性。 二、准备工作 1、实验系统环境: CentOS7.2,SELinux关闭,iptables关闭,安装…

    Linux干货 2017-02-24
  • LAMP

    1、请描述一次完整的http请求处理过程; 一次完整的http请求处理过程: (1) 建立或处理连接:接收请求或拒绝请求; (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源; (5) 构建响应报文: (…

    Linux干货 2016-12-14
  • python装饰器详解

    python之装饰器详解 一、装饰器定义 定义一个函数,可以接受一个函数作为参数,对该函数进行一些包装,不改变函数的本身。 二、装饰器四部曲(分解) 1、函数可赋值给变量。若赋值给变量的是调用后的函数,变量的值就是return的返回值。 切记:函数赋值给变量,只看return的值。分清楚函数是处于调用状态还是未被调用状态。若函数没有写return,默认ret…

    2017-02-08