zoukankan      html  css  js  c++  java
  • Linux基础入门学习笔记之四

    环境变量与文件查找

    环境变量

    1. 变量

    所谓shell变量,就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等等数据类型。Shell中的变量也基本如此,有不同类型(但不用专门指定类型名),可以参与运算,有作用域限定。

    如何创建变量、如何给变量赋值、如何读取变量的值

    • declare命令创建变量
    • = 赋值运算数为变量赋值
    • echo和$读取变量的值

    变量名只能是英文字母,数字或者下划线,且不能以数字作为开头

    image

    1. 环境变量

    环境变量的作用域比自定义变量的作用域大。在Linux系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,处理创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。Shell程序也作为一个进程运行在操作系统之上,而我们在Shell中运行的大部分命令都将以Shell的子进程的方式运行。

    image

    三种环境变量:

    • 当前 Shell 进程私有用户自定义变量,只在当前 Shell 中有效。
    • Shell 本身内建的变量。
    • 从自定义变量导出的环境变量。

    三个命令:

    • set:显示当前shell所有环境变量
    • env:显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
    • export:显示从 Shell中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量
      关于环境变量,可以简单的理解成在当前进程的子进程是否有效,有效则为环境变量。习惯将环境变量名设为大写。
    1. 命令的查找路径与顺序

    在shell中通过环境变量PATH进行搜索,当我们在Shell中执行一个命令时,系统就会按照 PATH 中设定的路径按照顺序依次到目录中去查找,如果存在同名的命令,则执行先找到的那个。

    练习创建一个最简单的可执行 Shell 脚本和一个使用 C 语言创建的"hello world"程序

    本来教程中是用的vim编辑器,但不知道为什么我没办法退出vim编辑器,所以我用的gedit。

    image

    image

    如何做到想使用系统命令一样执行自己创建的脚本文件或者程序呢?那就要将命令所在路径添加到PATH环境变量了。

    1. 添加自定义路径到“PATH”环境变量

    PATH里面的路径是以:作为分割符,并且必须添加的是绝对路径。

    image

    但这样添加的路径,只是在当前Shell有效,一旦退出终端,再打开就又会失效。在每个用户的 home 目录中有一个Shell每次启动时会默认执行一个配置脚本,以及初始化环境,包括添加一些用户自定义环境变量等等。zsh的配置文件是.zshrc,相应 Bash 的配置文件为.bashrc。它们在etc下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。
    >>表示将标准输出以追加的方式重定向到一个文件中,>是以覆盖的方式重定向到一个文件中,使用的时候一定要注意分辨。在指定文件不存在的情况下都会创建新的文件。

    1. 修改和删除已有变量
    • 变量修改

    image

    • 变量删除

    使用unset命令删除一个环境变量

    1. 如何让环境变量立即生效

    用source命令(或者.)让环境变量立即生效

    搜索文件

    • whereis简单快速

    这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。

    • locate

    通过"/var/lib/mlocate/mlocate.db"数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行updatedb命令更新一次,所以有时候刚添加的文件,它可能会找不到。它可以用来查找指定目录下的不同文件类型。

    如果想只统计数目可以加上-c参数,-i参数可以忽略大小写进行查找,whereis 的-b,-m,-s同样可以是使用。

    • which

    which本身是 Shell 内建的一个命令,我们通常使用which来确定是否安装了某个指定的软件,因为它只从PATH环境变量指定的路径中去搜索命令

    • find

    在指定目录下搜索指定文件名的文件

    image

  • 相关阅读:
    转:Asp.net Mvc4默认权限详细(上)
    UITableViewCell点击不能push解决方法
    Sublime Text3学习参考集
    Mac搭建学习PHP环境
    Xcode里如何修改类的名字
    Xib中设置控件的圆角、边框效果
    MarkDown的使用
    iOS UItextView监听输入特定字符跳转页面选择选项返回
    创建podspec文件,为自己的项目添加pod支持
    iOS单例模式
  • 原文地址:https://www.cnblogs.com/clever-universe/p/6417219.html
Copyright © 2011-2022 走看看