我正在尝试将 Linux 进程状态代码(如ps
)映射到操作系统状态图中的状态,但我似乎无法映射它们。是不是因为 Linux 进程状态不一定与理论上的 OS 状态图匹配?具体地讲,我不确定其中D
/ S
/ T
/I
配合的图中
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)在 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 comm
or 时man paste
,文档说参数确实是文件。
题:
是否为<(cat file1 | sort)
和创建了中间临时文件(在 TEMP 文件系统或较慢磁盘上的其他地方)<(cat file2 | sort)
?
这个<( )
魔法叫什么名字?(查找其文档)
它是特定于 bash 的还是跨其他 shell 工作的?
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) 不知道为什么会这样。我有一个测试服务,每 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 -f
issue 之前我看不到更新systemctl restart samplego
。重新启动后是否必须重新启动所有服务journald
?
我知道如何在这样的程序中将命令作为输入发送:
echo toto | ./my_prog
Run Code Online (Sandbox Code Playgroud)
并使用进程替换 + 重定向:
r < <(echo toto)
Run Code Online (Sandbox Code Playgroud)
但是如果我想输入第二个或第三个输入怎么办?
例如,我有一个程序,它首先询问我的用户名,然后询问我其他信息,例如电话号码或其他不同输入的信息。
我在一个包含0.2rem
or的文件夹下有几个 CSS 文件0.5rem 0.6rem
,现在我希望它们全部除以 2,变成0.1rem
和0.25rem, 0.3rem
。我如何使用awk
或sed
或gawk
来完成此操作?
我尝试了以下命令但没有成功:
find . -name "*.css" | xargs gawk -i inplace '{gsub(/([0-9\.]+)rem/, "(\\1 * 0.5)rem"); print $0}'
Run Code Online (Sandbox Code Playgroud) 我正在使用ls实用程序,我的命令如下所示:
$ ls x?[a-c]*
Run Code Online (Sandbox Code Playgroud)
这样的命令的输出是什么?到目前为止,我明白(我希望它是正确的)它将列出以下项目:
我的问题是,什么是?(问号)代表?它是什么条件?
先感谢您。
我想在我的系统上使用 LZMA 压缩的内核模块。不幸的是,Canoncial 在内核和用户空间工具中都禁用了该功能。这是我到目前为止所做的:
使用以下命令编译并安装当前的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/
.
将kmod_22
包从 Xenial (16.04) 向后移植到配置了该--with-xz
选项的Trusty (14.04) 。这似乎也有效。
运行update-initrams -u -k 4.4.19-37.56+
。
到目前为止有效的方法:
对未压缩模块的任意操作(如 DKMS 构建的模块):
$ modinfo nvidia_370
filename: /lib/modules/4.4.19-37.56+/updates/dkms/nvidia_370.ko
[…]
Run Code Online (Sandbox Code Playgroud)按完整路径显示压缩模块:
modinfo /lib/modules/4.4.19-37.56+/kernel/fs/jfs/jfs.ko.xz
Run Code Online (Sandbox Code Playgroud)通过完整路径加载没有(缺少)依赖项的压缩模块:
insmod /lib/modules/4.4.19-37.56+/kernel/fs/jfs/jfs.ko.xz
Run Code Online (Sandbox Code Playgroud)卸载这样的模块:
rmmod jfs
Run Code Online (Sandbox Code Playgroud)什么不起作用:
卸载与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 16.04,突然我无法通过启动画面。
(我看到红点逐渐变成白色,反之亦然,所以发生了一些事情,但我无法通过这个屏幕)
因此,我决定以恢复模式启动以更新和升级我的所有软件包。但是一旦我到达那里,我就无法访问互联网(无论是否使用以太网电缆)。这是我尝试启用网络时得到的结果:
有人可以解释我如何访问互联网,以便我能够解决我的其他问题,以便能够在我的机器上再次登录吗?
我有一个包含 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) bash ×3
shell ×3
awk ×2
command-line ×2
linux ×2
ubuntu ×2
compression ×1
input ×1
linux-kernel ×1
logs ×1
networking ×1
process ×1
resolv.conf ×1
sed ×1
shell-script ×1
systemd ×1
wildcards ×1