小编mos*_*svy的帖子

在没有 -X 的 ssh 到机器后,是否可以更改 $DISPLAY 使其像 ssh -X 一样工作?

ssh没有-X机器之后,是否可以更改一些设置(例如$DISPLAY)以使其工作ssh -X?如果不是,原因是什么?谢谢。

ssh x11

23
推荐指数
1
解决办法
2363
查看次数

为什么 < 或 > 需要使用 /dev/tcp

尝试呼叫时/dev/tcp/www.google.com/80,键入

/dev/tcp/www.google.com/80
Run Code Online (Sandbox Code Playgroud)

巴什说no such file or directory。在网上查看其他人的代码时,他们使用的语法如

 3<>/dev/tcp/www.google.com/80
Run Code Online (Sandbox Code Playgroud)

我注意到这也有效:

</dev/tcp/www.google.com/80

为什么需要这些符号来调用 bash 中的某些东西?

linux bash io-redirection devices

13
推荐指数
2
解决办法
3799
查看次数

awk 从第 n 列打印到最后

我想打印从nth到的所有列last一行列的

文件中的输入字符串

vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3  
Run Code Online (Sandbox Code Playgroud)

命令

cat <file> | awk ' { for (i=3; i<=NF; i++)   print $i }'
Run Code Online (Sandbox Code Playgroud)

电流输出

cb0
cb1
cb2
cb3
ct0
ct1
ct2
ct3
Run Code Online (Sandbox Code Playgroud)

期望输出

cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3
Run Code Online (Sandbox Code Playgroud)

我正在尝试awk迭代,但无法获得所需的输出

awk text-processing

13
推荐指数
4
解决办法
9673
查看次数

如何获取正在使用的inotify手表的数量

inotifywait用于放置文件的事件触发器。

当很多文件被 观看时inotifywait,当max_user_watches超过时,会出现以下错误。

因 inotify 监视而终止。#012考虑增加 /proc/sys/fs/inotify/max_user_watches

需要调整/proc/sys/fs/inotify/max_user_watches,但是可以查看当前文件监视号吗?

有没有办法像文件描述符中的 file-nr一样检查?

linux inotify

9
推荐指数
2
解决办法
7006
查看次数

将 EOF 发送到命名管道 - 清理/干燥 fifo

如果我有一些从命名管道读取的随机进程:

tail -f MYNAMEDPIPED 
cat MYNAMEDPIPE | someOtherProc
Run Code Online (Sandbox Code Playgroud)

在其他地方,我可以按名称处理 MYNAMEDPIPED。是否有一种安全干净的方法可以通过删除 MYNAMEDPIPED 或以某种方式“使其变干”来停止尾部进程?

换句话说

MYNAMEDPIPED.noMoreDataIsComingThroughSoPleaseStopTailingThis()
Run Code Online (Sandbox Code Playgroud)

:)

从其中一条评论来看,它说将 EOF 发送到 MYNAMEDPIPE。但我无法弄清楚如何做到这一点。

这显示了我面临的困难:

http://comp.os.linux.questions.narkive.com/2AW9g5yn/sending-an-eof-to-a-named-pipe

pipe shell-script tail fifo

7
推荐指数
2
解决办法
8537
查看次数

进程在后台启动之前被杀死

我正在使用一个script.sh包含命令的 bash 脚本cmd,在后台启动:

#!/bin/bash
…
cmd &
…
Run Code Online (Sandbox Code Playgroud)

如果我打开终端模拟器并运行script.sh,cmd会按预期在后台正确执行。即,whilescript.sh已结束,cmd继续在后台运行,PPID 为 1。

但是,如果我打开另一个终端仿真程序(让说的xfce4终端)从以前的一个(或在桌面会话的开始,这是我的真实使用情况下),并执行script.sh

xfce4-terminal -H -x script.sh
Run Code Online (Sandbox Code Playgroud)

cmd不再正确执行:它被终止script.sh。使用nohup来防止这种情况是不够的。我必须sleep在它之后放一个命令,否则在与它分离之前被cmd终止script.sh

我发现,做的唯一途径cmd背景正确执行是把set -mscript.sh。为什么在这种情况下是必要的,而不是第一个?为什么这两种执行方式script.sh(以及因此cmd)之间的行为存在差异?

我认为,在第一种情况下,监控模式激活,如一个可以通过将看到set -oscript.sh

shell terminal-emulator job-control background-process xfce4-terminal

6
推荐指数
1
解决办法
574
查看次数

为什么模式为 1755 的 mkfifo 不向用户授予读取权限和粘滞位?

我正在创建一个服务器和客户端情况,我想在其中创建一个管道,以便他们可以进行通信。

我在服务器代码中创建了管道 mkfifo("fifo",1755);

  • 1 只有创建的用户和 root 才能删除或重命名它,
  • 7 为用户提供读取、写入和执行权限,以及
  • 5 组和其他组只给他们读和执行。

问题是,稍后在服务器代码中,我打开了 fifo 以从中读取,open("fifo",O_RDONLY);但是当我执行它时,它向我显示了一个拒绝我访问 fifo 的错误。

我去看了管道fifo的权限,它是p-wx--s--t这样说的 :

  • p 代表管道,
  • -表示用户没有阅读。我不知道当我用 7 给它的时候,
  • s组执行有用户。我不知道如果我给了 1 那么它应该给用户和其他人只读取和执行的能力,而其他人没有预期的能力。

我对权限有误解吗?

c permissions mkfifo

6
推荐指数
1
解决办法
1176
查看次数

不重新评估 PS1 函数中的条件语句

我正在使用一个函数来动态生成PS1. 有几个语句检查是否nodepackage.json存在,以及如果git.git文件夹存在以显示节点版本或 git 分支。如果不存在,则只输出 User$。

问题是当用户进入另一个不满足任何条件的文件夹时,提示没有更新。就像条件被缓存或 smth

function displayPS1() {
  MESSAGE="";
  GRAY_BACK="\[\e[100;97m\]";
  GREEN_BACK="\[\e[100;42m\]";
  GREEN_FORE="\[\e[32;1m\]";
  CYAN_BACK="\[\e[100;46m\]";
  CYAN_FORE="\[\e[36;1m\]";
  RESET="\[\e[0m\]";

  if hash node 2>/dev/null && [ -e package.json ]; then
    NODE='$(node -v | sed "s/\(v[0-9]*\)\(\.[0-9]*\.[0-9]*\)/\1/g")';
    MESSAGE="${GRAY_BACK} node ${GREEN_BACK} $NODE ${RESET} User${GREEN_FORE}$ ${RESET}";
  elif hash git 2>/dev/null && [ -d .git ]; then
    BRANCH='$(cat .git/HEAD | sed "s/ref:[[:space:]]refs\/heads\///")';
    MESSAGE="${GRAY_BACK} git ${CYAN_BACK} $BRANCH ${RESET} User${CYAN_FORE}$ ${RESET}";
  else
    MESSAGE="User${CYAN_FORE}$ ${RESET}";
  fi

  echo "$MESSAGE";
}
export PS1=$(displayPS1);
Run Code Online (Sandbox Code Playgroud)

bash prompt

6
推荐指数
2
解决办法
725
查看次数

想要关闭 GCC 中的“注释”级别消息

当我使用 GCC 编译 C(无加号)程序时,可能有多个级别的消息,例如警告、错误和注释。笔记消息无用且分散注意力。如何使用命令行让它们消失?(我不使用任何类型的 IDE。)

示例:/home/user/src9/AllBack3.c:129:9:注意:每个未声明的标识符对于它出现的每个函数只报告一次。

compiling c compiler gcc

6
推荐指数
1
解决办法
1926
查看次数

为什么 sed -i 不能与 /proc/PID/fd/FD 一起使用

我有这个文件和 fd: exec 88<>abc

为什么

$ sed -i "s/cd/II/g" /proc/$$/fd/88
sed: couldn't open temporary file /proc/26194/fd/sedS1D1FT: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但这项工作:

$ cat /proc/self/fd/88 | sed  "s/cd/II/g" 
abIIefg
Run Code Online (Sandbox Code Playgroud)

然后这不起作用:

$ (cat /proc/self/fd/88 | sed  "s/cd/II/g")  > /proc/self/fd/88
Run Code Online (Sandbox Code Playgroud)

这导致/proc/self/fd/88变空

linux shell sed io-redirection file-descriptors

5
推荐指数
2
解决办法
796
查看次数