Linux 如何在X-Windows中更改焦点?

我正在为Linux开发基于Motif的旧应用程序。我希望能够以编程方式更改应用程序的活动窗口。我可以使用XSetInputFocus()函数重定向输入,键盘输入开始转到那里,但是XReconfigureWMWindow()和XRaiseWindow()函数就是不起作用 我已经读到窗口管理器试图停止这种行为,所以尝试禁用配置重定向,但这也不起作用。您知道如何在窗口堆栈的顶部创建一个我自己的窗口吗?您可能会发现答案取决于用户使用的窗口管理器,甚至取决于他们对窗口管理器的设置。我喜欢将我的窗口管理器设

Linux 查找启动进程的文件

我认为我的服务器已经被破坏了,它有许多perl进程正在运行。但是,我不知道它们是从哪个文件启动的,所以我可以删除它。如何查找此信息?如果运行命令“ps-ef”,则应获得计算机上运行的所有进程的列表。每个进程都有一个进程id号(PID),还有一个父进程。找到有问题的流程并检查其父PID。然后找到具有匹配PID的进程,它应该是您的罪魁祸首。您可以检查符号链接/proc/PID/cwd,也可以从ps(1)检查ppid我要做的第一件事是查看父进程id(ppid)。也就是说,如果PPID为1,则不会告诉您

Linux上的PostgreSQL数据库默认位置

PostgreSQL在Linux上保存所有数据库的默认目录是什么 /var/lib/postgresql/[version]/data/ 至少在GentooLinux和Ubuntu14.04默认情况下是这样 您可以找到postgresql.conf并查看paramdata\u目录。如果有注释,则数据库目录与此配置文件目录相同。postgresql将保存所有数据库的目录(和配置)称为“数据目录”,与postgresql称之为(有点混淆)的“”相对应,与分布式计算无关,它只是指由PostgreSQ

Linux 光标未到达vim中的行末尾

我最近安装了Ubuntu,并在终端上摆弄配置文件首选项。现在,当我在vim中编辑时,光标不会使用导航键转到行的末尾(在正常模式下,“$”也不起作用)。但是,它在插入模式下确实正确显示。这只不过是个麻烦,但我宁愿不要。如何纠正这一点 这是vim中的正确行为。除非处于插入模式,否则光标将只移动到最后一个字符。虚拟它允许光标移动到行尾。尝试:设置ve+=all或:设置ve+=onemore。有关更多信息,请参阅: :hve。通过在~/.vimrc文件中添加相应的命令,而不添加:,可以将这些设置设置设置

Linux dd:如何计算最佳块大小?

运行dd时,如何计算最佳块大小?我做了一些研究,但没有发现任何迹象表明这将如何实现 我的印象是,较大的块大小将导致更快的dd。。。这是真的吗 我将dd两个相同的500gb Hitachi HDD,在一个装有4GB DDR3 1333mhz RAM的Intel Core i3的机箱上以7200rpm的速度运行,因此我正在尝试找出要使用的块大小。(我将从闪存驱动器启动Ubuntu10.10x86,并运行它。)最佳块大小取决于各种因素,包括操作系统(及其版本),以及涉及的各种硬件总线和磁盘。几个类Un

Linux 如何让find根据对每个文件运行管道的结果打印文件列表?

我知道我们可以使用find-exec…指定要在每个文件上运行的命令,并仅输出命令成功执行的文件,例如find-执行测试-d{}-打印将打印出所有目录。我想给-exec一个管道,让find返回管道最后一个命令返回true的文件 具体来说,我希望在每个文件上运行jar-t,并grep输出类名。我尝试了查找-名称\*jar-execjar-tf{}\| grep-qfoo \-打印,但它会返回所有文件。我如何更改它?只有当find使用子shell时,使用命令管道作为-exec的参数才有效。但find只

Linux 如何找到信号量未锁定的原因

我有一个特殊的情况,有两个线程(实际上是5个线程)挂起。原因是它正在等待一个信号量,并且无法获取该信号量。 ipcs-p不显示任何具有该信号量的任务。 ipcs-s-i显示计数为5 那么,我如何知道为什么这5个线程没有发生信号量锁呢?如何查看是否有线程持有此信号量 (在分析调用堆栈时,我看不到任何具有该信号量的任务。) 谢谢你的帮助 我将围绕信号量的使用编写一些调试代码(即,在每个信号量函数之前和之后,指定使用哪个信号量和哪个线程)。此外,我会再次检查,以确保您的代码没有任何死锁。这很容易实现,

在Linux中运行.pkg文件

可以在Ubuntu或Fedora中运行.pkg文件吗。如果是,我该如何开始 档案是什么?它是Mac系统(苹果公司)中使用的一种文件格式 在Linux发行版中是否有可以运行.pkg文件的替代方案?(特别是Ubuntu或Fedora,我在这两个发行版中都使用了最新版本)。您可以使用;也许存档前端还可以处理Xar格式,因为它链接到libarchive12,后者为Xar格式提供只读支持 ,而Linux使用。(好的,Linux也可以阅读一些古文,但这种格式在现代Linux系统上实际上已经过时了。),但在这

Linux 为什么从机不在PVM(并行虚拟机)中工作

我正在尝试构建一个PVM代码,它有一个主程序和一个从程序(我正在centOS 5.5操作系统上工作) 当我运行命令aimk master1 slave1时,它将给出以下输出:- Spawning 3 worker tasks ... SUCCESSFUL I got 100.000000 from 1; (expecting 100.000000) I got 200.000000 from 0; (expecting 200.000000)

JSch将目录从本地复制到远程Linux机器

在JSch中,我发现了一个非常有用的方法,可以将文件从本地机器复制到远程Linux机器。有没有办法使用Jsch将目录从本地复制到远程Linux机器? 或 我需要一个接一个地遍历所有文件并将其复制到远程计算机吗?我与JSCH合作过,但没有遇到复制整个文件夹的情况。因此,您需要遵循问题中提到的第二种方法。此链接。可能您可以基于此编写代码。@SrinivasR:无法打开链接400错误请求。你能重新发送这个链接吗?基本上我是从这里得到这个链接的,所以看看它是否对你有帮助

GitHub、Linux服务器和所有权问题

我在GitHub上有一个私有Git repo,并且在我的服务器和GitHub.com之间建立了SSH连接。我可以将我的应用程序从GitHub成功拉到服务器上,但当我访问我的应用程序URL时,我会收到“500内部服务器错误”。我的主人认为这与所有权问题有关 所以我的问题是,如果我以root身份通过SSH登录到我的服务器,并且我执行一个pull请求,那么我如何确保服务器上文件的所有权是正确的 谢谢我认为git不会改变所有权,是吗?因此,这些文件最终将归root所有,除非您随后chown-R。您的应用

Linux Node.js未捕获异常

根据许多文章,处理node.js应用程序中未捕获异常的最佳方法是让进程崩溃,然后重新启动它。这避免了应用程序处于不稳定状态。 我认为这可以通过一个外部进程来完成,比如看门狗(有时称为天使进程)。 在linux系统中实现这一点的最佳方法是什么?乍一看,每n秒检查一次节点进程状态的bash脚本可能是一个可行的解决方案。 提前感谢,任何建议都将不胜感激 有几种解决方案,如您提到的看门狗/天使流程。你最常听到的是“永远”。它可以通过npm获得 要安装,只需:npm安装-g forever 然后当你想

Linux 如何在屏幕会话中执行命令

我想知道如何在屏幕会话中执行命令。 我搜索了一下,发现了这个: screen -S nameofscreen -X stuff "command" 当我键入此命令时,命令会在屏幕内键入,但不会执行。 因此,我的问题是如何使用此命令按enter键。在bashshell中,您可以使用ctrl-V将不可打印的字符显式放入字符串中。因此,请尝试在命令末尾的ctrl-Vctrl-Lctrl-Vctrl-M,就在“之前,我会这样做: screen -S sessionName bash -c 'cmd;

Linux 找不到bash脚本命令-命令已正确执行

我写了一个bash脚本,得到了以下信息: /home/myname/documents/myscripts/run_tearingmode.sh:第44行:未找到mpirun2:命令: 这里是脚本的相关部分 if [[ "$run_jobs" == "y" ]] then printf "The jobs run one after the other. Have fun with the analysis. \n " for ((i=1;i<=$number_subfolders;

解释Linux内核状态术语,例如net.next、Linux-next、net.git

我过去曾从kernel.org编译过一些内核,但不确定某些术语: 最近,我有一个开发者通过邮件列表告诉我为一个功能安装一个特定的内核,“3.12+(net.git)应该可以使用。”net.git是什么意思?我去了kernel.org,它说3.12是主线(在我搜索时),但我没有看到net.git 如果有人说安装3.12(net.git),我如何获得它?这是否意味着从github上的特定分支进行克隆 net.next、linux-next、net.git等术语是什么意思?我想还有其他人 是否有一个页

Linux 如何搜索';字符串';然后立即返回值?

我有许多文本文件需要搜索字符串,然后返回后面的值。例如,我的文件可能看起来像: text text text a = 12 b = 14 String = 25 text 我想搜索“字符串”,然后返回25。我试着用 grep -i "String" filename.out 但这给了我全部的线索。我已经找到了很多关于查找特定字符串的信息,但没有找到紧接着的内容。提前谢谢。试试这个: grep -iPo '\bstring\s*=\s*\K\S*' 试试这个: grep -iPo '

Linux 如何将命令从Shell脚本传递到命令行

我正在linux上使用ssh远程访问第二个linux。ssh所做的是使我的Linux终端成为远程Linux终端,我在终端中输入的任何内容都将在远程Linux上执行。现在,我想在建立远程访问后使用Shell脚本输入命令 我使用以下bash来完成ssh部分: #!/bin/sh ssh user@192.168.178.160 在这之后,它会提示一个密码,该密码是正确的,我输入密码,然后我就连接到了远程主机。 但是在那之后,我需要输入一些额外的命令来自动执行(也来自shell脚本),但是在上面的代

Linux 暂停()之前的上下文切换是否会导致信号丢失?

考虑以下代码: 过程A(在随机时间点): 进程B(当前被信号量0阻止) 并考虑这一系列事件: (0)A:doSomthing (1)A:unlock <--------------- Content Switch from A to B. (2)B:lock (3)B:doSomthing (4)B:kill <--------------- The signal is handled here (Doing nothing). (5)A:pause() <----------

Linux 我可以访问我的域和子域上的子域URL路径吗?

我有一个运行nginx的DigitalOcean VPS,它有两个网站。其上的两个站点是:和 我的主(www.)域主要是一个静态站点,但我的博客(blog.)子域在Ghost上运行 除了我可以从www.和blog.访问我的博客之外,一切都非常正常。例如,这里有一篇博客文章,但是可以从中看到相同的博客文章 另一点需要注意的是,如果您尝试在没有www.或博客的情况下访问it 404 问题在于在同一VPS上有两个站点,但不确定我的nginx配置是否有问题,或者是我的DNS有问题,还是两者都有问题 ng

Linux 如何在Centos上安装crontab

我熟悉在我的centos上使用crontab-e命令设置cron调度程序。但是今天我发现我的一个centos服务器没有这个命令 我曾尝试使用yum安装crontab安装此软件,但没有成功。然后我尝试了yum安装crontab,它安装了一些东西 ============================================================================= Package Arch Version

Linux 正在获取包含文件夹的名称

我有一个shell脚本,我想在许多目录中复制它 在这个脚本中,如何初始化变量 PARENT_FOLDER 以某种方式将包含此脚本的文件夹的名称(而不是绝对路径)存储在其中 请注意,此脚本可以从任何文件夹运行 提前感谢。在大多数情况下,以下内容将获取脚本所在目录的绝对路径: PARENT_FOLDER=$(dirname "$(readlink -f "$0")") (OSX和BSD可能缺少-f选项,如果没有该选项,路径可能仍然包含符号链接。) 如果您只想在路径中输入最终目录的名称,只需添加一

Linux 我的自定义init shell脚本停止部署脚本

我有一个运行良好的部署脚本。最后,我添加了以下块: cat << EOF > /etc/init.d/uwsgi #!/bin/bash daemon=$APPVENV/bin/uwsgi args="--emperor $APPCONF/uwsgi/app.ini --daemonize /var/log/emperor.log --emperor-pidfile $APPDIR/emperor.pid --gid `id -g $APPUSER`" pid=$APPDIR/

linux cksum命令值是否在不同的系统上有所不同?

如果我在两个具有不同硬件规格的不同linux系统中执行“cksum filename”,那么对于同一个文件,我将获得不同的校验和值。 有人能告诉我这背后的原因吗 “文件名”是在一个系统中生成并复制到另一个系统的二进制文件。cksum所使用的算法由POSIX指定。所有兼容POSIX的系统(包括GNU/Linux)都应该为同一个文件计算相同的值——这就是关键所在。如果在不同的系统上得到不同的值,那么要么程序有缺陷,要么文件(至少是cksum的视图)实际上不一样。我不敢打赌这个程序是有缺陷的 但是,请

Linux gtk下拉菜单激活时无法调试

我有一个窗口,有几个Gtk-2.0小部件。其中一个是GTK数据库,连接了相应的GTK Completion 我需要调试在GtkCompletion显示的下拉列表中进行选择(“匹配”事件)时调用的代码。所以我设置了一个断点,激活了选择,整个桌面都挂起了。我找到的唯一可以退出的表单是Ctl Alt Backspace,并删除gdb实例 发生这种情况时,整个windows管理器将保持该下拉列表处于活动状态—仅响应Ctl Alt函数,如Ctl-Alt-F2 我尝试了--sync命令行选项,但没有任何区别

Linux 时差bash脚本

我正在尝试制作一个bash脚本,该脚本将计算用户第一次登录和用户最近一次登录之间的时间差。感谢您的帮助:) 这就是我到目前为止所做的: read -p "Enter a user ID: " ID echo "You entered the following ID(s): $ID" #/bin/egrep -i "^$ID" /etc/passwd echo -n "The users real name is: " /bin/grep "^$ID" /etc/passwd | cut -

从linux命令行搜索我保存的命令(不是bash历史记录)的工具/脚本

在linux/bash中,反向i-search(Ctrl+R)只搜索历史 是否有我可以使用的软件包(如反向搜索): alias及其添加到.bash_配置文件的问题在于它们不可修改。 e、 例如,我经常使用'git-rebase-I HEAD~NUM',我只能将某个NUM别名为某个NUM,而使用reverse-I-search我可以检索命令、编辑并执行它 谢谢。您可以: 只需将它们添加到您的历史记录中,并使用Ctrl+R进行搜索 如果你一直在回避这一点,因为你发现台词从历史中消失了,那就是 将它

Linux 在bash中使用param

我需要在bash中获取参数,我可以获取参数h,c,p,s,a,但我不能获取参数b 为什么我不能接受?这是我的剧本: if [ ! -z $1 ]; then HOSTNAME="" CLIENT="" SUBSCRIPTIONS_GROUPS="" PROVIDER="" SERVER="" while getopts ":h:c:p:s:a:b" opt; do case $opt in

Linux fork()和sys_fork()的区别

我看到所有系统调用(比如x)都与另一个调用相关,如sys_x(): 例如:fork和sys_fork()、open()和sys_open()等 这些sys_x()调用的意义是什么?我们在哪里可以使用这些电话 这些sys_x()调用的意义是什么 正如名称所示,这些是在内核模式下执行的实际系统调用 您可以看到,当您从应用程序调用fork(2)或open(2)时,您并没有直接调用原始系统调用;相反,您正在调用glibc的包装器,这些包装器知道如何调用实际的系统调用。之所以需要这个间接步骤,是因为系统调

Linux 符号链接“;“拒绝许可”;

我找不到任何现有的问题来解决这个问题: 我有一个符号链接: lrwxrwxrwx 1 www adm 49 Aug 26 10:00 pictures -> /home/user/foo/bar/baz 目标目录: drwxr-xr-x 12 www adm 4096 Aug 26 07:53 baz 当用户www尝试访问时失败: ~$ sudo -u www ls /var/www/pictures ls: cannot access /var/www/pictures:

Linux NoMachine v5.0.47连接断开,无错误

有人经历过这种行为吗?平均每小时左右,连接就会在没有任何警告或错误的情况下终止,并转到最近的连接主页。我只需再次单击“连接”,我就会再次连接,再过一个小时左右它就会再次死机。最好的办法是在日志中查找潜在的错误。这可能出于任何原因发生,甚至与NoMachine无关。另一种方法是联系他们寻求帮助。论坛是一个良好的开端。最好的做法是查看日志中的潜在错误。这可能出于任何原因发生,甚至与NoMachine无关。另一种方法是联系他们寻求帮助。论坛是一个良好的开端

禁用linux内部路由?

我有一个带有2个NIC(eth0,eth1)的系统,我用电缆将它们连接到外部(使用corssover电缆或将它们连接到同一个交换机)。我想从eth0 ping eth1 ip地址,我想从外部(通过电缆)将流量从eth0传输到eth1,但linux内核在内部发送流量,不允许它通过电缆,如何解决此问题并向外部发送流量? 我将ping与“-I eth0”一起使用,但问题仍然存在 首先,奴役不同VRF上的至少一个接口,然后尝试ping-l eth0 dest 关于Linux上VRF的一些有用资源:

在Linux上构建Swift SourceKit

看起来第二个命令对构建SourceKit没有任何作用。未在生成目录中创建二进制文件。有什么建议吗 jara@jara-pc:~/swift-source/swift$ utils/build-script --libdispatch --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE" + mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert + env HOST_VARIA

Linux 为.profile中的函数创建别名

我想在我的$GOPATH/bin目录中运行可执行文件,而不必在那里cd,因此我在.profile文件中添加了以下内容: export GOBIN=$HOME/go-workspace/bin function _rungo() { "$GOBIN" "@$1" } alias rungo='_rungo' 别名定义在第28行。 我的想法是在命令行中键入rungo executable\u name来运行可执行文件 当我登录我的帐户时,我收到以下错误: line

Linux 在Perl中打印目录中的所有文件将不起作用

因此,我对Perl不熟悉,只想打开一个目录,列出它的所有文件。当我运行下面这个非常简单的代码试图在/usr/bin中打印所有内容时,它将不起作用,并且无论我尝试什么,我总是被告知“无法打开/usr/bin:没有这样的文件或目录” 任何帮助都将不胜感激 #!/usr/bin/perl $indir = "/usr/bin"; # read in all files from the directory opendir (DIR, @indir) or die "Could not open $

下一步获取linux以前版本的日志

我正在工作。据我了解,它每天都会重新调整主线内核分支,并合并所有分支。因此,在当前发布的版本中无法看到以前linux下一版本的日志。是否也有办法获取以前版本的日志。每个linux下一版本都标记为next YYYYMMDD(因此今天的将是next-20190228)。过去三个月的发行版保存在上面引用的linux下一个目录树中,其余的都存档在linux下一个历史目录树()中。每个linux下一个发行版都标记为next yyymmdd(因此今天的版本是next-20190228)。过去三个月的发行版保

在Linux容器上的dotnet内核中实现消息使用者

我希望实现一个将部署在Linux kubernetes集群上的服务。它将使用和处理队列中的消息 我的问题是,现在在dotnetcore中实现worker的推荐和常规方法是什么?ASPNET应用程序中的后台任务似乎有些过分,因为我不需要为web请求提供服务。一点研究让我想到,一个构建IHost和定制IHostedService的控制台应用程序就可以完成这项工作。我很惊讶这个场景中没有示例,这让我想知道我是否缺少一种更标准的实现方法?使用“简单”的控制台应用程序,在最后一行代码中添加console.

Linux上的Azure迁移评估

我想在linux上测试Azure的监控工具。我找到了微软的文档。我做的每件事都一模一样。但是,当需要重新启动服务时,我得到了最大的好处。 我该如何解决这个问题?错误是什么?为什么需要监视器?对于迁移评估,可以使用azure migrate。我不会将VMWare用于特定的机器。

Linux 詹金斯在我重新启动后崩溃了

大家好,我有一个非常旧的Jenkins版本1.646,我只需安装pipeline utility steps插件并重新启动Jenkins,现在当Jenkins启动时,它只说了一句“请稍候,Jenkins正在准备工作”,然后它会显示一个白色页面 我怎样才能修好它?我只是从plugins文件夹中手动删除该插件 这是日志文件 不要使用ScmSyncConfigPlugin,还有其他方法可以备份您的配置,而且该插件存在设计问题,这会危及您的jenkins实例的稳定性 通过登录服务器手动删除插件,即可启

Linux 使用shell脚本根据随机ID号将数据分离为文件

我有一个制表符分隔的文件(1993_NYA.tab),其中无线电探空仪数据包含其ID。我想将每个ID的数据提取到单独的制表符文件中。文件看起来像这样 1993-01-01T10:45:03 083022143 250 78.93018 11.95426 960.0 -16.8 76 1.7 276 1993-01-01T10:45:16 083022143 300 78.93011 11.95529 953.7 -17.2 77 1.8 288

Linux 无法为Android编译WebRTC库

我正试图编译WebRTC本机堆栈来构建libwebrtc.aar,但不幸的是,我无法理解到底出了什么问题 系统信息: Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic Java-Version: OpenJDK-8-JDK Python-Version: Python 2.7.17 我已经遵循了中提供的完整步骤。这些步骤已经完成,没

Linux 列出每个不使用';不能递归地匹配模式

尝试了以下命令,它列出了包括文件名在内的所有行 与给定模式不匹配的 grep -nrv "^type.* = .*" “但我们需要的是包含内容的文件夹中的文件名列表 甚至没有一次出现上述模式。” 非常感谢您的帮助。您需要-L选项: grep -rL '^type.* = .*' directory_name 从GNUgrep手册: -L- -不匹配的文件 抑制正常输出;而是打印通常不会打印输出的每个输入文件的名称。扫描将在第一次匹配时停止

Linux 交替使用文件指针和文件描述符

当我调用较低级别的函数API(如对fileno()函数给定的文件描述符进行读/写)而不是调用fread/fwrite时,如何确保FILE*文件描述符状态保持同步。 我想到的情景是: fp = fopen(...) fd = fileno(fp) read(...,fd) 在上述读取(…,fd)后,我希望fp(文件*)在读取字节后正确定位ftell和feof仍应指向正确的信息。此问题比您想象的更复杂: > 文件*//>基于API(例如 Frad()>代码>使用内部缓冲区,并且取决于所使用的C库

Linux 在BASH中,如何在递归创建的文件的copy语句中引用目录名;查找“; 我希望递归查找以*DETAIL.pdf结尾的所有文件 为每个文件创建一个与原始目录同名的新目录(在另一个驱动器中) 将文件复制到新目录中

我将此作为我当前的尝试: find-name\*DETAIL.pdf-type f-not-path“/test2”-exec cp-R{}./test2\ 我正在努力通过引用每个文件的原始目录名来为所有这些文件创建新目录。示例提到使用cp,但问题本身没有,因此我建议只使用find和tar。此外,尽管问题有点模糊,如上面的注释所述,但该示例似乎表明所需的输出目录是正在搜索的同一目录的子目录。鉴于: find . -path "./test2" -prune -o -type

Linux 一个脚本中有多个inotify事件

我试图编写一个bash脚本(作为服务安装)来监视多个目录,并将在该目录中创建的任何文件移动到另一个目录。例如,我希望将在/home/test/directory1中创建的任何文件移动到/opt/directory1,但我也希望将在/home/test/directory2中创建的任何文件移动到/opt/directory2,但所有文件都作为一个正在运行的服务放在一个脚本中。这是我目前的剧本 #/bin/bash directory=/home/test/directory1 archive=/

Linux MPI不';不能为更多的处理器工作

我正在尝试使用命令“/usr/local/packages/mpich1/bin/mpirun-np 256./hello”运行hello-world代码 . 我得到以下错误 [proxy:0:0@user-MZ92-FS0-00] HYDU_create_process (utils/launch/launch.c:22): pipe error (Too many open files) [proxy:0:0@user-MZ92-FS0-00] launch_procs (pm/pmiser

Linux MATLAB在我安装Maple后停止工作

我安装了Maple并给它提供了MATLAB的路径,现在MATLAB无法启动。看起来MATLAB正在试图找到一些东西,但是找不到 我正在运行Ubuntu 18.04 以下是在终端中运行MATLAB命令时的输出: /usr/local/MATLAB/R2020a/bin/glnxa64/MATLAB: /home/lucasrj/maple2020/bin.X86_64_LINUX/system/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (