• shell编程之系统环境变量2


    本课程是《Tony老师聊shell——变量》课程的延续,主要介绍Linux shell编程基础中的运算符。包括declare命令、数值运算方法和变量测试。首先在declare命令中介绍了数值型和数组类型的声明,然后介绍了运算符的详细使用,最后对不同场景下的变量进行了测试。

    接下来分析下系统常见的环境变量

    点后面加上空格+配置文件等价于source 配置文件

    常见的系统环境变量的配置

     

    /bin/ :   存放系统命令的目录,普通用户和超级用户都可以执行. 不过放在/bin下的命令在单用户模式下也可以执行 . 

    /sbin/:  保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设置,但是有些命令可以允许普通用户查看.

    /usr/bin/: 存放系统命令的目录,普通用户和超级用户都可以执行.这些命令和系统无关,在单用户模式下不能执行.

    /usr/sbin/:  存放根文件系统不必要的系统管理命令,例如多数服务程序.只有超级用户可以使用.

    /boot/:  系统启动目录,保存系统启动相关文件.如内核文件和启动引导程序.

    /dev/:  设备文件保存位置.

    /etc/:  配置文件保存位置.系统内所有采用默认安装(rpm安装)的服务的配置文件全部都保存在这个目录当中.如用户的账号和密码,服务的启动脚本.常用服务的配置文件等.

    /home/:  普通用户的家目录.建立每个用户时,每个用户要有一个默认的登录位置,这个位置就是这个用户的家目录.所有普通用户的家目录就是在/home下建立一个和用户名相同的目录.如user1的家目录就是/home/user1

    /lib/    系统调用的函数库保存位置

    /lost+found/   当系统意外崩溃或意外关机,而产生一些文件碎片放在这里.当系统启动的过程中fsck工具会检查这里,并修复已损坏的文件系统.这个目录只在每个分区中出现,例如/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是/boot分区的备份恢复目录.

    /media/   挂载目录,系统建议是用来挂载媒体设备的,例如软盘和光盘.

    /mnt/    挂载目录,早期linux中只有这一个挂载目录,并没有细分,现在这个目录系统建议挂载额外设备,例如U盘,移动硬盘和其他操作系统的分区

    /misc/   挂载目录. 系统建议用来挂载NFS服务的共享目录.

    /opt/   第三方安装的软件保存位置. 这个目录就是放置和安装其他软件的位置

    /proc/   虚拟文件系统,该目录中的数据并不保存到硬盘当中,而是保存到内存当中. 主要保存系统的内核,进程.外部设备状态和网络状态灯.如/proc/cpuinfo 是保存cpu信息的,/proc/devices是保存设备驱动的列表的,/proc/filesystems是保存文件系统列表的, /proc/net是保存网络协议信息的

    /sys/  虚拟文件系统,和/proc目录相似,都是保存在内存当中的,主要是保存于内核相关信息的.

    /root/   超级用户的家目录.普通用户家目录在"/home"下,超级用户家目录直接在 / 下.

    /srv/   服务数据目录.一些系统服务启动之后,可以在这个目录中保存所需要的数据

    /tmp/   临时目录.系统存在临时文件的目录. 该目录下所有用户都可以访问和写入,建议此目录中不能存放重要数据,最好每次开机都可以把该目录清空

    /usr/   系统软件资源目录."unix softwre resource"的缩写,存在系统软件资源的目录.系统中安装的软件大多数保存在这里.

    /var/   动态数据保存位置.主要保存缓存,日志已经软件运行所产生的文件

    Bash_profile和.bashrc存在在家目录下,~表示家目录

    [root@localhost home]# cd ~

    [root@localhost ~]# pwd

    /root

    [root@localhost ~]#

    修改家目录下的配置文件,只对当前用户有效,修改/etc目录下的文件对所有的目录都有效

     Profile 、profile和bashrc是存在/etc目录下。

    正常的登录流程:输入用户名和密码

    加载顺序:第一条线:/etc/profile ->/etc/profile.d/*sh/->

    第二条线:/etc/profile->~/.bash_profile->~/.bashrc

    如果是非正常登录,不输入用户名和密码,例如在root用户下使用su切换到普通用户,不需要输入用户名和密码,加载的顺序如下

    /etc/bashrc->/etc/profile.d/*.sh->/etc/profile.d/lang.sh

    Jdk的环境变量配置文件就在这里执行的:

    #java environment
    export JAVAHOME=/usr/local/jdk/jdk1.7.0_80
    export CLASSPATH=.:${JAVAHOME}/jre/lib/rt.jar:${JAVAHOME}/lib/dt.jar:${JAVAHOME}/lib/tools.jar
    export PATH=$PATH:${JAVAHOME}/bin

    第一把JAVAHOME声明为系统环境变量

    第二把CLASSPATH声明为环境变量

    第三:把${JAVAHOME}/bin添加到系统环境变量中,$PATH:${JAVAHOME}/bin表示把把${JAVAHOME}/bin叠加到系统环境变量中,环境变量以:分隔符进行分割

    变量的叠加

    [root@localhost ~]# x=123

    [root@localhost ~]# x="$x"456

    [root@localhost ~]# echo $x

    123456

    [root@localhost ~]#

    PATH变量是在/etc/profile文件中定义和声明的

    case ":${PATH}:" in
            *:"$1":*)
                ;;
            *)
                if [ "$2" = "after" ] ; then
                    PATH=$PATH:$1
                else
                    PATH=$1:$PATH
                fi
    esac
    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
  • 相关阅读:
    禁止google浏览器强制跳转为https
    遍历打印文件目录结构
    添加忽略文件
    部署git服务器
    Location, History, Screen, Navigator对象
    Window 对象
    回调函数,setTimeout,Promise
    闭包
    this
    函数内部运作机制—上下文
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/9358431.html
Copyright © 2020-2023  润新知