zoukankan      html  css  js  c++  java
  • 8. Linux重要的环境变量

    1.Linux 系统执行命令的4个步骤  

      第 1 步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行。
      第 2 步:Linux 系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。
      可以用alias 命令来创建一个属于自己的命令别名,格式为“alias 别名=命令”。若要取消一个命令别名,则是用unalias 命令,格式为“unalias 别名”。
      举例:使用rm 命令删除文件时,Linux 系统都会要求我们再确认是否执行删除操作,其实这就是Linux 系统为了防止用户误删除文件而特意设置的rm 别名命令,接下来我们把它取消掉:  

    [root@Centos test]# ll
    total 12
    -rw-r--r--. 1 root root 122 Aug  4 16:58 a.txt
    -rw-r--r--. 1 root root  53 Aug  5 16:00 error.txt
    -rw-r--r--. 1 root root  43 Aug  5 15:50 readme.txt
    [root@Centos test]# 
    [root@Centos test]# rm readme.txt 
    rm: remove regular file ‘readme.txt’? y
    [root@Centos test]# 
    [root@Centos test]# alias rm
    alias rm='rm -i'
    [root@Centos test]# unalias rm
    [root@Centos test]# 
    [root@Centos test]# rm error.txt 
    [root@Centos test]# ll
    total 4
    -rw-r--r--. 1 root root 122 Aug  4 16:58 a.txt

      第 3 步:Bash 解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4 继续处理。可以使用“type 命令名称”来判断用户输入的命令是内部命令还是外部命令。

      第 4 步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash 解释器待执行的命令可能存放的位置,然后Bash 解释器就会乖乖地在这些位置中逐个查找。PATH 是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash 解释器对Linux 命令的查找。 

    [root@Centos ~]# echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin 
    [root@
    Centos ~]# PATH=$PATH:/root/bin /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin

      这里有比较经典的问题:“为什么不能将当前目录(.)添加到PATH 中呢? ” 原因是,尽管可以将当前目录(.)添加到PATH 变量中,从而在某些情况下可以让用户免去输入命令所在路径的麻烦。但是,如果黑客在比较常用的公共目录/tmp 中存放了一个与ls 或cd 命令同名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那么就极有可能中招了。所以,作为一名态度谨慎、有经验的运维人员,在接手了一台Linux 系统后一定会在执行命令前先检查PATH 变量中是否有可疑的目录

      最重要的10 个环境变量

        

      Linux 作为一个多用户多任务的操作系统,能够为每个用户提供独立的、合适的工作运行环境,因此,一个相同的变量会因为用户身份的不同而具有不同的值。

      举例:查看HOME 变量在不同用户身份下都有哪些值  

    [root@Centos test]# echo $HOME
    /root
    [root@Centos test]# su - centos
    Last login: Thu Jul 30 02:21:51 CST 2020 on :0
    [centos@Centos ~]$ echo $HOME
    /home/centos

      实变量是由固定的变量名与用户或系统设置的变量值两部分组成的,我们完全可以自行创建变量,来满足工作需求。

      举例:  

    [root@Centos test]# mkdir work
    [root@Centos test]# WORKDIR=/root/test/work
    [root@Centos test]# cd $WORKDIR
    [root@Centos work]# pwd
    /root/test/work  

      但是,这样的变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用。如果工作需要,可以使用export 命令将其提升为全局变量,这样其他用户也就可以使用它了:   

    [root@Centos workdir]# su centos
    [centos@Centos ~]$ cd $WORKDIR
    [centos@Centos ~]$ pwd
    /home/centos
    [centos@Centos ~]$ exit
    logout
    [root@Centos work]# export WORKDIR
    [root@Centos workdir]# su centos
    [centos@Centos work]$ cd $WORKDIR
    bash: cd: /root/test/work: Permission denied
    [centos@Centos work]$ cd /root/test/work/
    bash: cd: /root/test/work/: Permission denied
  • 相关阅读:
    VUE项目开发流程
    vue-导入element-ui
    微信小程序开发-踩坑
    python-编码问题
    python-导入自定义模块
    maven安装配置
    npm修改源
    gitlab使用指南
    Wox使用指南
    Linux拷贝文件夹
  • 原文地址:https://www.cnblogs.com/xinghen1216/p/13442027.html
Copyright © 2011-2022 走看看