目录
声明:我是用虚拟机学习的Linux,所以本专栏的所有笔记都是基于虚拟机环境下,如果你使用的是其他环境,可能有些情况有点出入。
入门级的概念
在正式学习之前我们来了解几个入门级的概念:
什么是虚拟机和虚拟机镜像?
通俗来讲,虚拟机就相当于虚拟出一台电脑,然后镜像就相当于是一台虚拟的电脑上面安装一个操作系统。
因此我们的学习工具准备链接中提供了两个文件,一个是虚拟机安装包,一个是虚拟机镜像(里面有Linux操作系统文件)。在安装好虚拟机后,在虚拟机上打开虚拟机镜像中的一个Linux操作系统相关的文件就能使用Linux终端了。
Linux和Windows的最大区别是什么?
Windows在图形界面这块做的比较人性化,而且用户使用起来比较方便,用户只需要通过鼠标根据目的选择目标目录或者文件夹,双击即可进入下一级文件夹或者目录,创建文件或者文件夹也比较方便,因为用户可以看见自己所操作的文件或者文件夹。
当然,如果你使用虚拟机来操作Linux系统的话,它也有这种图形界面。但是很多Linux是没有这种图形界面给你操作的,比如你使用的是云服务器的话,它只是提供了一个简单的终端,在终端编辑器中打印出来一些东西给你看,只是以一种文字的形式告诉你某个目录下有什么文件夹,而不是以图形的显示给你看。如下图,当我们输入ls命令的时候,它就会把这个目录下的所有文件夹的名字给你打印罗列出来给你。
因此,我们就有必要学会如何在Linux终端使用这个有趣的操作系统。
我们主要通过掌握一些基本的命令去操作它!
我们准备好学习环境后,进入虚拟机,我们在虚拟机的桌面右击打开终端就会弹出一个窗口
Linux目录结构
我们先来认识一下Linux目录结构
先解释这行:
[root@xyd-edu ~]#
“root ” 这个是用户名,就是你登录这台服务器用的是哪个用户登录的,这里我用的是root来登录
“@” 后面的这个是主机名(主机名可以随便改)
“~”是个路径(就是你当前所在的目录是什么样子的) “~ ”一般表示家目录
“#”后面可以输入命令
入门级的两个命令
ls(显示出当前目录下的文件或目录)
我们要学的第一个命令是“ls”,敲完ls按回车后就显示出当前目录下有哪些东西
cd /(进入根目录)
第二个命“cd[空格]/”(每次敲完命令都要按回车)
这个时候我们就已经进入了根目录
什么叫根目录呢?
我们类比一下Windows系统中的C盘,D盘,E盘,当我们进入D盘时,进去看到的这些文件夹都可以看成是根目录
此时我们随便点击进去一个根目录就又出现很多的目录
所以我们可以理解为最上层的目录就是根目录
这个“/”表示的就是我们正在根目录
我们再输入ls看看根目录底下有什么
我们可以看到显示了很多文件夹
根目录下的必须目录
在这么多文件中,哪些是必须要有的呢?分别存放的是什么呢?
以下文件是必须的:
bin(存放普通命令)
binary的缩写,存放可执行文件(即普通的系统命令)。
解释:我们学过C语言的都知道C语言写出来的程序是不能够直接运行的,源码必要经过编译变成二进制文件(也叫可执行文件),程序才可以运行。
那么我们刚刚的“cd[空格]/”和“ls”这些命令是从哪里来的呢?一定是有一些人最开始用很多代码写出来的,然后将它编译成一个二进制文件存放在这个bin文件夹中,我们就可以直接调用这些命令。
那又为什么叫做普通的命令呢?因为命令也分级别。比如这个“cd[空格]/”和“ls”命令就是可以被所有用户使用的命令。Linux是个多用户的操作系统,root就是其中一个用户,你自己也可以建立一些普通用户登录进去,比如什么test用户(名字随便取)。而这个root是最高权限的用户,它相当于Windows系统中的管理员,如果你再添加其他用户的话都是普通用户。普通用户的权限肯定没有root高。所以有一些命令只能给root用,不能让普通用户用。比如Reboot:重启命令(放在sbin里面),不能被普通用户使用,只能被root用户使用。权限比较高的命令都放sbin目录中
sbin(存放root用户才能使用的命令)
super binary的缩写,超级二进制,存放root用户(即管理员)才能使用的命令
dev(存放硬件设备文件)
device的缩写,存放设备文件(一个设备文件对应一个硬件设备)
解释:比如你现在往电脑中插了一个U盘,在Windows系统中,这里就会显示一个可移动磁盘给你。
同样,如果你往Linux系统中插入一个U盘,它就会在dev目录下来生成一个叫做XXUSB文件给你,而你操作这个XXUSB文件就相当于操作这个U盘,这就是所谓的设备文件。
Linux中有个哲学就是“一切皆文件”,就是硬件设备也被当做了文件来处理。
etc(存放零散/配置的文件)
法语et cetera,翻译成中文等等,即存放零零散散的东西。一般该目录下存放系统的配置文件,比如开机启动项;比如我们后面会配置什么定时器之类的就要到这个目录下面。
home(普通用户的家目录)
家目录,Linux每个普通用户都有一个专属目录,这个专属目录一般存放在home目录下(有些系统不一定)
解释:比如在Windows系统中可以有很多用户
每当你要新建一个用户的时候,都会在C盘都会新建一个同名的目录,创建的这个目录就是用户的家目录。
同样如果你在Linux中创建新用户的时候,就是在home目录先创建新用户。而新用户只能在这个新文件夹中自由活动,在其他文件夹在可能会出现权限的问题。比如新用户要创建文件,就只能在自己所在的家目录中创建。
我们后面写代码也是在这个home目录写代码就可以了。把我们写的代码都放在一起,不要乱放。
root(root用户的家目录)
root用户的家目录(注意刚刚home目录是存放普通用户的家目录,而这个root目录是root用户单独使用的家目录,因为它的权限最大)
lib(存放库文件)
library的缩写,存放系统用到的库文件。
如果你学过C语言就知道有个函数叫做printf,它是怎么来的呢?它一定是别人已经写好的一个函数,它被放在了C库里面,你可以直接调用。
注意:如果有lib32,lib64,libx32这些也是必须的,他们主要是用来区分32位和64位的系统。
proc(存放操作系统的相关信息)
process的缩写,存放操作系统的相关信息,比如可以通过proc读取进程的信息
sys(可以读取内核驱动相关信息)
system的缩写,通过sys目录,可以读取内核驱动相关信息
注意:如果我们只是做应用层开发的话,proc和sys这两个目录其实用不着。
usr(存放用户安装的软件包)
Unix System Resource的缩写,即unix 系统资源,存放用户安装的软件包。
比如你在Windows系统安装什么软件的话,一般是放在C盘里面。同样如果你在Linux系统中安装一个软件或者安装一个库什么的基本都放在usr下面。
以上就是必须的目录,其他目录基本是可有可无的。
如有问题可评论区或者私信留言,如果想要进交流群请私信!