Linux基础入门--实验5(环境变量与文件查找)

环境变量

变量准确的说应该是 Shell 变量.
在这里插入图片描述
关于哪些变量是环境变量,可以简单地理解成在当前进程的子进程有效则为环境变量,否则不是。Shell 中运行的大部分命令都将以 Shell 的子进程的方式运行。export将一个shell本地变量提升为当前shell进程的环境变量,从而被子进程自动继承。(关闭 shell 时失效, 永久生效需要修改配置文件, 对所有用户生效可修改/etc下的配置文件, 对当前用户有效可修改用户目录下的.profile文件)
在这里插入图片描述

命令的查找路径和顺序

我们在 Shell 中输入一个命令,Shell 是怎么知道去哪找到这个命令然后执行的呢?这是通过环境变量 PATH 来进行搜索的。
在这里插入图片描述
通常这一类目录下放的都是可执行文件,当我们在 Shell 中执行一个命令时,系统就会按照 PATH 中设定的路径按照顺序依次到目录中去查找,如果存在同名的命令,则执行先找到的那个。

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

在/home/shiyanlou下创建目录mybin, 在mybin中创建脚本hello_shell.sh和hello_world.c并编译.
在这里插入图片描述

#!/bin/bash

for ((i=0; i<3; i++));do
    echo "hello shell"
done

exit 0

在这里插入图片描述

#include <stdio.h>

int main(void)
{
    printf("hello world!\n");
    return 0;
}

在这里插入图片描述
必须切换到对应目录下, 才可以执行hello_world和hello_shell.sh, 如下图示.
在这里插入图片描述
把hello_world和hello_shell.sh的路径加入到PATH环境变量后, 在任何目录都可执行, 但只能在当前Shell中执行, 打开新的Shell就无法执行.
在这里插入图片描述
想永久生效的话, 可以在配置文件中配置路径. 在每个用户目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。实验楼的环境使用的 Shell 是 zsh,它的配置文件是 .zshrc,相应的如果使用的 Shell 是 Bash,则配置文件为 .bashrc。它们在 etc 下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。
在这里插入图片描述
虽然在.zshrc中配置了路径, 但却没有生效, 这是因为在启动Shell时才会执行配置脚本生效, 所以可以重新打开终端运行就可了(立即生效source .zshrc. ./.zshrc, .是source的别名).
在这里插入图片描述

搜索文件

whereis

在这里插入图片描述

locate

使用 locate 命令查找文件不会遍历硬盘,它通过查询 /var/lib/mlocate/mlocate.db 数据库来检索信息。不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行 updatedb 命令来更新数据库。所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次 updatedb 命令。注意这个命令也不是内置的命令。

$ sudo apt-get update
$ sudo apt-get install locate
$ sudo updatedb

在这里插入图片描述

find

在这里插入图片描述

轻松一下

$ sudo apt-get update
$ sudo apt-get install cmatrix
$ cmatrix

在这里插入图片描述

参考资料

[1] 实验楼《Linux基础入门(新版)》

发布了323 篇原创文章 · 获赞 193 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/ccnuacmhdu/article/details/105231574