9. shell环境
• 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环境的更多相关文章
- windows python3.2 shell环境(python叫做解释器)
[进入python的shell 环境:](python里称作命令解释器,windows叫做cmd,unix叫做shell) cmd 输入set path=%path%;e:\python2.7然后输 ...
- shell环境
1 引言 一个进程运行在shell环境中,理解进程运行的环境是十分重要的.环境影响着进程的行为,利用环境提供的便利,可以极大地提高开发效率.本节深入讨论shell中与进程有关的环境问题,包括命令行参数 ...
- Cygwin 是一个用于 Windows 的类 UNIX shell 环境
cygwin的安装使用 Cygwin 是一个用于 Windows 的类 UNIX shell 环境. 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性:以及 ...
- shell 环境变量的相关配置文件和配置方法
shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...
- Linux编程 12 (默认shell环境变量, PATH变量重要讲解)
一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash shell支持的Bourne变量 Bo ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- mutt+msmtp实现在shell环境中发送电子邮件
作者:邓聪聪 为了自动化接收服务端的文件备份信息,利用mutt+msmtp在shell环境中发送电子邮件,轻松高效的完成运维工作. 下载msmtp wget http://downloads.sour ...
- shell环境改变引起的命令提示符改变
1. 故障现象与背景 1.1 背景 开发早上找我说root环境变得异常,跟平时不太一样.其他用户没有改变,就root用户发生变化 1.2故障现象 root用户命令提示符 :➜ ~ 命令行上命令提示符发 ...
- bash shell & 环境变量
root是没有~/.bashrc的,只. /etc/profile即可,/etc/profile和~/.bashrc的作用类似,只是作用域不同,都是写死的export,也有动态的脚本去设置命令和环境变 ...
随机推荐
- Oracle数据库名、实例名、数据库域名、数据库服务名、全局数据库名的辨析
我也是看着各位大婶的博客然后一点点的来学习,不求全会,留个印象 数据库名 数据库名就是一个数据库的标识,用参数DB_NAME表示. 如果一台机器上安装了多个数据库,那么每一个数据库都有一个数据库名. ...
- Android——android必看 各个控件属性(网上看到的文字,觉得挺好的,珍藏了)
属性 值 说明 Android:orientation horizontal/vertical 设置布局水平还是垂直,默认是垂直 android:checked true/false 标记默认选中,如 ...
- Binding的源与路径
1.把控件作为Binding的源 例子:拖动Slider,输入框中的值也会跟着改变,或在输入框中输入数值,滑动条也会自动移动 <Window x:Class="把控件作为Binding ...
- E2 2014.07.01 更新日志
增加功能 完善功能 电话报修单,添加可以发短信通知客户和技术员选项 商品历程分析,增加按商品分类条件统计 修件库,增加可以按维修商条件过滤,以方便查询某维修商的返修件 维修中,备件转销售时,自动读 ...
- iOS - OC iOS 开发体系
1.iOS 开发技术体系 iOS 开发技术体系图: 层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics .OpenGl ES.Core Animation ...
- LCD控制器与驱动器
这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的.前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍 ...
- 【Todo】【读书笔记】Java多线程编程指南-设计模式篇
下了这本书<Java多线程编程指南-设计模式篇>, 还有另一本<JAVA多线程设计模式>,据说内容有重复,结合着看.
- JavaScript的事件对象_概述/this
JavaScript 事件的一个重要方面是它们拥有一些相对一致的特点,可以给你的开发提供更多的强大功能. 最方便和强大的就是事件对象,他们可以帮你处理鼠标事件和键盘敲击方面的情况,此外还可以修改一般事 ...
- 论APP测试中黑盒测试方案的重要性?
运筹帷幄之中,决胜千里之外.古人足不出户,通过正确的部署就能决定千里之外战争的胜利!而于测试人员而言,制定正确的测试方案,就是日后测试就是是否顺利的决定性因素. 在整个测试过程中,对测试人员.资源以及 ...
- 测序原理 - PacBio技术资料
手头有一套完整的PacBio技术资料,会慢慢的总结到博客上. 写在前面:PacBio公司主要有两个测序平台一个是RS,一个是最新的Sequel,下面如果没有指明则是在讲RS平台. SMRT测序技术总览 ...