Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

1
禁用apt-daily.service是否安全?
我使用Linux Mint 19.1 Cinnamon。 我发现这个问题间接相关: 如何在Ubuntu云VM映像上禁用`apt-daily.service`? 我的问题是:禁用apt-daily.service是否安全? 假设我使用我的更新脚本进行系统更新。 $ systemd-analyze blame 11.027s apt-daily.service 2.675s esets.service 979ms netfilter-persistent.service 638ms systemd-resolved.service 634ms systemd-timesyncd.service 592ms apt-daily-upgrade.service 423ms dev-nvme0n1p2.device 411ms vboxdrv.service ... 解决一些意见: 在这种情况下,安全意味着:会突然破坏我的桌面系统的某些功能吗? 我担心启动时间,是的。它很快,也许会更快... 从大约2年前开始,我就使用自己的升级脚本,我习惯使用该脚本手动在CLI中进行更新,并且我不希望由于造成任何影响apt。


2
在Bash中,文件描述符255的作用是什么,我可以使用它吗?
我了解文件描述符(或文件处理程序)是Linux系统中的文件IO技术。 我也知道每个进程都有3个标准流(即stdin,stdout和stderr),这些流由描述符从0到3的文件表示。 但是,我注意到我检查过的所有进程lsof -p <pid>都有一个255具有读取许可权的额外文件描述符。 从这个答案中,我了解到此功能特定于Bash shell,但是答案和所引用的源都没有真正解释此文件描述符的用途。 我的问题: 255文件描述符的作用是什么? 我可以在我的Bash脚本中使用它吗,或者它只是一个内部工作机制,不应该手动使用/操纵?

1
什么概率分布可以模拟这种竞争状况?
请看下面的命令: bash -c "echo x; cat 1" | tee 1。 我的理解是,它将分叉到新的shell,写入xstdout,写入file 1 not foundstderr,退出并将控制权返回给父进程,以及写入xstdout和1。因此,我希望最终输出为x,并且该文件1正好包含string x。 然而,这种情况并非如此。实际上,文件1通常包含的至少两个实例x,有时包含数千行x。在运行命令一万次的批处理测试中,x写入文件的s 的平均数为52.3,中位数为1。什么概率分布可以模拟这种行为?我怀疑它是有条件的几何形状,否则是统一的。
10 shell  files  pipe 

1
我可以通过qemu命令行通过USB端口吗?
我正在使用启动VM qemu-system-x86_64。我知道两种通过USB设备的方式。 举例来说,我有一只老鼠出现在lsusb中,例如 Bus 003 Device 011: ID 6ade:9582 Amazing Mouse Maker 我可以通过使用它 -device usb-host,vendorid=0x6ade,productid=0x9582 要么 -device usb-host,hostbus=3,hostaddr=11 我都不喜欢这些。如果我通过供应商/产品ID来抓住它,那么在关闭VM之前,我将永远无法收回该鼠标。 如果我通过总线和设备号来获取它,那么如果我拔掉它,我将不得不告诉Qemu重新获取它。 我可以通过端口(实际的物理插槽)发送它吗?假设它已插入总线3端口2。我可以通过它吗?
10 usb  kvm  qemu  lsusb 

1
GNOME网络管理器在哪里存储密码?
在网络管理器的“身份”选项卡下,我可以输入用于OpenVPN连接的用户名和密码。我也可以输入“用户私钥”的密码。 这两个密码字段均具有以下选项: 仅存储该用户的密码 存储所有用户的密码 每次都要求输入密码 不需要密码 如果我选择将密码(“此用户”或“所有用户”)存储在哪里?

2
在docker中查找和sed字符串时出现错误`设备或资源繁忙'
此问题仅在docker容器中发生。 仅find是罚款: find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json" find 与sed find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json"|xargs sed -i "s/10.142.55.199/host02/g" 给出一个错误: /xxx/config/sed8Ey5tD: Device or resource busy 我不明白是什么sed8Ey5tD,ls看不到。我认为这是由docker造成的,但无法解决。 如何取得sed成功? 好吧,我发现这个文件是由搬运工volumed,有 volumes: /xxx/config.json : /xxx/config/config.json 在docker-compose.yml。之后docker-compose down,可以编辑文件。但是,如何在没有文件的情况下编辑文件docker-compose down?
10 sed  find  docker  xargs 

1
我应该怎么做才能在启动时强制检查根文件系统(以及可选的修复程序)?
昨天,我们的一台计算机掉到了grub外壳上,或者说实话,我不确定打开计算机时它是什么外壳。 结果表明,由于不一致,它无法挂载根文件系统或某种意义上的东西。 我跑了,我相信: fsck -fy /dev/sda2 重新启动,问题消失了。 这里是问题部分: 我已经在她的根目录下了crontab: @reboot /home/ruzena/Development/bash/fs-check.sh 而脚本包含: #!/bin/bash touch /forcefsck 考虑一下,我不知道为什么我要为这么短的命令创建脚本文件,但是无论如何... 此外,在文件中: /etc/default/rcS 我定义了: FSCKFIX=yes 所以我不明白。情况怎么会出现? 我应该怎么做才能在启动时强制检查根文件系统(以及可选的修复程序)? 还是这两项我能做到的最大? 操作系统: Linux Mint 18.x Cinnamon 64-bit。 fstab: cat /etc/fstab | grep ext4 显示: UUID=a121371e-eb12-43a0-a5ae-11af58ad09f4 / ext4 errors=remount-ro 0 1 grub: fsck.mode=force 已添加到grub配置中。
10 linux  ext4  fsck 

4
如何打印变量名称及其值?
有什么办法可以打印变量名称及其值? j=jjj k=kkk l=lll for i in j k l do .... done 预期输出(每个变量在单独的行上): j = jjj k = kkk l = lll 有人可以建议一种获得上述结果的方法吗?
10 bash  shell  variable 

2
如何使用gnuplot从文本文件值绘制图形?
如何从文本文件值绘制图形?文本文件如下所示: location count1 count2 HZ 100 193 ES 514 289 FP 70 137 BH 31 187 我想将这些值绘制为shell脚本中的图形。在位置列的x轴值和计数1和计数2列的y轴值中。
10 gnuplot 

3
有没有将密码传递到Systemd Unit文件的典型方法?
我想使用systemd单位文件启动服务。此服务需要密码才能启动。我不想将密码以明文形式存储在systemd单元文件中,因为它是世界可读的。我也不想以交互方式提供此密码。 如果要为此编写普通脚本,则将凭据存储在具有受限权限(400或600)的root拥有的文件中,然后将其作为脚本的一部分读取。是否有任何特定的systemd风格的方法可以执行此操作,还是应该遵循与常规Shell脚本中相同的过程?

1
了解MMAP
我在这里浏览有关MMAP的文档,并尝试使用此文档来实现 我对它的实施有一些疑问。 MMAP是提供文件的映射并返回物理内存中该位置的指针还是返回映射表的地址?是否也为该文件分配和锁定空间? 将文件存储在内存中的那个位置后,它会一直保持在那里直到munmap被调用吗? 该文件是否甚至移至内存中,还是只是用作重定向的映射表,而该文件实际上位于虚拟内存-(disk)中? 假设将其移到内存中,如果其他进程具有地址,其他进程可以访问该空间以读取数据吗?

1
如何在Linux上调试无法绑定到设备的驱动程序?
我试图弄清楚为什么我的Creator CI20上的驱动程序未安装以下设备。供参考,我使用Linux内核v4.13.0并在本地进行编译: make ARCH=mips ci20_defconfig make -j8 ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage 从正在运行的系统中,我可以看到: ci20@ci20:~# find /sys | grep rng /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8 /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8/compatible /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8/name /sys/bus/platform/drivers/jz4780-rng /sys/bus/platform/drivers/jz4780-rng/bind /sys/bus/platform/drivers/jz4780-rng/unbind /sys/bus/platform/drivers/jz4780-rng/uevent 因此内核在运行时可以看到该设备,现在缺少的部分是为什么驱动程序从未绑定?我本来期望这样的事情: /sys/bus/platform/drivers/jz4780-rng/100000d8.rng 我确实找到了其他一些文章来解释如何调试正在运行的系统,例如: /programming/28406776/driver-binding-using-device-tree-without-compatible-string-in-the-driver /programming/35580862/device-tree-mismatch-probe-never-所谓 /programming/41446737/platform-device-driver-autoloading-mechanism 是否可以使用正在运行的内核的/ sys获取设备树的信息? 尽管这些帖子的信息准确无误,但对我来说却不是很有帮助。由于我是在本地构建内核(我printk在jz4780-rng驱动程序的probe函数中添加了),所以我的问题是: 我应该在编译时打开什么选项,以便内核在无法调用jz4780-rng驱动程序的probe函数时输出准确的信息? 特别是我该如何打印经过测试的总线/驱动器的完整列表driver_probe_device? 我printk可以在代码中的任何地方添加调试它。问题在于:哪个函数正在遍历设备树并调用probe / init函数? 以供参考: $ dtc -I fs -O dts /sys/firmware/devicetree/base | grep -A 1 …

2
为什么同时使用“ make clean”和“ make mrproper”?
这是写在Linux内核Makefile是 clean - Remove most generated files but keep the config and enough build support to build external modules mrproper - Remove all generated files + config + various backup files 并在arch文档中指出 要完成准备工作,请确保内核树绝对干净。 $ make clean && make mrproper 那么如果make mrproper要彻底清除,为什么make clean要用呢?
10 linux  make  gnu 

1
dmesg中的第一列是什么?
我正在尝试dmesg输出内核消息缓冲区的命令。我的设置返回的格式为: ... [ 0.000000] 3 base 100000000 mask F00000000 write-back ... [ 95.709163] wlo1: associated [ 95.709218] IPv6: ADDRCONF(NETDEV_CHANGE): wlo1: link becomes ready ... 第一列中的数字随每个条目的增加而增加,但是当我阅读man dmesg或进入Wikipedia条目时,我看不到有关该值的任何信息。 第一列中的值的意义是什么?
10 dmesg 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.