0
给定一个由s 和s组成的字符串1
,我的目标是将 0 替换为 1,反之亦然。例子:
输入
111111100000000000000
预期输出
000000011111111111111
我尝试了以下sed
命令,但未成功
echo '111111100000000000000' | sed -e 's/0/1/g ; s/1/0/g'
000000000000000000000
我错过了什么?
0
给定一个由s 和s组成的字符串1
,我的目标是将 0 替换为 1,反之亦然。例子:
输入
111111100000000000000
预期输出
000000011111111111111
我尝试了以下sed
命令,但未成功
echo '111111100000000000000' | sed -e 's/0/1/g ; s/1/0/g'
000000000000000000000
我错过了什么?
:>filename.txt
例如:
root@box$ dd if=/dev/zero of=file.txt count=1024 bs=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00536175 s, 196 MB/s
root@box$ ll
total 1024
-rw-r--r-- 1 root root 1048576 Nov 15 14:40 file.txt
root@box$ :>file.txt
root@box$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 15 14:40 file.txt
这与一个不同rm
吗?它是否比其他类似的归零文件或删除文件的方法更快或更慢?
我想从文件的开头和结尾删除空行,但不删除中间非空行之间的空行。我认为sed
或awk
将是解决方案。
资源:
1:
2:
3:line1
4:
5:line2
6:
7:
8:
输出:
1:line1
2:
3:line2
我们有一个自动基线检查,如果权限/etc/shadow
未设置为 000,则会发出警报。
收到这些警报的工作人员已经开始质疑 000 的合理性,因为 root 可以在任何它想读写的地方读写(所有文件自动为 root 至少 600)但是 root 不能在没有执行权限集的情况下执行文件(没有root 的自动 700 文件权限)。
将/etc/shadow
权限设置为 000 是在许多基线中,例如官方 Red Hat GitHub 存储库中的 Ansible 剧本(用于 PCI DSS、CJIS、NIST、CCE)。
为什么/etc/shadow
应该是 000 而不是例如看似功能相同的 600 背后是否有起源故事?还是我对 Linux 对 root 用户的限制/许可程度的假设是错误的?
我使用该mkfifo <file>
命令创建了命名的 FIFO,其中一个进程写入文件,另一个进程从文件中读取。
现在,我知道该mknod
命令能够创建命名管道。这些命名管道是否等同于创建的 FIFO mkfifo
,或者它们具有不同的特性?
在我的脚本副本中conda.sh
,我看到以下几行:
if [ -n "${_CE_CONDA}" ] && [ -n "${WINDIR+x}" ]; then
SYSP=$(\dirname "${CONDA_EXE}")
else
SYSP=$(\dirname "${CONDA_EXE}")
SYSP=$(\dirname "${SYSP}")
fi
d
我很好奇为什么in前面有一个反斜杠dirname
。我不认为这是必要的。这种反斜杠的使用也出现在源文件的其他地方。我是否有这样做的理由?
这是我的 xrdp 配置:
[Globals]
ini_version=1
fork=true
port=3389
use_vsock=false
tcp_nodelay=true
tcp_keepalive=true
security_layer=negotiate
crypt_level=high
certificate=
key_file=
ssl_protocols=TLSv1.2, TLSv1.3
autorun=
allow_channels=true
allow_multimon=true
bitmap_cache=true
bitmap_compression=true
bulk_compression=true
max_bpp=128
use_compression=yes
new_cursors=true
use_fastpath=both
blue=009cb5
grey=dedede
ls_top_window_bg_color=009cb5
ls_width=350
ls_height=430
ls_bg_color=dedede
ls_logo_filename=
ls_logo_x_pos=55
ls_logo_y_pos=50
ls_label_x_pos=30
ls_label_width=65
ls_input_x_pos=110
ls_input_width=210
ls_input_y_pos=220
ls_btn_ok_x_pos=142
ls_btn_ok_y_pos=370
ls_btn_ok_width=85
ls_btn_ok_height=30
ls_btn_cancel_x_pos=237
ls_btn_cancel_y_pos=370
ls_btn_cancel_width=85
ls_btn_cancel_height=30
[Logging]
LogFile=xrdp.log
LogLevel=DEBUG
EnableSyslog=true
SyslogLevel=DEBUG
[Channels]
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true
tcutils=true
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
我正在尝试用 mstsc 连接到这台机器(这是在重新启动电脑后,没有人登录):
在此登录框中,不会发生断开连接:
在我输入正确的登录名/密码后,我首先出现黑屏,然后关闭 mstsc 窗口。我尝试从 KDE 远程连接应用程序连接,但它也以同样的方式失败。xrdp.log 似乎不包含任何有趣的内容:
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
[20190606-04:14:36] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait...
[20190606-04:14:36] [DEBUG] return value from xrdp_mm_connect 0
[20190606-04:14:36] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC started connecting
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC connecting to 127.0.0.1 5910
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC tcp connected
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC security level is 2 (1 = none, 2 = standard)
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC password ok
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending share flag
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving server init
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving pixel format
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving name length
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC receiving name
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending pixel format
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending encodings
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending framebuffer update request
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC sending cursor
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: VNC connection complete, connected ok
[20190606-04:14:36] [DEBUG] xrdp_wm_log_msg: connected ok
[20190606-04:14:36] [DEBUG] xrdp_mm_connect_chansrv: chansrv connect successful
[20190606-04:14:36] [DEBUG] Closed socket 18 (AF_INET 127.0.0.1:47744)
[20190606-04:14:37] [DEBUG] Closed socket 20 (AF_UNIX)
[20190606-04:14:37] [DEBUG] Closed socket 12 (AF_INET 127.0.0.1:3389)
[20190606-04:14:37] [DEBUG] xrdp_mm_module_cleanup
[20190606-04:14:37] [DEBUG] VNC mod_exit
[20190606-04:14:37] [DEBUG] Closed socket 19 (AF_INET 127.0.0.1:40224)
我该如何解决?
我有一个目录,其中包含超过 400 GiB 的数据。我想检查所有文件是否可以正确读取,所以我想到的一个简单方法是将tar
其放入/dev/null
. 但相反,我看到了以下行为:
$ time tar cf /dev/null .
real 0m4.387s
user 0m3.462s
sys 0m0.185s
$ time tar cf - . > /dev/null
real 0m3.130s
user 0m3.091s
sys 0m0.035s
$ time tar cf - . | cat > /dev/null
^C
real 10m32.985s
user 0m1.942s
sys 0m33.764s
上面的第三个命令在运行了很长时间后被Ctrl+强行停止了。C此外,当前两个命令工作时,包含的存储设备的活动指示器.
几乎总是处于空闲状态。使用第三个命令时,指示灯会持续亮起,表示极度忙碌。
所以看来,当tar
能够查出它的输出文件是/dev/null
,即/dev/null
直接打开有tar
写入的文件句柄时,文件体就出现了跳过。(添加v
选项以tar
打印目录中的所有文件为tar
“红色”。)
所以我想知道,为什么会这样?是某种优化吗?如果是的话,那为什么还要tar
对这种特殊情况进行如此可疑的优化呢?
我在 Linux 4.14.105 amd64 上使用 GNU tar 1.26 和 glibc 2.27。
尝试man
在 Linux 系统上运行时出现此错误:
$ LC_ALL=C man man
man: Too many arguments
Try 'man --help' or 'man --usage' for more information.
我的man
命令似乎不是别名:
command -v man: /usr/bin/man
这是怎么回事?