小编Rap*_*ael的帖子

在终端中只输出`ps`命令的COMMAND下的列

我知道我们可以很容易地找到以下内容:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
Run Code Online (Sandbox Code Playgroud)

使用以下命令查看所有正在运行的进程:

sudo ps aux

我的问题是,是否可以只显示下列的输出COMMAND而不显示其他任何内容?

command-line ps

14
推荐指数
2
解决办法
3万
查看次数

在输出中打印特定部分

让我们假设有一个命令,例如:

cat /boot/config-3.19.0-32-generic | grep CONFIG_ARCH_DEFCONFIG
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是:是否有任何命令只会打印引号内的内容,即" "

你能解释一下这个命令吗?谢谢!提前。

command-line text-processing

12
推荐指数
5
解决办法
7148
查看次数

以三种不同方式打开的同一个脚本会产生三种不同的结果。为什么?

我有一个示例脚本(归功于kos):

#!/bin/bash
cat <(cat /etc/lsb-release)
Run Code Online (Sandbox Code Playgroud)

我将此脚本另存为我的主目录中的somename.sh

现在,我尝试以三种不同的方式打开这个文件:

sh somename.sh

bash somename.sh

./somename.sh
Run Code Online (Sandbox Code Playgroud)

所以,我有两个问题:

  1. 尽管上述命令运行相同的脚本,但为什么它们的输出不同?

    • sh产生语法错误

    • bash输出想要的结果

    • ./给出 Permission Denied 错误

  2. 为什么只有在使用./运行脚本时才需要赋予脚本可执行权限,而在其他情况下则不需要?

提前致谢!

编辑:第一部分可能类似于重复链接的部分,但是,我也有第二个问题。

permissions command-line bash scripts

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

如何删除“-”后的文字?

我有一个文件列表(基本上它们是.deb包)。让我们说:

abc-de-1.2.3-1.deb
fgh-ij-4.5.6-2.deb
klm-no-7.8.9-3.deb
pqrs-10.11.12-4.deb
...
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,一些文件名在一些文件名之后有数字,-而另一些文件名在 a 之后有一些文本-,然后在 next之后有数字-

有什么方法可以删除从数字开始的所有内容,包括-,即

abc-de
fgh-ij
klm-no
pqrs
...
Run Code Online (Sandbox Code Playgroud)

我想编辑列表,而不是重命名文件。

command-line scripts text-processing

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

使用 grep 的两种命令的区别

所以,这里我们有两个命令:

cat /var/log/dpkg.log | grep " \install\ "
cat /var/log/dpkg.log | grep install
Run Code Online (Sandbox Code Playgroud)

为什么这些命令的输出不同?能否请您稍微解释一下第一个命令。先感谢您。

command-line grep

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

如何从包含特定字符串的输出中删除行?

我试图在我的系统中找到最近 2 小时左右的最新修改文件。我正在使用的命令是:

sudo find / -mmin -120 -printf '%T@ %p\n' | sort -n | cut -f2- -d" " | more
Run Code Online (Sandbox Code Playgroud)

但是上面的命令输出了很多包含字符串的条目/proc。那么,有没有更好的方法可以从输出中删除这些行?

另外,如果您有更好的方法来处理上述情况,请提出建议。唯一的标准是输出应包含文件和目录。


编辑:-

我修改了上面的命令以包含带有 的名称newline,然后添加了Arronical 的答案和??s??? 的答案。最后的结果是:

sudo find / ! -path '*/proc*' -type f -mmin -120 -exec ls -al {} \; | grep -v anystring | less
Run Code Online (Sandbox Code Playgroud)

command-line

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

Nautilus:“在终端中打开”选项在哪里?(Ubuntu 16.10,鹦鹉螺 3.20.3)

我有两个工作站,一个运行 Ubuntu 16.04、Nautilus 3.14.3,另一个运行 16.10、nautilus 3.20.3。

在 Ubuntu 16.04 上,我可以单击 nautilus 右上角的菜单并选择“在终端中打开”,这非常有用。更好的是,如果我正在浏览一些 sftp / sshfs 共享,我什至可以选择“在远程终端中打开”。我真的开始依赖那些简单但非常有用的选项。

1

在 Ubuntu 16.10 中,这些选项完全缺失。我知道有上下文菜单,它让我也可以“在终端中打开”,但是如果文件夹中充满了文件并且选择了一个文件,那这将毫无用处,我无法取消选择它。此外,16.10 / Nautilus 3.20.3 中不存在“在远程终端中打开”选项。

2

我查看了设置,但一无所获。我也浏览过这里,但只找到了“nautilus-admin”、“nautilus-open-terminal”和“gnome-terminal-nautilus”,但这些包都没有帮助,有些已经不存在了。

所以我的问题是,这个功能是 Ubuntu 16.04 的标准,还是这个工作站有附加包,可以从选项菜单(而不是上下文菜单)提供“在终端中打开”?

我应该如何在 Ubuntu 16.10 和 17.04 中添加此功能?

command-line nautilus gnome-terminal 16.10

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