前言:
我先来介绍一下,我们所用到的操作系统是Linux,并且是通过centos镜像服务,使用xshell来实现服务器的远程登陆。有些学校的校园网会对远程登陆进行拦截,导致登陆不上的一种情况,这种问题可以采用更换网络等方式尝试解决。
关于xshell连接的服务器
一般较为大型的服务器是7*24小时都不关机的,云服务器无需关机,除非需要更新换代或者维修的时候,这也是为什么我们不仅能在早上八点听网易云,晚上12点依旧能听网易云,早上八点能在王者大杀四方,凌晨三四点还在峡谷被人乱杀。就是因为这些服务器都不会关机,所以我们才能随时随地的享受这些所带来的服务。
Linux指令操作的简易背景介绍
Windows也是支持指令操作的,在计算机的发展历史中,是先有键盘后又鼠标,很多都是没有可视化界面的,早期的键盘是由以前的打字机为基准。一样,现有的指令才有的图形化界面。
指令操作和图形化界面操作是没有本质区别的,只是在形式上有所区别,但是在使用上,图形化显然是更简单的,对于普通小白来说是比较容易上手的。
Linux的客户主要是工程师,所以无需专对小白友好,但为了商业化,也慢慢的有了图形化界面了。
但指令操作是更接近底层的。
关于文件的认识
文件=文件内容+文件属性
在我平常的认知里,我会看到这个文件大小为0KB,便会认为这个文件没有占据磁盘/固态硬盘的空间。但今天一看,文件名,文件修改时间,文件类型,这些数据又是从何而来呢?这些数据为什么在关机或者是重新打开后依然存在呢?既然重启后,这些数据依然存在,那么是否能够说明这些数据是在磁盘/固态硬盘里呢?
答案是,这些数据是从创建文件的时候就开始存在了,在关机后重新打开依然能看见这些数据就是因为这些数据是在磁盘/固态硬盘里存在的。
我们打开这个文件的属性可以看见
这些关于文件的信息,即属性,都是文件的数据,这些文件属性都需要被计算机记录下来,属性数据在本质上也是数据,因此我们便可以得出一个结论:空文件也是需要占据磁盘/固态硬盘。
所以,文件=文件内容+文件属性。这些全是二进制数据,都需要被存储
我们以前,现在,未来,学习的所有的文件操作,本质是:
1,要么对文件内容做操作
2,要么对文件属性做操作
在以前C语言中,文件函数对应的都是对文件内容进行操作。
文件的存储方式
无论在Linux中还是在Windows等各种各样的操作系统中,更多的文件存储结构是以树状结构来存储,无论是目录,还是文件。举个例子
点进用户
点进21579
那么其关系便可这样展示
那么便有人会疑惑,这些为什么会是树状存储呢?我认为有以下几种观点
-
逻辑清晰:树状结构提供了一种清晰、直观的方式来表示和管理文件系统中的文件和目录。它允许用户通过路径来定位文件,路径是树状结构中从根到特定节点的一系列目录名。
-
访问效率:树状结构使得文件的查找和访问更加高效。操作系统可以快速地通过树状结构导航到任何文件,因为每个文件的位置都是唯一的。
-
权限管理:树状结构允许操作系统实现灵活的权限管理。权限可以设置在树的任何节点上,并且可以继承到子节点,这样可以方便地管理大量文件的访问权限。
-
空间管理:文件系统使用树状结构可以有效地管理存储空间。通过目录和子目录,操作系统可以跟踪哪些文件存储在哪些位置,以及存储空间的使用情况。
-
扩展性:树状结构易于扩展。用户可以根据需要创建新的分支(即子目录),而不必重新组织整个文件系统。
下面,我们便用Linux指令来验证:
指令1:Tree
由于Linux系统中刚开始内容很少,我们就直接访问根目录吧
执行操作指令 :tree /
需要注意的是
tree
并不用于显示文件的内容,而是显示文件系统的结构。如果你需要查看文件的内容。就是说它只展开它里面还有目录的结构,如果展开目标里已经只剩下文件,即叶子节点,他就不在展开了
且展开的要是路径,要加上路径切割符/,不然会当成文件对待
指令2:pwd
在上述实例中,我们用到了pwd指令,pwd 显示的是我当前在哪里,在哪个目录内
指令3:ls
ls的结构为 :ls [选项][目录文件]
常用选项:
ls -d (ls -ld)
-d将目录像文件一样的显示,而不是显示其下的文件 如:ls -d指定目录,不进入这个目录,只会显示出来这个目录的相关信息
也就是说ls -d (指定目录) 只会展示,不会打开
如果想更加详细的话,可以用 ls -ld
注意:
后面指定的目录要合法,不能跨目录,比如:/laihailiang 因为根节点下根本没有laihailiang,只有根据先找到root,再找到laihailiang
总结来说,命令 ls -d
是否成功执行取决于指定的路径是否存在。如果指定的路径不存在,无论是相对于当前目录还是绝对路径,系统都会返回错误信息。
ls -l
展示某路径开始的所有文件夹,或者文件
主要作用是以长列表格式显示文件和目录的详细信息。具体来说,ls
是用来列出目录内容的命令,而 -l
是一个选项,用来改变输出格式,使其包含更多信息。
还可以写为ll
但它不展示隐藏的文件,即以点开头的文件,或文件夹。
ls -a
-a列出目录下的所有文件,包括以 '.' 开头的隐含文件。 a 有all的意思
隐藏文件,在Linux中 ,有一些文件时隐藏文件,即一些文件会以 . 开头,点开头后的文件,在ls 或者 ls -l 指令下都是看不到的,需要用 ls -la 或者 ls -l -a 指令才能看见。
现在我们创建不隐藏的文件
接下来再来创建隐藏的文件
小插曲:
我们在运行ls -a的指令的时候,未发现第一行跟第二行分别是一个点跟两个点 ,那么这些会是什么呢?
一个点
称为当前路径
两个点
称为上级路径 cd .. 相当于Windows此电脑里的回退键
任何目录都有一个点或者两个点,一个点指向自己,两个点指向自己的父节点
给个例子
相对路径
相对于自身当前所处的目录为参考点,我们定位的一个文件的路径。
绝对路径:
我们从根目录开始,定位一个叶子文件的方式从而形成的路径,称为绝对路径。
在系统当中,无论你在哪里,都能唯一的定位一个文件,例如,我现在在另一个分支的bin目录下,我要找旁系的home目录下的bit目录下的“Linux学习日记.txt” 那么可以直接 /home/bit/Linux学习日记.txt 。无论你在哪。
绝对路径一般在配置文件中常用 ,相对路径一般适用于命令行中使用
指令4:cd
在介绍cd指令之前,我们先来说一下家目录
家目录
Linux中有两大类用户,一大类用户是root,另一大类用户是普通用户,这两个用户在Linux中都有家目录这个概念
root的家目录在centos一般是指:/root
普通用户的家目录一般是指:/home/xxxx
那么什么是家目录呢?
默认登陆的时候,默认登录所处的路径,就是当前登录用户的家目录
在Windows中,其实有桌面概念,但是本质上桌面也是目录/文件夹,只不过当用户登陆的时候,你的家目录里面有桌面的文件夹,windows把这个文件夹中的所有的文件或者是文件夹,全部以图标的形式,展示在显示屏上,就有了桌面,不同的账号就有不同的桌面。
普通cd
cd 路径
相当于图形化界面,想进入哪些地方,就可以直接点点点
cd本质意思就是 更改工作目录,c change 可以用pwd来验证cd是否成功
cd -
跳转回最近一次所处的目录 ,能够实现两个不同目录的快速跳转
cd ~
回到家目录,即root里
touch指令
touch可以新建一个不存在的文件,或者可更改文档或目录的日期时间
touch 可以一次创建多个文件,eg: touch t1 t2 t3 t3……
文件的属性有时间属性,获取文件时间属性使用 stat [文件名]
普通文件一般是以-(杠)开头的,而目录一般是以d开头的
注意
是文件,不是文件夹或者目录
mkdir指令
mkdir ,一次性创建路径的话,给个例子:
mkdir -p dira/dirb/dirc/dird
-p尤为重要
否则不能创建一次性长的路径,只能进去某个目录里创建
rm指令
-rf 中 f force 强制的意思,当然可以不用f,即rm -r 这样它会问你你删不删
所以 rm -rf 强制删除的意思,这个是针对目录的
rm -f 或者 rm 不带r 是针对文件的
注意
千万不要轻易尝试使用 rm -rf /
这条指令是将你的根目录下的所有文件夹及文件都删除,这样一来的话,你的虚拟机最直接粗暴的办法就是重装。
结尾
以上就是本次学习的所有内容,内容不多,重在分享,如有错误,还请大佬斧正,谢谢!