标签: bash

如果有多个 python 程序在运行,我如何确定我的 python 程序的 PID?

我的系统上运行了两个 python 程序,它们被称为 programx和 program y

我想获得 program 的 pid y,但不是x我的 bash 脚本。使用时pgrep python,我得到了他们两个的pid,不知道哪个是哪个。

任何想法如何在 bash 脚本中区分两者之间的区别?

linux bash python pid

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

如何从任何目录执行我的 bash shell 脚本?

我有一个 shell 脚本在 /home/joey/hello.sh

现在,我想在任何地方执行它,如pwd, cut, sort, grep

所以,hello.sh虽然我在另一个目录中,但我只是输入。

bash shell-script

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

如果从 Cygwin 运行,“rm -rf /”是否会从 Windows 中删除所有内容?

所以……我做了坏事。在 Cygwin 中,我编写了一个 bash 脚本,它接收两个目录并将其中一个目录的内容复制到另一个目录中。首先,它调用“rm -rf”来删除第二个目录的内容。我不小心在没有提供第二个参数的情况下运行了脚本,看起来 Cygwin 将其视为可怕的“rm -rf /”。

我不确定损坏是什么,我正在尝试对其进行评估。因为它在我停止之前正在运行,所以我看到了很多“权限被拒绝”的消息。

最明显的损坏是我的 C:\cygwin64 文件夹被破坏了。里面只剩下几个空目录。我相信可能有一些按字母顺序排列在 cygwin64 之上的目录被删除,因为我不记得它是列表中的最高目录,现在是。

我的电脑运行 100% 正常,我还没有遇到任何奇怪的事情。我只想知道是否有人对 Cygwin 上的“rm -rf /”有任何经验,以及这是否会像在 Linux 上一样破坏您的整个驱动器。

部分难题在于 Cygwin 的根目录位于 c 驱动器下方,但它包含对“cygdrive”中 c 驱动器的引用。我想知道“rm -rf /”是否真的会彻底删除“/cygdrive”的所有内容,或者是否以某种方式受到保护。

编辑:附带说明,有人知道为什么“rm -rf”与“rm -rf /”相同。我清楚地记得没有提供路径并将该参数留空,所以我不知道为什么它在根目录上调用 rm 。

linux cygwin bash

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

emacs 术语模式在可执行文件中退格时重绘提示

我依赖 emacs(Debian 上的 24.4.1 版)termansi-term模式。它们对我来说通常就像 xTerm 一样工作,但是在运行具有提示(如 node.js 提示或 mongoDB 提示)的交互式程序时,删除一个字符会使整个提示重绘内联。

例如,当我打开节点应用程序并键入TEXT后跟一个退格键时,我看到

jim@achileus:~$ node                                                                  
> TEXT> TEX
Run Code Online (Sandbox Code Playgroud)

当我输入LONGER STRING后跟 13 个退格时,我看到

jim@achileus:~$ node                                                                  
> LONGER STRING> LONGER STRIN> LONGER STRI> LONGER STR> LONGER ST> LONGER S> LONGER > LONGER> LONGE> LONG> LON> LO> L> 
Run Code Online (Sandbox Code Playgroud)

这个错误在 emacs 中不会发生,shell但我不想使用它。

关于为什么会发生这种情况的任何见解,或有关如何解决它的任何线索?

谢谢!

terminal bash emacs terminal-emulator

5
推荐指数
0
解决办法
432
查看次数

如何运行 dd 有效地输入我的外壳?

尝试运行:

dd if=/dev/urandom count=1000
Run Code Online (Sandbox Code Playgroud)

然后一旦完成,按回车键。我正在运行 Debian Sid,我得到:

user@host$ dd if=/dev/urandom count=1000
<lots of random characters, then I hit enter again>
bash: 62: command not found
bash: 9: command not found
bash: c62: command not found
bash: 9: command not found
bash: c62: command not found
bash: 9: command not found
bash: c: command not found
user@host$
Run Code Online (Sandbox Code Playgroud)

这似乎非常不恰当!dd 写入其标准输出如何可能导致该文本最终出现在 Bash 的输入缓冲区中?我对这种情况如何发生以及从安全角度如何将其视为可接受的行为深感困惑。

bash

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

如果我将其作为背景,为什么在最后一份工作上不进行 disown 操作?

假设我已经使用 ctrl-z 对一个进程进行了后台处理,例如 VIM。然后我使用以下命令启动一个 xterm xterm &> /dev/null &。如果我只是输入 disown 那么我将丢失我的 vim 进程。相反,我必须键入 xterm 进程的 PID 才能否认它。

有什么办法可以解决这个问题,或者是否有发生这种情况的原因?

linux bash command-line job-control

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

如何将 STDERR 重定向到文件和控制台,并将 STDOUT 重定向到文件

我想要实现的是将正常消息和错误消息重定向到一个文件。还要将错误信息打印到控制台(只有错误信息)。

bash bash-scripting

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

如何让 bash 永远保留最常用的历史条目?

重复项已经关闭,但这还不够(我觉得我必须经常输入命令)。

假设我有 2000 条bash历史记录和一个我过去经常使用(n多次)但最近不使用的命令,现在我想再次使用。假设此命令位于历史记录中最旧的位置,并且将在下一次非重复命令执行后被逐出。我希望保留此命令,并将最旧的命令(使用计数 < n)从历史记录中逐出。

有人可能会争辩说,这使得bash历史不再是(线性)历史。我同意,但不在乎,因为我想轻松访问我最喜欢的命令(自动收集)。

bash在 Ubuntu 15.10 上使用4.3.42。

linux bash history command-line

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

为每个非交互式 bash 会话执行相同的命令

我需要实现一些配置 - 如果我的系统上有人bash以任何形式(交互式、非交互式和bash -c表单)调用命令,我需要执行一些代码。例如,这是我想添加到每个 bash 调用的命令:
touch /tmp/$RANDOM
我添加了该行/bash/bash.bashrc,它适用于登录外壳和外壳,通过调用bash命令初始化。
但这不适用于像这样初始化的 bash 会话:
bash -c 'echo 1' - 不会创建新文件

从技术文档我明白,bash.bashrcbash_profile呼吁仅用于登录或交互式shell。有没有办法为非交互式 shell 创建一些类似的调用?

bash shell bashrc .bash-profile

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

Git 等项目使用的命令行用户界面是否有名称?

现在有很多命令行工具(或工具套件)使用命令行界面,这样每个命令都以应用程序/工具的名称开头,后跟一个空格和几个可用的“子命令”之一。例如,Git 有许多不同的子命令:“git status”、“git init”、“git fetch”、“git commit”等。

我能想到的其他一些也使用这种模式的项目是:

  • 流浪者(“流浪者上升”,“流浪者破坏”,“流浪者状态”)
  • go(lang) ("go run", "go vet", "go fmt", "go build")
  • svn ("svn checkout", "svn update", "svn commit")
  • crosstool-ng ("ct-ng help", "ct-ng build", "ct-ng menuconfig")
  • 回购(“回购同步”,“回购帮助”,“回购初始化”)

这远不是一个全面的清单。

不使用此模式的命令行应用程序的一些示例(但如果设计略有不同):

  • pacman(Arch Linux 的包管理器。使用标志样式的“子命令”与我所询问的模式相反。“pacman -Q”、“pacman -S”、“pacman -R”等)
  • portage/"emerge" (Gentoo 的包管理器)
  • ImageMagick(而不是单独的子命令,它使用单独的命令。“convert”、“import”、“animate”、“compare”、“composite”等)

我的问题是“是否有专门用于这种‘子命令’风格的命令行界面模式的名称,如果有,它是什么?”

bash git command-line

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