什么是 L INUX S HELL 环境? shell在会话中 会 保存着大量信息 ,而 这些信息 就是 shell环境。 L INNX 命令程序通过获取S HELL 环境中的数据(此处的数据通常称为环境变量)来输出本机相应的配置数据。
L INUX 环境变量
L inux shell环境中存储了两种基本类型的数据 :环境变量和 shell变量。 当然, 除了变 量, shell也存储了一些可编程的数据,即别名和shell 函数。
如何查看环境变量呢?
我们可以用 bash命令set,或者 使用 printenv 命令 程序来查看环境变量。
它们的区别是: set 命令 不仅 显示shell 数据,而且可以显示 环境变量 列表 ,而printenv 命令仅仅 显示环境变量 列表 。
鉴于 环境变量列表比较长, 我们可以将 每个命令 的输出通过管道符传递给 less 来输出列表,例如:
/ / 执行命令
[ test @ linux probe ~]$ printenv | less
/ / 输出内容:环境变量及其数值的列表
KDE_MULTIHEAD=false
SSH_AGENT_PID=6666
HOSTNAME= linuxprobe
GPG_AGENT_INFO=/tmp/gpg-PdOt7g/S.gpg-agent:6689:1
SHELL=/bin/bash
TERM=xterm
XDG_MENU_PREFIX=kde-
HISTSIZE=1000
XDG_SESSION_COOKIE=6d7b05c65846c3eaf3101b0046bd2b00-1208521990.996705
-1177056199
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/me/.gtkrc-2.0:/home/me/.kde/sh
are/config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/home/me/.gtkrc:/home/me/.kde/share/confi
g/gtkrc
GS_LIB=/home/me/.fonts
WINDOWID=29360136
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
KDE_FULL_SESSION=true
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01
:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:\*.cmd=00;32:\*.exe:
/ /printenv 命令也 可输出 特定变量 - USER的数值:
[ test @linux probe ~]$ printenv USER
t est
变量 |
内容 |
DISPLAY |
如果你正在运行图形界面环境,那么这个变量就是你显示器的名字。通常,它是” :0”,意思是由X 产生的第一个显示 器。 |
EDITOR |
文本编辑器的名字 |
SHELL |
shell 程序的名字 |
HOME |
用户家目录 |
LANG |
定义了字符集以及语言编码方式 |
OLD_PWD |
先前的工作目录 |
PAGER |
页输出程序的名字。这经常设置为 /usr/bin/less |
PATH |
由冒号分开的目录列表,当你输入可执行程序名后,会搜索这个目录列表。 |
PS1 |
Prompt String 1. 这个定义了你的shell 提示符的内容。随 后我们可以看到,这个变量内容可以全面地定制 |
PWD |
当前工作目录 |
TERM |
终端类型名。类 Unix 的系统支持许多终端协议;这个变量 设置你的终端仿真器所用的协议。 |
TZ |
指定你所在的时区。大多数类 Unix 的系统按照协调时间时(UTC) 来维护计算机内部的时钟,然后应用一个由这个变 量指定的偏差来显示本地时间。 |
USER |
你的用户名 |
建立L INUX shell 环境
每当我们登录系统后, bash 程序 就会自动 启动,且会读取一系列配置脚本 ,这些配置脚本被称为 启动文件 。 这些 启动 文件定 义了可供所有用户共享的默认 shell 环境。
那么 位于家目录中的启动文 件,定义了用户个人的 shell 环境。
确切的启动顺序 取决 于shell 会话类 型模式。有两种 shell 会话类型 模式 :一个是登录shell 会话 模式 ,另一个是非登录shell 会话 模式 。
登录 shell 会话 模式中 会提示用户输入用户名和密码 ;非登录 shell 会话 模式 通常在GUI下启动终端会话时出现。
文件 |
内容 |
/etc/profile |
针对所有用户的全局配置脚本 |
˜ /.bash_profile |
用户个人的启动文件。可用来修改全局配置脚本中的设置 |
˜ /.bash_login |
如果文件˜ /.bash_profile 没有找到,bash 会尝试读取这个 脚本 |
˜ /.profile |
如果文件˜ /.bash_profile 或文件˜/.bash_login 都没有找 到, bash 会试图读取这个文件。 |
非登录 shell 会话模式下启动文件内容:
文件 |
内容 |
/etc/bash.bashrc |
针对所有用户的全局配置文件 |
˜ /.bashrc |
用户个人的启动文件。可用来修改全局配置脚本中的设置 |
修改linux shell环境
依据通常的操作思路,通过添加目录到 PATH 变量或定义 新 的环境变量, 再 把这些更改 存放至 .bash_profile 文件中 ;那么对于其它的更改呢,需要存放至 .bashrc 文件中。
除了 系统管理员 具将 系统中的所有 用户修改默认设置的权限外,其他用户只能限定对个人家目录下的文件进行修改。
我们通过使用一个叫做文本编辑器的程序来编辑(或读、写) shell 的启动文件以及其它配置文件 。文本编辑器是一个类似于文字处理器的程序,允许使用移动光标在屏幕上编辑。但不同之处在于文本编辑器不仅支持纯文本,而且常包含为便于写程序而设计的特性。由此可见,文本编辑器是开发人员用来写代码,以及系统管理员用来管理控制系统的配置文件的重要工具之一。
文本编辑器通常分为两种基本类型:图形化的和非图形化的(基于文本)编辑器。
一些典型的图形化编辑器有 GNOME 和KDE 。 GNOME 编辑器 自带了gedit 的编辑器, 它 通常在GNOME 菜单中称为“文本编辑器”。KDE自带了三种编辑器,分别是kedit,kwrite,kate。
那么基于文本的编辑器有 nano、vi 和emacs。
nano 编辑器是一个简单易用的编辑器。vi 编 辑器(目前已 被vim ( “Vi IMproved” 的简写 )替代 )是类Unix 操作系 统的传统编辑器。 emacs 编辑器 属于庞大的、多用途的,可做任何操作的编程环境。
无论哪种类型的文本编辑器都可以在命令行中输入编辑器的名字及想要编辑的文件名,执行文本编辑操作。在这篇文章中,我们学到了用文本编辑器来编辑配置文件的基本技巧。
这篇文章主要讨论了linux S HELL 环境的一些基础知识及基本的操作技巧。在编写这篇文章过程中我还参考了 《 Linux就该这么学 (第2版) 》 这本书, 基于红帽8编写, 内容很贴近实践,很有理论指导实践价值的一本书籍。