Linux常用命令

一、什么是Shell

Linux系统后台运行的特殊程序可以理解成特殊的软件,提供用户与内核进行交互操作的一种接口

用户使用应用程序发布指令(使用浏览器访问页面)

Shell通知操作系统需要进行什么样的操作(相当于解释层)

内核相当于操作系统去指挥硬件

Linux系统中运行的一种特殊程序                                       用户           接收用户输入的命令

在用户和内核之间充当“翻译官”                                         Shell                    解释命令

用户登录Linux系统时,自动加载一个Shell程序                内核            传递给系统内核执行

Bash是Linux系统中默认使用是Shell程序                          硬件

文件位于/bin/bash

二、Linux命令的分类

Type先判断内部命令还是外部命令,内部命令直接运行,外部命令先看hash缓存表,

有命令执行,没有命令去硬盘找,有命令但是没找到直接报错

内部命令与外部命令的区别

                    内部命令                                                                       外部命令

集成于Shell解释器程序内的特殊指令,    Linux系统中能完成特定功能的脚本文件或二进制程序

也称为内建(Built-in)指令

属于Shell的一部分                                     属于Shell解释器程序之外的命令

没有单独对应的系统文件                           每个外部命令对应了系统中的一个文件

自动载入内存,可以直接使用                   必须知道其对应的文件位置,由Shell加载后才能执行

三、源码包 VS RPM二进制包

源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,

Linux中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为Tarball

使用源码包安装软件具有以下好处

1、开源,经验丰富实力强劲的人可以修改源代码

2、可以自由选择所需的功能

3、软件是编译安装的,更加适合自己的系统,更加稳定,效率更高

4、卸载方便

但同时,使用源码包安装软件也有几点不足

5、安装过程步骤较多,尤其是在安装较大的软件合集时(LAMP环境搭建),容易出现拼写错误

6、编译时间较长,所以安装时间比二进制安装要长

7、软件是编译安装的,在安装过程中一旦报错,新手很难解决

用户安装软件较难,厂商直接将包做成二进制方便使用

四、源程序转化步骤

1、预处理(Pre-Processing)

(1)将所有的#define删除,并且展开所有的宏定义

(2)处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等

(3)处理#include预编译指令,将被包含的文件插入到该预编译指令的位置

(4)删除所有注释“//”和“/* */”

(5)添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号

(6)保留所有的#pragma编译器指令,编译器需要使用

2、编译(Compiling)

就是把预处理完的文件进行一系列词法分析,语法分析,语义分析及优化后,生成相应的汇编代码

3、汇编(Assembling)

汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令

汇编相对于编译过程比较简单,根据汇编指令和机器指令的对照表一一翻译即可

4、链接(Linking)

通过调用链接器ID来链接程序运行需要的大量目标文件及依赖的其他库文件,最后生成可执行文件

五、编译安装

大部分是c语言开发的,更方便使用

1、软件版本比较新,新功能,修复bug

2、可以自行定义配置文件的路径

3、源码可能有100个功能,不需要自行处理,自行定制50

程序包编译安装

源代码>预处理>编译>汇编>链接>执行

多文件

文件中的代码之间,很可能存在跨文件依赖关系

大部分开源软件将软件打成包,但不是所有源代码都打成包,想使用开源软件,需要下载源码进行

编译安装,就算提供了包,因为某些特性,仍然需要编译安装,利用源码编译安装比较繁琐,相关

的项目管理工具可以简化复杂的编译过程

六、应用程序与系统命令的关系

对比系统命令和应用程序的不同

位置

Linux中一切皆为文件,演示内部命令和外部命令,位置,应用程序位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值