|
|
51CTO旗下网站
|
|
移动端

如何管理你的Linux环境变量

Linux 用户环境变量可以帮助你找到你需要的命令,无须了解系统如何配置的细节而完成大量工作。而这些设置来自哪里和如何被修改它们是另一个话题。

作者:Sandra Henry-stocker来源:Linux中国|2019-05-30 10:20

 

Linux 用户环境变量可以帮助你找到你需要的命令,无须了解系统如何配置的细节而完成大量工作。而这些设置来自哪里和如何被修改它们是另一个话题。

在 Linux 系统上的用户账户配置以多种方法简化了系统的使用。你可以运行命令,而不需要知道它们的位置。你可以重新使用先前运行的命令,而不用发愁系统是如何追踪到它们的。你可以查看你的电子邮件,查看手册页,并容易地回到你的家目录,而不用管你在文件系统中身在何方。并且,当需要的时候,你可以调整你的账户设置,以便其更符合你喜欢的方式。

Linux 环境设置来自一系列的文件:一些是系统范围(意味着它们影响所有用户账户),一些是处于你的家目录中的配置文件里。系统范围的设置在你登录时生效,而本地设置在其后生效,所以,你在你账户中作出的更改将覆盖系统范围设置。对于 bash 用户,这些文件包含这些系统文件:

  1. /etc/environment
  2. /etc/bash.bashrc
  3. /etc/profile

以及一些本地文件:

  1. ~/.bashrc
  2. ~/.profile # 如果有 ~/.bash_profile ~/.bash_login 就不会读此文件
  3. ~/.bash_profile
  4. ~/.bash_login

你可以修改本地存在的四个文件的任何一个,因为它们处于你的家目录,并且它们是属于你的。

查看你的 Linux 环境设置

为查看你的环境设置,使用 env 命令。你的输出将可能与这相似:

  1. $ env
  2. LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;
  3. 01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:
  4. *.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:
  5. *.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:
  6. *.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;
  7. 31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:
  8. *.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:
  9. *.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:
  10. *.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:
  11. *.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:
  12. *.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:
  13. *.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:
  14. *.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:
  15. *.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:
  16. *.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:
  17. *.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:
  18. *.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:
  19. *.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.spf=00;36:
  20. SSH_CONNECTION=192.168.0.21 34975 192.168.0.11 22
  21. LESSCLOSE=/usr/bin/lesspipe %s %s
  22. LANG=en_US.UTF-8
  23. OLDPWD=/home/shs
  24. XDG_SESSION_ID=2253
  25. USER=shs
  26. PWD=/home/shs
  27. HOME=/home/shs
  28. SSH_CLIENT=192.168.0.21 34975 22
  29. XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
  30. SSH_TTY=/dev/pts/0
  31. MAIL=/var/mail/shs
  32. TERM=xterm
  33. SHELL=/bin/bash
  34. SHLVL=1
  35. LOGNAME=shs
  36. DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
  37. XDG_RUNTIME_DIR=/run/user/1000
  38. PATH=/home/shs/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
  39. LESSOPEN=| /usr/bin/lesspipe %s
  40. _=/usr/bin/env

虽然你可能会看到大量的输出,上面显示的***大部分用于在命令行上使用颜色标识各种文件类型。当你看到类似 *.tar=01;31: 这样的东西,这告诉你 tar 文件将以红色显示在文件列表中,然而 *.jpg=01;35: 告诉你 jpg 文件将以紫色显现出来。这些颜色旨在使它易于从一个文件列表中分辨出某些文件。你可以在《在 Linux 命令行中自定义你的颜色》处学习更多关于这些颜色的定义,和如何自定义它们。

当你更喜欢一种不加装饰的显示时,一种关闭颜色显示的简单方法是使用如下命令:

  1. $ ls -l --color=never

这个命令可以简单地转换到一个别名:

  1. $ alias ll2='ls -l --color=never'

你也可以使用 echo 命令来单独地显现某个设置。在这个命令中,我们显示在历史缓存区中将被记忆命令的数量:

  1. $ echo $HISTSIZE
  2. 1000

如果你已经移动到某个位置,你在文件系统中的***位置会被记在这里:

  1. PWD=/home/shs
  2. OLDPWD=/tmp

作出更改

你可以使用一个像这样的命令更改环境设置,但是,如果你希望保持这个设置,在你的 ~/.bashrc 文件中添加一行代码,例如 HISTSIZE=1234

  1. $ export HISTSIZE=1234

“export” 一个变量的本意是什么

导出一个环境变量可使设置用于你的 shell 和可能的子 shell。默认情况下,用户定义的变量是本地的,并不被导出到新的进程,例如,子 shell 和脚本。export 命令使得环境变量可用在子进程中发挥功用。

添加和移除变量

你可以很容易地在命令行和子 shell 上创建新的变量,并使它们可用。然而,当你登出并再次回来时这些变量将消失,除非你也将它们添加到 ~/.bashrc 或一个类似的文件中。

  1. $ export MSG="Hello, World!"

如果你需要,你可以使用 unset 命令来消除一个变量:

  1. $ unset MSG

如果变量是局部定义的,你可以通过加载你的启动文件来简单地将其设置回来。例如:

  1. $ echo $MSG
  2. Hello, World!
  3. $ unset $MSG
  4. $ echo $MSG
  5.  
  6. $ . ~/.bashrc
  7. $ echo $MSG
  8. Hello, World!

小结

用户账户是用一组恰当的启动文件设立的,创建了一个有用的用户环境,而个人用户和系统管理员都可以通过编辑他们的个人设置文件(对于用户)或很多来自设置起源的文件(对于系统管理员)来更改默认设置。

【编辑推荐】

  1. 一篇文章搞懂Linux运行级别,恭喜你!离大佬又近了一步
  2. 越来越像Linux了!Windows系统5月更新让Python开箱即用
  3. 如何在Linux上创建和管理计划任务?
  4. 开源社区慌不慌?又一个Linux发行版宣告死亡
  5. 分享10大白帽黑客专用的 Linux 操作系统
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

超级网管员——网络服务

本书全面介绍了Windows Server 2003 R2中最常用的各种服务,包括域名服务、动态IP地址服务、Windows名称服务、活动目录服务、Web服务、FTP...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客