回忆上次内容 ????
上次讲了 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(核心应用)
-
设置源
-
sudo vi /etc/apt/sources.txt
-
打开源的配置文件
-
sudo 是使用管理员权限
-
vi 是文本编辑器
-
/etc/apt/sources.txt 是源的配置文件
-
直接输入 G(直接到最后一行 Ground)
-
直接输入 o(在当前行后面添加一行)
-
将下面粘贴到最后一行
-
deb-src trusty-updates main restricted universe multiverse
-
这条设置的是 debian 的源的位置
-
摁下 esc
-
注意左下角不再是 Insert(插入状态), 而是退回到了空白
-
依次摁下
-
用 apt 下载源代码
-
apt 是高级包管理的命令
-
运行 sudo apt update(更新源)
-
sudo apt source coreutils(获得源代码)
-
在当前文件夹下找到 coreutilsXXX 文件夹
-
进入 src 源文件文件夹 (source)
-
ls ls.*
-
找到了 ls.c 文件 (ls 的 c 语言源文件)
思考 ????
我们真的可以获得 ls 源代码,这太棒了!???? 可是如果有多个版本的命令比如:
那我到底用的是那个版本的 java 呢?我们下次再说。 ????
阅读(1012) | 评论(0) | 转发(0) |