说在开头:文章是我通过查询资料后按照自己的理解总结出来的,所以如果有说法不对的地方,欢迎大佬指正~
通过看文章标题,可能有朋友会好奇:“Linux命令不是应该讲命令吗?和shell有什么关系?”
没错,所以我这一篇讲的不是具体的命令,而是讲命令之前的一个铺垫、一点基础知识。
首先,我们来了解一下什么是shell。
什么是shell
shell是一个命令行工具,也就是我们平时常说的“打开终端”中的终端,还有人把它称为壳。
它的作用是充当用户和内核(硬件)之间的翻译官。用户在终端上输入命令,终端就会调用相应的程序服务去执行这些命令。
这里又提到了内核、硬件、系统调用接口、程序或服务,所以我们接下来了解一下它们是什么。
用户与Linux系统的交互
1.计算机硬件:
有五大部件:运算器、控制器、存储器、输入\ 输出设备。
1.运算器:主要作用就是负责执行计算机的指令,是处理和运算信息的重要部件
2.控制器:是有序列的执行计算机内各部件的程序,其目的就是实现计算机的自动化运行过程
- 中央处理器(CPU)= 运算器 + 控制器
3.存储器:分为内存和外存
- 内存特点:空间小、读取快、不能长期占用、存放CPU使用的指令和数据、CPU唯一可以直接访问的
- 外存特点:空间大、CPU不能直接访问、数据要先送入内存后才能使用
- 常见的外存:硬盘、光盘、U盘等
- 小常识:这有有一个人们常见的误区:电脑自带的存储容量都是内存。这是错误的!像我们本地磁盘C盘、D盘啊,其实都是外存。
电脑配置“1T+8GB”,1T就是外存,8GB才是内存;手机也同理“64GB+4GB”,4FB才是内存。
内存换一个通俗一点的理解就是“运行内存”。
4.输入设备:比如键盘、鼠标等。
5.输出设备:比如屏幕、音响等。
这一节的内容,是我之前学习计算机组成原理的时候,学过的知识,所以在这里讲的比较细一点,但是也不全面,感兴趣的朋友可以多去了解一下~
2.系统内核:
让各种硬件设备各司其职且又能协同运作的就是系统内核。
Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。
因此,不建议直接去编辑内核中的参数,而是让用户通过基于调用接口开发出来的程序或服务来管理计算机。
下图是用户与Linux系统的交互,图片来源于刘遄老师:
为什么要用shell执行命令
其实图形化工具也非常好用,能极大的降低运维人员操作的错误率。
但是图形化工具往往是为了完成某种工作而设计的,缺乏Linux命令原有的灵活性和可控性;而且图形化工具会更加消耗系统资源。
许多主流Linux系统选择的是用Bash解释器作为默认的命令行终端,它的主要优势有以下四点:
- 通过上下方向键来调取过往执行过的命令
- 命令行和参数输入几位以后可以用tab键补齐
- 具体强大的批量处理脚本
- 具有实用的环境变量功能
在我目前的学习过程中,我只感受到了前两点优势,后面的优势在接下来的学习过程中再慢慢体会。
下一篇就开始学具体的Linux命令了~