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的环境已经设置很好了,不需要附加一些修改,否则产生不必要的麻烦。这里只是给大家展示以下终端是如何进行设置的。
  • 相关阅读:
    KnockoutJS 3.X API 第五章 高级应用(4) 自定义处理逻辑
    KnockoutJS 3.X API 第五章 高级应用(3) 虚拟元素绑定
    KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定
    KnockoutJS 3.X API 第五章 高级应用(1) 创建自定义绑定
    KnockoutJS 3.X API 第四章(14) 绑定语法细节
    KnockoutJS 3.X API 第四章(13) template绑定
    KnockoutJS 3.X API 第四章 表单绑定(12) selectedOptions、uniqueName绑定
    KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
    KnockoutJS 3.X API 第四章 表单绑定(10) textInput、hasFocus、checked绑定
    KnockoutJS 3.X API 第四章 表单绑定(9) value绑定
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2013685.html
Copyright © 2011-2022 走看看