介绍
Linux操作系统是由林纳斯 托瓦兹在1991年上大学期间发明的其实他还顺手发明了Git(,起初只是为自己的工作使用,后来他把源代码全部公开,并接收和允许其他开发者贡献的代码,在全世界开发者不断维护和开发下,Linux 成为了世界上最为流行的服务器操作系统之一,如果你要在服务器部署网站或者自己的博客那大概是绕不过它的。
快速上手
具体的安装步骤在网上有很多教程这里不做过多赘述。由于博主的电脑配置有限且使用的Windows操作系统,在博主学习的过程中使用的是Windows上的提供的一个虚拟机服务:“适用于Windows的Linux子系统”(WSL)与传统的虚拟机相比,它更轻量化,且可以与Windows上已有的编辑器VScode直接连通,对于博主这样的初学者学习的是Linux应用编程技术的人而言,它这样的配置已经够用了。且过渡丝滑开发过程中看起来也只是在Windows上打开了应用程序窗口而已没有很强的割裂感。接下来的学习记录没有特别说明博主都是基于这套配置方案学习的。
既然是"应用编程"那肯定绕不开学习其他语言都会接触的第一个应用:Hello Word,现在我们也来试试吧。
打开电脑上的终端在顶部的导航条右侧点击下来箭头选择你的Linux操作系统的名字或者直接点击Linux操作系统的图标(博主使用的是ubantu)登入账号后输入"code .“后按下Enter 等待稍许你会发现Windows上自动打开了VScode但不同的是左下角显示的"WSL: 你的Linux发行版名称"到这一步说明你已经成功将VScode与你的Linux操作系统连接起来了。这时在终端(由这段开始,无特别说明是在Linux的终端窗口)内输入如下命令:
| |
这时我们在test文件夹内创建一个名叫"helloword.c"的文件并写入如下代码:
| |
然后在终端或者VScode内置的终端输入如下指令:
| |
此时,如果你在终端内看到"Hello Word!",那么恭喜你成功了!
Linux系统的组成
主要分为两部分:Linux内核、系统级应用程序(文件管理器、设置、相册等)
Linux内核:提供最核心的系统功能如调度IO、调度文件等,即硬件调度管理能力。
系统级应用程序:你可以先理解为系统出厂自带的应用程序,方便用户快速上手。
除此之外就是第三方应用程序了但它们是额外添加的故不算Linux组成的一部分(比如网易云音乐、微信等)。但无论是系统级应用程序还是第三方应用程序,它们功能的实现都是通过调用Linux内核实现对各种功能的调度的(比如网易云音乐→内核→扬声器)。
由于Linux的内核是开源,的所以任何人都可以拿到它的内核进行开发,并通过封装不同的系统级应用程序成为不同的Linux操作系统,这称为Linux发行版,ubantu就是一个Linux发行版。
Linux命令
概念
命令:Linux的操作指令,是系统内置的程序,我们可以用字符化的形式去使用它
命令行:即Linux终端提供字符化的操作页面供命令执行
基础命令
ls :列出指定目录下的文件内容。可用选项有”-a、-l、-h"也可混合使用。
cd:切换工作目录,无可用选项,后跟需要切换的路径,若不加路径则回到默认目录,即"home"目录。
pwd:打印当前的工作目录,无可选项,无参数。
mkdir:创建指定目录下的文件夹,可选项"-p"但后跟的路径不可省,使用"-p"时,适合需要创建连续多层目录的情况。
touch:在指定路径创建一个文件,无可用选项但后必跟具体路径。
cat:查看指定路径的文件,无可用选项,但后必跟具体的路径。
more:与"cat"类似,不过"cat"是展示文件内所有内容,而"more"支持以翻页的形式查看,使用空格进行翻下一页操作,按B 翻上一页,按Q 退出。
cp:复制文件\文件夹,有可选项"-r"用于复制文件夹(递归),后必两个具体的路径,其中前一个路径表示被复制的文件(文件夹)后者表示需要复制到的目标路径。
mv:移动指定目录下的文件\文件夹到指定目标目录,无可选项。但文件路径不可省,与"cp"类似,前一个路径表示要移动的文件\文件夹后一个路径表示要移动的目标路径,但目标不存在时会进行改名确保目标存在。
rm:删除文件\文件夹,有可选项"-r"、"-f",文件路径个数不限。与"cp类似,当选择"-r"时,表示删除的是文件夹。由于不限路径个数,所以可以进行批量删除,也可使用通配符进行操作。
find:搜索,根据可选项改变查找模式(例:"-name",就是以文件名查找,"-size"以文件大小查找)后跟需要查找的参数(以"-name"为例,后跟文件名,若是"-size"则是大小单位例:+-具体的数值"k"表示单位为kb,+-表示大于\小于)在可选项和命令之间填入的是查找的起始路径。
grep:过滤指定文件的内容返回符合的文件行。可选项为"-n",用于显示行号。后必跟具体文件路径(也可配合管道符作为输入口使用)。
wc:统计指定文件某属性的数量。可选项有 “-c”(统计bytes数量)、"-m"(统计字符数量)、"-l"(统计行数)、"-w"(统计单词数量),后必跟需要统计的文件路径(也可配合管道符作为输入口使用)。若不加任何可选项则返回行数、单词数、字节数。
echo:在命令行内输出指定内容,无可选项。
tail:查看文件尾部的内容,追踪最新的修改。可选项"-f"(持续追踪)、"-num"(不是真的"num"而是具体的数字,查看尾部行内容,默认10行),后必跟文件路径。同理的还有"head"从前往后看,与"tail"相反。在"-f"模式下可用CTRL+C退出。
Vi\Vim编辑器
简介
Linux中最经典的文本编辑器,可以理解为windows中的记事本,不过这个编辑器是在图形化界面使用,而Vi\Vim是在命令行中使用。vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还有shell程序编辑的功能。
工作模式
命令模式:以按下的按键作为命令输入(例:按两下D实现对文本的删除),以命令驱动执行不同的功能,不能自由编辑文本。
输入模式:即文本编辑模式,此模式下可以自由编辑文本
底线命令模式:对整个文件进行操作(例:保存、退出等)
默认打开时进入的是命令模式,且三者不可随意切换,即无法从输入模式进入底线命令模式反之亦然,两者只能通过切换到命令模式进行间接切换。
使用
使用vi\vim编辑器使请通过如下命令启用:
| |
若文件路径表示的文件不存在,则会创建新的文件进行编辑,反之,若已存在则编辑已有文件。
操作
在命令模式下按下i或a或o等键(区别不做赘述)进入输入模式。
在命令模式下按下Shift+kbd>;进入底线模式,在此模式下输入wq(保存并退出)会直接退出编辑器回到命令行。
其他命令不详细说明。
在编辑器底部可查看当前的工作模式(以进入输入模式为例,底部会显示"INSERT"字样)。
需要退出当前工作模式按下Esc即可(仍以输入模式为例,此时会发现底部"INSERT"字样消失)
Shell
简介
shell是一个用C语音编写的程序它是用户使用Linux的桥梁。shell既是一种命令语言也是一种程序设计语言。shell是指一种应用程序、这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。是一种脚本。
