机器取代人类成为现实,Linux shell才可被取代?
新睿云
新睿云
新睿云-让云服务触手可及
本次笔者用通俗易懂的语言介绍一下Linux shell,由于笔者能力有限,如有有描述不准确的地方还请大家指正。

其实shell是十分有魔力的,笔者猜测真的有一天机器取代人类后,人工智能极度发达shell才会被取代!机器想要做什么直接自己调用自己,目前来说Linux shell还是十分有市场的。

一、Linux shell是什么?

shell 就是壳,区别于核。

Linux 的 核 叫 kernel , 壳有很多种,有命令行的: bash 、sh 、csh 、ksh, 有图形化的: KDE、GNOME、CDE、 XFCE ,据说 Linus 那伙人只负责开发 核。

Windows 9X 系列的核是 DOS,图形化的 壳 叫 Windows Explorer ,命令行 壳 叫 command。从 Windows XP 开始,Windows 的 核 叫做 WindowsNT(Windows New Technology),图形化壳叫 Windows Explorer ,命令行 壳 有 command 、cmd.exe ,后面还推出了 Windows PowerShell。由于 Windows NT 技术是针对图形化壳设计出来的核,而 Windows 9X 就是在 DOS 上加了一个壳。所以 Windows XP蓝屏情况比 Windows9 少得多,但偶尔也会出现。此外Windows7蓝屏就比Windows8与10多的多,可能也是基于上述的情况

因此笔者可以把shell简单理解成命令行解析器。

三、Linux shell运行流程

其实不论是命令行的shell还是图形化的shell,全部都是访问操作系统中的某一些功能,处理一些具体的事物或者文件(文件一般都是二进制)。在Linux下的alias 命令是通过链接访问源文件,所以文件就变成了命令。在 Linux 的 /bin 目录和 /usr/bin 目录中有 Linux 命令对应的文件,在 Windows 的 %windir% 目录即 操作系统安装硬盘分区的 Windows 目录 和 %windir%/system32 目录中有 Windows 命令对应的文件, 此外还可以引入外部命令和自定义命令。而 shell 的作用就是解释某条命令对应的文件的文件路径,供用户使用并返回使用结果。这也就是为何有 shell 脚本一说。脚本语言是种解释型语言,不能编译成二进制代码,区别于编译型语言。就如 shell ,它的作用是将命令解释成对应的文件名,然后通过文件名调用文件。对于图形化 shell 是通过鼠标的点击来访问文件的,但实际也是通过文件名,因为每个文件都有包含文件名的完整路径。

三、Linux shell其实是脚本语言

任何代码最终都要被“翻译”成二进制的形式才能在计算机中执行。

有的编程语言,如 C/C++、Pascal、Go语言、汇编等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,用户拿到的是最终生成的可执行文件,看不到源码。

这个过程叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)。

而有的编程语言,如 Shell、JavaScript、Python、PHP等,需要一边执行一边翻译,不会生成任何可执行文件,用户必须拿到源码才能运行程序。程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。

这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器。

编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。

脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合 Web 开发以及小工具的制作。

Shell 就是一种脚本语言,笔者编写完源码后不用编译,直接运行源码即可。

总结:很多时候,很多人,包括我,在学习时都懒得看理论部分,认为计算机科学是门应用科学,只要掌握技能就行,理论那些逐渐就懂了。可事实不是这样的,长期对某件事物知其然不知其所以然会让人变得对某件事物没有追求,最后在 困惑—忽略困惑—麻木 这一过程中变得平庸。所以,困惑的时候,何不看看书?

机器取代人类成为现实,Linux shell才可被取代?的更多相关文章

  1. linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行

    linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判 ...

  2. Linux-(3)Linux Shell 使用

    三.Linux Shell 3.1 文件管理 3.1.1 ls 命令 显示指定工作目录下的内容及属性信息 ls 命令是Linux下最常用的指令之一.ls命令为英文单词 list 的缩写,正如英文单词 ...

  3. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  4. Linux Shell 笔记

    1.查看进程的环境变量 普通:$cat /proc/1642/environ  换行:$cat /proc/1642/environ | tr '\0' '\n' tr的命令格式是tr SET1 SE ...

  5. LINUX SHELL脚本攻略笔记[速查]

    Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述 ...

  6. Linux Shell 编程基础详解——吐血整理,墙裂推荐!

    第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  7. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  8. Linux Shell 重定向与管道【转帖】

    by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...

  9. 【转】 Linux shell的&&和||

    http://www.2cto.com/os/201302/189655.html Linux shell的&&和||   shell 在执行某个命令的时候,会返回一个返回值,该返回值 ...

随机推荐

  1. github git clone ssh协议 clone超慢解决方案,提高Github Clone速度

    即使进行了fq吧但是git clone ssh协议就是慢 2kb/s你能忍,坚决不能忍. github git clone ssh协议 clone超慢解决方案 151.101.72.249 globa ...

  2. 关于一些规范:main()函数的返回值 mingw和mingw-w64编译器的区别

    深度剖析c语言main函数---main函数的返回值 - 编程随笔与杂谈 - CSDN博客 https://blog.csdn.net/z_ryan/article/details/80979008 ...

  3. eclipse 设置所有文件编码为UTF-8(最全)

      如何修改eclipse工作空间的字符集以及项目的字符集? 第一种方式:修改eclipse的配置文件 打开{ECLIPSE_HOME}/eclipse.ini文件 在最后一行加上属性: -Dfile ...

  4. Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序

    系列目录     [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...

  5. java通过maven打包解决xml读取格式失败问题

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compi ...

  6. 好用的低延迟vps

    ZeptoVM是一个俄罗斯的云提供商, 由于提供了黑龙江北边的机房, 所以延迟比较低 注意一定要选Khabarovsk节点, 这个节点延迟很低, 我在上海延迟大约有70ms 缺点就是比较贵, 按照年付 ...

  7. MYSQL LIMIT 性能测试

    查询语句 # 普通表 SELECT * FROM test_page LIMIT m,n # 内存表 SELECT * FROM test_page_memory LIMIT m,n 总结 查询位置( ...

  8. VS一个奇怪的发布问题

    同事的环境,发布项目时一直提示找不到某dll,在引用及bin里未发现黄色感叹号,后来发现问题是因为项目文件不小心包含了一个外部bin目录,并且该bin目录中的dll删除导致的.

  9. Lua 转义字符

    [1]Lua语言在Windows环境中的文件路径写法 示例程序如下: -- test1 local file = io.open("E:\test\100.txt", 'rb') ...

  10. centos6.5 安装openresty

    [1]centos6.5 安装openresty步骤 (1)基础依赖库安装 1.1 yum install pcre-devel openssl-devel gcc curl (2)openResty ...