1.前言:
对于正在使用电脑的我们来说,windows操作系统是我们耳熟能详的操作系统,现如今世界上大多数的电脑几乎都在使用windows操作系统,但操作系统的发展并不是一直由windows主导的,windows可以说是最适合操作者使用的操作系统之一,不需要复杂的指令,简单易懂,这便是为什么windows可以迅速占领市场的原因。
但在计算机历史上曾出现了这样一款操作系统,它诞生后便一直在不断进步,世界上很多顶尖工程师加入更新它的步伐,它向全世界开放,人们不断为此修改它,并着手改变世界。从开始的几百行代码,到如今已经发展为几千万行代码构成的复杂优秀的操作系统,这,便是LINUX!!!LINUX作为一款完全开放的操作系统源代码,如今几乎包含了计算机相关产业的各个方面,安卓系统,底层构建,物联网,得益于它的稳定性和高效性,它几乎成为了各大公司管理数据的最佳系统,所以,今天开始,就让我们来探索LINUX的世界吧。
2.重新理解操作系统:
既然我们要学习一种操作系统,我们就要重新认识操作系统。
首先我们要明白,操作系统一定是为了使计算机更好用而诞生的!这是操作系统的根本要义任何事物的存在都有其意义,而大多数的意义便是真正方便于人类的生活。计算机倘若只有键盘,鼠标,屏幕等一系列硬件,我们是没法进行操作的,这时电脑就如同废铁一般,但操作系统就如同桥梁,它将硬件与软件链接了起来,从而让我们通过操作系统使用硬件完成软件的使用。
也就是说:操作系统是一款进行软硬件资源管理的软件
计算机的软硬件是一种层状关系,就如下图:
由上图可以知道,使用操作系统,就可以更好的对软硬件资源进行管理,从而更好的为操作者提供稳定和良好的运行服务,让操作者有更好的计算机体验。
3.LINUX的整体构架的理解:
对于LINUX的初步理解,我们可以将其想成一颗多叉树,多叉树的每一个枝干都由目录连接,然后目录一层套一层,而文件就是这棵树的叶子,文件越多,叶子越茂密,从而构成了一个庞大的一个系统构架。
如下图:
在这个图中,方形代表文件,圆形代表目录,这就是LINUX操作系统的内核框架,windows中的文件夹就相当于这里的目录,目录的作用就是起到存放一个文件和子目录的集合的作用,文件是用来存放数据的,文件内部不能包含目录,但目录可以包含子目录和文件。
由此引发一个思考:我们所谓的各种硬件,包括键盘,鼠标等等,他们是怎样被操作系统所理解的呢?
这里我要引入一句非常绝对的话:LINUX下皆是文件!
包括各种硬件设施,在LINUX看来也只是一种文件,需要的时候就访问文件即可。这样的话,LINUX就可以格式化任何软硬件,将其以同一种方式看待和存储,这也就是操作系统为何可以调配软硬件资源的原因。
3.(重点!!!)第一期LINUX指令介绍:
不同于windows的相当简单清晰的操作方式,LINUX使用更加古老的操作指令去控制操作系统,没有可视化面板(当然你如果用虚拟机的话,也是可以有的,不过我这里使用的云服务器)。这也决定了LINUX的市场是很难超越windows的。所以,我们接下来会介绍第一批LINUX的指令。
指令介绍
1.whoami:查找当前正在使用的用户是什么
2.who:查找当前机器上有哪些用户正在使用
3.pwd:查找当前的目录位置
4.clear:清空屏幕
5.ls系列:
A.ls:显示当前目录有哪些文件(不包括隐藏文件),但不显示详细信息
B.ls-l/ll:显示当前目录有哪些文件(无详细文件),且显示详细信息
C.ls-l-a/ls-la/ls-al/ls-a-l:显示当前目录下的全部文件的详细信息,且包括隐藏文件
6.cd系列:
A.cd:切换进入其他目录(但注意,cd的转化是一级一级去跳的,通过cd来实现这个过程,故不要把cd理解为一个可以随意跃迁的指令,它也要一级一级跟着路径跳)
B.cd -:跳转回上一次所处的目录
C.cd~:跳转会当前用户的家目录
7.tree:将当前目录以树状的方式展开,直接tree即可,后面不要加东西
8.ctrl+c:停止当前程序的执行
9.gcc:将文件内容编译为可执行程序(主要以C语法为主)
10.mkdir:创建目录(只能在当前目录创建)
11.mkdir-p:创建一系列目录(一系列深入路径),在创建目录时若有上级目录则创建
12.mkdir-m:创建目录时设置权限
13.stat:查找文件更详细的属性,比如AMC时间
14.rmdir:删除目录(删除空目录)
15.rm系列:(rm不会删除隐藏文件,故使用的时候要指代才可以删)
A.rm:删除任何目录
B.rm-r:递归形式删除,需要确定
C.rm-rf:强制删除目录,不需要确定
D.rm-f:强制删除文件
E.rm-i:删除时进行确定的指令,不论用户类型
补充:-r为递归的意思,-f表示强制的意思 -rf表示强制递归的意思
16.exit:断开与服务器的连接,退出操作系统
17.“ 乘号*”:通配符,表示目录下的全部文件
18.man:指令查找说明(默认从第一手册开始)
19.man+数字:规定从第几手册查找指令说明
20.alais 名字=‘要命名的名字’(一定要注意时是单引号):对指令的名字重定义,但是关闭系统后,下一次会恢复到默认,命名无效
21.which:查找指令名所在路径
22.uname-r:查找LINUX内核版本信息
23.vmstat:报告关于内核线程,虚拟内存,磁盘,陷阱和CPU活动的统计信息
24.sar:掌握资源的使用情况,特别是CPU和内存的使用情况
25.top:查看CPU资源使用情况,按q退出
26.netstat:查看网络连接情况
27.free:查看内存资源状态
28.df:查看磁盘分区资源状态
29.xrags:捕获输出并传给下一个命令,常与I连用
30.find.-name".后缀”:找到拥有此后缀名的文件,不控制深度,默认查找当前目录下的所有文件
31.find.-name".后缀” -maxdepth 数字:深度查找后缀名的文件
32.grep:用来指定查找文件的内容,-E为扩展选项为正则表达式,$ 表示匹配文件末尾 a 表示匹配文件末尾 a表示匹配文件末尾a$,^表示匹配文件开始^a
!!!文件操作指令!!!
33.nano:进入文本文件内部操作,比如书写内容(^表示ctrl的意思,使用功能时会用到)
34.cat系列:
A.cat:打印文本文件的内容
B.cat -n:打印文件内容且打印行号
C.cat -s:不输出多行空行,只输出一行空行保留下来
D.cat -b:对非空输出行编号且打印行号
E.cat后面什么也不加:回车后输出什么,则回车后输出什么(默认从键盘读取)
F.cat<:修改默认读取,使其从<后面的文件中读取
35.tac:将文件的内容倒着顺序打印出来
36.echo系列:
A.echo “字符串”:向屏幕中打印字符串内容
B.echo"字符串“>:改变定向输出为文件,将字符串放入文件中
C.echo"字符串”>>:向文件中追加字符串
37.more:查看大数据文件,但只能回车向下查看
38.less:查看大数据文件,但可以回车或者上下键向上下调整,且/+数字可以调整到相应的位置查看
39.head:打印文件默认前10行
40.head -数字:指定打印文件前多少行
41.tail/tail -数字:同head作用相同,只不过是从尾部向上查看
42.|:命令行管道,数据从左进入从右出去,方便数据传输
43.输出输入系列:
A.<:输入重定向
B.>:输出重定向,若后面跟的文件不存在直接创建这个文件,创建完后若再次>这个文件,则直接清空文件,但文件不被删除
C.>>追加重定向:用>的方法也可创建文件,但其主要是用来追加作用的。
44.cp系列:
A.cp source destination:用来拷贝文件source到dst里面,倘若dst不存在就自动创建一个来拷贝!!切记,拷贝文件不能自己向自己拷贝,这点和目录不同!!
B.cp -rf 目录 dst:拷贝目录及其所包含的文件,若拷贝同目录就将前一个作为后一个的子目录拷贝进去
C.cp 目录* 指定位置/目录:将目录内的全部文件都拷贝到相应的位置或者目录下(注意cp*的细节,cp不能自动创建目录,但可以自动创建文件,故一定是先有目录然后才能拷贝)
45.mv src dst:将文件/目录直接转移,原来的位置则不存在这个文件/目录了
注意细节:若在同一级目录中,src ->dst若dst存在则将src转移到dst中(文件就不能这样处理,这样操作的只能是目录),若dst不存在时,则会自动开辟一个dst然后把src转移,故本质上此时就是将src重命名了
4.总结:
这就是第一期LINUX的内容,后续还会持续更新LINUX的内容,希望各位不要沉浸于windows带来的舒适当中,要学会LINUX这种最原始但更加专业的操作方式。