1. shell 和环境变量
shell是一个命令行解释器,那么用户想要以不同的方式与Linux内核交互,就可以采用不同的shell。shell有不同的版本,常见的有:sh,bash,csh,tcsh,ksh。其中Bash 是大多数Linux 系统默认的 Shell。
环境变量是一种特殊的变量,以便 shell 中运行的程序或脚本能够轻松访问到这些数据。这也是存储持久数据的一种简便方法。
2. 环境变量分类
- 按生命周期分:
永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
临时的:用户利用export(bash)或则setenv(tcsh)命令,在当前终端下声明环境变量,关闭Shell终端失效。
- 按作用域分:
系统环境变量:公共的,对全部的用户都生效。配置文件:/etc/profile, /etc/bashrc (bash shell)
用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。 配置文件:~/.bash_profile,~/.bashrc(bash shell)
note: 对于tcshell 则更改bash 为tcsh
此外对于shell 脚本函数中的变量,我们一般称之为局部变量。
3. 不同shell设置变量方式
- bash
a="world" # 定义一个普通变量 export variable_name=value #设置环境变量: variable_name=value export variable_name #先定义变量后export: 在脚本中可以source var_file 将文件的变量带入当前shell。
- cshell or tcshell
set varia=hello #定义普通变量 setenv varia=hello # 定义环境变量 set # 查看所有自定义的普通变量 setenv or env # 查看所有环境变量
4. 批量导入变量
我们可以通过source cfg.sh(filename) 的形式将脚本中定义的变量全部使其在当前shell中生效。
小计:
先使用find命令查找文件,然后使用grep命令查找哪些文件包含某个字符串
find ./ -name "*.cpp" | xargs grep -n "main"
find ./ -name "*.cpp" -exec grep "main" {} \+