回顾上次内容 ????
上次讲了 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(在以后行前面增加一行)
- 留神左下角变成了 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 呢?咱们下次再说。????