zhngs

zhngs

linux简明教程(3)——文件

一.linux文件
二.ls命令
三.cd命令
四.linux根文件系统

一.linux文件

  • unix有一个哲学:一切皆文件,unix会把一切都看成文件,比如驱动设备抽象成/dev目录下的文件,文件目录本身也是文件等,并且linxu下文件的后缀名只是起标识作用,不决定文件类型

  • linux下一共有7种文件:普通文件,目录,符号链接,套接字,块设备,字符设备,管道。一般比较常用的文件类型只有普通文件,目录和符号链接

  • linux下有软链接硬链接的说法:一个软连接就是文件的快捷方式,软链接的文件内容实际上就是要链接的文件名字;一个文件的硬链接其实是文件的别名,两个文件都是指向文件系统同一个内容,所以对于文件系统来说一个文件和它的硬链接没有区别

二.ls命令

  • ls命令是最常用的命令之一,有两个参数比较常用,-a和-l,参数a的作用是显示隐藏文件,linux下第一个字母是点号的文件为隐藏文件,参数l的作用是显示文件的详细信息。简单看目录下的文件时,可以使用ls -a,详细看目录下的文件时,可以使用ls -al

    $ ls -al dr-xr-x--- 33 root root 4096 May 10 21:28 . dr-xr-xr-x 21 root root 4096 May 10 21:28 .. drwx------ 10 root root 4096 Mar 20 16:02 work -rw-r--r-- 1 root root 197 Feb 4 11:04 .bashrc
  • 上述信息有9列,第一列是文件的权限,第二列是文件的硬链接数,第三列是文件所属的用户,第四列是文件所属的用户组,第五列是文件的大小,第六七八列是文件最近修改的时间,第八列是文件名,这9列非常重要,需要牢记在心

  • 第一列文件权限一共有10位

    • 第1位代表文件类型,-代表是普通文件,d代表是目录,l代表是符号链接,记住这三个就够用了

    • 第2 3 4位代表文件所有者的权限,第5 6 7位代表文件用户组内成员的权限,第8 9 10位代表其他人的权限

    • note:权限问题需要好好理解,完整的权限会显示为rwx,分别表示三个功能,读、写和执行。对于普通文件来说,读权限表示可以查看文件里的内容,写权限表示可以修改文件的内容,执行权限代表可以执行这个文件。对于目录来说,读权限表示可以知道目录名字以及目录下有哪些文件,写权限表示可以在目录下新建文件和删除文件,执行权限代表可以进入这个目录。对于权限的理解是非常重要的。

  • 第二列为文件的硬链接数,即该文件还有几个别名文件

    • note:对于目录来说,有一个细节,linux每个目录下都必然有两个文件夹,名字为.和..,分别代表当前文件夹和上级文件夹,所以如果一个目录下有三个目录,这个目录的硬链接数是多少?答案是5,因为该目录本身算一个,目录下的.目录算一个,子目录下的..有3个,一共是5个。懂了这个例子,对于硬链接的理解就提高了一层。
  • 第五列是文件大小,这里的单位是byte,有其他的参数可以改变显示的单位

    • note:有一个细节,对于linux的目录来说,这里显示的大小一般为4096,即4k大小,这个大小不代表目录下所有文件加起来的大小,而是目录本身的大小。4096这个数字和文件系统相关,如果感兴趣可以自行了解。

三.cd命令

  • cd命令是shell的内建命令,作用是切换当前的目录,十分常用

  • cd命令的使用非常简单,语法为cd <你要切换的文件路径>

  • note:cd有几个快捷用法如下

    • cd ..,作用是切换到上级目录

    • cd,作用是直接切换到家目录(还记得上一章的HOME环境变量吗)

    • cd -,作用是切换到上一个到过的文件目录

四.linux根文件系统

  • linux下最顶级的目录是/,所有的文件都在/目录下,该目录下的文件夹是按照一定的规范组织的

    $ cd / $ ls bin data etc lib lost+found mnt proc root sbin sys usr www boot dev home lib64 media opt qcloud_init run srv tmp var
  • 新手只需要记住的目录如下

    • bin和sbin,下面是一些命令

    • etc,基本上系统所有的配置文件都在这里

    • root,root用户的家目录

    • home,普通用户的家目录在home下面,例如用户zs,那么在home下面就会存在一个zs的文件夹,这个文件夹就是zs的家目录

    • usr,这个不是用户(user)的意思,而是unix system resources的缩写,基本上所有安装的软件都会在这下面