Linux文件系统解析

  一、文件的命名规则

1、文件名称最长4095个字节,用/分割的路径不能超过255个字节

2、蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件

3、除/和NULL,所有字符都有效。不推荐使用特殊字符

  二、Linux下的文件类型

      linux下一切皆文件,所以在linux操作系统中就有不同类型的文件:

           -:普通文件·······-rwxr-xr-x. 

d:目录文件·······drwxr-xr-x

b:块设备········brw-rw----.

·块设备都有缓存的

c:字符设备·······crw-rw-rw-.

l:符号链接文件·····lrwxrwxrwx.

p:管道文件·······prw-------.

s:套接字文件······srw-rw-rw-.


CentOS6和7的对比

/bin 和 /usr/bin

/sbin 和 /usr/sbin

/lib 和/usr/lib

/lib64 和 /usr/lib64

linux中二进制文件和配置都包含在哪些目录中

1、Linux中包含有二进制程序的目录:/bin,/sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin

        其实这些文件都是等同

            /bin==/usr/bin,

            /sbin==/usr/sbin

2、库文件目录:/lib, /lib64, /usr/lib, /usr/lib64,/usr/local/lib, /usr/local/lib64

3、配置文件: /etc, /etc/DIRECTORY, /usr/local/etc

        #所有的配置文件基本上都放置在/etc/

?     4、帮助文件: /usr/share/man, /usr/share/doc,/usr/local/share/man, /usr/local/share/doc

三、命令

 pwd

   显示当前shell PWD的绝对路径

 ~]# echo $PWD

   ·变量存储的当前工作目录

   ·真正生效的是变量$PWD

 ~]# echo $OLDPWD

    绝对路径:·以正斜杠开始

 ·完整的文件的位置路径

 ·可用于任何想指定一个文件名的时候

    相对路径:·相对路径名

 ·不以斜线开始

 ·指定相对当前的工作目录位置

 ·可以作为一个简短的形式定一个文件名

 cd 

    切换目录

cd .. 到上一级

cd 到当前的工作目录

cd - 到以前的工作目录

  环境变量:

$PWD:保存了当前目录路径;

$OLDPWD:上一次所在目录路径

 ls

    列出当前命令的内容或指定目录的内容

  ls [options] [files_or_dirs]

-a:查看所有文件,包括隐藏文件

-l:以长格式方式显示详细信息

-R:目录递归显示

-S:从大到小拍拍

 stat

·查看文件的时间戳

三个时间戳:

access time:访问时间, atime,读取文件内容

modify time: 修改时间, mtime,改变文件内容(数据)

change time: 改变时间, ctime,元数据发生改变

 touch

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

  touch [OPTION]... FILE...

-a: 仅改变 atime

-m: 仅改变 mtime

-t: STAMP:

[[CC]YY]MMDDhhmm[.ss]

-c: 如果文件不存在,则不予创建

 cp

     -i:交互式

-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

 mv

移动和重命名文件

  mv [OPTION]... SOURCE... DIRECTORY

-i:交互式

-f:强制

 rm

删除

  rm [OPTION]... FILE...

-i: 交互式

-f: 强制删除

-r: 递归

--no-preserve-root

  例: #rm -rf /

 tree 

        显示目录树

  -d: 只显示目录

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

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

 mkdir 

        创建目录

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

  -v: 显示详细信息

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

     alias

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

    #alias

定义别名NAME,其相当于执行命令VALUE;

#alias NAME='VALUE'

在命令行中定义的别名,仅对当前shell进程有效

如果想永久有效,要定义在配置文件中

仅对当前用户: ~/.bashrc

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

四、文件通配符

* :匹配零个或多个字符

? :匹配任何单个字符

~ :当前用户家目录

~ username 用户家目录

~+:当前工作目录

~-:前一个工作目录

#cd -:cd可以用-。程序或命令调用不可以-,~-

[0-9]:匹配一个数字范围

[a-z]:大写和小写字母

[A-Z]:大写字母

[wxc] 匹配列表中的任何的一个字符

[^wxc] 匹配列表中的所有字符以外的字符

预定义的字符类: #man 7 glob

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

[:lower:]:任意小写字母

[:upper:]: 任意大写字母

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

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

[:space:]:空格

[:punct:]:标点符号

例题:

    1、只显示显示隐藏文件

   #ll -d .[[:alnum:]]* 指定目录

     2、查看指定目录下的目录

    #tree -d -L 1 /etc/

一、history


-c

 全部删除

-d

 指定删除一个

-a

 追加到 ~/.bash_history

HISTFILE=

-n

 从命令历史文件中读取历史命令到列表中,只读新增加的内容

-r

 同上,全读

-w

 把现在的命令列表中的命令写入到其他文件中

-s

 伪造历史命令

-p

 隐藏历史命令

二、关于命令历史的变量

HISTFILE=

命令历史文件

HISTSIZE=

命令历史条目

HISTFILESIZE=

文件中的历史条目

HISTTIMEFORMAT="%F %T "

命令历史时间

HISTCONTRL=(ignoredups+ignorespace=ignoreboth)、erasedups[重复的不记录]