什么建站系统支持文章采集(什么是Linux的内核?编程之前编程)
优采云 发布时间: 2022-01-20 15:32什么建站系统支持文章采集(什么是Linux的内核?编程之前编程)
本篇文章为大家带来了linux系统中shell编程的相关知识。在学习shell编程之前,我们首先要知道什么是shell,什么是shell脚本。我希望它会帮助你。
一.什么是Shell1.在学习Shell编程之前,首先要知道什么是Shell
用户、Shell、Linux内核、硬件之间的关系如下:
Shell 是应用程序或命令解释器。它是用户和 Linux 内核之间的桥梁。它可以将用户在图形界面上的操作或终端输入的命令传递给Linux内核,然后Linux内核调度各种硬件等资源,完成用户操作。
什么是 Linux 内核?在Linux操作系统中,能够实际操作计算机硬件完成用户功能的部分称为Linux系统的内核。用户在使用Linux系统时,不能直接操作内核,而是通过Shell间接操作内核。Shell 不是内核的一部分,而是在 Linux 内核之外开发的应用程序。它将接收到的用户鼠标点击或输入命令传递给内核,然后内核调度硬件完成指定的操作。这样用户就不需要直接操作内核,而是通过shell间接操作内核,内核不会直接暴露在外部,保证了内核的安全性,简化了用户的操作。
Shell 是在启动时启动的应用程序。我们在操作Linux系统时,一直都是通过Shell直接或间接地操作Linux内核。事实上,在没有图形界面之前,用户直接通过终端或控制台调用Shell应用程序,然后通过输入命令来操作Linux系统。用户在控制台或终端看到的$和#其实是Shell的命令提示符,表示用户已经进入Shell程序,只需输入命令即可通过Shell操作Linux内核。只是root用户登录显示$,普通用户登录显示#。
另外,Shell将用户的操作传递给内核的过程就是调用内核提供的API接口的过程。例如,用户在图形界面或终端命令行上进行打开文件的操作,Shell接收到用户的操作后,会调用内核提供的相应函数,然后内核调度硬件资源完成用户的操作。操作。
2. 通用外壳
我们知道Linux是一个开源操作系统,它是由全球多个组织或个人共同开发的,每个组织或个人负责一部分功能,最后组合起来,就构成了我们现在使用的Linux。也正是因为这个原因,这些不同的组织或个人会开发出可以在Linux系统中使用的应用程序,而这些应用程序的功能可能是相似的,并且各有优缺点。至于使用哪一种,用户自行选择。而Shell就是这样一个应用程序,所以Shell的版本很多,大多数Linux发行版默认使用的Shell就是bash shell。其他常见的shell版本如下:
(1) sh:sh的全称是Bourne shell,是UNIX上的标准shell,很多UNIX版本都配备了sh。sh是第一个流行的shell。
(2) csh:这个shell的语法有点类似于C语言,所以命名为C shell,简称csh。
(3) tcsh:tcsh是csh的增强版,增加了命令补全,提供更强大的语法支持。
(4) ash: 资源消耗低的轻量级shell,适合在低内存环境下运行,完全兼容bash shell。
(5) bash:bash shell 由 GNU 组织开发,并保持与 sh shell 的兼容性。它是各种 Linux 发行版的默认配置。
3. 查看Linux系统的Shell
在 Linux 系统中,默认的 shell 通常是 bash shell。Shell是一个应用程序,一般放在/bin或/user/bin目录下,当前Linux系统中可用的shell都记录在/etc/shells文件中。
(1) 要查看系统中当前可用的shell,请执行命令[cat -n /etc/shells]:
(2) 要查看系统当前默认使用的shell,执行命令[echo $SHELL]:
(3) 要查看每个用户使用的 Shell,请执行命令 [cat -n /etc/passwd]:
二.什么是Shell编程1.什么是Shell编程语言
我们已经知道Shell是一个应用程序,这个应用程序不仅可以将用户的操作命令传递给Linux内核,它还支持编程。Shell对应于一种编程语言的语法,这种语言称为Shell编程语言或Shell脚本语言。Shell 编程语言和 JavaScript 语言一样,是一种不需要编译的脚本语言,它的解释器是 Shell 应用程序本身。
我们在工作中通常所说的Shell,在大多数情况下,是指Shell脚本语言,而不是Shell应用程序。
2. 什么是 Shell 脚本
我们在使用Shell脚本语言时,可以结合Linux系统的其他操作命令(如ls、grep等)使用,使用Shell脚本语言和其他命令编写一个可以完成的扩展一个特定的功能。text 称为 shell 脚本。
3. 第一个 Shell 脚本
我们已经知道 Shell 有很多版本,每个版本支持的 shell 脚本语言语法可能不同,以下所有的 Shell 脚本示例都是针对 Bash Shell 版本的。
(1)在根目录下新建一个Hello.sh脚本:[vim Hello.sh]
(2)然后输入以下内容:
#!/bin/bash
echo "Hello World "
第一行:#! 是约定标记,可以告诉系统使用哪个shell版本作为这个脚本的解释器,而后面的/bin/bash是shell的路径,所以[#!/bin/bash]表示bash shell在 bin 目录中用作此脚本的解释器;
第二行:[echo "Hello World"] 表示输出文本 Hello World!;
(3) 然后保存退出:[!wq];
(4)这样就编写了一个可以输出Hello World!的脚本。
附加说明:
上面我们已经说过,Shell程序是Shell脚本语言的解释器,而我们在使用终端(比如通过Xshell连接Linux服务器的终端)时,其实已经进入了Shell程序,所以其实,我们可以直接使用终端。输入Shell编程语言的代码来运行,而不是写在脚本里来运行。例如,声明一个变量并打印变量的值:
(1)输入代码:[name=Zhang San],表示定义了一个变量名,其值为Zhang San;
(2)输入代码:[echo $name],意思是打印变量名的值。
当然,这种方式只适用于执行逻辑简单,只有一两行代码的情况。大多数情况下,我们还是在.sh脚本中编写Shell编程代码,然后执行。
4. 运行 shell 脚本的方法
上面我们写了一个输出Hello World的程序!Shell 脚本运行,现在我们将执行 Hello.sh 脚本。有两种方法可以执行 shell 脚本:
第一种:赋予.sh文本可执行权限,然后执行文本:
(1)赋予shell脚本可执行权限:[chmod +x Hello.sh];
(2)直接执行:绝对路径:[/Hello.sh] 或相对路径:[./Hello.sh]
注意这里执行时如果使用了相对路径,必须以./开头表示当前目录,否则系统将找不到脚本,执行失败。
第二:将shell脚本作为参数传递给Bash shell解释器:
(1)这里使用Bash Shell作为解释器,那么我们直接调用Bash Shell程序,然后将Hello.sh脚本作为参数传递给Shell:[/bin/bash Hello.sh]或者[ bash Hello.sh]
(2)这里需要注意的是,这种方式执行shell脚本时,不需要在shell脚本的第一行声明使用哪个版本的shell作为解释器,也就是这个不需要[#!/bin/bash]这行代码,因为在我们运行脚本的命令中[/bin/bash Hello.sh]已经指定了使用哪个版本的Shell作为解释器。
注意,这种方式执行脚本文件时,如果使用相对路径,那么[/bin/bash ./Hello.sh]和[/bin/bash Hello.sh]是一样的,第一次执行不是用过的。方法上的区别。
以上就是完全掌握Linux系统Shell编程的详细内容。更多详情请关注811玄玄资源网其他相关话题文章!
声明:本文转载于:CSDN,如有侵权,请联系删除
免责声明:本站所有资源转载自各大下载网站,或由网友发布。请自行检查软件的完整性。任何个人或组织未经本站同意,不得复制、盗用、采集、将本站内容发布到任何网站、书籍等媒体平台。本站内容如有侵犯原作者合法权益的,您可以联系我们处理。
linuxlinux运维
冷雨葬礼花