百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

在 Linux 中查找系统信息 linux查找内容在哪个文件中

bigegpt 2024-10-12 06:05 15 浏览

使用任何操作系统 (OS) 时,有时需要查找文件。我们将在本文中介绍的一些命令将查找特定类型的文件。其他人会在特定的地方寻找任何文件,一个人会告诉你一个命令的解释。

这些对于 Linux 用户可能非常有用。

Which

此命令将搜索操作系统的路径以查找指定的可执行文件。

让我们看看为您的系统设置的路径。打开终端并输入命令“echo $PATH”。您应该得到一个结果行,其中列出了为操作系统设置的路径。我的路径是'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin '. 冒号) 分隔每个目录。我的路径中有九个条目。

当我执行搜索时,它从文件夹“/usr/local/sbin”开始,然后一直到列表的末尾。

如果我们找到该文件,那么程序会列出它的路径,程序会停止搜索,除非您使用“-a”参数搜索所有路径并列出所有找到的程序。如果您自己编写一个程序并尝试运行它,然后执行另一个程序,则“-a”命令会很有用。您可以看到有多少文件具有相同的名称以及它们的运行顺序。

要使用“which”,只需键入命令“which <-a> <filename>”。此处不需要“-a”,但需要文件名。

让我们做一个测试。我运行了命令“哪个”。这将列出程序找到“哪个”的文件夹。我系统上的结果是:

/usr/bin/which

这告诉我该程序位于文件夹“/usr/bin/”中。该文件夹是我路径中列出的第四个。

为了好玩,让我们试试“which -a which”。现在我们可以查看是否有多个具有可执行权限的名为“which”的文件。结果是:

/usr/bin/which
/bin/which


如前所述,找到的第一个文件是路径中的第四项。找到的第二个文件是路径中的第六项。它按路径顺序找到文件。

如果要更改路径,请执行“导出”命令:

export PATH=$PATH:/home/jarret/Scripts

该命令会将文件夹“/home/jarret/Scripts”添加到路径列表的末尾。我们可以通过将新文件夹移动到当前路径($PATH)之前来将它放在路径的开头:

export PATH=/home/jarret/Scripts:$PATH

如果你想重新排序路径,那么你可以回显路径,复制它然后粘贴它来改变周围的东西:

export /usr/local/sbin:/usr/local /bin:/usr/sbin:/home/jarret/Scripts:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 只要确保你没有删除

任何路径中必要的文件夹或系统无法找到程序并在需要时执行。

要使新路径永久存在,您需要使用以下两个命令将“导出”行添加到两个文件:

gedit .profile
gedit .bashrc


在文件底部添加导出行。如果导出行已存在,请替换它。要使其处于活动状态,您需要注销并重新进入操作系统。

whereis

Whereis 将查找文件,即使它不是可执行文件。它查找的文件包括二进制文件、源代码和手册页。它搜索的文件夹被硬编码到程序中。要查看硬编码文件夹列表,请使用命令“whereis -l”。这个列表很长,所以我不会在这里列出。您可以在系统上运行命令以查看列表。

该命令基本上是“whereis <filename>”。我们可以添加一些选项,但让我们从基础开始。

当我们介绍“which”命令时,我们试图找到“which”命令本身的位置。我们现在可以用'whereis'试试。命令 'whereis which' 返回:

which: /usr/bin/which /bin/which /usr/share/man/man1/which.1.gz

它返回相同的位置,但还在 ' /usr/share/man/man1'。

您可能会注意到该行以文件名“which:”开头,后跟调查结果。您可以列出多个文件名,以空格分隔,以便一次执行多个搜索。假设我想同时找到“which”和“whereis”。我可以使用命令 'whereis which whereis' 得到以下结果:

which: /usr/bin/which /bin/which /usr/share/man/man1/which.1.gz
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz


如果您只想列出二进制文件(编译代码),请使用“-b”选项。仅对于源代码,使用“-s”选项。要仅查找“手册”页面,请使用选项“-m”。

因此,要找到 'which' 的可执行文件(已编译代码,设置了执行权限),请执行命令:

whereis -b which

我系统上的命令返回以下行:

which: /usr/bin/which /bin/which

'whereis' 命令搜索的文件夹比 'which' 命令搜索的文件夹多,并返回更多的文件类型。使用“-b”选项,它可以执行相同的操作,但可能会找到路径之外的文件。

type

“类型”命令允许您查找有关文件的信息。默认情况下,它会告诉您该命令是内置命令、二进制命令还是别名。

例如,在终端中尝试以下命令:

type cd
type which
type ls
type while


第一个命令显示“cd”是一个内置的 shell 命令。

第二个命令将“which”列为散列文件,然后显示其位置。

第三条命令生成别名。“ls”命令是命令“ls --color=auto”的别名。

最后一条命令是检查 BASH 脚本中使用的“while”命令。结果表明它是一个'shell关键字'。

命令“type”将返回它找到的文件的第一个实例。您可以使用“-a”选项搜索更多实例。

Whatis

“whatis”命令不像其他命令那样定位文件,而是列出命令作用的描述。该信息来自手册页并使用不同的选项,您可以改变输出信息。

让我们先试一试。我们从 which 命令开始,所以让我们试试“whatis which”。输出是:

which (1) - 定位命令

一个列表可以显示多个条目,例如“whatis arp”。您将获得以下内容:

arp (7) - Linux ARP 内核模块。
arp (8) - 操纵系统 ARP 缓存


对于描述,定义最好来自第 8 节。我们可以通过使用选项 '-s' 和双引号中的节数来显示特定节。如:

whatis -s “8” arp

如果要指定多个段,用逗号(,)隔开。

如果我们假设有一个你不记得的命令,但你记得它以'ch'开头,你可以执行通配符搜索:

whatis -w “ch*”

结果是:

chacl(1) - 更改访问控制文件或目录的列表
chage (1) - 更改用户密码过期信息
chardet (1) - 通用字符编码检测器
chardet3 (1) - 通用字符编码检测器
chardetect (1) - 通用字符编码检测器
chardetect3 (1) - 通用字符编码检测器
charmap (5) - 字符集描述文件
charsets (7) - 字符集标准和国际化
聊天 (8) - 使用调制解调器 chattr 的自动对话脚本
(1) - 在 Linux 文件系统
chcon 上更改文件属性 (1) - 更改文件安全上下文
chcpu ( 8) - 配置 CPUs
check-language-support (1) - 返回缺失包列表以提供完整的语言环境
checkXML5 (1) - KDE DocBook XML 文档的 XML lint 工具。
cheese (1) - 从网络摄像头拍摄照片和视频的工具
chfn (1) - 更改真实用户名和信息
chgpasswd (8) - 以批处理模式更新组密码
chgrp (1) - 更改组所有权
chmem (8) - 配置memory
chmod (1) - 更改文件模式位
tc-choke (8) - 选择并保留调度程序
chown (1) - 更改文件所有者和组
chpasswd (8) - 以批处理模式更新密码
chroot (8) - 运行命令或交互具有特殊根目录的 shell
chrt (1) - 操作进程的实时属性
chsh (1) - 更改登录 shell
chvt (1) - 更改前台虚拟终端


现在您可以轻松浏览列表并找到您的命令。

结论

这些命令对于查找系统上的文件很有用。

当您搜索某些内容或文件运行不正常时,请记住这些。例如,命令运行的版本比您想要的要旧。您可以确定命令文件的位置。较新版本的文件可能位于路径列表的后面,导致执行旧版本。

一定要注意这些命令。

相关推荐

Go语言泛型-泛型约束与实践(go1.7泛型)

来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...

golang总结(golang实战教程)

基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...

Go 官宣:新版 Protobuf API(go pro版本)

原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...

Golang开发的一些注意事项(一)(golang入门项目)

1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...

golang 托盘菜单应用及打开系统默认浏览器

之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...

golang标准库每日一库之 io/ioutil

一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...

文件类型更改器——GoLang 中的 CLI 工具

我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...

Go (Golang) 中的 Channels 简介(golang channel长度和容量)

这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...

Golang引入泛型:Go将Interface「」替换为“Any”

现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...

一文带你看懂Golang最新特性(golang2.0特性)

作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...

Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移

以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...

Golang使用grpc详解(golang gcc)

gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...

Etcd服务注册与发现封装实现--golang

服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...

Golang:将日志以Json格式输出到Kafka

在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...

如何从 PHP 过渡到 Golang?(php转golang)

我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...