03 Linux的目录结构与常见文件管理

Linux目录结构

  根文件系统rootfs用来实现整个文件的管理;

  而Linux下的所有文件都需要通过根文件系统才能访问;

  FHS:Filesystem Hierarchy Standard文件层次化规范,所有的Linux系统都需要遵循FHS规定;

  /  根目录,所有文件都在根下!!!

  /boot  存放与系统启动的相关文件,如内核、initrd、以及grub(bootloader,启动加载项)

    initrd.img 磁盘镜像文件

    vmlinux.el5 虚拟内存文件

  /dev  设备文件存放的目录,设备文件注意一点,有的文件可能有多个软连接,连接到同一个文件,这是为了区分连接文件的不同权限或功能;

    块设备文件:随机设备,可以实现随机访问,(磁盘(块设备)和磁带:磁带就没办法直接访问到你想要的数据,这样的设备就不是块设备了)

    字符设备文件:线性访问,按字符为单位

    设备号:通过主设备号(major)和次设备号(minor),一个硬件设备一定要有设备号才能够被访问到,而创建设备号这个过程就是由我们系统自动为我们来完成(ls -l 文件大小的地方,如果是设备文件,就显示的是主次设备号)

  /home  用户的家目录,每个用户都有一个家目录,默认情况下,每一个用户都有一个和用户名相同的同名目录/home/USERNAME;

  /root  这是root用户的家目录

  /lib  库文件目录  /lib/modules 内核模块文件

    库文件分为两种:静态库动态库,动态库.dll(这是windows下的库文件) .so(sheared object共享对象)、静态库 .a ;动态库调用:如果一个程序在运行中的时候调用了某个库文件,而之后又有另外一个程序调用这个库,此时,这个库文件已经加载到了内存中去了,这样的话就不用再进行二次加载;

    如果是静态库文件,这个库文件会被复制到运行文件中去,如果做程序迁移,就会带上这个库文件一起复制过去;

    这里要注意的是:库文件不能单独执行,只有被其他的程序调用的时候,库文件才会运行;

  /lost+found  存放系统非正常断电的时候的碎片文件

  /media /mnt  这两个目录都是挂载点目录,而在FHS中/media用来挂载移动设备,/mnt用来挂载额外的临时文件系统;

  /opt  option可选目录,原来一直用来存放第三方程序,而现在则将第三方程序放在了/usr/local目录下

  /proc  进程目录,它是一个伪文件系统,里面没有任何内容,在系统没有运行的时候是一个空目录,当系统运行起来以后会存放对应的进程映射文件;

  /sys  同样是一个伪文件系统,和硬件设备相关的属性的映射文件存放在这个文件目录下,在关机的情况下也是空目录;

  /tmp  临时文件,所有的用户都对这个目录拥有读写执行的权限,当时A用户写入的文件,B用户无法删除和修改,但是可以读。同时,如果/tmp目录在一个月的时间里面没有任何人访问或者修改,则里面的内容就会被清空;【通过ls -ld /tmp 可以看到/tmp的最后一位权限为t

  /var  可变文件目录

    /var/cache  缓存目录

    /var/lock   文件锁

    /var/log    日志文件

    /var/mail    邮件转存文件

    /var/run    进程ID号

    /var/tmp    这是另外的一个临时文件目录/tmp

  /bin  binary二进制文件,用来存放可执行文件--用户的命令!

  /sbin  这个目录下面放置的都是管理命令;

  /usr  user shared read-only、unix system resources 全局的共享只读文件或者是Unix系统资源;

    在这个目录下还有/usr/bin、/usr/sbin、/usr/lib、/usr/local #第三方软件存放的目录,以及第三方软件相关的命令和程序;在/usr/local下还有bin、sbin、lib等文件;

绝对路径与相对路径

  文件必然会存放在一个目录下,在我们去访问这个文件的时候就会去访问这个文件的目录,而访问这个文件的目录的过程就可以通过绝对路径后者是相对路径来访问;

  路径:从其实点到目的地所经过的位置,它是一种实现文件层次化管理的方式;

  绝对路径:从根目录开始,这个文件存放的目录就叫做绝对路径;例如:/etc/sysconfig/network-scripte/ifcfg-eth0  对于ifcfg-eth0这个文件来说/etc/sysconfig/network-scripte就是绝对路径,它是从 / 开始算起的;

  相对路径:从当前所在的目录开始算起,这个文件存放的目录。在我们linux前面会显示当前所在的目录;例如:[root@test network-scripts]#ls -ld ./ifcfg-eth0  此时ifcfg-eth0就存放在当前路径下(当前路径就是/etc/sysconfig/network-scripts/)

文件命名规则

  1、文件名长度不能超过255个字符;

  2、不能使用 / 做文件名(/ 表示根目录,同时它也是路径分隔符);

  3、严格区分大小写

  【除此以外,所有字符都可以做文件名,特别注意space空格符,如果使用空格符做文件名,一定要注意在ls的时候看到的是一个文件,而不是两个文件】

常见文件管理命令

  ls、cd、pwd、mkdir、tree

  rmdir、touch、stat、none

  date、clock、hwclock、cal

  rm、cp、install、cat、more、less、head、tail、cut、sort、uniq、grep、正则表达式

  cat、tac、more、less、head、tail  

目录管理

  ls  list查看文件目录列表,列出指定路径下的文件

    -  文件类型,常见的文件类型还有 d 目录  l 软连接  b 块设备文件 c 字符设备文件 p 管道文件(pipe) s 套接字文件(socket)

    rw- --- ---  属主权限,属组权限,其他用户权限 rwx分别代表读写执行,而-则代表没有这个权限

    1  表示硬链接的次数,只有这个文件硬链接次数为0,这个文件才表示被删除了

    926  表示文件大小,默认是以块来显示的 -h 则是以人能读懂的单位来显示文件大小;

    Jan 26 23:47   表示最近一次为修改的时间;时间一般有三个:访问时间(access),修改时间(modify,文件内容发生改变),改变时间(change metadata 元数据发生改变,比如名字);

      stat 文件名  #可以查看文件的这三个时间

    anaconda-ks.cfg  文件名

  -h  刚才提到过,将将文件大小换算成人类能够识别的单位

  -a  显示所有文件,包括以 . 开头的隐藏文件

  -A  也是显示隐藏文件,但是不显示 . 和 .. 这两个文件

  -d  显示本目录的数据信息,而不是这个目录里面文件的信息

  -i  index node:inode值,这是文件的索引节点(在存储知识里面会详细讲到)

  -R  递归recursive显示,显示该目录下的所有文件,包括子目录下的文件

  -r  逆序显示

  -t  按照修改时间来显示文件,一般和 -r 一起使用

  cd  change directory 改变目录

    几个常见的用法 cd ~ 切换到当前用户的家目录  cd ~USERNAME 切换到指定用户的家目录  cd - 切换到之前的所在的一个目录(在环境变量参数有一个OLDPWD变量,它就是用来存放 - 指定的路径的)

  pwd  print working directory打印工作目录,这里的工作目录也就是当前目录;

  mkdir  创建目录文件 -p 递归创建,同时创建多级目录 -v 查看目录创建的详细过程

  tree 查看文件目录,树形结构显示处理

  -L n  #显示当前目录下n级子目录

  默认情况下显示当前目录下所有路径

文件管理

   touch  创建文件,还可以用来修改文件时间

     touch -a 文件名  #修改访问时间

    touch -m 文件名  #修改访问时间

    touch -t 201212121212 文件名  #修改文件最近一次的修改时间,并制定为2012年12月12日12时12分

  创建文件除了使用touch外,还可以使用文本编辑器比如vi或者vim,编辑完文件后保存即可,我们这里演示下none这个轻量级编辑器的使用方法:

  none hellow.txt

    Hellow

  ctrl + o 保存  ctrl + e 退出

  这样就在当前目录下创建了hellow.txt这个文件

日期时间

  date  用于时间管理

  管理rtc硬件实时时钟,以及时钟服务器NTP(网络时间协议);

    时钟分为:硬件时钟和系统时钟,date查看的是系统时钟而clock或者hwclock查看的是硬件时钟;

    date的时钟格式FORMAT(标准格式):

    %D 月/日/年  %Y 年  %d 日  %T 时:分:秒  %F 年-月-日  %m 月  %d 日  %s 从元年时间(1970年1月1日)开始计数,到现在经过了多少秒   %n 换行符

  clock  #显示硬件时钟

  hwclock -w  #将系统时间同步到硬件时间上

  hwclack -s  #将硬件时间读取到系统时间上

  cal  显示日历calendar

文本处理

  查看文本

  文本处理

  文本排序

  文本统计

  字符处理

猜你喜欢

转载自www.cnblogs.com/BurnovBlog/p/10325385.html