㈠ linux怎么进入shell环境
两种方法:一是开机就进入shell,需要修改/etc/inittab文件的默认运行级为3。二是从桌面环境下运行konsole之类的终端模拟器。
㈡ linux shell 中&>是什么意思
& 后台执行
> 输出到
不过联合使用也有其他意思,比如nohup输出重定向上的应用
例子:nohup abc.sh > nohup.log 2>&1 &
其中2>&1 指将STDERR重定向到前面标准输出定向到的同名文件中,即&1就是nohup.log
㈢ linux中的shell是什么意思
ll程序呢? 简单的说shell程序就是一个包含若干行
shell或者linux命令的文件.
象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.
在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整
的程序文件.
执行shell程序文件有三种方法
(1)#chmod +x file(在/etc/profile中,加入export PATH=$:~/yourpath,就可以在命令行下直接运行,像执行普通命令一样)
(2)#sh file
(3)# . file
(4)#source file
在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash,
#! /bin/csh,/bin/tcsh,还是#! /bin/pdksh .
2.shell中的变量
(1)常用系统变量
$ # :保存程序命令行参数的数目
$ ? :保存前一个命令的返回码
$ 0 :保存程序名
$ * :以("$1 $2...")的形式保存所有输入的命令行参数
$ @ :以("$1""$2"...)的形式保存所有输入的命令行参数
(2)定义变量
shell语言是非类型的解释型语言,不象用C++/java语言编程时需要事先声明变量.给一
个变量赋值,实际上就是定义了变量.
在linux支持的所有shell中,都可以用赋值符号(=)为变量赋值.
如:
abc=9 (bash/pdksh不能在等号两侧留下空格 )
set abc = 9 (tcsh/csh)
由于shell程序的变量是无类型的,所以用户可以使用同一个变量时而存放字符时而存放
整数.
如:
name=abc (bash/pdksh)
set name = abc (tcsh)
在变量赋值之后,只需在变量前面加一个$去引用.
如:
echo $abc
(3)位置变量
当运行一个支持多个命令行参数的shell程序时,这些变量的值将分别存放在位置变量里.
其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推...,shell保留
这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们.
3.shell中引号的使用方法
shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符.
反引号(")对shell则有特殊意义.
如:
abc="how are you" (bash/pdksh)
set abc = "how are you" (tcsh)
这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.
abc1='@LOGNAME,how are you!' (bash/pdksh)
set abc1='$LOGNAME,how are you!' (tcsh)
abc2="$LOGNAME,how are you!" (bash/pdksh)
set abc2="$LOGNAME,how are you!" (tcsh)
LOGNAME变量是保存当前用户名的shell变量,假设他的当前值是:wang.执行完两条命令后,
abc1的内容是:$LOGNAME, how are you!.而abc2的内容是;wang, how are you!.
象单引号一样,反斜线也能屏蔽所有特殊字符.但是他一次只能屏蔽一个字符.而不能屏蔽
一组字符.
反引号的功能不同于以上的三种符号.他不具有屏蔽特殊字符的功能.但是可以通过他将
一个命令的运行结果传递给另外一个命令.
如:
contents=`ls` (bash/pdksh)
set contents = `ls` (tcsh)
4.shell程序中的test命令
在bash/pdksh中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环
语句中被用来判断某些条件是否满足.
test命令的语法格式:
test expression
或者
[expression]
在test命令中,可以使用很多shell的内部操作符.这些操作符介绍如下:
(1)字符串操作符 用于计算字符串表达式
test命令 | 含义
-----------------------------------------
Str1 = str2 | 当str1与str2相同时,返回True
Str1! = str2| 当str1与str2不同时,返回True
Str | 当str不是空字符时,返回True
-n str | 当str的长度大于0时,返回True
-z str | 当str的长度是0时,返回True
-----------------------------------------
(2)整数操作符具有和字符操作符类似的功能.只是他们的操作是针对整数
test表达式 | 含义
---------------------------------------------
Int1 -eq int2|当int1等于int2时,返回True
Int1 -ge int2|当int1大于/等于int2时,返回True
Int1 -le int2|当int1小于/等于int2时,返回True
Int1 -gt int2|当int1大于int2时,返回True
Int1 -ne int2|当int1不等于int2时,返回True
-----------------------------------------
(3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等
test表达式 | 含义
------------------------------------------------
-d file |当file是一个目录时,返回 True
-f file |当file是一个普通文件时,返回 True
-r file |当file是一个刻读文件时,返回 True
-s file |当file文件长度大于0时,返回 True
-w file |当file是一个可写文件时,返回 True
-x file |当file是一个可执行文件时,返回 True
------------------------------------------------
(4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式
test表达式 | 含义
----------------------------------------------------------
! expr |当expr的值是False时,返回True
Expr1 -a expr2|当expr1,expr2值同为True时,返回True
Expr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True
-----------------------------------------------------------
注意:
tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh
支持的表达式于C中的表达式相同.通常使用在if和while命令中.
tcsh表达式 | 含义
-------------------------------------------------------
Int1 <= int2 |当int1小于/等于int2时,返回True
Int1 >= int2 |当int1大于/等于int2时,返回True
Int1 < int2 |当int1小于int2时,返回True
Int1 > int2 |当int1大于int2时,返回True
Str1 == str2 |当str1与str2相同时,返回True
Str1 != str2 |当str1与str2不同时,返回True
-r file |当file是一个可读文件时,返回True
-w file |当file是一个可写文件时,返回True
-x file |当file是一个可执行文件时,返回True
-e file |当file存在时,返回True
-o file |当file文件的所有者是当前用户时,返回True
-z file |当file长度为0时,返回True
-f file |当file是一个普通文件时,返回True
-d file |当file是一个目录时,返回True
Exp1 || exp2 |当exp1和exp2的值至少一个为True时,返回True
Exp1 && exp2 |当exp1和exp2的值同为True时,返回True
! exp |当exp的值为False时,返回True
㈣ linux中的shell是什么有什么作用
Shell是人机交互用的一个程序。
用户有shell了就可以登陆系统并且可以用命令和系统交互,肯定不安全。
没有shell就无法用命令去和系统对话,自然安全多了。
最“土”的办法就是用用户名和密码登陆一下,能进去就是有用户shell,进不去就是没有用户shell。
㈤ Linux shell 脚本中, $@ 和$# 分别是什么意思
直接看示例:
[root@localhost xly]# cat t.sh
#!/bin/bash
echo $#
echo $@
[root@localhost xly]# sh t.sh
0
[root@localhost xly]# sh t.sh a b c
3
a b c
说明:
$@表示所有参数
$#表示所有参数的个数
㈥ linux下的shell是什么
什么是shell
shell是用户和Linux
操作系统
之间的
接口
。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的
特性
。
什么是shell
Linux系统的shell作为操作系统的
外壳
,为用户提供使用操作系统的接口。它是
命令语言
、命令
解释程序
及
程序设计语言
的统称。
shell是用户和
Linux内核
之间的接口
程序
,如果把Linux内核想象成一个
球体
的中心,shell就是围绕
内核
的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言
解释器
,它拥有自己内建的shell命令集,shell也能被系统中其他
应用程序
所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
Shell是一种具备
特殊功能
的程序,
它是介于使用者和
UNIX/linux
操作系统之核心
程序(kernel)间的一个接口。为什么我们说
shell
是一种介于系统核心程序与使用者
间的中介者呢?读过操作系统概论的读者们都知道操作系统是一个
系统资源
的管理者与分
配者,当您有需求时,您得向系统提出;从操作系统的角度来看,它也必须防止使用者因
为错误的操作而造成系统的伤害?众所周知,对
计算机
下命令得透过命令(command)
或
是程序(program);程序有编译器(compiler)将程序转为
二进制代码
,可是命令呢?
其实shell
也是一支程序,它由
输入设备
读取命令,再将其转为计算机可以了解的机械码,
然后执行它。
各种操作系统都有它自己的
shell,以
DOS
为例,它的
shell
就是
command.com文
件。如同
DOS
下有
NDOS,4DOS,DRDOS
等不同的命令解译程序可以取代标准的
command.com
,UNIX
下除了
Bourne
shell(/bin/sh)
外还有
C
shell(/bin/csh)、
Korn
shell(/bin/ksh)、Bourne
again
shell(/bin/bash)、Tenex
C
shell(tcsh)
等其它的
shell。UNIX/linux将
shell
独立于核心程序之外,
使得它就如同一般的应用
程序,
可以在不影响操作系统本身的情况下进行修改、更新版本或是添加新的功能。
有一些命令,比如改变工作目录命令cd,是包含在shell
内部
的。还有一些命令,例如
拷贝
命令cp和移动命令rm,是存在于
文件系统
中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。
shell首先检查命令是否是
内部命令
,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的
实用程序
,如ls和rm,也可以是购买的商业程序,如xv,或者是
自由软件
,如emacs)。然后shell在搜索
路径
里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个
可执行文件
,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为
系统调用
并传给Linux内核。
shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在
高级语言
中能见到的程序
元素
,如
函数
、
变量
、
数组
和程序控制结构。shell
编程语言
简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。
当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。
一旦出现了shell提示符,就可以键入
命令名称
及命令所需要的
参数
。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从
键盘
上按ctrl+c发出中断
信号
来中断它(在正常结束之前,中止它的执行)。
当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。
㈦ linux下的 shell到底是什么啊
在计算机科学中,是指“提供用户使用界面”的软件,通常指的是命令行界面的解析器。一般来说,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等。
(8)shelllinux扩展阅读:
常见的编程语言分为两类:一个是编译型语言,如:c/c++/java等,它们远行前全部一起要经过编译器的编译。另一个解释型语言,执行时,需要使用解释器一行一行地转换为代码,如:awk, perl, python与shell等。
Shell 经过了POSIX的标准化,所以它是可以在不同的linux系统上进行移植。
关于注释的问题: 在shell中使用#进行注释,注意,sh里面没有多行注释,只能每一行加一个#号;
㈨ linux中的shell究竟是什么
【一】
shell的含义:
首先shell的英文含义是“壳”;
它是相对于内核来说的,因为它是建议在核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核。
Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息;
【二】shell在Linux中的存在形式:
由于Linux不同于Windows,Linux是内核与界面分离的,它可以脱离图形界面而单独运行,同样也可以在内核的基础上运行图形化的桌面。
这样,在Linux系统中,就出现了两种shell表现形式,一种是在无图形界面下的终端运行环境下的shell,另一种是桌面上运行的类型Windows
的MS-DOS运行窗口,前者我们一般习惯性地简称为终端,后者一般直接称为shell
【三】shell如何执行用户的指令
shell有两种执行指令的方式,一种方法是用户事先编写一个sh脚本文件,内含shell脚本,而后使用shell程序执行该脚本,这种方式,我们习惯称为shell编程。
第二种形式,则是用户直接在shell界面上执行shell命令,由于shell界面的关系,大家都习惯一行行的书写,很少写出成套的程序来一起执行,所以也称命令行。
总结:shell可以说只是为用户与机器之间搭建成的一个桥梁,让我们能够通过shell来对计算机进行操作和交互,从而达到让计算机为我们服务的目的。
以上。
参考资料:
【shell的定义】http://ke..com/view/849.htm
【shell学习】http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80