从零开始的linux 第八章

呼~~又是一个美好的一天~~从上一次小编更新到现在,已经经过辣么长时间啦~是不是有点想念小编呢~~可不要想念小编到疯掉哦~~

好啦同学们,为了走上人生的巅峰,打起精神,努力学习~~...嗯...虽然不努力会很轻松,但是!看看你的口袋里,还能再掏出来几张褶皱的毛票??轻松是没有前途的(吐槽:胡说八道!)

路人甲!!路人甲!!起床上课!!

(↑刚睡醒的路人甲)

咦??路人乙,你拿被子干嘛?

(↓路人乙拿着被子漫不经心的走到床前,啪叽一声躺了上去)

(↑路人乙)

猝死个屁,都给小编起来!!小编这么忙还坚持给你们讲课,不听课的拖出去打死!

(端坐的同学们

好啦~~小编上一章详细的介绍了 man 命令帮助文档的使用方法,同学们务必要养成每遇到一个命令先用 man 命令来获取帮助~~

那么,废话不多说~~小编现在就开始讲这章的内容吧~~注意哦~这章的命令是很杂乱的~~(吐槽:你哪次讲的不乱!!)

..额..不要在意这些细节啦~~那么,小编前面讲了 alias 别名,内部命令外部命令。那么,内部命令是嵌入到shell里的命令,在系统内部就已经有这些命令的路径,我们在使用时系统会直接到内部寻找(一本正经的胡说),那么外部命令呢,系统要如何查找呢??这里我们可以查看 PATH 变量,可以查看外部命令所存放的路径:

echo $PATH

PATH 是存放外部路径的变量,$ 符号是引用变量,echo 是显示,总体意思就是:引用PATH变量,将引用的结果显示出来。嘛~~不懂没关系,小编以后会讲到的~~现在我们看到 PATH 变量的值有以上几个目录,这些目录用“:”分隔开。那,这又是什么意思呢?这些目录代表着我们 外部命令 所存放的路径,当我们在命令行中输入一条外部命令时,系统会从这几个目录中 从左到右 一次查找,那么,找到这些命令之后仅仅只是执行么??提问~~路人丙~~

路人丙:“唉??难道不是执行么?”

额..好吧,并没什么错,确实是执行,但是,执行的同时,还会把这个外部命令的路径给记录下来~以便于下次使用时不用从这些目录中重新查找。

那,将外部命令的路径记录在哪呢?当然是记录在缓存当中啦~~称为 hash缓存表

hash:显示执行过的外部命令的缓存(显示路径)

啊咧??怎么显示这些?不用慌嘛~~这句话的意思是 hash缓存表为空。因为 hash 缓存中存放的是外部命令的路径,而这些路径的来源是我们执行一个外部命令,系统去 PATH 变量中找出这个外部命令才记录在 hash 缓存中,所以,hash 缓存表默认是为空的~~

小编现在找一个外部命令执行一下~~比如,man 一下 hash再退出

现在,hash表中有内容啦~~内容就是 man 这个外部命令的路径,从这里可直观的看出 man 命令的路径在 /usr/bin/ 目录下~~对于 hash 命令,还有哪些用法呢??

hash -d name(命令名字):清空指定命令的缓存

比如,现在小编的 hash 缓存中有 man 命令的缓存,每个hash 缓存前面都会有一个编号,这个编号是这个外部命令执行了多少次。刚才小编执行了一次 man 后退了出来,所以前面为 1,那为了验证,小编再执行一次。

现在,hash 缓存表中的 hits中的一列 man 命令的缓存变成了 2。现在小编就用 hash 的 -d 选项将这条缓存删除。

这样,就删除了 man 命令在 hash 中的缓存,因为小编的 hash 缓存中只有 man 这一条缓存,所以删除后显示为空。

现在小编的 hash 缓存中有多条记录

小编想把这多条缓存一起清除怎么办呢??提问~路人甲~~咦??路人甲...你脸色好难看~~(小编突然看到路人甲捂着肚子~~)

(↑一眼就看穿原因的小编):“路人甲可以出去啦~~”

好吧,那就小编来告诉大家吧~~

hash -r:清空所有缓存

小编之前的 hash缓存表中是有两条缓存记录的,用了 -r 选项后,会清空 hash缓存表中的所有缓存记录。

除了这些,hash还有哪些选项呢?

hash -t name(命令名字):显示指定命令在hash缓存中的命令

现在,小编再把 man 的缓存添加到 hash缓存表中,然后用 -t 命令

以上就是显示 man命令在 hash缓存中的路径。不过我们要查一个命令的路径也不用这个啦~~小编会给大家介绍一个其他命令的~~所以这些就不用记啦~~

小编到现在已经讲了 alias别名,内部命令,PATH外部命令的路径,hash缓存;实际上我们输入一条命令的时候,系统是不知道我们输入的是 外部命令 还是 内部命令,那么,系统要如何去查找这些命令呢?提问~路人乙~

路人乙:“内个..当然是从别名,内部命令,外部命令和缓存中查啦~”

八嘎!我是让你说顺序啦~~顺序~~

(↑路人乙)

再次提问~~路人丙~~

路人丙:“这个..先别名,再缓存,再内部命令,最后是外部命令...”

这么笨,真的是小编教的么

还是小编来说吧~~系统在查找命令时,会先从我们定义的 别名alias,之后是 内部命令,然后是 hash缓存,最后是 PATH变量(外部命令路径)

综上: alias --> 内部命令 --> hash --> PATH

当以上的所有都找不到我们输入的命令时,将会提示 command not find(命令找不到)

好啦~小编上面提到了查找命令的路径,小编刚才使用 hash -t 来查询 hash缓存表中的命令的路径,那小编想查询其他命令的路径需要用哪个命令呢?

which:显示命令的完整路径

比如,小编现在查一下之前学过的命令的路径

查询 ls 命令的路径,从显示结果可以看出,which 这条命令不仅可以显示命令的完整路径,同时命令若有别名,还会将别名一起显示,显示别名的下面就是该命令的完整路径,ls命令的路径在 /usr/bin/ 目录下。which 命令还有一些其他的选项,但基本我们都不会用,所以小编这里就不再做过多的介绍啦~~

另外,再给大家介绍几个查看用户信息的命令

whami:显示当前登录的用户

那这个命令到底有什么作用呢??现在是没什么用啦~~不过以后写脚本可是有用的哦~~让脚本不是管理员不能运行等等,会用到这条命令。

这条命令分开写,是另一种不同的效果

who am i:显示当前用户及终端信息

这条命令当开启多个终端,并使用同一个用户的时候,可以用来查看。不过,查看终端,咱们有更简单的命令啦~~小编之前讲过用 tty 来查看终端。

who:查看当前登录系统的用户

who 命令可以用来查看当前系统有哪些用户登录,并显示他们所用的那种终端登录的~~这个命令还有其他的选项哦~~

who -b:查看系统此次启动的时间

该命令可以查看我们的linux系统在什么时间启动的~~ 啊咧??时间好像不对呢~~嘛,算啦~~不改啦,下一章小编给大家介绍时间命令的时候再来一起改时间吧~~~

who -r:查看当前的运行级别

该命令可查看当前的运行级别~~那么,什么是运行级别呢??在第三章小编跟大家介绍过用 init 5 来进入命令行界面,而这个命令行界面的运行级别就是 5,图形化的运行级别是 3,具体指什么,小编以后再跟大家慢慢介绍~~

w:查看登录当前系统的用户,并显示他们在做什么

这个命令所显示的内容要比 who 命令详细(嘛,不要在意时间啦~~小编真的是早上写的博客~)在该命令所显示的内容最后一列 WHAT 的那一列,显示这些登录的用户在做什么,比如小编用另一个终端做其他事情,就用 nano 编辑一个文件吧~~再用 w 命令查看

看最后一个的 WHAT 的一列,已经出现了 nano 在编辑 /etc 目录下的 passwd 文件~~

好啦~~杂乱的命令就介绍到这儿吧~~小编要休息咯~~

THE END

时间: 2024-11-09 23:54:30

从零开始的linux 第八章的相关文章

从零开始学Linux(11)--more

more命令,是将文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空格键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 .more命令从前向后读取文件,因此在启动时就加载整个文件. 1.命令格式: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 2.命令功能: more命令和cat的功能一样都是查看文件里的内容,但有所不同的

从零开始的linux 第一章

从零开始的linux  1章 哈喽,大家好,小编刚学的一个星期的linux,就想拿出来显摆显摆(害羞脸).当然也是第一次写博客啊,所有-.所以-.这次就先水一章吧~ 首先,第一章呢,因为是从零开始,所以呢--我们先来安装一下虚拟机,因为我们现在的操作,都是在虚拟机上面运行的. 所谓虚拟机,就是VMwareWorkstation Pro,那这个软件如何下载呢,这个我就不说了,因为连这个我都要写上去,那我水贴就太严重咯,小编的老师看到会揍我的. 好啦,废话不多说,我们开始打开虚拟机 因为是第一次使用

从零开始的linux 第二章

从零开始的linux 第二章 呼~~,大家早上好~(伸懒腰) 又到了一周一次的写博客时间了,不知不觉又过去一周了呢~小编也越来越懒了(超级害羞脸)~~唉??怎么办呢??(小编勉为其难的说)要不....要不再水一帖吧.... ←老师和(超)善(凶)的眼神 不不不不...不要激动...小编...小编我..开...开玩笑的...开玩笑的... 唉~~小编上一次写的文章被批评了,因为排版一塌糊涂..QAQ...小编为了让大家学的开心并且学的轻松,图片太乱了...缺点被指出之后,小编是要去改的说...可是

从零开始的linux 第十九章(mv命令详解)

从零开始的linux 第十九章 hello~~又到了一周一更新博客的时候啦~~这周51CTO成功将博客功能升级~~给我们带来了全新的体验~全新的界面~全新的视感~~不过,在编辑器上~小编还是习惯用原来的编辑器,感谢工作人员在内测时候广泛采纳用户的建议~对博客进行一次又一次的修改,嗯,最辛苦的还是我们的开发同志~~小编给你们以及所有员工打call~~ 那么,回归到这章内容,实际上,小编从这周是想拒绝更新的~~因为这么久过去了,小编虽然在一直给同学们讲课,但自己还没有写一篇有技术性的博客,但小编又没

从零开始的linux 第二十一章(Inode以及Block详解其二与软链接)

从零开始的linux 第二十一章 在紧张的学习中,又迎来了新的一周~~小编也在同学们的迫切要求下继续来更新博客咯~~ 同学们:"我们才没要求你!" 唉??同学们一点都不配合呢~~别不好意思嘛~~ 好啦~不逗你们了,小编就节省大家的时间,赶快开始这章的课程吧~~ 在上一章中,小编给同学们讲了 Inode号 和 Block,不过还没有给同学们讲完哦~所以上一章的题目是 其一 ,那么毫无疑问这一章就是其二的内容咯~从上一章同学们已经了解了什么是Inode和Block,以及Inode中包含哪些

从零开始学习Linux(ls命令)

学习Linux已经两年了,可是仍然是小白一个.用过很多命令,可是很多都没记住,基础不扎实,很大程度上是不记笔记,得过且过. 从今天起,开始整理Linux笔记. Linux每个命令都有--help这个选项,这也是我们学习命令的主要途径. ls   命令,这个命令一般用来查看文件文件夹下的文件. ls  没有参数,默认显示当前目录下的非隐藏文件. ls  后面可以跟文件目录,相对路径和绝对路径都可以. 例如 : [email protected]:~$ ls /home/gaozy/ [email 

[转]从零开始:在Linux上覆盖安装WINDOWS通用教程(dd)

完整自制尚不方便,还有许多改进的地方.现在可以达到在单硬盘,无救援模式的情况下安装Winodws.再也不需要强制要求内存大于镜像包大小了. 本例所给的wget后链接均可用,教程是完整的. (原文链接:https://moeclub.org/2017/08/31/361/) 环境 DigitalOcean 512M Debian8 x64 目标 Windows Think PC (Windows 7 Embedded) 此教程适用于具有以下特征的机器: 宿主机提供的VNC 能够随意更换内核 GUR

从零开始的linux 第七章

同学们早~~小编又来更新博客啦~ (还在愉快玩耍中的同学)"小编大人...还没到更新时间呢!" (窃窃私语)"不正常,这么懒的小编居然会提前更新,八成周六周日要提前过情人节" (窃窃私语)"不不不不,小编是不可能会有女朋友的,你看,天天欺负路人甲" (正在做笔记的路人甲脸突然暗了下来,手下意识的用了一下力气,断掉的笔尖从说上面这句话的男生脸上划过.窃窃私语声戛然而止...)(吐槽:呸!小编语言表达能力真差) 废什么话!快坐好!!整天就想着玩! (

从零开始在linux下搭建wordpress博客

一,准备linux环境 本地虚拟机可以忽略第一部分 微博以及微信的公共平台现在正火的一塌糊涂.既然博客已经上线,准备把一些过程写一下,省的以后我自己忘了.就当留个纪念吧,好歹花了这么长时间. 全文的操作环境为debian.其他linux发行版区别不大. 没有vps的可以在电脑上装个linux虚拟机试试,都一样的. 登入vps Windows下我一直用的是putty,linux下就不多讲了,ssh就行.在linux的shell下输密码是不显示的. 修改root密码 passwd 复制代码 添加新用