一、环境变量

  • 1.变量

    • 变量,准确的说应该是shell变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值的一一对应的关系,可以通过表达式读取它的值赋值给其他变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等数据类型。shell中的变量也是基本如此,有不同的类型(但不用专门指定类型名),可以参与运算,有作用域限定。
      可以使用declare命令创建一个名为temp的变量
      declare temp
      使用=进行赋值操作
      temp = cdl
      读取变量的值,使用echo命令和符号(符号(符号(符号用于表示引用一个变量的值)
      echo $temp
    • 2.环境变量

      • 环境变量就是作用域比自定义变量要大,如shell的环境变量作用于自身和它的子进程。在所有的UNIX和类UNIX系统中,每个进程都有其各自的环境变量设置。关于环境变量,可以简单的理解为在当前进程的子进程是否有效,有效则为环境变量,否则不是。
    • 3.命令的查找路径与顺序
      • 在shell中输入一个命令,shell是怎么知道在哪去找到这个命令然后执行的呢?这是通过环境变量PATH来进行搜索的,熟悉windows的用户可能知道Windows中也有一个PATH的环境变量,这个环境变量中就保存了shell中执行的命令的搜索路径。
        查看PATH环境变量的内容:
        echo $PATH
      • 通过这一类目录下放的都是可执行文件,当我们在shell中执行一个命令时,系统就会按照PATH中设定的路径按照顺序依次到目录中去查找,如果存在同名的指令,则执行先找到的那个。
        创建一个shell脚本文件:
        vim hello_shell.sh
        在脚本文件中添加下面的内容:
#! /bin/bash
for((i=0;i<10;i++)); doecho "hello shell"
done
exit 0

为文件添加执行权限:
chmod 755 hello_shell.sh
执行脚本:
./hello_shell.sh
创建一个C语言程序:
vim hello_world.c
添加C文件:

#include <stdio.h>
int main(void){printf("hello word!\n");return 0;
}

使用gcc生成可执行文件:
gcc -o hello_world hello_world.c
gcc生成二进制文件默认具有可执行权限,无需修改。在cdl目录中创建mybin目录,将上述文件移动到其中:
mkdir mybin
mv hello_shell.sh hello_world mybin/
此时,可在mybin目录下运行刚刚创建的程序:
cd mybin
./hello_shell.sh
./hello_world

  • 4.添加自定义路径到"PATH"环境变量

    • 要在其他目录仍然运行创建的程序,需要添加自定义路径到PATH环境变量。PATH里面的路径以:作为分隔符,所以这样添加自定义的路径: PATH=$PATH:/home/cdl/mybin,此时可在其他目录执行创建的程序。cd ~ hello_shell.sh hello_world
    • 然而,上面的设置方法并没有彻底解决问题,因为PATH环境追加了一个路径,它只是在当前shell有效,一旦退出终端,再打开就会发现又失效了。可以每次启动shell时自动执行上面添加自定义路径到PATH的命令来解决这个问题。
    • 在每个用户的home目录中有一个shell每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等。zsh的配置文件是.zshrc,相应的Bash的配置脚本为.bashrc。它们在etc下还都有一个或多个全局的配置文件,不过一般只修改用户目录下的配置文件。可以简单的使用下面的指令直接添加内容到.bashrc中:
      echo “PATH=$PATH:/home/cdl/mybin” >> .bashrc
    • 上面的命令中>>表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的>表示是以覆盖的方式重定向到一个文件中,使用的时候一定要注意!在指定文件不存在的情况下,都会创建新的文件。
  • 5.删除已有的变量
    可以使用unset命令删除一个环境变量
    unset tmp
  • 6.如何让环境变量立即生效
    • 在上面我们在shell中修改了一个配置脚本之后(比如bash的配置文件home目录下的.bashrc),每次都要退出终端重新打开甚至重启主机之后其才能生效,很麻烦。可以使用source命令来让其立即生效,如:source .bashrc。source命令还有一个别名就是.,注意这与当前路径的那个点区分开,虽然形式一样,但作用与使用方式不一样,上面的命令如果替换成.的方式就是 . ./.bashrc

二、搜索文件(与搜索文件相关的命令常用的有whereis which find locate)

  • 1.whereis简单快速

    • 这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。如果想要直接获得更全面的搜索结果可以使用locate命令。whereis -m docker 查看docker帮助文件的地址
  • 2.locate快而全
    • 通过"/var/lib/mlocate/mlocate.db"数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行updatedb命令更新一次,所以有时候添加的文件,它可能会找不到,需要手动执行一次updatedb命令。如果想只统计数目可以加上参数-c,-i参数可以忽略大小写进行查找,whereis的-b -m -s同样可以使用。locate docker 查询和docker有关的文件
  • 3.which小而精
    • which本身是shell内建的一个命令,通常用which来确定是否安装了某个指定的软件,因为它只从PATH环境变量指定的路径中去搜索命令。which docker 查看docker是否安装
  • 4.find精而细
    • find应该是这几个命令中最强大的了,它不但可以通过文件类型,文件名进行查找而且可以根据文件的属性(如文件的时间戳、文件的权限)进行搜索。与时间相关的命令参数:

      列出home目录中,当天(24小时内)有改动的文件:
      find ~ -mtime 0
      列出用户home目录下比code文件夹新的文件:
      find ~ -newer /home/cdl/code

Linux中环境变量与文件查找相关推荐

  1. Linux下环境变量和文件查找

    一 可以使用 declare 命令创建一个变量名为 tmp 的变量:$ tmp=shiyanlou 读取变量的值,可以使用 echo 命令和 $ 符号($ 符号用于表示引用一个变量的值,初学者经常忘记 ...

  2. Linux中环境变量文件及配置

    一.环境变量文件介绍 转自:http://www.cnblogs.com/mengyan/archive/2012/09/04/2669894.html Linux中环境变量包括系统级和用户级,系统级 ...

  3. linux中d4B什么意思,Linux中环境变量文件及配置+++

    Linux中环境变量文件及配置 一.环境变量文件介绍 转自:://http://www.doczj.com/doc/63e2b4bd482fb4daa48d4b53.html/cscmaker/art ...

  4. Linux中环境变量的设置——setenv/export

    Linux中环境变量的设置--setenv/export 环境变量 境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统 ...

  5. 实训|第十一天学习一下linux中的进程,文件查找,文件压缩与IO重定向

    [root@localhost~]#序言 在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h...每天都要检查一下服务器,看看是否出现异常.那么今天我们就 ...

  6. linux 查看path文件,linux入门之环境变量与文件查找

    环境变量 分类 当前 Shell 进程私有用户自定义变量,如上面我们创建的 temp 变量,只在当前 Shell 中有效. Shell 本身内建的变量. 从自定义变量导出的环境变量. declare ...

  7. linux——环境变量与文件查找

    二.环境变量 变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理 ...

  8. linux环境变量与文件查找

    整理来自 https://www.shiyanlou.com/courses/running/60 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一 ...

  9. linux查找文件内容包含add的文件,Linux环境变量与文件查找教程

    本章我们将介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧可以高效地使用Linux. 一.环境变量 要解释环境变量,得先明白变量是什么,准确来说应该是Shell变量,所谓变量就是计算机中用 ...

最新文章

  1. 三星a5009Android6.0,三星A5009原版系统刷机包_三星A5009最新升级包线刷包和root
  2. tmux系统剪切板_实践中的tmux:与系统剪贴板集成
  3. linux----------CentOS的一些除了yum安装以外的基本操作命令。
  4. 给RadioButtonList这些加JS事件
  5. 面试官:一千万数据,怎么快速查询?
  6. 海思Hi3519A 进行4k60 h264编码帧率不足的问题
  7. 《ASP.NET Core 微服务实战》送书结果公告
  8. 浏览器自带的前进后退按钮禁用
  9. 02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面
  10. easyui不同的jsp页面之间混乱_JSP+SSM+Mysql实现的图书馆预约占座管理系统
  11. N天学习一个Linux命令之帮助命令:man
  12. MySQL令人咋舌的隐式转换
  13. 基于JAVA+Servlet+JSP+MYSQL的毕业生去向管理系统
  14. mysql with lock tables_mysql出现大量FLUSH TABLES WITH READ LOCK
  15. ②C语言,求数组里相同的位置并输出
  16. Elasticsearch多种方案数据迁移
  17. 服装企业二维码应用现状,如何建立二维码营销平台规则体系?
  18. 使用Google reCAPTCHA进行人机验证
  19. JDBC数据库连接测试工具
  20. 52ypay comsubmit php,Hack易支付平台 - 一站式免签约支付方案-Hack易支付

热门文章

  1. 服务器返回的常见的http状态码
  2. Mock session,cookie,querystring in ASB.NET MVC
  3. mysql基础语句整理
  4. 空空排错日志:OCS错误日志14501等解决办法
  5. DevTools 实现原理与性能分析实战
  6. 一文详解 API 设计最佳实践
  7. 19 条 MySQL 技巧,效率至少提高 3倍!
  8. 你最讨厌的同事来自哪家公司?这家公司被上千个程序员怒怼!
  9. 朋友问我学习高并发需不需要阅读源码,我是这样分析的!!
  10. 《Java EE企业级应用开发》,《分布式爬虫》等书包邮送50本!企业开发利器!...