标签: bash

如何在后台运行程序并获取其PID

我有一个 Minecraft 服务器启动脚本,如下所示:

#!/bin/bash
cd "$(dirname "$0")"
exec java -Xmx4096M -Xms4096M -jar minecraft_server.jar
Run Code Online (Sandbox Code Playgroud)

如何在能够将输入输入到 Java 进程的同时获取 Java 进程的 PID?

如果我将 exec 行更改为

exec java -Xmx4096M -Xms4096M -jar minecraft_server.jar & echo $! > pid
Run Code Online (Sandbox Code Playgroud)

它不会让我在 Minecraft 服务器 java 进程中输入任何文本。

linux java bash minecraft

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

bash 说 '[[:' 未找到。这意味着什么?

在运行 bash 脚本时,我收到此错误:

 sh: [[: not found
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到问题出在哪里?

bash sh

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

为什么这在 shell for 循环中起作用,但本身不起作用

为什么这有效

for X in A* ; do cp $X/output.txt output/$X.txt ; done
Run Code Online (Sandbox Code Playgroud)

但不是这个

cp A*/output.txt output/A*.txt
Run Code Online (Sandbox Code Playgroud)

用于将 output.txt 文件从名为 A1、A2、A3、A4 等的多个文件夹复制到一个名为“output”的组合文件夹中,为每个文本文件提供它来自的文件夹的名称。

bash

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

在输出中查找没有大小的目录中最大的文件

我需要找到最大的文件

  1. 只应列出一个文件
  2. 搜索应该在给定的目录和子目录中工作
  3. 输出应显示文件名的文件的绝对路径

    find "$PARAM" -type f | xargs ls -1S | head -n 1
    
    Run Code Online (Sandbox Code Playgroud)

有效,但给了我类似的错误

ls: 无法访问 Over: 没有那个文件或目录

linux bash ls find

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

在提示符下清除当前行的按键

如何清除当前行?我正在使用 bash。

我不喜欢ctrl+c因为它会在屏幕上留下废话。

如果光标位于行尾,我可以使用ctrl+u并且它完全符合我的要求。但是如果光标位于中线,我需要使用像ctrl+ ectrl+ u(或ctrl+ actrl+ k)这样的序列来获得所需的行为。

无论光标位于行中的哪个位置,是否有一个按键都可以执行?

我也想知道这在 vim 中是否可行(0D与一个按键的行为相同)

keyboard-shortcuts bash vim

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

文件的递归差异不区分大小写

当文件名相同但大小写不同时,如何运行递归差异?

例如:

./Root/Directory/FileName.txt
./Branch/directory/filename.txt
Run Code Online (Sandbox Code Playgroud)

diff -r -i Root Branch 只对文件内容不区分大小写而不是名称。

bash diff

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

Linux Bash "|" 运营商不工作 - 我做错了什么?

我正在尝试通过这样的登录命令检查用户密码:

# echo "name\npassword" | login  
Run Code Online (Sandbox Code Playgroud)

但命令结束时没有写任何东西。echo由于 SIGPIPE 而结束。为什么login在要求名称和密码之前停止?

当我对passwd命令执行相同操作时,它可以工作:

# echo "password\npassword" | passwd  
Enter new UNIX password: 
Retype new UNIX password:
passwd: password updated successfully 
Run Code Online (Sandbox Code Playgroud)

我有 Ubuntu 12.04 和 Bash 4.2.25

linux bash bash-scripting

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

来自 .inputrc 的 bash readline 的元键绑定不起作用

如果我把

"\M-p": previous-history
Run Code Online (Sandbox Code Playgroud)

进入我的 .inputrc 并启动一个终端(urxvt 或 xterm),按 Alt-p 打印一个“:”字符。随后的点击产生 ^[p 像这样:

:^[p^[p^[p^[p^[p
Run Code Online (Sandbox Code Playgroud)

我希望 Alt-p 能够像 Control-p 那样给我历史记录中的上一个命令。我已经通过将以前的历史记录绑定到 Control-t 来验证 .inputrc 正在被读取,并且有效。

"\C-t": previous-history
Run Code Online (Sandbox Code Playgroud)

我也试过

Meta-p: previous-history
Run Code Online (Sandbox Code Playgroud)

没有成功。

其他人遇到过这个问题吗?难道我做错了什么?我在 Debian sid 上使用 xmonad。

bash readline inputrc

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

root 用户是否有可能在直播中偷偷观看其他人的 shell 会话?

我在stackoverflow上看到一个类似的问题:

/sf/ask/94727741/

有人推荐conspy。但是,似乎 conspy 不适用于 pts 终端。

我也尝试过使用此处strace按下按键的方法,但我发现结果很难阅读。

有没有人对此有想法?

linux security terminal bash shell

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

在 UNIX 中检索安全副本?

有没有办法在 UNIX 中检索安全副本?

为什么我需要这样做?因为我可以从本地机器登录到远程机器,但反过来不行。所以我需要检索一个安全的副本,而不是仅仅scp用于将文件从我的远程机器发送到我的本地机器。

linux unix bash remote scp

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

标签 统计

bash ×10

linux ×5

bash-scripting ×1

diff ×1

find ×1

inputrc ×1

java ×1

keyboard-shortcuts ×1

ls ×1

minecraft ×1

readline ×1

remote ×1

scp ×1

security ×1

sh ×1

shell ×1

terminal ×1

unix ×1

vim ×1