linux处理shell
① linux中shell分多少种,都有什么区别
Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有:
bash:是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。
sh: 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。
另外还有:ash、 csh、 ksh等。
(1)linux处理shell扩展阅读:
常见的编程语言分为两类:一个是编译型语言,如:c/c++/java等,它们远行前全部一起要经过编译器的编译。另一个解释型语言,执行时,需要使用解释器一行一行地转换为代码,如:awk, perl, python与shell等。
Shell 经过了POSIX的标准化,所以它是可以在不同的linux系统上进行移植。
关于注释的问题: 在shell中使用#进行注释,注意,sh里面没有多行注释,只能每一行加一个#号;
② linux常用的shell有哪些
最常用的当然是bash这个shell了,不需要多说,因为大部分Linux发行版都默认是这个shell;还有C shell用户也很多,因为它的语法和C语言有点像;还有一个ash,念做A Shell,在智能路由器系统OpenWrt、LEDE上作为默认shell,话说玩路由器Linux系统OpenWrt的也不少啊,好多硬件论坛上都知道这个系统,所以ash也算是常用的Linux shell吧。
③ Linux shell 问题 求解
这是表示foo分别取值三次,并且分别打印出 三个值来,具体其他知识拓展如下:
for 命令
重复执行一系列命令在编程中很常见。通常你需要重复一组命令直至达到某个特定条件,比如处理某个目录下的所有文件、系统上的所有用户或是某个文本文件中的所有行。
bash shell提供了 for 命令,允许你创建一个遍历一系列值的循环。每次迭代都使用其中一个值来执行已定义好的一组命令。下面是bash shell中 for 命令的基本格式。
for var in list
do
commands
done
在 list 参数中,你需要提供迭代中要用到的一系列值。可以通过几种不同的方法指定列表中的值。
在每次迭代中,变量 var 会包含列表中的当前值。第一次迭代会使用列表中的第一个值,第二次迭代使用第二个值,以此类推,直到列表中的所有值都过一遍。在 do 和 done 语句之间输入的命令可以是一条或多条标准的bash shell命令。在这些命令中,$var 变量包含着这次迭代对应的当前列表项中的值。
也可以将 do 语句和 for 语句放在同一行,但必须用分号将其同列表中的值分开: for var in list; do 。
1.1.读取列表中的值
for 命令最基本的用法就是遍历 for 命令自身所定义的一系列值。
[ceshi@jerry jghml]$ cat test1.sh
#!/bin/bash
# basic for command
for test in Alabama Alaska Arizona Arknsas California Colorado
do
echo The next state is $test
done
④ Linux主要shell命令详解
命令替换
命令替换和重定向有些相似,但区别在于命令替换是将一个命令的输出作为另外一个命令的参数。常用命令格式为:
command1
`command2`
其中,command2的输出将作为command1的参数。需要注意的是这里的`符号,被它括起来的内容将作为命令执行,执行后的结果作为command1的参数。例如:
$
cd
`pwd`
该命令将pwd命令列出的目录作为cd命令的参数,结果仍然是停留在当前目录下。
⑤ Linux Shell是什么
Shell,英文本意是外壳,Linux Shell 就是 Linux 操作系统的外壳,为用户提供使用操作系统的接口,是 Linux 系统用户交互的重要接口。登录 Linux 系统或者打开 Linux 的终端,都将会启动 Linux 所使用的 Shell。
Linux Shell 一个命令解释器,是 Linux 下最重要的交互界面,从标准输入接收用户命令,将命令进行解析并传递给内核,内核则根据命令,作出相应的动作,如果有反馈信息,则输出到标准输出上,示意过程如下图所示。嵌入式 Linux 的标准输入和输出都是串口终端。你可以去看一下M283-ARM9核心板
⑥ Linux的Shell脚本中是如何处理形如$i++ 这种语句的
shell本身就是个命令解释器
,不会编译成机器码
,
命令解释器这个名字就能解释你的问题了
"命令解释器用什么把
1++
算成2的"
我觉得你钻牛角尖了,
这是个黑箱
,shell作为命令解释器的存在,对各种输入都有对应的解释方式
,至于具体如何实现,那要看shell的源码了,
这是个黑箱情况
你的问题就好像C编译器如何识别
i++的
一样,只是不同的是
C编译器将i++生成机器码
,而shell内建$i++的处理方式
⑦ linux shell脚本 批处理
新建一个文件,名字为test(自己定义的名字)
nano test.sh在里面编写脚本
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中使用/bin/sh来执行程序。
(能写一些shell普通命令,命令用分号隔开)
例子:
#! /bin/bash
# shutdown pc
sudo
shutdown +1执行方法
(1)在控制台输入命令执行:
sh
test.sh
(2)先给脚本可执行权限,双击执行:
右键此文件,选择属性->权限,最下方会有一个“允许以程序执行文件”,将这一项勾选,就可以了。
或在命令行下附予权限:
chmod 777
test.sh 或: chmod +x test.sh
⑧ 在Linux中,shell是什么
补充下:
Shell是一种具备特殊功能的程序,它是介于使用者和
UNIX/Linux
操作系统之核心程序(kernel)间的一个接口。为什么我们说
shell
是一种介于系统核心程序与使用者间的中介者呢?读过操作系统概论的读者们都知道操作系统是一个系统资源的管理者与分配者,当您有需求时,您得向系统提出;从操作系统的角度来看,它也必须防止使用者因为错误的操作而造成系统的伤害?众所周知,对计算机下命令得透过命令(command)或是程序(program);程序有编译器(compiler)将程序转为二进制代码,可是命令呢?其实shell
也是一支程序,它由输入设备读取命令,再将其转为计算机可以了解的机械码,然后执行它。
Shell
的功用
为了确保任何提示符号下输入的命令都能够适当地执行。shell
担任的工作包括有:
1.
读取输入和语法分析命令列
2.
对特殊字符求值
3.
设立管线、转向、和幕后处理
4.
处理讯号
5.
设立程序来执行
⑨ linux有几种shell
Linux系统提供多种不同的Shell以供选择。常用的有Bourne Shell(简称sh)、C-Shelll(简称csh)、Korn Shell(简称ksh)和Bourne Again Shell (简称bash)。Bourne Shell是AT&T Bell实验室的 Steven Bourne为AT&T的Unix开发的,它是Unix的默认Shell,也是其它Shell的开发基础。Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其它几种Shell。C Shell是加州伯克利大学的Bill Joy为BSD Unix开发的,与sh不同,它的语法与C语言很相似。它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell与BourneShell并不兼容。Korn Shell是AT&T Bell实验室的David Korn开发的,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点,另外你是感兴趣的话可以看下刘遄老师写的《Linux就该这么学》作为入门的书籍,觉得不错的话采纳下哦~