linux系统---文件

文件是存储信息的容器,可以简单的将它视为字符序列。shell是一个文件,内核也是如此。unix将目录以及类似硬盘,DVD-ROM和打印机等的设备也看成文件。可以将文件理解为三种类型:

  • 普通文件----也成为常规文件,仅包含作为字符流的数据。
  • 目录文件----文件夹,其中包含了其他文件和子文件的名称,还有与每个名称相关联的数字。
  • 设备文件----表示设备或外设,要从设备读取或写入设备,必须对其相关文件执行这些操作。

文件属性的意义经常取决于其类型。

一、普通文件

普通文件是包含数据流的最常见的文件类型,这类文件可分为1.文本文件;2.二进制文件

二、目录文化

目录不包含数据,而是包含其中文件和子目录的详细信息。 目录文件为其中每一个文件和子目录都专门包含一个条目,每个条目有两个组成部分:(文件名,该文件或目录的唯一识别号(即inode号))。目录包含的是文件名,而不是文件的内容。

     一个文件的名称只能在其目录中找到,文件本身并不包含自己的名称,也不包含任何属性,如其大小或最后一次修改时间等。

三、设备文件

设备文件很特殊,它实际上并不是字符流。事实上它根本没有包含任何东西。每个文件都有一些属性,不是存储在文件中,而是存储在磁盘上的其他位置。设备文件的属性完全控制着对该设备的操作。内核根据设备的属性来识别设备,然后使用这些属性来操作设备。

文件系统的层次结构

 

115531_v7uw_2918364.png

文件系统看成包含两个组

第一组包含的文件是在系统安装期间提供的文件:

  • /bin和/usr/bin 所有常用UNIX命令都可以在这些目录中找到(bin=“binary 二进制”)。注意PATH变量总会在其列表中显示这些目录
  • /sbin和/usr/sbin 如果有一个命令,你不能执行,但系统管理员可以,那它可能就是在这些目录中的某一个里面。你不能执行这些目录中的大多数命令(当然,有一些是可以的)。只有系统管理员的PATH会显示这些目录。
  • /etc 这个目录包含了系统的配置文件。通过编辑这个目录中的文本文件,可以改变非常重要的系统运转方式。登录名和密码存储在文件/etc/passwd和/etc/shadow中。
  • /dev 这个目录中包含了所有设备文件。这些文件不占用任何磁盘空间。这个目录下可能有更多的子目录,如pts,dsk,rdsk.
  • /lib和/usr/lib 这些目录包含了所有二进制形式的库文件。需要将C程序与这些目录中的文件链接在一起。
  • /usr/include 这个目录包含了C程序使用的标准头文件。大多数C程序中使用的语句#include<stdio.h>都引用这个文件中的stdio.h  
  • /usr/share/man   这是man页的存储位置。这里有一些独立的子目录(如man1和man2等),包含了每一小节的页面。

用户还可以处理自己的文件;编写程序,发送和接收邮件,创建临时文件。这些文件可以放在第二组中:

  • /tmp  允许用户创建临时文件的目录,这些文件会被系统定期清除
  • /var  系统的可变部分,包含所有打印作业和传出及传入邮件
  • /home 在许多系统中,用户都被保存在这里。romeo的主目录应当在/home/romeo中,但不同的系统也可能为主目录使用不同位置。 

 

在繁忙的系统中,在属于第二组的目录中,可能会快速耗尽可用磁盘空间。可以将这些目录结构中的一部分放在独立的文件系统中,这样,一个文件系统中的空间耗尽(或崩溃)时,不会影响到其他文件系统。

 

cd-----

相对路径名:

.(一个句点)表示当前目录

..(两个句点)表示父目录

mkdir-----

一次创建多个目录

123938_97Nh_2918364.png

有时系统会拒绝创建目录:

124231_Yeik_2918364.png

发生这种情况的原因可能包括以下几点:

  • 目录test可能已经存在。
  • 当前目录中可能有一个同名的普通文件。
  • 当前目录的权限设置不允许用户创建文件和目录如果尝试在/bin、/etc 或其他任何容纳UNIX系统文件的目录中创建目录,最有可能看到这一消息。另外除非用户被明确授予相应权限,否则也不可能在另一用户的目录结构中创建文件。
  • 文件系统中留下的空间可能不允许创建文件和目录。

mkdir和rmdir命令仅对该用户拥有的目录有效。一个用户是其主目录的拥有者,所以可以在其主目录中使用这些命令。

ls(list)----列出文件的名称

ls显示的规则是先自上而下,然后再至左向右查看,默认输出采用ASCII排列顺序(首先是数字,然后是大写,再是小写),但是也可以使用特定选项来修改排列顺序。

当参数为目录时,ls的会显示其内容,加上-d就会仅显示目录的名称,而不列出其内容。

152718_gHa3_2918364.png

ls -a   显示隐藏的文件,以句点开头的文件名在unix系统中有一个特殊的位置。它们通常可以在主目录中找到,但ls 在默认情况下不会显示它们。使用-a(all,全部)选项:

153944_ublp_2918364.png

文件.profile包含了一组在用户登录时执行的指令,另一个文件.exrc/.vimrc  包含了vi编辑器的一系列启动指令。

前两个文件(.和..)都是特殊目录。每创建一个子目录,内核就会自动创建这些“不可见”目录。用户无法删除他们,也不能向其写入内容。它们可以帮助将文件系统结合在一起。

 

递推列表(-R) -R(recursive ,递推)选项列出目录树下的所有文件和子目录。这一目录的遍历是递推完成的,直到再没有任何子目录为止。

154803_NTXl_2918364.png

 

cp-----复制

在使用cp复制多个文件是,最后的文件名,必须是目录,而且必须是已经存在的。

cp -i 交互式复制   

cp -R 用于复制整个目录树

 

 

 

转载于:https://my.oschina.net/liubaizi/blog/821681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值