Linux基础入门-环境变量与文件查找
一、环境变量:
Shell中的变量也有不同的数据类型,不用专门指定类型名,可以参与运算,有作用域限制。
declare tmp 创建一个变量
可以不用专门声明,可以即用即创建
tmp=shiyanlou 变量赋值
echo $tmp 读取变量的值
Notes: 变量名不能用数字开头,且只能是英文字母,数字,下划线
Shell的环境变量作用于自身及它的子进程,环境变量可以继承。

通常有以下三种环境变量:
- 当前Shell进程私有用户自定义变量,如tmp
- Shell本身内建的变量
- 从自定义变量导出的环境变量
与环境变量相关的命令:
set 显示当前Shell所有环境变量,包括内建环境变量,用户自定义变量和导出的环境变量
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
export 显示从Shell中导出的环境变量,也能通过它将自定义变量导出为环境变量

用vimdiff可以比较这几个命令输出文件的不同,如截图所示
zsh创建子Shell, 实验楼用的是zsh,Ubuntu用的是Bash
然后输入值为空,表示变量无效
export导出temp为环境变量,然后创建子进程,有效
添加环境变量示例:
PATH = $PATH:/home/shiyanlou/mybin
这里一定要使用绝对路径
为了让该环境变量每次启动Shell时自动执行添加路径到PATH,需要把它写入到配置文件中,zsh的配置文件为.zshrc,Bash的配置文件为.bashrc,在etc下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的。
echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
>是以覆盖的方式重定向到一个文件中,>>是追加标准输出到文件中。
变量修改的方式:
${变量名#匹配字符串} 从前向后匹配,删除符合的最短数据
${变量名##匹配字符串} 从前向后匹配,删除符合的最长数据
${变量名%匹配字符串} 从后向前匹配,删除符合的最短数据
${变量名%%匹配字符串} 从后向前匹配,删除符合的最长数据
${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串
用unset删除变量
让环境变量立即生效,可以用source命令,
source .zshrc
也可以用它的别名.,需要指定完整的绝对或者相对路径名
. ./.zshrc
二、搜索文件:
whereis直接从数据库中查找,快速,搜索-b, -m, -s文件
locate通过/var/lib/mlocate/mlocate.db数据库查询,这个数据库每天自动update一次,快而全
$ locate /usr/share/*.jpg
\转义,只统计数目可以加上-c参数,-i可以忽略大小写查找
which是Shell内建的命令,常用于确定是否安装了某个指定的软件,因为它只从PATH环境变量指定的路径去搜寻
find最为强大,不仅可以通过文件类型,文件名查找,而且可以根据文件的属性(如时间戳,文件权限等)查找。基本格式如下:
find [path] [option] [action]
与时间有关的参数:
-atime 最后访问的时间
-ctime 创建时间
-mtime 最后修改时间
作业提要:
用cmatrix实现《黑客帝国》中的代码数字雨
F11全屏显示
本文原载于实验楼
Linux基础入门-环境变量与文件查找的更多相关文章
- (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找
环境变量与文件查找 本节介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变 ...
- 环境变量和文件查找&文件打包与解压缩
环境变量和文件查找 介绍环境变量的作用与用法 及几种搜索文件的方法 学会这些技巧可以高效地使用 Linux 知识点:环境变量的设置 环境变量的修改 环境变量 要解释环境变量,得先明白变量是什么,准确的 ...
- linux的环境变量与文件查找
1. 环境变量 1.1 变量 shell 中的变量有不同类型,可参与运算,有作用域限定 变量的作用域即变量的有效范围(比如一个函数中.一个源文件中或者全局范围),在该范围内只能有一个同名变量.一旦离开 ...
- Linux 基础教程 25-命令和文件查找
which 不管是在Windows还是Linux系统中,我们都会偶尔执行一些系统命令,比如Windows常见的cmd.ping.ipconfig等,它们的位置都在%systemdrive%中. ...
- Linux环境变量与文件查找
作业: 找出/etc目录下所有以.list结尾的文件 代码:locate /etc/\*.list sudo find /etc/ -name \*.list
- linux学习-环境变量与文件查找
- (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作
Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录 ...
- Linux基础入门-目录结构及文件基本操作
一.Linux的目录结构: Windows是以存储介质为主的,主要以盘符及分区来实现文件的管理,然后之下才是目录.但Linux的磁盘从逻辑上来说是挂载在目录上的,每个目录不仅能使用本地磁盘分区的文件系 ...
- Linux基础入门
第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...
随机推荐
- Django中STATIC_URL、STATIC_ROOT、STATICFILES_DIRS 的区别关系
首先,我们配置静态文件,要在setting.py里面加入如下几行代码: settings.py # the settings above # STATIC SETTINGS STATIC_URL = ...
- C语言关键字分类整理
C语言总览: 强类型,面向过程 简洁.灵活:32个关键字(C99标准新增5个,C11新增7个),9种控制语句,34种运算符 数据类型丰富,运算符丰富 结构化(控制语句).模块化(函数) 灵魂.特色:指 ...
- JVM逃逸分析
开启逃逸分析: -server -XX:+DoEscapeAnalysis -XX:+PrintGCDetail -Xmx10m -Xms10m 关闭逃逸分析: -server -XX:-DoEsca ...
- 如何将新建的项目完整的提交到gitlab上?
描述: 使用idea开发工具新建了一个项目工程,此时此刻工程没有任何的版本控制,代码存放在本地磁盘中,如果需要直接将项目工程代码提交到gitlab上,该如何操作呢? 因为当前没有版本控制,不能像正常的 ...
- liunx centOS6.5安装jdk教程
第一步:mkdir /usr/java/ --在/usr目录下新建一个java目录 第二步:cp jdk-7u25-linux-x64.rpm /usr/java/ --将JDK文件复制到/usr/j ...
- hashlib模块(加密模块)
hash = hashlib.md5(b"str") #md5对象,md5不能反解,可加参数 hash.update(b"str") #对字符串进行加密 has ...
- iOS原生自动布局NSLayoutConstraint
AutoLayout概念是苹果自iOS6开始引入的概念. 目前为止,实现自动布局技术选型方面也可以使用xib和storyboard.在开发过程中通常登录.注册等变动可能性较小的视图,我会采用xib开发 ...
- Image & Raw Image的区别
一.面板参数 1.Image类型: Source Image:图片资源(sprite) Color:颜色 Material:材质 Raycast Target :是否作为射线目标 Sprite 2D: ...
- Ubuntu如何使用Vscode写C++代码
(一). 下载Vscode (1). 打开Ubuntu软件 (2). 搜索Vscode,下载并运行. (二). 安装C++ (1). 看到右边的列表,点击最下面的 (2). 然后我们搜索和下载 C++ ...
- mysql数据库简单一些简单操作和总结
1. mysql 数据库操作方法: 进入数据库 mysql -uroot -p 退出 quite exit 默认引擎 innodb 查看版本 select verison(); 查看时间 select ...