命令:hash
简介
hash命令是bash的内置命令。
我们知道在bash中执行外部命令,会根据环境变量PATH来逐一搜索命令的路径。
hash就是用于记住命令的路径,并且在下次执行命令的时候直接通过hash获取而不再通过PATH一步步寻找,加快了寻找命令的速度。
hash就像是命令的缓存。
语法
hash [-lr] [-p pathname] [-dt] [name ...]
语法中的name就是每个命令的名称,例如:ls、grep、cat等。
选项与示例
当不使用任何选项和参数的时候,hash命令可以输出当前所记住的命令以及其缓存命中次数。
一开始没有执行外部命令的时候,hash是空的。
[root@C7 ~]# hash
hash: hash table empty
执行了几个命令之后。如果某些命令有重复执行,那么命中数会大于1。
[root@C7 ~]# hash
hits command
/usr/bin/grep
/usr/bin/tail
/usr/bin/head
/usr/bin/ls
-d:删除已记住的命令的路径。
[root@C7 ~]# hash
hits command
/usr/bin/grep
/usr/bin/ls
[root@C7 ~]# hash -d grep
[root@C7 ~]# hash
hits command
/usr/bin/ls
-l:也是输出当前缓存中的内容,只不过输出的格式可用于输入或者再执行。
[root@C7 ~]# hash -l
builtin hash -p /usr/bin/ls ls
-p pathname:为某个命令手动设置路径。一般用于当命令的位置发生改变的情况。若出现该情况也可以使用-d删除缓存再重新执行一遍。
注意:如果指定了一个错误的路径的话,那么命令就无法使用了,如下所示。
[root@C7 ~]# hash -p /tmp/grep grep
[root@C7 ~]# hash
hits command
/tmp/grep
/usr/bin/tail
[root@C7 ~]# grep 'root' /etc/passwd
-bash: /tmp/grep: No such file or directory
-r:清空缓存列表。
[root@C7 ~]# hash
hits command
/usr/bin/sort
/usr/bin/cat
/usr/bin/ls
[root@C7 ~]# hash -r
[root@C7 ~]# hash
hash: hash table empty
-t:显示在缓存中,命令的对应路径。命令不在缓存中则会报错。
[root@C7 ~]# hash
hits command
/usr/bin/head
/usr/bin/du
/usr/bin/cat
/usr/bin/less
/usr/bin/ls
[root@C7 ~]# hash -t ls
/usr/bin/ls
[root@C7 ~]# hash -t less
/usr/bin/less
[root@C7 ~]# hash -t ls less grep
ls /usr/bin/ls
less /usr/bin/less
-bash: hash: grep: not found
hash name:如果仅带参数不带选项的话,hash可用于清空具体命令的缓存命中次数。这个功能是不小心发现的,在“help hash”中并无说明。
[root@C7 ~]# hash
hits command
/usr/bin/head
/usr/bin/wc
[root@C7 ~]# hash wc
[root@C7 ~]# hash
hits command
/usr/bin/head
/usr/bin/wc
命令:hash的更多相关文章
- Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术
3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...
- bash shell 中的 hash 命令有什么作用?
linux 命令'hash'管理着一个内置的哈希表,记录了已执行过的命令的完整路径,用该命令可以打印出你所使用过的命令以及执行的次数. [root@localhost ~]# hashhits com ...
- 【原创】Linux下获取命令的帮助与常用命令
Linux中的shell命令一般是执行步骤:用户在终端输入命令回车,系统内核会在当前用户的环境变量PATH中去读取环境变量的值 变量的值就是命令的路径,命令路径不只一个,于是系统会从这些路径中从左至右 ...
- LInux基础命令分类
1. 命令的概念 命令的执行过程 系统第一次执行外部命令时Hash缓存表为空,系统会先从PTAH路径下寻找命令,找到后会将路径加入到Hasa缓存中,当再次执行此命令时会直接从Hash的路径下执行,如果 ...
- redis数据库各种数据类型的增删改查命令
redis的常用数据操作: redis是key-value的数据结构,每条数据都是一个键值对. 键的类型是字符串并且键不能重复. redis最基本数据类型是string 所以下面的操作可以省略引号&q ...
- Redis in .NET Core 入门:(3) Hash
第1篇:https://www.cnblogs.com/cgzl/p/10294175.html 第2篇 String:https://www.cnblogs.com/cgzl/p/10297565. ...
- Linux命令1
1.获取当前系统支持的所有命令的列表: compgen -c 2.怎样查看一个linux命令的概要与用法: whatis grep #便可查到grep的用法 3.怎样一页一页地查看一个大文件的内 ...
- 【Linux学习一】命令查看与帮助
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.Linux执行命令流程:shell->bash(解释器 执行 ...
- 第2天【OS Linux发行版介绍、Linux系统基础使用入门、Linux命令帮助、Linux基础命令】
Logout 退出系统 Gedit 文本编辑器工具 Uname –r 查看内核版本信息,uname –a 比较详细 Cat /proc/cpuinfo 查看CPU Cat /p ...
- Ansible常用模块命令
Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...
随机推荐
- oracle_集合函数
查询10和20号部门的员工 SQL> 1. select * from emp where deptno in (10,20); SQL> 2. select * from emp whe ...
- C++ 字符串的编码
转载链接:https://www.cnblogs.com/akb48/p/5439154.html windows平台 char 表示单字符,占用一个字节 wchar_t 表示宽字符,占用两个字节 L ...
- ARM40-A5应用——fbset与液晶屏参数的适配【转】
转自:https://blog.csdn.net/vonchn/article/details/80784579 ARM40-A5应用——fbset与液晶屏参数的适配 2018.6.18 版权声明:本 ...
- Linux下函数调用堆栈帧的详细解释【转】
转自:http://blog.chinaunix.net/uid-30339363-id-5116170.html 原文地址:Linux下函数调用堆栈帧的详细解释 作者:cssjtuer http:/ ...
- 异步编程之使用yield from
异步编程之使用yield from yield from 是 Python3.3 后新加的语言结构.yield from的主要功能是打开双向通道,把最外层的调用方法与最内层的子生成器连接起来.这两者就 ...
- java并发编程系列七:volatile和sinchronized底层实现原理
一.线程安全 1. 怎样让多线程下的类安全起来 无状态.加锁.让类不可变.栈封闭.安全的发布对象 2. 死锁 2.1 死锁概念及解决死锁的原则 一定发生在多个线程争夺多个资源里的情况下,发生的原因是 ...
- java并发编程系列四、AQS-AbstractQueuedSynchronizer
什么是AbstractQueuedSynchronizer?为什么我们要分析它? AQS:抽象队列同步器,原理是:当多个线程去获取锁的时候,如果获取锁失败了,当前线程就会被打包成一个node节点放入 ...
- C/C++:.hpp与.h区别
原文地址:http://blog.csdn.net/f_zyj/article/details/51735416 .hpp,本质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件, ...
- sqlserver 无法获得数据库独占权
ALTER DATABASE trqxs_cs SET OFFLINE WITH ROLLBACK IMMEDIATE
- Python中的一些小语法
目录: 生成随机数 将一个字符串变为datetime类型,并且获取星期几 1.生成随机数 假设我们要操作的list如下: >>> import random >>> ...