printenv –打印部分或所有的环境变量

set –设置 shell 选项

export —导出环境变量,让随后执行的程序知道。

alias –创建命令别名

1.shell环境:shell在shell会话中维护着大量的信息,这些信息称为shell环境

2.shell的基本数据类型?

1)shell变量:由 bash 存放的一很少数据。

2)环境变量:其他的所有数据,一些特殊的隐藏变量,他们被 shell 或者操作系统自身所引用,被称之为环境变量;

也存储了一些可编程数据,命名为别名和shell函数(涉及shell脚本)

一、检查环境变量

set命令可以显示 shell 和环境变量两者,而 printenv 只是显示环境变量。

1.因为环境变量内容列表相当长,所以最好把每个命令的输出结果管道到 less 命令:

xiaohui@ubuntu:~$ printenv | less  会打开一个新的文件显示所有的环境变量

less与more的区别:

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

2.printenv 命令也能够列出特定变量的数值:

xiaohui@ubuntu:~$ printenv USER
xiaohui

3.当使用没有带选项和参数的 set 命令时, shell 和环境变量二者都会显示,同时也会显示定义的 shell 函数。不同于 printenv 命令, set 命令的输出结果很礼貌地按照字母顺序排列:

xiaohui@ubuntu:~$ set | less

4.通过 echo 命令来查看一个变量的内容

xiaohui@ubuntu:~$ echo $HOME
/home/xiaohui

5.如果 shell 环境中的一个成员既不可用 set 命令也不可用 printenv 命令显示,则这个变量是别名。输入不带参数的 alias 命令来查看它们

xiaohui@ubuntu:~$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
…………

 二、如何建立shell环境?

当我们登录系统后,启动 bash 程序,并且会读取一系列称为启动文件的配置脚本,这些文件定义了默认的可供所有用户共享的 shell 环境。

然后是读取更多位于我们自己主目录中的启动文件,这些启动文件定义了用户个人的 shell 环境。

精确的启动顺序依赖于要运行的 shell 会话类型。有两种 shell 会话类型:一个是登录 shell 会话,另一个是非登录 shell 会话。

登录 shell 会话会提示用户输入用户名和密码;例如,我们启动一个虚拟控制台会话。当我们在 GUI 模式下运行终端会话时,非登录 shell 会话会出现

1.登录shell会读取一个或多个启动文件

/etc/profile          ~/.bash_profile        ~/.bash_login      ~/.profile

2.非登录shell会话会读取以下启动文件

/etc/bash.bashrc    ~/.bashrc

三、修改shell环境

根据启动文件所在的位置和他们所包含的内容,修改他们来定制我们自己的shell环境。

1.修改哪个文件?

添加目录倒你的path变量或是定义额外的环境变量,要把这些更改放置在.bash.profile文件中(Ubantu是放在.prfile)

其他的修改要放在.bashrc文件中

如果你你是系统管理员,需要为系统的所有用户修改默认设置,那么则限定你只对自己主目录下的文件进行修改

2.怎么修改文件内容?——编辑shell的启动文件,使用文本编辑器

(1)文本编辑器:为了编辑(例如修改)shell的启动文件,还有系统中大多数其他设置文件,我们使用文本编辑程序。文本编辑器是软件开发人员用来写代码,和程序管理员用来管理系统配置文件的重要工具。

(2)分类:1)图形化编辑器:GONME自带了gedit的编辑器

KDE自带了kedit kwrite kate

2)基于文本的编辑器:nano,vi,emacs

(3)使用文本编辑器

1)gedit

huiubantu@ubuntu:~$ gedit some_file   会打来gedit新窗口的图形化编辑器。并且加上想要编辑的文件some_file,如果文件存在则唤醒,不存在默认创建一个新文件

2)nano

首先,我们先创建文件.bashrc的备份文件,注意,扩展名为 .bak  .sav   .old   .prig的都是用来指示备份文件的流行方法

huiubantu@ubuntu:~$ cp .bashrc .bashrc.bak

启动nano编辑器

huiubantu@ubuntu:~$ nano .bashrc   会打开nano新窗口的文本编辑器。这个编辑器最上边是标头,中间是正在编辑的文件文本,下边是命令菜单,并且nano用Ctrl-o保存,用Ctrl-x关闭nano

然后在编辑区域,进行命令更改

#Change umask to make directory sharing easier     注意#是注释符
umask
#Ignore duplicates in command history and increase history size to lines
export HISTORY=ignoredups
export HISTZISE=
#Add some helpful aliases
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'

保存,关闭编辑器  Ctrl-o  Ctrl-x

注意!我们对.bashrc的修改不会生效,直到我们关闭终端会话,再重启一个新的会话!!这是激活我们的修改的必经之路

9. shell环境的更多相关文章

  1. windows python3.2 shell环境(python叫做解释器)

    [进入python的shell 环境:](python里称作命令解释器,windows叫做cmd,unix叫做shell) cmd  输入set path=%path%;e:\python2.7然后输 ...

  2. shell环境

    1 引言 一个进程运行在shell环境中,理解进程运行的环境是十分重要的.环境影响着进程的行为,利用环境提供的便利,可以极大地提高开发效率.本节深入讨论shell中与进程有关的环境问题,包括命令行参数 ...

  3. Cygwin 是一个用于 Windows 的类 UNIX shell 环境

    cygwin的安装使用   Cygwin 是一个用于 Windows 的类 UNIX shell 环境. 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性:以及 ...

  4. shell 环境变量的相关配置文件和配置方法

    shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...

  5. Linux编程 12 (默认shell环境变量, PATH变量重要讲解)

    一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash  shell支持的Bourne变量 Bo ...

  6. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  7. mutt+msmtp实现在shell环境中发送电子邮件

    作者:邓聪聪 为了自动化接收服务端的文件备份信息,利用mutt+msmtp在shell环境中发送电子邮件,轻松高效的完成运维工作. 下载msmtp wget http://downloads.sour ...

  8. shell环境改变引起的命令提示符改变

    1. 故障现象与背景 1.1 背景 开发早上找我说root环境变得异常,跟平时不太一样.其他用户没有改变,就root用户发生变化 1.2故障现象 root用户命令提示符 :➜ ~ 命令行上命令提示符发 ...

  9. bash shell & 环境变量

    root是没有~/.bashrc的,只. /etc/profile即可,/etc/profile和~/.bashrc的作用类似,只是作用域不同,都是写死的export,也有动态的脚本去设置命令和环境变 ...

随机推荐

  1. Python使用requirements.txt安装类库

    摘要:我们为何要应用requirements.txt呢? 首要应用目标: 任何 运用顺序 平常 须要设置装置 所需并 依附 一组类库去知足 事情请求 . 请求 文件 是 指定 战 一次性 装置 包 的 ...

  2. [原创]VB注册机独辟蹊径-----注册机也可以这样写

    近段时间接了个项目,是关于一个称重传感器的上位机系统,需要一机一码针对不同的客户机分别注册,第一次注册完后,下次打开后不必注册. 刚开始想用正规的注册机办法去完成,搜罗了半天,发现现在大部分的硬盘注册 ...

  3. FZU 2219 StarCraft(星际争霸)

    Description 题目描述 ZB loves playing StarCraft and he likes Zerg most! One day, when ZB was playing SC2 ...

  4. [转载] Tmux 速成教程:技巧和调整

    原文: http://blog.jobbole.com/87584/ 决定从 screen 转向 tmux 了, 非常喜欢 tmux 的窗格功能. 简介 有些开发者经常要使用终端控制台工作,导致最终打 ...

  5. php flush()刷新不能输出缓冲的原因分析

    在php程序编写中,flush()的使用率还是挺高的,它在网页表现即时信息效果时发挥了极为重要的作用,比如之前写的php实现限制文件下载速度的代码实例,flush()就起了举足轻重的作用,是进度条实现 ...

  6. Linux的ldconfig和ldd用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...

  7. 算法_栈与队列的Java链表实现

    链表是一个递归的数据结构,它或者为null,或者是指向一个结点的引用,该结点含有一个泛型的元素和指向另一个链表的引用.可以用一个内部类来定义节点的抽象数据类型: private class Node ...

  8. RPC的学习 & gprotobuf 和 thrift的比较

    参考 http://blog.csdn.net/pi9nc/article/details/17336663 集成libevent,google protobuf的RPC框架 RPC(Remote P ...

  9. arr.sort()排序方法

    <!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...

  10. Winform_ComBox三种赋值方式

    第一种方法: DataTable dt = new DataTable(); dt.Columns.Add( "name" ); dt.Columns.Add( "val ...