定制AIX操作系统的shell环境

操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。

shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。

交互式shell和非交互式shell

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。

shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

shell的类型

在UNIX中主要有两大类shell

Bourne shell (包括 sh, ksh, and bash)

Bourne shell ( sh)

Korn shell ( ksh)

Bourne Again shell ( bash)

POSIX shell ( sh)

C shell (包括 csh and tcsh)

C shell ( csh)

TENEX/TOPS C shell ( tcsh)

Bourne Shell

最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的AT&T贝尔实验室编写的,这就是Bourne shell。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。

C Shell

Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。

Korn Shell

有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX--一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准--在源程序一级跨越多种平台。

Bourne Again Shell (bash)

bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。

POSIX Shell

POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh.

各主要操作系统下缺省的shell:

AIX 下是Korn Shell.

Solaris和FreeBSD缺省的是Bourne shell.

HP-UX缺省的是POSIX shell.

Linux是Bourne Again shell.

【TIP】

#!/usr/bin/sh的用途

shell script的第一行一般都是#!/usr/bin/sh或#!/usr/bin/ksh等,它的用途就是指出本脚本是用的哪种shell写的,执行时系统应该用哪种shell来解释执行它。

当你登录时,shell会读取以前设置的初始化文件来设置用户环境。用户环境的定义是通过设置环境变量来实现的。当登录操作系统时,shell主要使用两大类profile文件来定义用户环境。一类是用来为所有用户定制环境,另一类是为个人定义自己的环境。

登录时,shell首先执行/etc/profile文件中的命令,然后运行/etc/environment文件中的命令来设置你的系统环境。这两个文件运行完毕后,系统会接着检查在你的home目录下是否有.profile文件,如果.porfile文件存在,就运行它。 .profile文件还会指出是否还有一个环境文件。如果还有环境文件(通常叫.env或者.kshrc)存在,系统会运行这个文件,并设置你的环境变量。

/etc/profile文件

用户在登录时,操作系统定制用户环境时使用的第一个文件就是/etc/profile。这个文件控制着全系统范围内的缺省变量,如Export变量,文件创建的掩码,终端类型,以及新邮件到达时的提示信息等等。

系统管理员为所有用户配置porfile文件,只有系统管理员可以更改这个文件。

/etc/environment文件

在登录时操作系统使用的第二个文件是/etc/environment。/etc/environment文件包含为所有进程所配置基本环境的变量。当一个新进程开始时,exec子程序生成一个形为Name=Value的字符串数组。这个字符串数组被称为环境,每一个被定义名字被称作环境变量或者 shell变量。exec子程序允许整个环境一次设置完成。

当你登录时,系统在读取你自己的profile前,设置环境文件的环境变量。下面是构成基本环境的变量:

HOME:用户登录的或HOME全路径,登录程序从/etc/passwd文件中读取并设置它。

LANG:语言环境

NLSPATH:消息目录的全路径。

LOCPATH:国际语言支持系统表格的全路径

PATH:搜寻命令的目录

TZ:时区信息 ,IBM到现在还得用TAIST--台北时区

【注意】/etc/environment文件中不能包含命令

.profile文件

操作系统在登录时用到的第三个文件是.profile文件。 .profile文件位于用户的home目录,它允许用户定制自己的个人的工作环境。

在登录程序将LOGNAME和HOME变量添加到环境中后,$HOME/.profile文件中的命令就会被执行,.porfile文件中含有你个人的设置会忽略/etc/profile文件中的相矛盾的变量。

一般用.profile来控制下面的缺省值:

打开的shell,命令行提示符,键盘的声音。

.env文件

如果你在.profile文件中有如下内容:ENV=$HOME/.env,操作系统在用户登录时使用的第四个文件是.env文件。.env文件允许用户定制自己的个人的工作环境。文件中含有的你个人的环境变量会忽略/etc/environment文件中的相矛盾的变量。

【注意】/etc/profile,/etc/environment和.profile文件只在登录时运行一次。但是.env文件却在每一次打开一个新shell或一个窗口时都被执行。

【TIP】$HOME/.env文件名可以任意,但在$HOME/.profile中要有相应的声明:export ENV=$HOME/.NewName

【TIP】$HOME/.env文件每当一个子shell被开启都会被执行,所以可以在这里定义在vi中开启的子shell中也可以使用的别名。

【注意】这四个定制环境的文件中,/etc/enviroment文件中只能给变量赋值,而其它三个文件可以使用语句。

时间: 2024-08-05 19:34:18

定制AIX操作系统的shell环境的相关文章

定制shell环境set和shopt

set命令可以用来定制shell环境,使用选项“o”来打开或者关闭选项.例如打开选项:set -o 选项,关闭选项目:set +o 选项. shopt命令是set命令的一种替代,很多方面都和set命令一样,但它增加了很多选项.可有使用“-p”选项来查看shopt选项的设置.“-u”开 关表示一个复位的选项,“-s”表示选项当前被设置. 内置set命令选项 选项名 快捷开关 含义 allexport -a 从这个选项中被设置开始就自动标明要输出的新变量或修改过的变量,直至选项被复位 braceex

shell环境

在Unix式的操作系统中有一个最重要的特性就是命令行界面或shell.shell环境使得用户能与操作系统的核心功能进行交互.术语脚本更多涉及的便是这种环境.编写脚本通常使用某种基于解释器的编程语言.而shell脚本不过就是一些文件,我们能将一系列需要执行的命令写入其中,然后通过shell来执行.目前大多数GUN/Linux系统默认的shell环境是bash.在linux系统中,命令都是在shell终端中输入并执行的.打开终端后就会出现提示符: [[email protected] ~]# 1.其

认识Shell环境

一.什么是Shell?●工作在Linux内核于用户之间的解释成熟-相当于操作系统的"外壳"-向Linux内核传达用户指令的"翻译官"-通常指BASH(/bin/bash) **●Windows下的Shell解释器** -C:\Windows\System32\cmd.exe 二.登录Shell环境●作为用户登录后的第一个程序-即最常见的"Linux命令"环境-以交换方式运行,用户每输入一个命令,立即解释并执行 三.手动选择Shell环境 ●直接执

bash shell 环境

原文引用https://www.dazhuanlan.com/2019/08/26/5d62f93a80696/ bash的环境配置 工作环境是在Mac环境下,默认情况下Mac下bash是没有 .bashrc 的,导致一些自动化工具没有正确配置自己的环境变量,最后出现问题. bash的这些配置文档作用 .bash_profile 从字面理解 profile 跟账号相关,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行. 在其他shell里面,存在 .profile 和 .login

9. shell环境

• printenv –打印部分或所有的环境变量 • set –设置 shell 选项• export —导出环境变量,让随后执行的程序知道.• alias –创建命令别名 1.shell环境:shell在shell会话中维护着大量的信息,这些信息称为shell环境 2.shell的基本数据类型? 1)shell变量:由 bash 存放的一很少数据. 2)环境变量:其他的所有数据 也存储了一些可编程数据,命名为别名和shell函数(涉及shell脚本) 一.检查环境变量 set命令可以显示 sh

linux基础——bash shell环境配置

想要用好bash shell,首先得搞清楚bash shell环境的配置,只有配置好了,我们用起来才会得心应手,要想配置好,必须了解清楚bash配置文件的类型,再根据实际需求做一些相应的添加或修改就可以了.一.bash的配置文件(一)按生效范围划分:全局配置.个人配置 1.全局配置:  /etc/profile  /etc/profile.d/*.sh  /etc/bashrc 2.个人配置:  ~/.bash_profile  ~/.bashrc (二)按功能划分:profiile类.bash

AIX 更改 shell 为 bash

bash是linux上默认的shell,可以使用tab补全,上下键切换历史命令等. 客户的服务器忽然更改成了AIX,telnet上去一看,晕,竟然默认的是ksh,用起来感觉很别扭,还是安装bash吧 安装过程如下: 1.下载bash的rpm安装包 2.传到AIX上后,直接用RPM解开: # rpm -ivh bash-3.2-1.aix5.2.ppc.rpm 如果不更改用户默认的shell,安装之后,直接输入 # bash 就可以了 如果要更改用户默认shell,请接着进行如下步骤 3.创建~/

Termux v0.38最新下载地址,手机上shell环境的瑞士军刀

android手机上的瑞士军刀,一种集成的shell环境.无需手机root,类似ubuntu的apt包管理机制,可以安装php,python,curl,git,openssh 等等众多工具. 如何安装 apt install php apt install python apt install git apt install curl apt install xxx 可惜的是国外的源被墙了,需要自己扶梯子,可以看下面视频演示,里面也有提到apt install 的方法. 点此观看演示视频 屏幕截

在Window平台是模拟Linux的Shell环境

在Linux平台模拟Linux的shell环境,可以通过一个软件实现:Cygwin(点击进入官网下载好即可),如下图(选择对应的版本进行下载): 安装: 1. 双击运行下载的安装包(选择从网络安装),如下图: 2. 一路next,选择Direct Connection 3. 下一步选择镜像站点,一般选择国内的镜像站点,如163镜像站就有cymwin.如下图(这里直接选择的第一个站点,速度很快):   4. 下载完之后,进行下一步,选择Current 5. 等待下载完之后,就安装完毕,可以进行使用