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

第四章-文件管理

时间:2016-08-01 23:08:51      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:文件管理

文件系统

文件系统

文件和目录被组织成一个单根倒置树结构

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

根文件系统(rootfs) rootfilesystem

名称是大小写敏感

     . 开头的文件为隐藏文件

     路径分隔的 /

    文件有两类数据:

元数据:metadata

数据:data

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

     FHS(FilesystemHierarchy Standard)

文件名规则

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

超过255 个字节。

 

蓝色--> 目录

绿色--> 可执行文件

红色--> 压缩文件

浅蓝色--> 链接文件

灰色--> 其他文件

 

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

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

注视:WindowsFat32文件系统是大小写不敏感的,所以跟系统没用关系,跟文件系统有关系。

 

文件系统结构

/boot

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

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

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

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

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

/etc           配置文件目录

/home/ USERNAME 普通用户家目录

/root         管理员的家目录

/media     便携式移动设备挂载点

/mnt         临时文件系统挂载点

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

b: block device 随机访问

c: character device 线性访问

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

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

/tmp         临时文件存储位置

 

/usr  universalsharedread-only data

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

sbin

lib              32 位使用

lib64          只存在64 位系统

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

share        结构化独立的数据,例如docman     

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

binsbinliblib64etcshare

 

/varvariable data files

cache        应用程序缓存数据目录

lib              应用程序状态信息数据

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

lock           锁文件

log             日志目录及文件

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

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

spool         应用程序数据池

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

 

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

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

/selinuxsecurity enhancedLinuxselinux 相关的安全策略等信息的存储位置

 

/sys /proc是虚拟目录,文件大小为0,但是内容很多

du –sh /sys

du –sh /proc


/sys/class/scsi_host/host2/scan可以发现磁盘

虚拟机主文件.vmdk结尾文件,增加一个硬盘,这时系统不能识别新加的硬盘,

执行echo “- - -” > /sys/calss/scsi_host/host2/scan让系统读取新的磁盘信息


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

 

Linux 下的文件类型

     -      普通文件

     d       目录文件

     b       块设备              (真实存在,随机访问的)

     c       字符设备         (虚拟的,只能顺序访问)

       l        符号链接文件

     p       管道文件pipe

     s       套接字文件socket


显示当前工作目录(pwd

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

显示当前shell CWD的绝对路径,pwdprinting working directory

 

pwd:打印当前工作路径

cd到链接目录里,当前路径是链接目录还是被链接目录?

[root@localhost ~]# ll -d /bin

lrwxrwxrwx. 1 root root 7 Jul 21 11:23 /bin-> usr/bin

 

pwd显示链接目录

[root@localhost ~]# cd /bin

[root@localhost bin]# pwd

/bin

 

pwd-P参数显示被链接的物理目录

[root@localhost bin]# pwd -P

/usr/bin

 

echo $PWD:执行pwd命令,实际上是读取$PWD这个变量


绝对和相对路径名

绝对路径

以正斜杠开始

完整的文件的位置路径

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

相对路径名

不以斜线开始

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

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

        

         脚本编程尽量使用相对路径,因为环境可能不一样,如果用绝对路径,脚本换个环境可能执行出错。

 

更改目录(cd

cd改变目录

绝对路径:cd/home/joshua/work

相对路径:cdproject/docs


列出目录内容(ls

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

用法:

ls [options] [files_or_dirs]

 

Example

ls -a           包含隐藏文件

ls -l          显示额外的信息

ls -R         目录递归通过

ls -d          目录和符号链接信息

ls -1          文件分行显示

ls -S         按从大到小排序

ls -u          配合-t 选项,显示并按atime 从新到旧排序

ls -U         不排序按目录存放顺序显示


查看文件状态(stat

stat

文件:metadatadata

三个时间戳:

Access      访问时间,atime,读取文件内容,触发修改访问时间

Modify      修改时间,mtime,改变文件内容(数据),触发改变修改时间

Change    改变时间,ctime,文件元数据发生变化,触发修改改变时间


文件通配符

*              匹配零个或多个字符

?              匹配任何单个字符

~              当前用户家目录

~username 用户家目录

~+                     当前工作目录

~-            前一个工作目录

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

[a-z]          匹配从a开始,按照a A b B…z的顺序的单个字符

[A-Z]          匹配从A开始,按照A b B…z Z的顺序的单个字符

 

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

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

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

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

[:lower:]            任意小写字母

[:upper:]           任意大写字母

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

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

[:space:]           空格

[:punct:]            标点符号


touch [OPTION]... FILE...

-a          变,仅改变 atime

-m         变,仅改变 mtime

-t           STAMP[[CC]YY]MMDDhhmm[.ss]

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

 

>> 文件名:也可以创建文件,不会修改已存在的文件的任何数据

touch 文件名:创建空文件,存在不会修改内容,修改访问时间

 

复制文件和目录(cp

cp命令:复制文件和目录

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

cp SRC DEST

 

SRC 是文件:

如果目标不存在:

新建DEST,并将SRC 中内容填充至DEST

如果目标存在:

如果DEST 是文件:将SRC 中的内容覆盖至DEST中基于安全,建议为cp 命令使用-i 选项

如果DEST 是目录:在DEST 下新建与原文件同名的文

件,并将SRC 中内容填充至新文件中

 

cp SRC... DEST

SRC... :多个文件

DEST 必须存在,且为目录,其它情形均会出错;

 

cp SRC DEST

SRC 是目录:此时使用选项:-r

如果DEST 不存在:则创建指定目录,复制SRC 目录中所有文件至DEST 中;

如果DEST 存在:

如果DEST 是文件:报错

如果DEST是目录:会把SRC目录拷贝到DEST目录下


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=modeownershiptimestamp

-v      --verbose          显示操作的详细过程

-f       --force


命令别名

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

#alias

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

#aliasNAME=‘VALUE‘

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

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

仅对当前用户:~/.bashrc

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

 

编辑配置给出的新配置不会立即生效;

bash 进程重新读取配置文件:

source/path/to/config_file

./path/to/config_file

撤消别名:unalias

unalias [-a]name [name ...]

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

\COMMAND

’ COMMAND’

/PATH/COMMAND:外部命令


移动和重命名文件(mv

移动和重命名文件

mv [OPTION]...[-T] SOURCE DEST

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

mv [OPTION]...-t DIRECTORY SOURCE...

常用选项:

-i       交互式

-f       强制

 

同目录等价于改名字

root中的mvmv –i

普通用户家目录中mv 普通用户文件 root文件,会提示

 

删除(rm

rm [OPTION]... FILE...

常用选项:

-i:  交互式

-f:  强制删除

-r:  递归

--no-preserve-root

 

安全释放空间的方法:

“> xxx” 创建空文件,如果文件存在,则把文件内容清除


本文出自 “Alan” 博客,请务必保留此出处http://songzz2016.blog.51cto.com/8713945/1833171

第四章-文件管理

标签:文件管理

原文地址:http://songzz2016.blog.51cto.com/8713945/1833171

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