最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
这篇文章算是入坑 Linux 的第一篇文章,本来想写一个开头篇,但感觉这么写可能会写成一篇历史和人物传记,于是打算整合到这里一起写了。
既然学习Linux,那就要知道什么是Linux:
Linux 是一种自由和开放源码的类 UNIX 操作系统,Linux 英文解释为 Linux is not Unix。Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。
也就是Linux之父 Linus 的灵感源自于C语言之父和 Unix 之父,他之所以会创造 Linux 正是因为他厌恶 Windows 和乔布斯的 IOS 系统,他觉得对操作系统垄断收费是不合理的,他的愤怒瞬间招来了志同道合的顶级黑客,民间高手,论坛精英等贤士一起开发出了面向大众的免费高性能操作系统—— Linux,最伟大的生产方式==“开源”==也随之诞生,这也是为什么林纳斯是乔布斯的一生之敌,他让乔布斯每年活生生亏损几十亿。
理解与应用🤔
Linux 应用极其广泛,对于 Linux 有人修改操作系统写源代码,有人直接拿来用进行改造与提升做应用级的开发,总之都会选择一款 Linux 内核。现在如雷贯耳的鸿蒙系统,红帽(centos),Ubuntu,kali 都是 Linux 的杰作。而 Linux 应用场景极为丰富,服务器后台,嵌入式,树莓派,物联网,智能家电等等都是基于 Linux 开发的。
对于Linux不得不谈的是“开源”这个概念,我愿称之为最超前最伟大也是最理想的生产方式,以无尽的知识为资本流入,每个人不求回报不遗余力的投入,最后以经济和科技的纯利润流出,我就问还有谁。
代码开源相比代码闭源反而还更安全,更高效,更稳定,因为这个代码会面向全世界的人才,有问题会立马解决并得到优化方案,而闭源面对的是有限的技术力和素质参差不齐的内部人员,这也是为什么很多商业公司闭源代码反而会有代码维护的困扰。
OS🤔
OS 即操作系统,操作系统是在计算机(硬件)之后诞生的,单纯的硬件计算机最开始并不是所有人都能用的而是给科学家用的,虽然就是就是已经具备超过人脑的计算能力但是他的操作十分麻烦,难度高效率低,所以 OS 存在的首要理由就是提高计算机效率。
软件是可以操作硬件的,比如使用 cout 在屏幕输出字符串,那么这个过程是怎么实现的呢?其实紫计算机最底层的就是硬件,键盘显示器网卡啥的,硬件层之上是驱动软件层,它是帮助上层实现对硬件基本访问。在鼠标插入到USB接口时的短时间内,我操作鼠标并还没有反应而此时物理层面上他已经连上电脑了,此时就是在等待驱动的行为。
一般而言一种硬件厂商都会提供相应的驱动软件,获取驱动的方式一般而言就是OS提供获取和安装。再上一层就是传说中狭义上的 OS,他包含四个部分进程管理,文件管理,内存管理,驱动管理,再上面的是用户层,包含了图形化,各种库和应用程序
所以 OS 核心功能就是对下管理好底层的软硬件资源,对上要给用户提供一个良好稳定高效的运行环境。如果 OS 是银行的话,Linux 其实就是工商银行,农业银行,建设银行……中的一种。
为什么要指令操作🤔
对于非专业人员来讲指令操作没有必要,对于专业人员也是可有可无,但是要学习 OS 原理,指令编程必须掌握,因为指令操作更加亲近操作系统,要想真正去学习 OS 必须学习指令操作
你说图形化界面不香吗?对,香是香,但是图形化界面终究来自于指令,指令来自于键盘。最早人们就开始思考如何将数据交给计算机,自然就想到了打字机,刚开始所有 OS 都支持指令操作,后面乔布斯在苹果引入了图形化界面才开始逐渐起势。
基本指令🤔
ls命令🎉
ls,全拼 list files,命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录),参数包括:
-a 显示所有文件及目录 (隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出
这里我用 ls 试一试:
发现是有文件存在的,文件 test.cpp 存在于 newfolder 的目录下,我们用 pwd 指令可以查看到该文件的访问路径。既然如此,那我去这个访问目录里面创建一个新的文件 .txt,他的大小为 0 kb,那么此时磁盘中是否占用空间呢?答案是一定的,因为文件有属性数据(文件名,创建时间啥的),属性数据也是数据,所以总结一句就是文件 = 文件内容+文件属性
-a指令🎉
-a 指令查看 Linux 系统中的隐藏文件,即 . 开头的文件,Windows 中也存在这种隐藏文件:
如上这些都是隐藏文件,但多实验几组不难发现,基本上每一组都是:
. … 其他隐藏文件名
开头两个点是啥玩意儿呢?它是每个目录下都会存在的两个隐藏文件 . 和 … ,他们分别被称为当前路径和上级路径。这也就告诉我们要想回到上级目录就需要借助它,Linux 中这样操作:
cd … 即回到上级目录,cd 可以暂且理解为切换目录指令,cd 后面跟任意路径可以跳转。
文件路径🎉
从这里也可以看出,Linux 的路径分隔符就是反斜杠 / 。最后我们回到 / 时就没办法回退了,最后剩下的这个 / 就不是路径分割符了,它被称为根目录。从根目录开始,可逐个展开,每个节点对应一个文件也可以是一个目录,所以 Linux 目录结构是我们的老朋友树状结构——多叉树。
当我们需要寻找某个目标文件时,我们有两种方法,通过绝对路径和相对路径,绝对路径是指从根目录开始层层下寻找到该文件的路径,而相对路径是指相对我当前所处位置寻找过去的路径。如果是日常使用,我推荐使用相对路径,因为这很简单,但是如果需要添加配置文件之类的,我推荐使用绝对路径,因为不会出错正确性高。
cd-指令🤔
cd -他是一个快捷指令,他的意思是跳转到上一次我所处的路径,还有 cd / 指令,估计一眼就能看出来他什么用吧,每次就是跳转到根目录。
在Linux操作系统中,有很多的文本编辑器,最为重要的就是vi文本编辑器,下面来介绍一个简单的nano文本编辑器。nano的使用简单,我们可以直接加上文件名就能够打开一个旧文件或新文件,我们可以打开一个旧文件编辑它,也可以打开一个新文件,即不管这个文件存不存在都是可以打开的!
mkdir指令🤔
mkdir 即 make directory,命令用于创建目录
mkdir dirname
当前格式就可以在当前目录下创建一个名为 dirname 的子目录。
如果我想创建一个套娃路径,类似 dir1/dir2/dir3/dir4…… 这么一长串的目录该怎么办呢?当然不会一个一个去建,我们采用:
mkdir -p dir1/dir2/dir3/dir4
rm指令🤔
现在普通文件和目录我们都可以创建了,但是要想进行删除该怎么办呢?这就要用到 rm 指令了。
对于目录的删除我们使用 rmdir,特点是只能删除空目录,所以并不常用,我们删除文件 rm + 文件名可以直接将文件删掉,我们要是想删目录不能直接用 rm + 目录名,因为目录可能是一个包含其他目录的树形结构,我们需要递归删除,采用格式:
rm -r dirname
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!