在ssh没有-X机器之后,是否可以更改一些设置(例如$DISPLAY)以使其工作ssh -X?如果不是,原因是什么?谢谢。
尝试呼叫时/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 中的某些东西?
我想打印从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迭代,但无法获得所需的输出
我inotifywait用于放置文件的事件触发器。
当很多文件被 观看时inotifywait,当max_user_watches超过时,会出现以下错误。
因 inotify 监视而终止。#012考虑增加 /proc/sys/fs/inotify/max_user_watches
需要调整/proc/sys/fs/inotify/max_user_watches,但是可以查看当前文件监视号吗?
有没有办法像文件描述符中的 file-nr一样检查?
如果我有一些从命名管道读取的随机进程:
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
我正在使用一个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 -m中script.sh。为什么在这种情况下是必要的,而不是第一个?为什么这两种执行方式script.sh(以及因此cmd)之间的行为存在差异?
我认为,在第一种情况下,监控模式不激活,如一个可以通过将看到set -o的script.sh。
shell terminal-emulator job-control background-process xfce4-terminal
我正在创建一个服务器和客户端情况,我想在其中创建一个管道,以便他们可以进行通信。
我在服务器代码中创建了管道
mkfifo("fifo",1755);:
问题是,稍后在服务器代码中,我打开了 fifo 以从中读取,open("fifo",O_RDONLY);但是当我执行它时,它向我显示了一个拒绝我访问 fifo 的错误。
我去看了管道fifo的权限,它是p-wx--s--t这样说的
:
p 代表管道,-表示用户没有阅读。我不知道当我用 7 给它的时候,s组执行有用户。我不知道如果我给了 1 那么它应该给用户和其他人只读取和执行的能力,而其他人没有预期的能力。我对权限有误解吗?
我正在使用一个函数来动态生成PS1. 有几个语句检查是否node和package.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) 当我使用 GCC 编译 C(无加号)程序时,可能有多个级别的消息,例如警告、错误和注释。笔记消息无用且分散注意力。如何使用命令行让它们消失?(我不使用任何类型的 IDE。)
示例:/home/user/src9/AllBack3.c:129:9:注意:每个未声明的标识符对于它出现的每个函数只报告一次。
我有这个文件和 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变空