1.解决一个error:unable to locate package tree
原因是没有更新软件源,无法找到包,输入命令 sudo apt-get update,等命令执行完后再执行 sudo apt install tree 即可正常下载
2.几个linux命令
命令类型:内置/内部/内建命令(shell内置)
shell为了完成自我管理,必须内置一些基本命令实现管理功能,不同的shell内置的不一样
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
type:显示指定命令属于哪种类型 builtin表示是shell内置命令
变量:命名的内存空间
变量赋值 NAME=Jerry(在内存中找一段空间起名叫NAME,这个空间中放的数据叫Jerry,数据可变故称变量)
变量值只在当前程序可用,程序变了,内容变了。变量可以申请使用(即申请内存使用的过程),用完后可以释放,给其他程序使用
堆:(hit)不是变量,只是申请的一段内存空间,如文件 栈:(stack)本地申用的变量和静态变量等
用来放各自不同的数据
环境变量:定义当前用户的工作环境的变量
命令的执行方式,在bash中的执行逻辑,如何提升执行速度:
PATH:环境变量,命令搜索路径,使用冒号分隔的多个路径(次序关键)
理论上输入一个命令应该输入该命令所处的完整路径才可以执行,如 ls 命令存在在/bin下,那么应该输入/bin/ls去执行ls命令,那么为何在linux中直接输入ls即可执行?是因为该命令在PATH中。系统首次执行命令时会按PATH提供的路径顺序逐一查找该命令所在位置,并执行第一个找个的命令(因此次序关键)。如果我们自己编辑一个命令,但位置不在PATH路径中,要么将该命令路径添加到PATH中,要么输入命令所在路径,否则命令无法执行。
每次执行命令都要在PATH中找速度会很慢,linux的解决方式是中用了hash(缓存),缓存为王(cache is king)。系统执行命令后将该命令路径储存在hash中(故有时说电脑运行慢了就加缓存),接下来再执行命令的时候会优先查看缓存中有没有。系统在缓存中查找命令的速度是O(1)(衡量一个程序执行速度的标准,意思是在列表中查找一个数据的速度随着列表长度变化而发生变化的比例,或函数趋势),即无论队列有多长,在其中查找的时间是一样的,在一条命令和一万条命令中查找一条命令的速度是相等的。远快于在文件系统PATH中逐一查找的速度。缓存是实现系统加速的。
printenv:显示环境变量(print environment) 将显示出变量及其=后所赋的值
hash:查看缓存 出现的hits 是命令命中了多少次
网友评论