linux查看命令对应的文件在哪里

那天在咖啡馆,坐在我旁边的那个人正在他的笔记本电脑上挠头,屏幕上闪现出“订单未找到”。
我一看,输入的命令明明是“ls”,但是系统不识别。
我随口问道:“哪一个?”他这样做了,/bin/ls 立即出现在屏幕上。
他弟弟安装系统的时候很震惊,我好像忘记看这个了。
等等,我突然想起来可能是用的是虚拟机,系统镜像可能有点不完整。

查看文件路径的linux命令

兄弟你好,我对Linux系统中的文件路径搜索非常了解!以前运维的时候经常用到这些命令,但是不太习惯。

我记得有一次我需要找出“passwd”命令在哪里,所以我使用了“which passwd”。
我查了一下,确实很简单。
它直接指向“/usr/bin/passwd”。
这是非常快的,因为它可以直接在PATH环境变量中找到,但它只能找到可执行文件,而忽略隐藏或不可执行的文件。

有一次我想找到一个源代码文件,所以我使用了“whereis passwd”,它给了我两个路径:二进制路径和源代码路径。
但要小心。
此命令依赖于数据库,该数据库每周更新一次,有时可能会提供过时的信息。

还有一次我在寻找文件时只使用了“locate myfile.txt”。
这非常快,但后来我发现数据库更新缓慢,有时找不到新的或移动的文件。

最复杂的是“查找”命令。
当我的团队在服务器上查找特定目录时,我们使用“find / -type d -name“myfolder””。
该命令可以根据多种标准查找文件,但效率有些低,并且需要缓慢地搜索硬盘。

最后,还有“grep”和“ls”的组合。
例如,要查找特定文件,首先使用“ls -R /home”列出所有文件,然后使用“grep 'config.txt'”过滤掉包含“config.txt”的路径。
此内容很简短,但有时包含无关信息。

所以,兄弟,用哪个命令要看具体情况。
使用“which”快速查找命令路径,“locate”进行全局搜索,“find”根据特定条件查找文件。
为了避免被愚弄,请记住解决权限问题并定期更新数据库。
哈哈,运维的日子真是辛苦啊!

Linux通过进程ID查找文件路径

哈,你提到的proc目录确实很有趣。
我以前做过一次,印象很深刻。

想一想,在Linux系统中管理进程时,单纯依靠systemd或者其他工具有时是不够直观的,不是吗?直接访问/proc非常容易。
例如,我上次在 2 02 3 年 1 0 月调试 Docker 容器时,容器中的进程出现了问题,但这取决于如何找出宿主机上有问题的程序。

如果你想检查某个进程,最简单的方法是使用 ps aux | grep 进程名称。
例如,如果我正在寻找一个我无法理解的小脚本,我会输入 ps aux | grep my_script.py,然后在输出堆栈中查找该行以查看其前面的 PID。
写下来,例如1 8 2 8 3 这一步相当快,通常可以找到。

然后第二步你去/proc/1 8 2 8 3 /exe看看。
这个exe文件实际上是一个符号链接,指向脚本在硬盘上的实际位置。
我只是直接在终端中输入 ls -l /proc/1 8 2 8 3 /exe 并在几秒钟内看到 /proc/1 8 2 8 3 /exe -> /usr/local/bin/my_script.py 。
你看到这个了吗?我直接找到了,不需要检查配置文件什么的。

但是请注意,并非所有系统都默认可以这种方式播放。
有时您没有足够的权限或系统配置存在某些限制。
因此您可能无法输入 ls -l /proc/1 8 2 8 3 /exe 并且会提示您“权限被拒绝”。
在这种情况下,您应该使用 sudo 或向系统管理员寻求帮助。
我以前就遇到过一次这种情况。
在一台非常旧的 CentOS 服务器上,由于权限问题,我挣扎了很长时间。
因此,在行动之前最好先确认一下。

无论是什么,只要记住这个提示即可。
找到Linux进程执行路径,使用ps配合grep和/proc/[PID]/exe。
每次都有效。
一旦理解了这一点,管理过程就会容易得多。