退出代码的目的是什么rc.local?没有它我似乎执行得很好。标题显示:
#!/bin/sh -e
#
# rc.local - executed at the end of each multiuser runlevel
#
# Make sure that the script will "exit 0" on success or any other
# value on error.
Run Code Online (Sandbox Code Playgroud)
谁检查返回码?它是否默认为 0 呢?
如何将uptime输出转换为自纪元以来的秒数以与dmesg输出进行比较?正常运行时间是否与内核消息时间具有相同的分辨率?有没有比 from 更直接地获取内核时间的方法uptime?
? ~ echo "hi" > /dev/kmsg
? ~ dmesg | tail
[ 859.214564] hi
? ~ uptime
10:08 up 2 days, 43 secs, 2 users, load averages: 1.69 1.64 1.54
Run Code Online (Sandbox Code Playgroud) 我有一个配置文件,想了解哪些可执行文件正在使用它(如果有)。我想知道谁是这个文件的读者。
如果我watch有一些间隔,我会想念它,因为读取发生得如此之快:
watch -d -n 1 "lsof /home/me/my.conf"
Run Code Online (Sandbox Code Playgroud)
如果我尝试执行该程序,我很确定在 的支持下使用它strace,它会由于strace引入的额外延迟而失败。
strace -o /tmp/$(date +%s)_myprog.trace myprog
Run Code Online (Sandbox Code Playgroud)
我怎样才能可靠地证明myprog没有读取这个文件?
我被要求为我购买的新 USB 设备添加 udev 规则。对于为什么这样做是必要的或有价值的,似乎没有一个非常简单的解释。始终将设备映射到同一路径?例如,始终将设备安装为/dev/ttyUSB1或/dev/sda4?
在/etc/udev/rules.d/99-totalphase.rules:
# This file causes the mode of all Total Phase usb devices to be made
# writable for any user.
# Aardvark I2C/SPI Host Adapter
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0403", SYSFS{idProduct}=="e0d0", MODE="0666"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="e0d0", MODE="0666"
# Beagle Protocol Analyzers
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="1679", SYSFS{idProduct}=="2001", MODE="0666"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1679", ATTR{idProduct}=="2001", MODE="0666"
Run Code Online (Sandbox Code Playgroud)
udev 规则对 USB 设备应具有哪些权限?644?755?
例如在 Ubuntu 上,我正在查看这个文件: /etc/udev/rules.d/99-lpcscrypt.rules
我正在尝试查看/dev/sda3我100MiB通过 gparted制作的虚拟分区的原始字节中的内容。
我想在该分区上测试写入和读取。是否有可以用于手动检查的工具?
如何递归删除目录中的所有内容,除了要保留的一小部分文件?例如,让我们尝试删除除名为f2和 的文件之外的所有文件f5。
# Create a testing ground
mkdir -p d{1..3}
touch d{1..3}/f{1..5}
# Remove all files EXCEPT ones named f2 and f5.
find . -type f -not -name ('f2'|'f5') -type f -exec rm -f '{}' +
# Remove empty directories
find . -type d -empty -delete
Run Code Online (Sandbox Code Playgroud)
产生:
bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)
最终目标是在更大的 C 用户空间应用程序中执行此操作,但system()用于执行命令行命令似乎要容易得多。
如果我有一个必须使用递归 make 的 makefile,是否有一个简单的选项可以禁用它?
我似乎无法将环境变量传递给 chroot:
$ sudo apt-get install debootstrap dchroot
$ sudo debootstrap trusty mychroot
$ sudo chroot mychroot /bin/bash -c "MY_VAR=5; echo ${MY_VAR}"
$
Run Code Online (Sandbox Code Playgroud) 我的 .bashrc 中有一些 bash 别名~/.bashrc,但它们在watch命令中不可用。通常,我会source ./some_script.sh使用这些别名,但我无法弄清楚如何使用watch命令来做到这一点。
$ watch "my-alias"
Every 2.0s: my-alias
sh: 1: my-alias: not found
Run Code Online (Sandbox Code Playgroud)
watch -x bash -c "my-alias"
Every 2.0s: my-alias
sh: 1: my-alias: not found
Run Code Online (Sandbox Code Playgroud) PROG=${0##*/}似乎解析出 shell 脚本名称,但尚不清楚它是如何工作的。${0} 我理解是第一个或第 0 个变量。