linux和shell的关系

2023-11-20

shell的理解


      shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。 shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能。

      shell是linux命令集的概称,是属于命令行的人机界面。Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。Shell 和Shell Script不是一回事,通常我们说的都是Shell Script。

      由定义可知, shell相当于经过装饰的命令行,和命令行一样,都能操作linux。但是shell是面向过程的,相当于有了一定的逻辑和过程,而命令行只是单一的操作。

区别

1、直接在命令行执行 就是在当前的shell环境下执行 比如涉及到一些环境变量的时候 必须在当前shell环境里执行

      在脚本里执行的话 脚本执行的时候 会fork一个子进程 所有操作都在子进程进行 如果涉及到一些在脚本里设置环境变量的东西 脚本结束了 环境变量也就消失了。 
这个修改环境变量的话,需要特别注意下。

2、shell可以重复执行一些命令。你也可以把自己要重复执行的命令写到脚本里面执行。而命令行的话就需要一个一个的输入命令,相对而言麻烦一些。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux和shell的关系 的相关文章

  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed
  • 如何从 C 程序中获取 NIC 详细信息?

    我想要获取连接到我的计算机的所有 NIC 的以下详细信息 1 接口名称 例如eth0 2 接口编号 如Windows http answers yahoo com question index qid 20080517041705AAOmJ
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • Linux中使用管道进行进程间通信

    我已经编写了在 linux 中写入数字以进行管道传输的代码 如下所示 但显示错误 任何人都可以帮助我解决这个问题 基本上该程序的问题陈述如下 一个程序将打开一个管道 向管道写入一个数字 其他程序将打开同一管道 读取数字并打印它们 关闭两个管
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • PyPI 上的轮子平台约束有什么限制吗?

    是否有任何地方 PEP 或其他地方 声明关于 Linux 轮子上传范围的限制 PyPI http pypi io 应该有 具体来说 上传是否被认为是可接受的做法linux x86 64轮子到 PyPI 而不是manylinux1 x86 6
  • C - 为什么我无法映射较小(256UL 或更小)的内存?

    请告诉我 为什么我的简单应用程序无法映射较小的内存 而且 为什么有这样一个特定的边界 257UL define MAP SIZE 256UL or below fail define MAP SIZE 257UL ok include
  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 如何从 Linux 内核模块获取使用计数?

    我对正在开发的内核模块的使用计数有疑问 我想打印它以进行调试 如何从模块代码中获取它 有问题的内核版本 Linux 2 6 32 module refcount http lxr linux no linux v2 6 34 1 inclu
  • 查看 Linux 上的多核或多 CPU 利用率

    我有一个在 Linux 上运行的程序 我需要确定它如何利用所有 CPU 内核 有没有什么程序可以查看这些信息 跑过 top 命令并按下 1 查看各个核心
  • C++:Linux平台上的线程同步场景

    我正在为 Linux 平台实现多线程 C 程序 其中我需要类似于 WaitForMultipleObjects 的功能 在搜索解决方案时 我发现有一些文章描述了如何在 Linux 中实现 WaitForMultipleObjects 功能
  • 计算 TCP 重传次数

    我想知道在LINUX中是否有一种方法可以计算一个流中发生的TCP重传的次数 无论是在客户端还是服务器端 好像netstat s解决了我的目的
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8
  • 提高mysql导入速度[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我有一个很大的数据库22GB 我曾经用过进行备份mysqldumpgzip 格式的命令 当我提取 gz 文件时 它会生成 sql文件的
  • 为什么默认情况下不启用 arp 忽略/通告 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个需要经验才能回答的具体问题 为什么 arp ignore arp announce 在 Linux 安装 例如 debian 上默认不启用 有

随机推荐

  • intellij-idea每次都需要source bash_profile

    windows用户 为了提高效率我们在 bash profile文件中配置了简写命令 然后我们在JetBrains产品中使用的terminnal终端是git bash 发现每次重新启动JetBrains后都需要执行一下 source bas
  • Unity3D:按键生成物件,Instantia…

    在按下按键之后 可以在画面中生成之前定义好了的物体 这里使用了Instantiate函数来生成 1 先在游戏中定一个空物件GameObject 创建空物件快捷键 ctrl shift n 2 在视图中放置 3 编写脚本 脚本 SpaceCh
  • Ubuntu设置共享文件夹(解决/mnt 目录下没有 hgfs 目录)

    目录 1 Windows创建一个共享文件夹 2 在虚拟机的设置中选择Windows下的共享文件夹 3 在Ubuntu中查看共享文件夹 4 解决 mnt 目录下没有 hgfs 目录 5 设置共享文件夹以后 mnt hgfs下没有出现共享文件夹
  • 2022 ICML 论文合集(附Code和数据集)

    1 Sharp MAML Sharpness Aware Model Agnostic Meta Learning Task 元学习 代码链接 https github com mominabbass sharp maml 数据集 http
  • 链表常见题总结一

    链表可以说是笔试面试的重点 因为写一个链表相关的题可以在短时间写出来 并且考验测试人的水平 特别将平时经常做的链表的题拿上来 做个小结 1 求单链表中结点的个数 2 将单链表反转 3 查找单链表中的倒数第K个结点 k gt 0 4 查找单链
  • 【C语言】进制输出加上前缀

    对于八进制数字 它没法和十进制 十六进制区分 因为八进制 十进制和十六进制都包含 0 7 这几个数字 对于十进制数字 它没法和十六进制区分 因为十六进制也包含 0 9 这几个数字 如果十进制数字中还不包含 8 和 9 那么也不能和八进制区分
  • Fiddler抓去HTTP/HTTPS数据包

    默认情况下 Fiddler是抓不到Java程序的HTTP HTTPS的通信的 1 配置抓取HTTP HTTPS通信 只要为Java程序设置HTTP代理 指向localhost 8888即可 方法一 使用如下方式启动Java程序 java D
  • HTML 教程- (HTML5 标准)

    HTML 教程 HTML5 标准 超文本标记语言 英语 HyperText Markup Language 简称 HTML 是一种用于创建网页的标准标记语言 您可以使用 HTML 来建立自己的 WEB 站点 HTML 运行在浏览器上 由浏览
  • Angular_组件间通讯

    组件间通讯 1 组件间通讯 父组件向子组件输入属性用 Input amount number 2 组件输出属性 1 在发射的组件内部定义发射的EventEmitter对象 Output lastPrice EventEmitter
  • 有向图的拓扑排序

    给定一个 nn 个点 mm 条边的有向图 点的编号是 11 到 nn 图中可能存在重边和自环 请输出任意一个该有向图的拓扑序列 如果拓扑序列不存在 则输出 1 1 若一个由图中所有点构成的序列 AA 满足 对于图中的每条边 x y x y
  • CentOS和CentOS Stream的区别你知道吗?

    CentOS 8生命周期的结束 2020年年底的时候 红帽宣布CentOS 8将在一年后结束生命周期 当时这个消息在开发者圈子炸了锅 很多人以为CentOS要自此消失了 实际情况是CentOS并没有消失 只是名字更换为了CentOS Str
  • Spring Cloud Alibaba、Spring Cloud 版本升级、版本号对应情况和一些注意事项等

    参考文档 优质博客 https blog csdn net Thinkingcao article details 105652632 Spring官方文档 https spring io SpringCloud官方文档 https spr
  • 小米无线蓝牙耳机Air2 SE如何连接MacPro

    若设备可以搜索到小米真无线蓝牙耳机Air2 SE但无法配对 建议您 1 若设备连接了WiFi 2 4Ghz 由于蓝牙和WiFi共用天线 且工作在相同的频段 故当WiFi传输数据量较大时 蓝牙会受到干扰 建议关闭WiFi后再尝试配对 2 将左
  • @Scheduled参数及cron表达式解释

    Scheduled支持以下8个参数 1 cron 表达式 指定任务在特定时间执行 2 fixedDelay 表示上一次任务执行完成后多久再次执行 参数类型为long 单位ms 3 fixedDelayString 与fixedDelay含义
  • 2018年中国STEAM教育行业发展现状及发展前景分析

    转自 http www chyxx com industry 201801 609261 html STEAM 教育包括科学 Science 技术 Technology 工程 Engineering 艺术 Art 数学 Mathematic
  • glog的编译,配置,使用

    glog是Google推出的轻量级C log开源库 使用起来比较简单 自己可以下载源码直接编译 支持Windows和linux 下载编译 glog下载路径 https code google com p google glog 需要翻墙才能
  • js 根据总页数 和 规律的页面名称 动态创建分页条

    公有变量最好用明明空间限制一下 var totalPage 0 var currentPage 1 var menuType 0 var totalCount 0 var first page 首页 var prev page 上一页 va
  • mybatis实现代码自动生成

    1 在pom文件中加入代码自动生成插件
  • 光圈,焦距,工作距离与景深之间的关系。

    光圈 光圈越大 景深越小 光圈越小 景深越大 焦距 焦距越长 景深越小 焦距越短 景深越短 工作距离 工作距离越小 景深越小 工作距离越大 景深越大
  • linux和shell的关系

    shell的理解 shell翻译成壳的意思 它是包裹在linux内核外层的 一个可通过一系列的linux命令对操作系统发出相关指令的人机界面 shell可以通过其条件语句和循环语句等 把一系列linux命令结合在一起 形成一个相当于面向过程