zoukankan      html  css  js  c++  java
  • linux环境变量的系统设置

    下面列举相关文件
    /etc/sysconfig/i18n
    1. $ cat /etc/sysconfig/i18n
    2. LANG="en_US.UTF-8"
    3. SYSFONT="latarcyrheb-sun16"
    复制代码
    我的是英文环境,所以整体语系是en_US.UTF-8,可以在修改相关的环境变量进行设定。
    有人会纳闷?为什么会是i18n呢?internationalization,不过这个单词太长啦。所以把中间18个单词用18来代替了。

    /etc/profile
    这个文件比较有统一性。几乎所有版本的*NIX都会有。同时对所有的用户都有效。里面设置了一些比较重要的环境变量。PATH,HOSTNAME,UID 之类的。PAT H定位包含可执行文件,库文件及一般文本文件的目录位置,便于用户快速访问。有了前面的十二篇的基础,相信/etc/profile里面的简单脚本难不倒你。同时/etc/profile.d目录和文件/etc/inputrc也是由/etc/profile规划出来的。

    /etc/bashrc
    这个文件里面有一个比较重要的就是PS1环境变量。决定命令提示符的显示方式。

    /etc/profile.d/*.sh
    这是一个目录。针对bash以及C-shell规范了一些数据。可以自行设计一些具有*.sh的文件名来书写系统的设置值。

    环境变量的个人设置:
    ~/.bash_profile ~/.bash_login ~/.profile
    这三个文件只需要一个即可。一般默认是~/.bahs_profile。之所有有那么多的文件,是因为其他shell用户转过来的习惯。
    bash启动时(其他的shell不清楚),依次读取的顺序是~/.bash_profile,~/.bash_login,~/.profile

    ~/.bashrc
    这个是最个性化的设置文件。shell登录时候,最后读取的。每次执行shell脚本的时候都会读取这个文件,所以是最全面,最新的。而刚刚那个文件~/.bash_profile只是在登录的时候才读取一次的。在我的文件中重新设置了一个更加好看的命令提示符。PS1
    1. export PS1='\[\e[01;32m\][\u@\[\e[01;33m\]\h \[\e[01;34m\]\W] `[[ -d .git ]] && echo -n -e "\[\e[01;33m\](branch:$(git branch | sed -e "/^ /d" -e "s/* \(.*\)/\1/"))\[\e[01;34m\]"`\$ \[\e[00m\]'
    复制代码
    ~/.bash_history
    每次登录bash后,bash会先读取这个文件,将所有的历史命令读入内存。和HISTSIZE环境变量的设置值有关系。

    ~/.bash_logout
    注销bash后,系统会给你干的事情。

    对于刚才的几个文件我们通常在改变之后用source命令或者.重新读取一遍。

    再谈谈登录shell和非登录shell
    登录shell指的是当用户登录linux系统时,所取得的那个shell,当登录以后,再去执行其他的shell,其他的shell就是非登录shell了。
    最常见的一种情况就是在X Window下,启动终端,那些shell都是非登录shell
    还有一种情况是以一个用户登录有,使用命令bash切换到一个新的环境,这个也是非登录shell了。
    把握好登录这两个字就可以了。
    还有它们读取文件的区别。
    登录shell会读取~/.bash_profile和~/.bashrc两个文件
    非登录shell仅仅是读取~/.bashrc文件

    stty用法
    s t t y用于设置终端特性。要查询现在的s t t y选项,使用stty -a。
    1. $ stty -a
    2. speed 38400 baud; rows 24; columns 80; line = 0;
    3. intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
    4. swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
    5. lnext = ^V; flush = ^O; min = 1; time = 0;
    6. -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
    7. -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
    8. -iuclc ixany imaxbel iutf8
    9. opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    10. isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
    11. echoctl echoke
    复制代码
    上面中^C表示Ctrl+C的意思。其他的依次类推。下面列举几个参数代表的含义。更多的请参考man stty
    eof:End Of File 文件结束的意思
    erase: 向后删除字符
    kill: 删除在当前命令行上的所有文字
    quit: 给当前正在执行的进程发送一个quit信号
    stop: 停止当前屏幕的输出
    这些设置值,和我们日常用的Ctrl+D,ctrl+U等操作相关。一般情况下没有必要改动。
    假如想要用ctrl+H进行字符从删除,可以这么设置
    # stty erase ^H

    除了stty,bash还有自己的终端设置set,可以用来设置整个命令的输入输出的环境。
    1. # echo $-
    2. # 显示set的所有设置
    3. # set -x
    4. # echo $HOME
    5. # 要输出的命令都会屏幕上显示,前面会多出一个+符号来
    复制代码
    关于set的更多设置,更多地是写入了/etc/inputrc文件当中
    最后不建议修改tty的环境设置,因为bash的环境已经设置很好了,不需要附加一些修改,否则产生不必要的麻烦。这里只是给大家展示以下终端是如何进行设置的。
  • 相关阅读:
    Ruby向Java发起挑战,红色风暴来了吗?
    学习语义网的好书
    Joel给计算机系学生们七条免费的建议
    ruby rails: 一个高开发效率的web开发框架
    推荐:《真正的执行》
    每个java程序员都应该看看Jakarta Commons
    上海IT俱乐部论坛开通了!
    重构的三个层次
    一些蔡志忠先生的漫画书!
    pythonchanllenge: 解决迷题,非常有趣的学习python的方式
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2013685.html
Copyright © 2011-2022 走看看