linux中的shell究竟是什么

linux中的shell究竟是什么,第1张

linux中的shell究竟是;

ll程序呢 简单的说shell程序就是一个包含若干行

shell或者linux命令的文件

象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器如VI等

在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整

的程序文件

tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能tcsh

支持的表达式于C中的表达式相同通常使用在if和while命令中

tcsh表达式 | 含义

继 Git 后贵系的另一个暑培项目,讲授 Linux 的基本用法,恰好这学期「 *** 作系统」课程实验需要用到 Linux,而且实验室的服务器也需要学习相关用法,故学之。

本文部分内容参考了清华 ZAH 同学的教程,部分参考了 刘遄 老师的《 Linux 就该这么学 》, 菜鸟教程-Linux 。

Linux,全称 GNU/Linux,是一套免费使用和自由传播的类 Unix *** 作系统。相比于其他系统,Linux 更加稳定且有效率、更加安全、相对不耗资源……以至于几乎所有 长期稳定运行的网站服务器 上、在 处理大数据的集群系统 中,以及需要 协同工作的服务器环境 都采用 Linux 系统。

Linux 严格来说是单指 *** 作系统的 内核 ,因 *** 作系统中包含了许多用户图形接口和其他实用工具。如今 Linux 常用来指「基于 Linux 的完整 *** 作系统」,内核则改以「Linux 内核」称之。

一些组织或厂商将 Linux 内核与各种软件和文档 包装 起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。

在学习 Linux 的过程中,有几个易混淆的概念:

命令行界面(Command-Line Interface,CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(Character User Interface,CUI)。

一般来说,在 服务器 中较多采用的是 CLI 界面,或许有以下几点原因:

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 等系统的桥梁,如同「 」一般。它的本质是一个 命令解释器 ,将用户输入的命令(符合 Shell 语法)处理成对应 *** 作系统的控制命令 ,处理完毕后再将结果反馈给用户。

不同 *** 作系统下面的 Shell 种类众多,常见的有:

Ken Thompson 的 sh 是第一种 Unix Shell,本教程关注的是 Bash,也就是 Bourne Again Shell,Bash 也是大多数 Linux 系统默认的 Shell。

终端 (Terminal),是一种用来让用户输入数据至计算机,以及显示其计算结果的机器。早期的终端通常就是一台 电子打字机 (Teletypewriter, TTY),后来随着计算机的发展,打字机被键盘和显示器取代,而 GUI 界面也成了主流。

于是,这时候我们就需要一个程序来模拟传统终端的行为,即 终端模拟器 (Terminal Emulator),当用户打开终端模拟器时,实际上是进入一个 会话进程 (Session)。终端模拟器有很多,这里举几个经典的例子:

在 Linux 系统中打开终端时,会看到一个提示符,通常类似 hewei@hewei-VirtualBox ~$ 。在提示符下,命令会被 Shell 环境 解析并反馈 到终端中。

提示符是 Shell 最主要的 文本接口 。它告诉你,你的主机名是 hewei-VirtualBox ,你现在的身份是 hewei 并且你当前的 工作目录 (Current working directory)是 ~ (默认在 /home/hewei/ 用户目录)。

$ 符号表示您现在的身份不是 root ,输入如下命令可以暂时切换到 root 权限:

输入密码后,可以看到提示符变成了 root@hewei-VirtualBox:/home/hewei# ,其中 # 符号就是超级用户权限的标志。再输入 exit 即可退回普通用户身份。

在 Git学习笔记 #1 基础知识介绍 中,已经简单介绍了命令行界面的一些使用技巧,这些命令在 Linux 系统的 Bash 中同样使用。这里罗列出 Linux 常用快捷键:

常见的执行 Linux 命令的格式是这样的: 命令名称 [命令参数] [命令对象] 。其中,命令参数用于对命令进行调整,使之更好地贴近需求,参数分为 长格式 短格式 ,如: man --help , man -h 。短格式之间可以合并,合并后仅保留一个减号即可。

在 Linux 相关的手册中,我们会约定俗成地将可选择的、非必需的参数使用 中括号 引起来,而命令所要求的、必须有的参数或对象值,则不带中括号。

此外,要注意 Linux 系统中的命令、参数、对象都是 严格区分大小写 的。

Shell 除了是一个 交互式 (Interactive)的命令解释器,它还是一种 程序设计语言 (Shell Script)。它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

用 Shell 编写的 脚本文件 即 sh 文件,它能在 Shell 环境下运行,fork 出一个 子进程 ,调用系统内核来执行 批处理 (Batch)的系统控制。在文件的第一行,通常是 #!/bin/bash ,这句话约定了这个脚本需要哪种 Shell 环境来执行。

通过如下命令就可以执行一个 Shell 脚本:

下面罗列了部分常用指令与参数的介绍,更多功能请在帮助手册中检索。

外部命令有时候也被称为文件系统命令,是存在bash shell之外的程序。它们并不是shell程序的一部分。外部命令通常位于/bin, /usr/bin, /sbin /usr/sbin中,而内建命令都是和shell编译成一体的程序,作为shell工具的组成部分存在。不需要借助外部程序文件来运行。

可以通过type命令查看命令是否是内建命令或者外部命令,如

当外部命令被执行时,会创建一个子进程。这种 *** 作被称为衍生(forking)。外部命令ps很方便显示出它的父进程以及自己所对应的衍生子进程。而内建命令不需要打开程序文件,内建命令的执行速度要更快,效率更高。

注意:有些命令有多种实现。例如echo和pwd既有内建命令也有外部命令。

有两个比较好用的内建命令history 和 alias

shell会自动记录shell运行的历史记录,history命令可以查看,使用 ! 和数字可以调用相应编号的历史命令

alias命令可以给较长的命令取别名,方便使用。

shell编程属于脚本编程,脚本文件就是指令的集合,GCC是GNU编译系统驱动程序。

Linux中的库分两种:静态库和共享库。静态库以a结尾,也叫归档文件(archive),类似于windows中的lib文件,他的缺点是同时运行的多个程序使用同个函数库函数时,内存中会有多个该函数及该程序文件的副本,浪费了内存。共享库以so结尾,类似于windows中的Dll文件。

shell是对linux内核的一种封装,提供了一些函数的接口,shell程序设计就是利用这些函数接口进行编程。

完全是两个方向的应用。总的来说,不具备可比性。但实际要看应用环境。相对来说,shell 的程序还是以简单的功能为主。大型的应用程序还是 C 语言更合适。

以上就是关于linux中的shell究竟是什么全部的内容,包括:linux中的shell究竟是什么、『Linux 干货』#1 终端与Shell(简明)、shell——内建命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9626372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存