oeasy教您玩转linux010107那啥在哪whereis

overmind1980 2020-08-29 08:02:01

回忆上次内容 😌

上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置。

现在我们要制作这样一个列表:🗒

对于 /proc 路径进行列表

对子路径递归列表

显示隐藏文件

显示详细信息

其中容量使用人们熟知的单位

大家忘记了吗?!!😱

没关系,我们可以查手册,📕 那么做完了之后可以思考,ls 到底在哪?🤔

ls 在哪?🤔

想要知道 ls 在哪就得用新命令 whereis,命令的参数是 ls,综合起来就是:

whereis ls

我们可以得到 ls 两个硬盘位置:

  /bin/ls   /usr/share/man/man1/ls.1.gz

为什么 ls 在硬盘里?🤔

ls 文件最开始在 /bin 这个位置

当我在命令行敲击之后 ls 回车之后

操作系统要求运行 ls 程序

操作系统分配内存空间给 ls

操作系统把 ls 从硬盘加载到内存中

操作系统分配 cpu 资源去执行程序

最终把 ls 的结果输出到标准输出流(屏幕)上

为什么 ls 命令对应两个位置呢 🤔

我们可以对 whereis 发出询问:

whatis whereis

whereis 可以帮我们定位命令的位置

但是 whereis 描述太简单了,我们可以查询 whereis 的手册 man:📕

man whereis

我们可以查询到 whereis 的具体内容:📕

试试选项的功能

whereis -b ls

b 的意思是 binary 二进制

查找 whereis 二进制

二进制文件在/bin 里

whereis -m

m 的意思是 manual 文档

查找 whereis 的文档

文档在/usr/share/man 里面

总结来说:whereis -b ls 是二进制命令,whereis -m 另一个是帮助手册。

那 ls 的源文件在哪呢?这有点复杂... 🧐

得到 ls 源文件

dpkg -S /bin/ls

dpkg 是 Debian Package 是 Debian 的包管理命令

-S 是在已经安装的包里面查找 search

/bin/ls 是具体文件的位置

得到结果是 coreutils(核心应用)

设置源

:

w

q

回车

保存并退出 vi

注意左下角不再是 Insert(插入状态), 而是退回到了空白

deb-src trusty-updates main restricted universe multiverse

这条设置的是 debian 的源的位置

注意左下角变成了 Insert(插入状态)

注意这个时候左下角是空白状态

vi 是文本编辑器

/etc/apt/sources.txt 是源的配置文件

sudo vi /etc/apt/sources.txt

打开源的配置文件

sudo 是使用管理员权限

直接输入G(直接到最后一行 Ground)

直接输入o(在当前行后面添加一行)

将下面粘贴到最后一行

摁下esc

依次摁下

用 apt 下载源代码

apt 是高级包管理的命令

运行 sudo apt update(更新源)

sudo apt source coreutils(获得源代码)

在当前文件夹下找到 coreutilsXXX 文件夹

进入 src 源文件文件夹 (source)

ls ls.*

找到了 ls.c 文件 (ls 的 c 语言源文件)

思考 🤔

我们真的可以获得 ls 源代码,这太棒了!👊 可是如果有多个版本的命令比如:

java8

java13

那我到底用的是那个版本的 java 呢?我们下次再说。 👋

0 阅读:25