我正在运行以下命令并将输出保存到文件中:
sudo journalctl -u iotedge -f >> sub.txt
问题是,我必须用 ctrl+c 停止命令的操作,否则它不会返回到命令提示符。有什么方法可以停止跟随命令并将其输出保存到文件而不按 ctrl+c。
我正在运行以下命令并将输出保存到文件中:
sudo journalctl -u iotedge -f >> sub.txt
问题是,我必须用 ctrl+c 停止命令的操作,否则它不会返回到命令提示符。有什么方法可以停止跟随命令并将其输出保存到文件而不按 ctrl+c。
我经常从 WinSCP 连接到 ubuntu 机器来执行一些文件操作,例如复制或删除文件。但是这些操作不会记录在 Ubuntu 系统的任何日志中(我不知道)。有什么方法可以记录这些操作以及执行这些操作的用户是谁。IP 地址和时间戳符号会更大。
我在~/.bashrc
文件中添加了时间,所以现在它显示了我执行history
如下命令的时间:
376 04/10/19 20:39:52 sudo cat ~/.bash_history
377 04/10/19 20:40:04 date
378 07/10/19 10:13:29 echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
379 07/10/19 10:13:38 source ~/.bashrc
380 07/10/19 10:13:54 history
381 07/10/19 10:20:08 sudo vim /home/subir/.bash_history
382 07/10/19 10:20:29 sudo nano /home/subir/.bash_history
383 07/10/19 11:34:20 cd ..
384 07/10/19 11:34:34 find | grep .bash_history
385 07/10/19 11:34:48 cat ./subir/.bash_history
386 07/10/19 11:37:32 history
但是当这个会话的数据被附加到~/.bash_history
文件时,它会显示如下内容:
#1570201804
date
#1570423409
echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
#1570423418
source ~/.bashrc
#1570423434
history
#1570423808
sudo vim /home/subir/.bash_history
#1570423829
sudo nano /home/subir/.bash_history
之后的值是什么#
?谁能帮我推断它的含义或告诉我一种在~/.bash_history
文件中获取时间戳的方法。
我有一个 config.yaml 文件,我想使用 bash 脚本对其进行编辑或更改。所以我得到了一个使用 grep 和 sed 的命令,它给了我想要的更改,但问题是当我应用 sed 时,它会应用于整个文件,包括我要编辑的部分。以下是编辑前的文件部分:
###############################################################################
29
30 # Manual provisioning configuration
31 # provisioning:
32 # source: "manual"
33 # device_connection_string: ""
34
35 # DPS TPM provisioning configuration
36 # provisioning:
37 # source: "dps"
38 # global_endpoint: "https://global.azure-devices-provisioning.net"
39 # scope_id: "{scope_id}"
40 # attestation:
41 # method: "tpm"
42 # registration_id: "{registration_id}"
43
44 # DPS symmetric key provisioning configuration
45 # provisioning:
46 # source: "dps"
47 # global_endpoint: "https://global.azure-devices-provisioning.net"
48 # scope_id: "{scope_id}"
49 # attestation:
50 # method: "symmetric_key"
51 # registration_id: "{registration_id}"
52 # symmetric_key: "{symmetric_key}"
53
54 ###############################################################################
现在我想在第 42 行从“#DPS TPM 配置配置”编辑到“#registration_id:“{registration_id}””。所以我使用以下命令:
grep -Pzom 1 "# DPS TPM provisioning configuration(.|\n)*?(?=\n# DPS)" config.yaml | sed 's/^#[ \t]//' config.yaml
这给了我以下输出:
Manual provisioning configuration
provisioning:
source: "manual"
device_connection_string: ""
DPS TPM provisioning configuration
provisioning:
source: "dps"
global_endpoint: "https://global.azure-devices-provisioning.net"
scope_id: "{scope_id}"
attestation:
method: "tpm"
registration_id: "{registration_id}"
DPS symmetric key provisioning configuration
provisioning:
source: "dps"
global_endpoint: "https://global.azure-devices-provisioning.net"
scope_id: "{scope_id}"
attestation:
method: "symmetric_key"
registration_id: "{registration_id}"
symmetric_key: "{symmetric_key}"
###############################################################################
这会编辑所需的部分,但也会编辑整个文件。我只想将 sed 应用于文件的 grep 输出,而不是整个文件。任何人都可以帮助命令!