栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux shell

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux shell

文章目录
  • SHELL的功能及分类
      • 各个shell的配置文件
  • 常用的csh 和bash 区别
      • 配置文件上的区别
      • 设置环境变量上的区别
  • 相关配置设置
      • UNIX环境中能使用中文
      • 提示符号后面能随着路径更动而改变
      • umask设置
      • Function 与 Alias
  • 设置变量
  • 设置环境变量

SHELL的功能及分类

SHELL是UNIX作业系统中的’‘命令编译器’’,它基本上是一个常驻的执行程式,主要功能是接受使用者的指令、寻找命令的所在位置并加以执行。

UNIX系统中SHELL大致可分为两大阵营:

  • 一是1970年代前期由美国贝尔实验室所发展的sh(Bourne Shell),它是UNIX系统中的标准SHELL,此阵营后来又发展出ksh(Korne Shell)、bash(Bourne Again Shell)等功能更多的介面;
  • 二是美国柏克来大学在1970年代后期发展的csh(C Shell),和它属于同一阵营的有tcsh等。

无论上述的那一种shell,它的基本功能与作用都是相同的。

在UNIX系统中,使用者可视自己的需要来选择ksh、bash、csh、tcsh;

各个shell的配置文件
  • sh阵营(bash)相关配置文件

    系统级别:/etc/profile

    用户级别:$HOME/.profile 或者 $HOME/.bashrc

  • csh阵营,即C shell 的相关配置文件

    系统级别:/etc/profile

    用户级别:$HOME/.profile 或者 $HOME/.cshrc & $HOME/.login

常用的csh 和bash 区别

bash 是大多数Linux系统以及Mac OS X默认的shell

主要是上面两大阵营的区别,导致了如下的区别。

配置文件上的区别
.cshrc 	是 	csh的配置文件
.bashrc 是 	bash的配置文件
设置环境变量上的区别

csh

setenv LANG             "zh_CN.GBK"
setenv NLS_LANG         "SIMPLIFIED CHINESE_CHINA.AL32UTF8"

bash

export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"

了解下其他概念

用户变量: 用户定义,可以修改;

环境变量: 系统提供,不用定义, 可以修改。

在bashrc中,可以利用export将用户变量转为环境变量

set JAVA_HOME=/usr/share/jdk1.5.0_05
export JAVA_HOME
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH

set主要是用来设置变量,这里的变量是普通变量,就像C语言里一样,使用一个变量之前要申明一下。

相关配置设置 UNIX环境中能使用中文

sh系列: $HOME/.profile

 stty -istrip cs8
 LC_CTYPE=ISO_8859_1
 export LC_CTYPE

csh系列:$HOME/.cshrc

stty -istrip cs8 
setenv LC_CTYPE iso_8859_1
提示符号后面能随着路径更动而改变

sh系列: $HOME/.profile

PS1=''`PWD`> ''

或

PS1="w> "

csh系列:$HOME/.cshrc

set prompt=''%~> ''
umask设置

新增档案或目录的属性(mode): 默认是系统管理者以create所设定的属性减去设置的umask值,

如系统管理者所设定的档案权利状态是777,而使用者又自行设定了umask 022,

则这个使用者在他个人帐号下的每一个新产生的档案的权利状态都将会是755(777-022)。

Function 与 Alias

我们可以用function或alias指令实现用一简短字串来代替这一个或一连串的指令,

function的用法如:

vi(){
 mesg n
 /usr/ucb/vi $*
 mesg y
 }

其中’‘vi’‘是function的名称,{}之间是’‘vi’'这个function所包含的指令内容,需要注意的是:function的名称不能与shell的内键指令名称相同,否则这个function无法成立。

alias指令的用法如:

alias vi "mesg n; /usr/ucb/vi !*; mesg y"

其中vi即是’’’'中所包含字串的别名,别名与各shell的名称可以一样(alias本身也是一个内键指令)。

若我们在某一shell中同时建立一名称相同的function与alias,则alias的执行次序优先function 的执行。

设置变量

sh系列:

[VAR]=[STRING or NUMBER]

csh系列:

set [var] = [STRING or NUMBER]
设置环境变量

与变量的区别: 当我们离开shell、进入另一个程序之后,仍需要使用这个变量,我们需要设置这个变量为环境变量

sh系列:

export [VAR]

csh系列:

setenv [var] [STRING or NUMBER]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/603951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号