码迷,mamicode.com
首页 > 其他好文 > 详细

文件管理

时间:2016-07-31 16:04:14      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:文件管理   元素   根目录   

文件系统结构元素:

1.cent6.8cent7两个版本的根目录不一样,实际上是同一个文件。

/bin /usr/bin

/sbin /usr/sbin

/lib /usr/lib

/lib64 /usr/lib64

   技术分享                        

 

2.普通用户用bin    root用户用sbin  普通用户即使能够查到sbin目录也无权限操作。

3.bootLinux内核,本身不大,进入boot目录后,可输入du –sh来查看目录大小。         du –sh /boot

4.dev主要放各种硬件设备,也有可能是逻辑设备,ll/dev/Sda为硬盘  ll /dev/zero0设备

b=block     块设备,物理设备,随机访问,有缓存

c=character  字符设备,逻辑上设备,顺序访问,无缓存

/dev/null/dev/zero  都是空设备

dd if=/dev/zero of=f1 bs=1 count=1  可以读0并写到文件里,bs为块大小,1个字节

查看文件十六进制  hexdum f1   ;查看文件二进制    xxd f1

技术分享

0a是换行的意思

   选项:

-n length 只格式化输入文件的前length个字节

-C 输出规范的十六进制和ASCII

-b 单字节八进制显示

-c 单字节字符显示

-d 双字节十进制显示

-o 双字节八进制显示

-x 双字节十六进制显示

-s 从偏移量开始输出

-e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:‘a/b "format1" "format2

 

5./etc为配置文件,./etc/issue:预登录消息标识文件,开机时启动。

6.lib是库,函数库,也是内核的各种模块。

lib下的modules下有好多驱动,输入cd /lib/modules/后,输入ls会看到内核版本,再输入uname –r 。进入内核版本cd,然后ls就会看到驱动文件,声卡显卡等等,驱动应该都是.ko打头的,比如说cd kernel/ 然后ls再进入一个文件夹就会看见.ko文件,我们经常访问的ext4就是个驱动。

7.mediacent6.8的挂载点,cent7挂载点在/run/meida下,对应的mnt为手动挂载,比如一定硬盘

8.opt挂载第三方软件,现在用得少。/etc/opt

9.srv各种服务可能会用到的数据,tmp临时文件,权限宽松,

10.usr:根是第一层,usr第二层。

/usr/include/ 防止第三方语言C语言库的头文件.h,模块调用

/usr/local/是放置第三方软件,外部服务,源代码等。

/usr/share/dict/words放置Linux语言字典,查看某个单词输入:grep zhang words

11.var 可变数据,日志,文件,搭建外部服务都是放在var里,有一个特别重要的log文件,专门放日志,再比如last文件,为用户成功登录的信息列表,但是这些日志信息是存在wtmp文件里的,wtmp就在/var/log文件下。如果文件被移走last就显示不出信息了

12.proc  进程,内核信息都在这个文件里,proc里好多进程编号,在proc可以查看分区,cat partitions  ,大小为0个字节,因为proc不是硬盘文件,是内存数据。查看CPU信息,输入 cd /proc/ . 查看内存信息,输入cat meminfo

13.sys,主要放硬件信息,比如块设备,例如:新增加硬盘.vmdk,怎么查看新增加的硬盘呢?最笨的方法就是退出重启,最简单的方法就是刷新,echo”- --”> /sys/class/scsi_host/host2/scan,然后查看ls /dev/sd*,就会看见新增加的硬盘。

14./misc:只有cent6.8有,可以挂光盘,神奇自动挂载光盘, 只要访问后/misc/cd就会df挂载。

15./net:直接访问ip网络服务.

16.文件系统: 文件和目录被组织成一个单根倒置树结构

         文件系统从根目录下开始,用“/”表示

         根文件系统(rootfs)root filesystem

         名称是大小写敏感

         .开头的文件为隐藏文件

         路径分隔的/

         文件有两类数据:元数据:metadata(数据的属性)

                            数据:data,存放数据的数据内容的地方叫数据块block

元数据和数据内容存放的位置是不一致的。

查看分区块的大小:tune2fs –l /dev/sda2

文件系统分层结构:LSB Linux Standard Base

         FHS: (Filesystem Hierarchy Standard)

17.文件名规则:

包括路径在内文件名称最长4095个字节,用/分隔的路径不能超过255个字节。

蓝色-->目录   绿色-->可执行文件   红色-->压缩文件   浅蓝色-->链接文件  灰色-->其他文件    粉色-->套接字文件  浅黄色-->管道

套接字文件的作用:(socket

/dev/log   s开头的文件是套接字文件

进程间通信(源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务)

除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用{比如-},有些字符需要用引号来引用它们。

标准Linux文件系统(如ext4),文件名称大小写敏感。例如:MAIL,Mail,mail, mAiL

18.文件系统结构

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

  /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

  /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

  /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

  /lib64:专用于x86_64系统上的辅助共享库文件存放位置

  /etc:配置文件目录

  /home/USERNAME:普通用户家目录

  /root:管理员的家目录

  /media:便携式移动设备挂载点,cent6.8cent7挂载点不一样。

/mnt:临时文件系统挂载点,

  /dev:设备文件及特殊文件存储位置

b: block device,随机访问

c: character device,线性访问

  /opt:第三方应用程序的安装位置

  /srv:系统上运行的服务用到的数据

  /tmp:临时文件存储位置

19. /usr: universalshared, read-only data

bin: 保证系统拥有完整功能而提供的应用程序

sbin:

lib32位使用

lib64:只存在64位系统

include: C程序的头文件(header files)

share:结构化独立的数据,例如doc, man

local:第三方应用程序的安装位置

bin, sbin, lib, lib64, etc, share

20./var: variable datafiles

cache: 应用程序缓存数据目录

lib: 应用程序状态信息数据

local:专用于为/usr/local下的应用程序存储可变数据;

lock: 锁文件

log: 日志目录及文件

opt: 专用于为/opt下的应用程序存储可变数据;

run: 运行中的进程相关数据;通常用于存储进程pid文件

spool: 应用程序数据池

tmp: 保存系统两次重启之间产生的临时数据

/proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux: security enhanced Linuxselinux相关的安全策略等信息的存储位置

21.Linux上的应用程序的组成部分:

二进制程序:/bin,/sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

    库文件:/lib,/lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

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

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

22.linux下的文件类型:

    -:普通文件

d: 目录文件

b: 块设备

c: 字符设备

    l:符号链接文件

p: 管道文件pipe

s: 套接字文件socket

23.显示当前工作目录:

     每个shell和系统进程都有一个当前的工作目录

CWD: currentwork directory

显示当前shell CWD的绝对路径#pwd: printing working directory

只能回到上一级目录:cd –

pwd实际上显示的就是$PWD的内容

pwd –L    目录连接链接时,输出连接路径

pwd –p    显示绝对(物理)路径,而非使用连接(link)路径

实例:/bin/pwd

命令:/bin/pwd [选项]

输出:[root@localhost init.d]# /bin/pwd

/etc/rc.d/init.d

[root@localhost init.d]# /bin/pwd --help

[root@localhost init.d]# /bin/pwd -P

/etc/rc.d/init.d

[root@localhost init.d]# /bin/pwd -L

/etc/init.d

24.绝对路径:

以正斜杠开始

完整的文件的位置路径

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

相对路径:

不以斜线开始

指定相对于当前工作目录或某目录的位置

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

例如:dir目录下有三个文件夹ABC,三个文件夹下分别有f1 f2 f3文件,当我想在f1文件下调用b里的f2时,绝对路径/dir/b/f2.sh,相对路径../b/f2.sh。当把dir文件移动别的文件夹时,绝对路径就会出现错误。编脚本的时候尤其要注意这个路径问题。

25.更改目录:cd 改变目录

为绝对或相对路径:

cd/home/joshua/work

cdproject/docs

cd      进入用户主目录;

cd  ~  进入用户主目录;cd ~wang 就进到了王的目录,王目录进不到root目录下。

cd  -  返回进入此目录之前所在的目录;

cd  ..  返回上级目录(若当前目录为“/“,则执行完后还在“/"".."为上级目录的意思);

cd ../..  返回上两级目录;

cd  !$  把上个命令的参数作为cd参数使用。

相关的环境变量:

PWD:保存了当前目录路径

OLDPWD:上一次所在目录路径

Cd命令用法:cd –P:加上-P的选项显示的是物理的路径

         cd –P /bin –e  如果-p选项指定,当前目录不能确定成功还是失败,退出后看状态,输入echo $?   结果值为0表示成功,非0表示失败.

         lnlinux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是        ln s 源文件目标文件。

    当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln s /bin/less

 

 

 

26.ls命令linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。l命令在日常的linux操作中用的很多!

1. 命令格式:

ls [选项] [目录名]

2. 命令功能:

列出目标目录中所有的子目录和文件。

3. 常用参数:

-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件

-A -a,但不列出“.”(表示当前目录)“..”(表示当前目录的父目录)

-c  配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间) 

配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序

-C 每栏由上至下列出项目

–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是‘never‘‘always‘‘auto‘其中之一

-d, –directory 将目录象文件一样显示,而不是显示其下的文件。

-D, –dired 产生适合 Emacs  dired 模式使用的结果

-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效

-g 类似 -l,但不列出所有者

-G, –no-group 不列出任何有关组的信息

-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)

–si 类似 -h,但文件大小取 1000 的次方而不是 1024

-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地

–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>none (默认)classify (-F)file-type (-p)

-i, –inode 印出每个文件的 inode 

-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目

-k  –block-size=1K, k 字节的形式表示文件的大小。

-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息

-m 所有项目以逗号分隔,并填满整行行宽

-o 类似 -l,显示文件的除组信息外的详细信息。   

-r, –reverse 依相反次序排列,-Sr就是按照相反的顺序排序

-ld目录和符号链接信息

-R, –recursive 同时列出所有子目录层,递归

--block-size=M就是以M为单位显示。

-s, –size 以块大小为单位列出所有文件的大小,

-S 根据文件大小排序

--time =WORD,-l一起用,WORD 以下是可选用的 WORD 和它们代表的相应选项代替Mtime显示

--sort =WORD以下是可选用的 WORD 和它们代表的相应选项

extension –X  status –c   none -U   time –t  size –S    atime –u    access -u

version –v     use –u

例如: ls –cl–sort=time   按照ctime顺序排序,  等于  ls -clt

-t 以文件修改时间排序

-u  配合 -t:显示访问时间atime而且依访问时间排序

配合 -l:显示访问时间但根据名称排序

否则:根据访问时间排序

-U 不进行排序;依文件系统原有的次序列出项目

-v 根据版本进行排序

-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值

-x 逐行列出项目而不是逐栏列出

-X 根据扩展名排序

-1 每行只列出一个文件,分行显示

–help 显示此帮助信息并离开

–version 显示版本信息并离开

27.查看文件状态

vstat:查看详细的元数据

v文件:metadata, data

v三个时间戳:

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

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

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

如果atime的时间是一天以上就会变

如果atimectime时间旧,就会改变(正常情况下atime的时间比ctime的新)         

避免频繁更改,提高性能

atime可以安全不让修改,  输入chattr  +A  f1就可以使atime不变了(f1为文件名)。

chattr强行锁定atime,不让修改

echo xx >>aa   xx写入aa文件里,Mtimectime就会发生改变。

 

28.文件通配符

v *匹配零个或多个字符

v ?匹配任何个字符,

v ~当前用户家目录

v ~username用户家目录

v ~+当前工作目录,pwd或$PWD或$OLDPWD或  .

v ~-  前一个工作目录

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

或的关系,匹配任意字符f[1a3]=f1 fa f3 

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

 是按照aAbBcC……zZ匹配 f[a-c] 就是aAbBc

v[A-Z]:大写字母

f[A-C]   AbBcC

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

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

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

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

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

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

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

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

[[:space:]]:空格

[[:punct:]]:标点符号

 


文件管理

标签:文件管理   元素   根目录   

原文地址:http://jaggerzhang.blog.51cto.com/11887424/1832368

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!