小编Dav*_*ter的帖子

操作系统理论中的进程状态与 Linux 中的进程状态

我正在尝试将 Linux 进程状态代码(如ps)映射到操作系统状态图中的状态,但我似乎无法映射它们。是不是因为 Linux 进程状态不一定与理论上的 OS 状态图匹配?具体地讲,我不确定其中D/ S/ T/I配合的图中

  • ps来自手册页的进程状态代码

    PROCESS STATE CODES
           Here are the different values that the s, stat and state output
           specifiers (header "STAT" or "S") will display to describe the
           state of a process:
    
                   D    uninterruptible sleep (usually IO)
                   I    Idle kernel thread
                   R    running or runnable (on run queue)
                   S    interruptible sleep (waiting for an event to
                        complete)
                   T    stopped by job control …
    Run Code Online (Sandbox Code Playgroud)

process process-management linux-kernel

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

"<( cmd )" 模式在 bash 中是如何工作的?

在 bash 中,我使用的参数看起来像

paste <(cat file1 | sort) <(cat file2 | sort)
Run Code Online (Sandbox Code Playgroud)

或者

comm <(cat file1 | sort) <(cat file2 | sort)
Run Code Online (Sandbox Code Playgroud)

当我检查man commor 时man paste,文档说参数确实是文件。

题:

  1. 是否为<(cat file1 | sort)和创建了中间临时文件(在 TEMP 文件系统或较慢磁盘上的其他地方)<(cat file2 | sort)

  2. 这个<( )魔法叫什么名字?(查找其文档)

  3. 它是特定于 bash 的还是跨其他 shell 工作的?

linux command-line bash

11
推荐指数
2
解决办法
1027
查看次数

删除 Bash 中第一个空格右侧的字符

2492  some string continues here
Run Code Online (Sandbox Code Playgroud)

我想将其转换为

2492
Run Code Online (Sandbox Code Playgroud)

在巴什。我该怎么做?

这感觉很接近,但不起作用:

var="2492  some string continues here  "
echo ${var%[[:space:]]*}
Run Code Online (Sandbox Code Playgroud)

shell bash shell-script regular-expression

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

重新加载 systemd-journald 配置

不知道为什么会这样。我有一个测试服务,每 10 秒将一些任意文本记录到 stdout。这是我的服务文件/etc/systemd/system/samplego.service

[Unit]
Description=Sample go app
After=network.target

[Service]
SyslogIdentifier=my-samplego
ExecStart=/opt/samplego/samplego
Restart=on-failure

[Install]
WantedBy=multi-user.target 
Run Code Online (Sandbox Code Playgroud)

这很有效,我可以使用journalctl.

但是,如果我更改了设置/etc/systemd/journald.conf,例如forwardtosyslog=yes,然后 issue systemctl restart systemd-journald,我的应用程序将停止记录,并且在journalctl -fissue 之前我看不到更新systemctl restart samplego。重新启动后是否必须重新启动所有服务journald

linux logs systemd systemd-journald

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

如何在程序中发送多个命令作为输入?

我知道如何在这样的程序中将命令作为输入发送:

echo toto | ./my_prog
Run Code Online (Sandbox Code Playgroud)

并使用进程替换 + 重定向:

r < <(echo toto)
Run Code Online (Sandbox Code Playgroud)

但是如果我想输入第二个或第三个输入怎么办?

例如,我有一个程序,它首先询问我的用户名,然后询问我其他信息,例如电话号码或其他不同输入的信息。

command-line shell input

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

如何使用awk查找和替换计算?

我在一个包含0.2remor的文件夹下有几个 CSS 文件0.5rem 0.6rem,现在我希望它们全部除以 2,变成0.1rem0.25rem, 0.3rem。我如何使用awksedgawk来完成此操作?

我尝试了以下命令但没有成功:

find . -name "*.css" | xargs gawk -i inplace '{gsub(/([0-9\.]+)rem/, "(\\1 * 0.5)rem"); print $0}'
Run Code Online (Sandbox Code Playgroud)

awk

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

使用 ls 实用程序时 (?) 是什么意思?

我正在使用ls实用程序,我的命令如下所示:

$ ls x?[a-c]*
Run Code Online (Sandbox Code Playgroud)

这样的命令的输出是什么?到目前为止,我明白(我希望它是正确的)它将列出以下项目:

  • 以 x 开头
  • 第三个字母是 {a,b,c}
  • 第三个字母之后的任何内容都包括在内

我的问题是,什么是(问号)代表?它是什么条件?

先感谢您。

shell bash wildcards

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

如何在 Ubuntu 中加载压缩的内核模块?

我想在我的系统上使用 LZMA 压缩的内核模块。不幸的是,Canoncial 在内核和用户空间工具中都禁用了该功能。这是我到目前为止所做的:

  1. 使用以下命令编译并安装当前的14.04.05-LTS 内核(v4.4.19):

    CONFIG_MODULE_COMPRESS=y
    CONFIG_MODULE_COMPRESS_XZ=y
    
    Run Code Online (Sandbox Code Playgroud)

    安装后,我现在可以.ko.xz/lib/modules/4.4.19-37.56+/kernel/.

  2. kmod_22包从 Xenial (16.04) 向后移植到配置了该--with-xz选项的Trusty (14.04) 。这似乎也有效。

  3. 运行update-initrams -u -k 4.4.19-37.56+

到目前为止有效的方法:

什么不起作用:

  • 卸载与modprobe -r

  • 任何其他只有包名但没有路径的操作,例如:

    # insmod jfs
    insmod: ERROR: could not load module jfs: No such file or directory
    # modprobe jfs
    modprobe: FATAL: Module jfs not found …
    Run Code Online (Sandbox Code Playgroud)

ubuntu compression kernel-modules

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

grub 恢复模式:etc/resolv.conf:没有那个文件或目录

几个月前我在我的笔记本电脑上安装了 Ubuntu 16.04,突然我无法通过启动画面。

我被困的地方

(我看到红点逐渐变成白色,反之亦然,所以发生了一些事情,但我无法通过这个屏幕)

因此,我决定以恢复模式启动以更新和升级我的所有软件包。但是一旦我到达那里,我就无法访问互联网(无论是否使用以太网电缆)。这是我尝试启用网络时得到的结果:

有人可以解释我如何访问互联网,以便我能够解决我的其他问题,以便能够在我的机器上再次登录吗?

networking ubuntu networkmanager resolv.conf

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

如何删除 CSV 文件中特定列中的换行符?

我有一个包含 150 多列的 CSV 文件,以换行符作为记录分隔符。问题在于其中一列获得换行符。为此,我想删除它们。

输入:

001|Baker St.
London|3|4|7
002|Penny Lane
Liverpool|88|5|7
Run Code Online (Sandbox Code Playgroud)

输出:

001|Baker St. London|3|4|7
002|Penny Lane Liverpool|88|5|7
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing

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