oeasy教您玩转linux010107那啥在哪 whereis
那啥在哪whereis
回忆上次内容😌
上次讲了ls 的参数(arguement)和选项(option)的设置
现在我们要整这么一个列表🗒
对于 /proc路径进行列表
对子路径递归列表
显示隐藏文件
显示详细信息
其中容量使用人们熟知的单位
你都忘了?!!!😱
没关系
查手册啊📕
做完了之后思考,ls到底在哪?🤔
ls在哪?🤔
想要知道ls在哪就得用新命令whereis
我们的命令(command)的名字是whereis
我们whereis命令的参数是ls
综合起来就是
whereis ls
我们得到了ls两个硬盘位置
/bin/ls
/usr/share/man/man1/ls.1.gz
为什么在硬盘里?🤔
为什么ls在硬盘里?🤔
ls文件最开始在/bin这个位置
当我在命令行敲击之后ls回车之后
操作系统要求运行ls程序
操作系统分配内存空间给ls
操作系统把ls从硬盘加载到内存中
操作系统分配cpu资源去执行程序
最终把ls的结果输出到标准输出流(屏幕)上
为什么两个位置??🤔
我们可以对whereis发出灵魂之问whatis
whatis whereis
whereis可以帮我们定位命令的位置
whereis太简单了,这个恐怕要查文档
我们查询whereis的手册man📕
man whereis
我们可以查询到whereis的手册📕

来试试选项的功能
whereis -b ls
b的意思是binary二进制
查找whereis二进制
二进制文件在/bin里
whereis -m ls
m的意思是manual文档
查找whereis的文档
文档在/usr/share/man里面
这两个
一个是二进制命令
另一个是帮助手册
那ls的源文件在哪呢?这有点复杂...🧐
得到ls源文件
dpkg -S /bin/ls
dpkg是debian package是debian的包管理命令
-S是在已经安装的包里面查找search
/bin/ls是具体文件的位置
得到结果是coreutils(核心应用)
设置源
sudo vi /etc/apt/sources.txt
打开源的配置文件
sudo 是使用管理员权限
vi 是文本编辑器
/etc/apt/sources.txt是源的配置文件
直接输入G(直接到最后一行Ground)
注意这个时候左下角是空白状态
直接输入o(在当前行后面添加一行)
注意左下角变成了Insert(插入状态)
将下面粘贴到最后一行
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
这条设置的是debian的源的位置
摁下esc
注意左下角不再是Insert(插入状态),而是退回到了空白
依次摁下
:
w
q
回车
保存并退出vi
用apt下载源代码
apt是高级包管理的命令
运行sudo apt update(更新源)
sudo apt source coreutils(获得源代码)
在当前文件夹下找到coreutilsXXX文件夹
进入src源文件文件夹(source)
ls ls.*
找到了ls.c文件(ls的c语言源文件)
思考🤔
我们真的可以获得ls源代码,这太棒了!👊
可是如果有多个版本的命令比如
java8
java13
那我到底用的是那个版本的java呢?🙄
我们下次再说*