Linux目录结构及文件操作

Linux与Windows的目录结构区别

  Windows是以存储介质为主,系统文件放在c盘,其它盘用户可以随便用,所以时间久了就变得乱糟糟的,Linux是以目录为主,目录表现为一颗目录树,树根为根目录“/”,根目录下层层扩展,目录结构变为一颗树,无论是系统文件还是用户文件都放在这个树形目录中,然后Linux的磁盘分区再挂载在目录上,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。举例来说,可以利用网络文件系统(Network File System,NFS)服务器载入某特定目录等。
在这里插入图片描述
  由于Linux是开放源代码,各大公司和团体根据Linux的核心代码做各自的操作,编程。这样就造成在根下的目录的不同。这样就造成个人不能使用他人的Linux系统的PC。因为你根本不知道一些基本的配置,文件在哪里。。。这就造成了混乱。这就是FHS(Filesystem Hierarchy Standard )机构诞生的原因。该机构是linux爱好者自发的组成的一个团体,主要是对Linux做一些基本的要求,不至于是操作者换一台主机就成了Linux的‘文盲’。FHS是一种标准,是规定Linux中哪些目录做什么事存储什么数据,这样大家自觉遵循这个标准,这样不同人使用不同Linux系统就不会觉得困难。
  FHS定义了两层规范,第一层是,/下面的各个目录应该要放什么文件数据,第二层则是针对/usr/var这两个目录的子目录来定义。其它目录使用者可以随意更改使用。
在这里插入图片描述
  FHS 依据文件系统使用的频繁与否以及是否允许用户随意改动,将目录定义为四种交互作用的形态,如下表所示:
在这里插入图片描述

目录路径

  当前目录:.或者./都行,           cd .
  上一级目录:…或者…/都行,          cd ..
  ~:通常表示当前用户的home目录,      cd ~
  pwd命令:可以获取当前所在路径(绝对路径),  pwd

  绝对路径:以根目录/为起点的路径,如/home/shiyanlou
  相对路径:以当前路径为起点到目标路径的表示
  下面以home目录为起点,分别以绝对路径和相对路径的方式进入/usr/local/bin目录:
在这里插入图片描述
  到底使用哪种路径表示方法看哪种路径打字最少,目录可以使用tab进行补全。

文件基本操作

  • 新建:
    touch test //新建空白文件
    mkdir mydir //(remove)在当前目录下新建空目录mydir
    mkdir -p father/son //在当前目录下新建一个多级目录(以绝对路径写目录也行)

  • 复制(remove):
    cp test father/son //将当前目录下的test文件复制到当前目录下的多级目录中
    cp -r mydir father/son //将mydir目录复制到father/son目录下(要加上-r,表示递归的复制)

  • 删除(remove):
    rm test //删除test文件
    rm -f test //忽略提示直接删除文件(无情)
    rm -r father //删除目录和目录复制一样要加 -r,表示递归(Recursive)

  • 移动与重命名文件(move):
    mv file1 document //将file1文件移动到document目录下
    mv file1 newname //重命名文件名

  • 查看文件:
    cat filename //查看文件
    cat -n filename //显示行号与内容
    nl filename //与上一个命令一样,显示行号与内容
    其主要参数如下:
    nl -b a passwd
    在这里插入图片描述
      more/less filename //分页查看文件,Enter 键向下滚动一行,使用 Space 键向下滚动一屏,q 退出
      tail filename //默认查看该文件后十行
      加上 -n 参数,后面紧跟行数:
      tail -n 1 filename //查看文件最后一行
      head filename //与tail使用一样,显示前十行

查看文件类型

  file filename //查看文件类型
  file /bin/ls //ls文件为可执行文件,运行在64位平台
  Linux一切皆文件,命令也是写在文件中。

编辑文件

  在 Linux下面编辑文件通常我们会直接使用专门的命令行编辑器比如(emacs,vim,nano)Linux内部有 vim的学习教程,输入以下命令即可开始学习:
  vimtutor //学习vim编辑器

小游戏

  xeyes //在桌面召唤一双眼睛

Linux目录主要结构

系统启动必须:
-/boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。

  • /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
  • /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中

指令集合:

  • /bin:存放着最常用的程序和指令
  • /sbin:只有系统管理员能使用的程序和指令。
    外部文件管理:
  • /dev:Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
  • /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
  • /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

临时文件:

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
  • /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
  • /tmp:这个目录是用来存放一些临时文件的。

账户:

  • /root:系统管理员的用户主目录。
  • /home:用户的主目录,以用户的账号命名的。
  • /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /usr/bin:系统用户使用的应用程序与指令。
  • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src:内核源代码默认的放置目录。

运行过程中要用:

  • /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
  • /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。

扩展用的:

  • /opt:默认是空的,我们安装额外软件可以放在这个里面。
  • /srv:存放服务启动后需要提取的数据(不用服务器就是空)

Reference

https://www.shiyanlou.com/courses/1
https://www.cnblogs.com/silence-hust/p/4319415.html
http://www.runoob.com/linux/linux-system-contents.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值