Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Linux_IT技术博客_编程技术问答 - 「Fatal编程技术网」

Linux systemtap脚本

我想在systemtap和trace内存系统调用中编写一个脚本 我想捕捉内存系统调用的数量和特定进程在固定持续时间内使用的内存 我不知道如何编写这个脚本。脚本是一个很好的起点。分配内存的系统调用是sbrk和mmap,因此,这些就是要查找的对象。我将从system tap中的系统调用示例开始,然后针对您感兴趣的系统调用进行特定设置,并打印出系统调用的参数: 非常感谢,我知道我以前见过它,但它不能解决我的问题,请帮助我了解更多您使用的是什么内核版本?您可能不需要使用systemtap,并且能够使用内

Linux fgrep-f pattern.txt返回pattern.txt中的eaxct模式

我有一个模式文件,如下所示 $cat pattern.txt I am line 1 I am line 2 I am line 3 I am line 4 我要搜索的文件: $cat file.txt I am line 0 I am line 1 I am line 2 I am line 3 I am line 4 I am line 5 I am line 3 I am line 4 如果我这样做 fgrep -f pattern.txt file.txt I am getting

Linux 3.14中的系统调用条目

Linux内核3.14中的系统调用条目位于哪里?在以前的发行版中,应该有一个.S文件列出系统调用的条目,如下所示: .long sys\u restart\u syscall/*0*/ .long sys\u exit .long sys\u fork …对于X86,系统调用条目将位于arch/X86/syscalls/文件夹中 参考文献

Linux 使用curl的Google建议查询

当我使用不同的浏览器执行请求时,它会给我正确的xml响应 现在我正在使用curl命令请求url,但它给了我400错误: curl http://suggestqueries.google.com/complete/search?output=toolbar&hl=en&q=test&gl=US 我也通过了用户代理,但它也给了我同样的错误 curl -A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20

Linux 排序管道会擦除文件 执行命令> C> MyDATA.txt>排序> UNIQU> MyDATa. TXT 后,为什么MyDATA.TXT文件为null?< /P> < P>答案是: < > MyDATA。

即使在最后一次|之后有一个命令,它在读取mydata时仍然会写入mydata,这是错误的,可能会删除大部分内容 在Linux shell中,命令管道不是按顺序执行的。所有命令都同时执行,并且一个命令的输出附加到下一个命令的输入 通过使用top或pstree 因此,正如评论者所建议的,您应该使用一个临时文件作为输出。创建输出后,将其移回原始名称,并将其删除 像这样: cat mydata.txt | sort | uniq > tmp-mydata.txt mv tmp-mydata.txt

Linux 如何防止以root用户身份意外删除重要文件

我需要使用root来安装和维护我正在使用的数据库和应用服务器。数据库和应用程序服务器在/usr目录中创建我需要操作的文件和目录。我过去曾意外地删除了/usr中的重要文件,使系统的行为变得有趣。我想知道如何防止将来发生这种情况。我有一个rm-rf的习惯,这是多年来非root用户使用的结果 我考虑将/usr移动到/usr_bkp,并创建一个软链接/usr指向/usr_bkp。我担心移动或移除/usr即使是暂时的,也会产生不可预测的后果。避免此类错误的最广为人知的方法是什么。root的目的是做他想做的

将shell脚本远程发送到linux计算机

我有一个web应用程序,它使用服务器上运行的命令生成shell脚本 然后我还有另一台Linux服务器,脚本应该在那里执行 我想知道是否有人能为我指明正确的方向,告诉我如何将shell脚本从一台服务器发送到另一台linux服务器,并在第二台服务器上执行它?您可以使用scp通过 scp <source_file> <destination> 对于在服务器上执行,您有各种选项。您可以使用cron作业定期执行它。您可以使用rc.local在启动时执行。您可以使用ssh 以SSH

在进程读取文件后,在linux系统中删除该文件

我正在寻找一种解决方案来监视一个特定的目录,并在进程读取、打开和关闭该目录中的所有文件后将其删除。我对监视特定进程不感兴趣,而是对目录本身感兴趣。实现这一目标最可行的方法是什么?我可以自己开发解决方案,只需要一些初步的指导方针/想法。我想您正在寻找类似inotify的东西。有一个我认为你在寻找的实际例子 您考虑过inotify吗?find命令在这里可能会有所帮助。例如,查找-name*.pdf-atime-1将显示在一天内使用访问的文件。FWIW,您可以在进程仍打开文件时删除文件,但进程将继续能

Linux-用户过期日期(小时)

我正在使用以下命令设置linux用户帐户的过期日期: chage -E '2017-04-07' username 但是,我只能阻止用户使用日期,并且当日期出现时,用户已经被阻止 您想让帐户在24小时内到期吗 Tks 不能使用“chage”,因为它需要指定日期。如果您想在几分钟后停用用户,请使用以下命令 adduser username_here && sleep 600 && usermod --lock username_here 或 因为它不涉及程序,所

Linux 在使用sqlite绑定的tcl中,“eval”命令没有对“附加数据库”执行任何操作

我正在尝试使用tcl自动执行数据库连接,因为它是sqlite推荐的 我尝试评估创建表、插入和选择。它们都按预期工作,但不适用于附加数据库。 下面的脚本没有执行任何操作 #!/user/bin/tclsh load /usr/lib/sqlite3.20.1/libsqlite3.20.1.so Sqlite3 sqlite3 main_db /location1/dbfile.sqlite main_db eval { ATTACH DATABASE "/home/location2/db

如何在bashshelllinux中使用两个单词查找路径

我想找到一个使用to单词的路径,例如,当我在相同条件下搜索build和leddindicator时,我想给出这个路径/home/user/build-leddindicator-Desktop\u Qt\u 5\u 7\u 0\u GCC\u 64bit-Debug/。 我曾经使用locate-ledindicator,它会给我路径,但在我的例子中,我有多个路径中有ledindicator 有人能帮我吗?这对你有用吗 find / -name "*ledindicator*"

Linux 使用tar归档隐藏目录

目录mydir上的tar将存档隐藏的文件和隐藏的子目录,但使用*通配符的mydir内的tar将不会存档。这是一个已知的不一致或错误吗 编辑:附加信息tar将不会“查看”或存档即时目录中的隐藏文件和隐藏子目录。但是,在mydir的非隐藏子目录中,隐藏文件和隐藏子目录将被归档。换句话说,在目录树的更深处,隐藏的对象将被归档。使用通配符将不起作用。您必须指定。(当前目录)如果您是指包含隐藏文件的完整目录。你能行 tar -cvpzf test.tgz . shell扩展了通配符,因此tar甚至看不到

Linux Apache2::centos 5.5上的请求(libapreq2-2.13)

我在Centos 5.5上安装Apache2::Request的时间很长。我的apache是centos附带的标准版。 我是从libapreq2-2.13安装的,很多依赖项都不存在。到目前为止,我不得不做: yum为apx安装httpd-devel# 然后我做了: perl Makefile.PL——with-apache2-apxs=/usr/sbin/apxs 制造 然后,make步骤告诉我需要:extutilsxsbuilder和parserecdence,这是我正式安装的 再次运行mak

Linux 什么';这个RegExp有什么问题吗?

我相信我没有做错这件事: sed -e "s_//[01]\.thumbs\.4chan\.org/[a-z0-9]\+/src/\([0-9]\*\)s\.jpg_/${LOC}/\1s.jpg_g" -e "s_//images\.4chan\.org/[a-z0-9]\+/src/\([0-9]\*\)\.\(jpg\|gif\|png\)_/${LOC}/\1.\2_g" $LOC.html > a 有人能告诉我为什么它不把在线链接转换成离线链接吗?我认为\*和\+应该是*和+?

Linux 删除dpkg以停止进程

我目前正在运行Ubuntu 12.04。我已经创建了一个debian软件包,目前已成功安装并启动了三个新进程。我还通过在/etc/init.d中放置以下脚本,使这三个进程在运行时启动: # This example is from http://www.debian-administration.org/article/Making_scripts_run_at_boot_time_with_Debian # Also used http://wiki.debian.org/LSBInitSc

Linux 针对非默认openssl版本链接wpa_请求者

我想使用另一个版本的openssl编译wpa_supplicant,然后是安装在构建系统上的版本 为此,我在.config文件中设置了以下设置: CFLAGS += -I/custom-openssl/include LIBS += -L/custom-openssl/lib 但是,它仍在针对默认安装的openssl版本进行链接。您的-L指令将添加到库列表的末尾,以查找。因此,在链接过程中文件 相反,要么控制加载程序在加载二进制文件(可以编译成二进制文件)时应查找的目录,要么使用LD\u LI

Linux 在ubuntu中安装qemu?显示出一些错误

我在我的Ubuntu12.04中安装了qemu,无论是通过源代码还是从Ubuntu12.04的软件中心,它都显示了相同的错误。它不会弹出qemu窗口。当给我一个虚拟文件系统kernel initrd时,它只显示一些“VNC服务器侦听127.0.0.1”屏幕,不再挂起响应。请告诉我运行简单qemu for x86所需的安装步骤和库。尝试包括对qemu的SDL支持,并添加选项-SDL以运行它。默认情况下,VNC可能意味着您没有SDL-devel-lib。用apt安装libsdl-dev。我的意思是l

Linux 寻找独特的线条

如何找到唯一的行并从文件中删除所有重复的行? 我的输入文件是 1 1 2 3 5 5 7 7 我希望结果是: 2 3 排序文件| uniq将不执行此任务。将显示所有值1次uniq-u

Linux 构建我自己的gnome3发行版

我将开始构建一个基于linux Gnome3的个人发行版 经过大量的搜索,我找到了一些关于fedora混音的主题,但是它们 我不太清楚 我也在Gnome3官方网站上看过,但他们没有提供任何信息 关于如何在新发行版上集成Gnome3的教程 关于如何制作基于Gnome3的发行版,有什么好的指导吗?“我不太清楚。”怎么会这样?他们在谈论一些没有解释的东西,例如,他们在谈论kickstart文件,但他们从未定义这些文件是什么以及如何处理它们,这是因为还有其他资源解释这些文件是什么。为什么要构建自己的发行

如何提高linux集群上计算节点的并行处理速度?

下面是与我所问问题相关的代码。我正在使用一个集群,它有13个计算节点和1个顶级节点(也称为主节点)。顶部节点是连接所有用户的节点,因此分配了更多内存,因此可以运行得更快。但是,我希望提高其他节点的速度,因为它们的运行速度与顶部节点相比非常慢,并且我希望在不进行任何服务器和/或硬调整的情况下提高它们的速度。考虑到这些限制,我想知道是否有一种方法可以基于我如何在计算节点上启动模拟来实现更快的计算。目前,为了在某些初始条件下启动部分模拟(如下所示),我只需将ssh连接到compute节点,然后启动模拟

Linux 在HDFS中重写whoAmI

我正在阅读权威的hadoop书籍。在这里,作者描述了如何通过定义hadoop.job.ugi来覆盖whoAmI机制。好吧,我不会有任何进展的 我正在使用hduser@ubuntu(我的信箱名) 我创建了一个localhost.conf来覆盖默认conf: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific p

Linux 需要bash帮助的初学者

我目前正在编辑一个脚本,以使一些静态值被硬编码,因为我将是唯一使用它的人。所取的值如下所示: set -x ANDROID_NDK="$1" NDK_TOOLCHAIN="$2" ANDROID_ABI="$3" ANDROID_TOOLCHAIN_COMPILER_VERSION="$4" ANDROID_NATIVE_API_LEVEL="$5" PREFIX="$6" 我想将ANDROID\u NDK=“$1”更改为路径值。我尝试输入路径,使其成为ANDROID\u NDK=“path/

如何使用video4linux2录制网络摄像头视频信号?

我需要用ffmpeg从我的网络摄像头录制视频 我尝试使用以下命令:ffmpeg-re-f video4linux2-I/dev/video0 video.avi 我收到的消息是:v4l2帧是24384字节,但预期是153600字节 当我使用以下命令对avconv尝试相同的操作时:avconv-f video4linux2-I/dev/video0 video.avi我收到了相同的错误 但我可以通过以下命令从网络摄像头接收视频:gstreamer属性 如何配置v4l2以从我的网络摄像头获取信号视频

Linux 用bash脚本打开最新下载的文件

下面是我对这个问题的尝试。这是一个功能性脚本,但我必须为每种文件类型指定要使用的应用程序。由于有关默认应用程序的信息必须存储在Linux/Ubuntu上的某个地方,我如何访问这些信息并将其合并到我的脚本中 还有,我的剧本能不能更“优雅” 感谢您帮助Bash脚本初学者!我感谢你的评论 #!/bin/bash # Open the latest file in ~/Downloads filename=$(ls -t ~/Downloads | head -1) filetype=$(echo -

Linux 我能在KDE中找到一个合适的平铺窗口管理器吗

对于切换到平铺窗口管理器,我有点矛盾。我不久前做了这个改变,我真的很喜欢一些东西,但其他的东西我不喜欢。因此,我最终切换回我信任的KDE 然而,当我在虚拟桌面之间切换时,我不禁想,如果我能在KDE中有一个合适的平铺窗口管理器,那该有多棒。我知道kwin有一些瓷砖选项,但我觉得它们很烂!我想要一些类似i3的东西,所有的窗户装饰都被完全剥掉了 然后,我进一步考虑了这个想法,并开始思考,如果我可以配置特定的虚拟桌面,使其具有这种平铺WM,而其他桌面则具有良好的旧浮动kwin行为,那将是多么令人难以置信

Linux 我对listen系统调用backlog和套接字编程中的连接数的理解正确吗? 每个连接-服务器(唯一IP地址+主机号)+客户端。这是连接的唯一组合

可以基于操作系统支持的文件描述符的数量来建立这样的组合。例如,我的机器有以下限制- cat/proc/sys/fs/file max 380594 当我们说倾听时(sock_fd,5);这里5表示不会被拒绝连接的连接数。事实上,他们将处于未决状态。这里,让我们假设所有的fd都用于套接字连接。然后,第389595到389599次连接将处于挂起状态。一旦fd可用,将处理此问题。我说的对吗 不完全是 Re(1),我不知道你说的“主机号”是什么意思。一个客户机可以有两个到给定服务器的连接,只因源端口不同

将linux手册页转储到结构化/非结构化数据集中

有没有办法将所有linux手册页转储到一个数据库或一组文件中? 或者它们是否已经以某种格式存在于linux系统上,我可以从中获取副本?使用以下命令: manpath 它将显示手册页的路径 例如: user@Null-Pointer:$ manpath /usr/local/man:/usr/local/share/man:/usr/share/man 如果您查看目录,您将看到所有的tar文件。因此,几乎所有的手册页都以tar归档格式存储,当您使用 mansomecommand-使用以下命令:

Linux 递归将所有文件转换为单个文件

我有一堆文件放在文件夹里,比如 data\A\A\A\json1.json data\A\A\A\json2.json data\A\A\B\json1.json ... data\Z\Z\Z\json_x.json 我想把所有的JSON放到一个文件中 find data/ -name '*.json' -exec cat {} \; > uber.json 简短的解释: find <where> \ -name <file_name_pattern> \

如何在Linux上删除非常大的文件

我有一个63 GB的文件需要在Linux上删除。我的垃圾现在只有6GB。我尝试将63GB的文件拆分为631GB的文件,结果成功了。但是,我分割的文件仍然存在,因此我仍然无法删除它。我想解压这个63 GB的文件,但我发现当我解压时,它有一些地方已经损坏,所以我必须删除它,然后再试一次 最初,我有63个1GB文件,.z01.z02.z03…..z62.zip。我搜索了互联网,发现解压这些海量文件的方法是首先将它们连接在一起,这就是63GB的文件。然而,当我试图解压时,它只是部分解压,不起作用,因此我

Linux 如何使用putty将服务器中的文件复制到另一个文件夹

我想将某个文件a.xml从/tmp复制或移动到同一服务器中的另一个文件夹/var/lib/myfolder 我用油灰试过以下方法: user@server:/tmp$ mv a.xml /var/lib/myfolder 我收到错误消息,表示不允许此操作 如何将此文件复制或移动到其他文件夹 更新: 错误消息: mv a.xml不可能:不允许该操作 尝试cp然后rm源文件 cp a.xml /var/lib/myfolder rm -f a.xml 尝试cp然后rm源文件 cp a.xml /

Linux 非root用户如何使用Nagios mongodb插件?

我无法使用此github repo:中带有nagios mongodb插件的非root用户 例如:我可以运行以下命令: ./check_mongodb.py -H 'ip address'-P 27017 -u 'root admin user' -p 'password for admin' -A database_size -d 'database_name' -W 100 -C 1000 and 获取如下响应:确定-数据库大小:0 MB数据库:数据库名称 但如果我以mongodb安装的非

Linux 在内核模块中,如何知道给定的inode是否属于特定目录?

一种可能的方法是,将给定的inode与该目录中的inode列表进行比较。inode列表可以预先确定,也可以计算运行时间,两种方法都有各自的问题: 预定列表:此操作期间可以更改列表,即可以添加文件或从该目录中删除文件 运行时列表:如果该目录中的文件太多,则每次访问系统中的任何文件都会产生太多的开销 有什么有效的解决方案/方法吗?我尝试过按路径比较文件,这是一个非常糟糕的主意 无论是在内核模式下还是在用户模式下都没有优势。要查看inode是否确实位于某个目录中,您必须读取该目录,因为文件通常以线

Linux BeagleBone Black上的YAML

我正在试着在BeagleBone黑色的Debian哮喘病机上安装用于ROS(Indigo)的image_传输包。我使用在BBB上安装yaml apt-get install libyaml-dev apt-get install lbyaml-cpp0.3 当我使用 catkin_make install -DCMAKE_INSTALL_PREFIX=/opt/ros/indigo 我得到以下错误: [12%]内置目标摄像机\u校准\u解析器链接CXX可执行文件 /home/debian/

Linux 如何将两行连成一行

我在选择指定行和在一行中每秒连接一行时遇到问题 i、 e.我有两个文件: cat lol1.txt 2015-11-15 12:44:34 Name Value1 Value2 lol1 3 2 lol2 2 5 2015-11-15 12:44:44 Name Value Value2 lol1 7 1 lol2 5 1 2015-11-15 12:44:54 Name Value Value2 lol1 3 9 l

Linux 通过SSH启动长时间运行的程序

我有一个运行Ubuntu的虚拟机,我可以用SSH连接到虚拟机上。我甚至可以使用以下命令通过SSH启动python程序: python foldername/app.py 我在一台Windows机器上,使用Git-Bash进行SSH。如果我以这种方式启动python程序,我必须保持Git Bash窗口打开。如何启动python程序而不必在Windows机器上打开Git Bash?非常感谢您的帮助 您可以使用nohup: nohup python foldername/app.py &

Linux 如何从后台获取stdout? 让我假设我有一个C++程序一直在输出,比如这个 #include <iostream> using namespace std; void main() { int i=0; while(1) { cout << (i++)%10 << endl; } } nohup ./program &>/dev/null &

那我就没有任何输出了。如果我这样做 nohup ./program & 所有输出都写入nohup.out,淹没我的硬盘 我怎样才能在后台关闭输出,在程序在前台时打开控制台的输出?只是猜测,但您可以将nohup.out链接到/dev/null并删除链接以打开登录文件 创建符号链接: ln-s/dev/null nohup.out 删除链接: rm nohup.out 如果删除链接后nohup没有创建日志文件,则可能必须使用创建日志文件 触摸nohup.out只是猜测,但您可以将nohup

pdftotext在linux和windows上有不同的版本

我“我使用一个名为pdftotext的简单实用程序从pdf文件中提取文本。我发现在使用-table选项时,它的输出最干净、最清晰,但该命令行选项仅在该实用程序的windows版本上可用。Linux和Mac OS版本具有所有其他功能,但没有-table 我知道所有版本中都有-layout选项 **如何使用pdftotextlinux中的-table选项?要使用-table选项,您需要从XpdfReader下载命令行工具 然后只需提取文件并将可执行文件从bin32或bin64文件夹复制到/usr/l

Qobject::connect:在Linux中运行Kate应用程序时,null参数无效

我正在使用Linux Mint Sarah,每当我使用命令“kate file\u name”时,我都会收到这个错误。我已经更新了我的凯特,我相信它已经是最新版本了 QObject::connect: invalid null parameter QObject::connect: invalid null parameter QObject::connect: Cannot connect (null)::returnPressed() to KUrlRequester::returnPres

Linux 请求\u irq返回-16(-EBUSY)

这是我的问题。我目前正在更新arm嵌入式Linux机器的内核,从4.1升级到4.14.73 我正面临一个司机的问题。对于内核4.1,在向request\u irq注册irq之前,将通过set\u irq\u flags为驱动程序设置标志IRQF\u VALID 据记载 set_irq_标志是特定于ARM的,带有genirq的自定义标志 等价物。转换驱动程序以直接使用genirq接口,因此 我们可以杀掉set_irq_旗帜。旗的翻译如下: IRQF\u有效->!IRQ_NOREQUEST IRQF

Linux Redis突然没有响应(在docker上)

我正在docker(Centos Linux)上使用Redis。它运行正常,可以正常工作几天或几周,但有时会突然停止工作。docker容器启动了,我可以浏览它的文件。但是,它不响应StackExchange.redis包中的redis clibash命令、GetAsync和SetAsync方法,这些方法是通过IDistributedCache接口或任何其他命令实现的。我通过以下命令运行Redis容器: docker run --name x-redis -p 6379:6379 -d redis

Linux新手:Linux vs POSIX手册

所以我有Linux程序员手册和POSIX程序员手册的手册页。我应该选择哪一个?为什么?(我正在编写Linux应用程序,不打算将其移植到AIX、BSD等) 谢谢。基本上,linux手册是作者提供的命令/API的文档;POSIX手册来自POSIX标准。通常,“正常”的比较简短,但涉及具体实施;POSIX版本更长、更详细(请参见man 3p read),但仅说明标准中的内容 最好是同时查看这两个方面。基本上,linux手册是编写者提供的命令/API的文档;POSIX手册来自POSIX标准。通常,“正常

Linux (Bluez)如何获取蓝牙耳机按钮输入?

我有一个蓝牙耳机连接到linux设备。 我希望以编程方式接收播放/暂停/下一步/上一步/音量上升/音量下降按钮 经过一些研究,我发现我可以用dbus与Bluez交互。 我尝试使用此脚本注册MediaPlayer 但当我检查dbus时,没有新的玩家,而且它似乎没有改变任何东西 我还尝试使用Gatt服务,但我在任何地方都找不到org.bluez.GattService1 获取输入的最佳方式是什么?我的蓝Z有什么问题吗 背景: 我的目标是通过蓝牙将音频输入和音频输出连接到rpi。 我确实做到了这一点,

Linux 使用“编译时出错”;gcc$(pkg config--cflags--libs glib-2.0)context.c“-&燃气轮机&书信电报;加洛卡h>;找不到

我试图用“gcc$(pkg config--cflags--libs glib-2.0)”context.c编译context.c文件 但它不起作用,因为它找不到galloca头文件: context.c:3:10:致命错误:galloca.h:未找到文件或目录#include 我在galloca.h所在的/usr/include/glib-2.0/glib中尝试了“gcc$(pkg config--cflags--libs glib-2.0 glib)”。但是在将glib添加到compile命

使用Ansible playbook在Linux VM上可靠地定位正确的Azure托管磁盘

如何使用Ansible playbooks在Linux虚拟机上可靠地分区和装载Azure托管磁盘的文件系统 我可以使用Azure\u rm\u manageddisk创建Azure托管磁盘,并将其分配给VM实例。当我试图使用磁盘时,我的问题就开始了。我只是不知道如何可靠地将正确的托管磁盘作为分区和文件系统装载的目标 无论是azure\u rm\u manageddisk还是azure\u rm\u manageddisk\u info似乎都不会返回可从操作系统端引用的可靠、明确的磁盘id 我认为

Linux 在Ubuntu下使用snap时,如何添加nvim以更新备选方案

我想将nvim(快照)添加到更新备选方案中。问题在于,在决定运行哪个程序时,snap似乎以神秘的方式工作: $ sudo update-alternatives --install /usr/bin/vim vim /snap/bin/nvim 60 $ vim # works $ vim hello.txt error: unknown command "hello.txt", see 'snap help'. 如果我看一下/snap/bin/nvim,它是指向/us