如果我想计算代码行数,最重要的是
cat *.c *.h | wc -l
但是如果我有几个子目录怎么办?
不幸的是我丢失了我的源代码,我只有在 linux 中用 gcc 制作的输出文件,我现在无法访问我的电脑。有什么方法可以将输出文件转换为源文件(在 linux 下的 c 中)?
我突然决定要查看“回声”的源代码
$ which echo
/usr/bin/echo
Run Code Online (Sandbox Code Playgroud)
所以
$ ls -al /usr/bin/echo
-rwxr-xr-x. 1 root root 32536 Oct 31 2016 /usr/bin/echo
Run Code Online (Sandbox Code Playgroud)
所以
$strings /usr/bin/echo
Run Code Online (Sandbox Code Playgroud)
让我相信这是一个编译的 C 程序
现在我被困住了。
我如何能:
找出它在哪个包中
获取源码
重建它
测试一下
在系统范围内安装新版本
(我知道 5 不是一个好主意,我只是好奇……)
我目前在 Fedora 上,但我也对 Debian 的答案感兴趣
相关教程的链接将是一个很好的答案。
编辑:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
Run Code Online (Sandbox Code Playgroud)
所以我想这是/usr/bin/echo我想看的而不是试图阅读整个bash.
我正在阅读 bash 源代码,bash 的BNF 语法是:
<pipeline_command> ::= <pipeline>
| '!' <pipeline>
| <timespec> <pipeline>
| <timespec> '!' <pipeline>
| '!' <timespec> <pipeline>
<pipeline> ::=
<pipeline> '|' <newline_list> <pipeline>
| <command>
Run Code Online (Sandbox Code Playgroud)
这是否意味着!命令也是一种管道。
! ls作品?但是它与ls.
! time ls 也有效。
这与|管道完全不同。
如何!在bash中使用?是管道吗?
我从cmake.org网站安装 cmake,他们提供了两个文件,我认为这些文件旨在验证源代码下载cmake-3.11.0-rc3.tar.gz
在同一页面上,它们具有下载cmake-3.11.0-rc3-SHA-256.txt文件和cmake-3.11.0-rc3-SHA-256.txt.asc文件的链接
我不明白的是:
我不需要公钥来真正验证源代码下载吗?我认为 asc 文件应该是公钥。但是,当我尝试使用以下命令导入 asc 文件时
gpg --import cmake-3.11.0-rc3-SHA-256.txt.asc
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息“未找到有效的 OpenPGP 数据”
curl //website//
将为我提供源代码,但从那里我将如何过滤我们的每条唯一路径并获得它们的数量?
问题:
使用您机器上的 cURL 获取“https://www.inlanefreight.com”网站的源代码并过滤该域的所有唯一路径。提交这些路径的数量作为答案。
从问题中,我不知道“唯一路径”的含义,但我认为它的含义类似于您从执行中获得的内容
$wget -p
我使用了这种方法并且它以某种方式起作用
wget --spider --recursive https://www.inlanefreight.com
Run Code Online (Sandbox Code Playgroud)
这将显示
Found 10 broken links.
https://www.inlanefreight.com/wp-content/themes/ben_theme/fonts/glyphicons-halflings-regular.svg
https://www.inlanefreight.com/wp-content/themes/ben_theme/fonts/glyphicons-halflings-regular.eot
https://www.inlanefreight.com/wp-content/themes/ben_theme/images/testimonial-back.jpg
https://www.inlanefreight.com/wp-content/themes/ben_theme/css/grabbing.png
https://www.inlanefreight.com/wp-content/themes/ben_theme/fonts/glyphicons-halflings-regular.woff
https://www.inlanefreight.com/wp-content/themes/ben_theme/fonts/glyphicons-halflings-regular.woff2
https://www.inlanefreight.com/wp-content/themes/ben_theme/images/subscriber-back.jpg
https://www.inlanefreight.com/wp-content/themes/ben_theme/fonts/glyphicons-halflings-regular.eot?
https://www.inlanefreight.com/wp-content/themes/ben_theme/images/fun-back.jpg
https://www.inlanefreight.com/wp-content/themes/ben_theme/fonts/glyphicons-halflings-regular.ttf
FINISHED --2020-12-06 05:34:58--
Total wall clock time: 2.5s
Downloaded: 23 files, 794K in 0.1s (5.36 MB/s)
Run Code Online (Sandbox Code Playgroud)
在底部。假设 23 次下载和 10 个断开的链接加起来就是我得到的唯一路径 33,这是正确的答案。
根据这个链接,当提交对 Linux 源代码的更改时,它们会由维护者的层次结构进行审查,最终与 Linus 本人达成一致。如何成为这样的维护者?
(背景:我正在教授一门关于 Linux 基础知识的课程,我的一个学生提出了这个问题,我在网上找不到令人满意的答案。)
据我所知,Linux是一个开源项目,这意味着我们可以找到构建这个系统的所有代码。
但这对我来说太难了。
有没有一种简单的方法可以检查任何命令的源代码?比如功能hostname。我觉得它会写信息到它的配置文件(也可能是不/etc/sysconfig/network中的CentOS 6.3,我认为)。我希望找到真正的配置文件。那么如何hostname通过简单的方法找到一个命令(如)的源代码呢?
我有一些最初在 Windows 上开发的 C 源代码。现在我想在 Linux 上处理它。有大量的包含指令应该更改为 Linux 格式,例如:
#include "..\includes\common.h"
Run Code Online (Sandbox Code Playgroud)
我要寻找一个命令行要经过所有.h和.c文件,找到包含指令,并用斜杠替换任何反斜杠。
我正在调试这个引发异常的程序。这使得我的调试器寻找一些源代码,例如../sysdeps/unix/sysv/linux/raise.c- 但未能找到它。
现在,我意识到我没有必要拥有这些资源,但我仍然希望它们在那里。
我正在开发 Devuan Chimaera GNU/Linux 系统。
对我来说,让这些源可用并可由 gdb 定位的最简单的方法是什么?