Unix & Linux

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

4
什么是用于SET FILE / ERASE_ON_DELETE的Linux?
在VMS中,可能会告诉文件系统在删除文件时在文件的现有内容上写入垃圾。这是DCL命令来标识用于这种处理的文件: $ SET FILE/ERASE_ON_DELETE SAMPLE.TXT 这允许在某个时间点设置策略,然后文件的以后用户不必处理该安全细节。标准删除操作会将文件名移出目录,并释放空间供其他文件使用,这也会修改现有内容,以防止下一个用户读取它。正常删除: $ DELETE SAMPLE.TXT.* Linux是什么呢?

3
为什么应该将fork()设计为返回文件描述符?
在他的关于网页的自管绝招,丹·伯恩斯坦解释了竞争条件select()和信号,提供一个解决办法,并得出结论认为, 当然,正确的事情是fork()返回文件描述符,而不是进程ID。 他的意思是-能够select()在子进程上处理其状态更改,而不必使用信号处理程序来通知那些状态更改,这是否有意义?

2
如何跟踪库加载?
我有依赖于链接到libboost 1.67(已安装在系统中)的库的程序。启动它时,出现了一个libboost_system.so.1.58不存在的错误。LD_PRELOAD并LD_LIBRARY_PATH没有设置。 lddtree执行不会将此库显示为依赖项,但是ldd会显示。 如何从需要该库的位置进行跟踪?
16 libraries 

4
如何测量管道数据的大小?
我想做这样的事情: > grep pattern file.txt | size -h 16.4 MB 或等同于: > grep pattern file.txt > grepped.txt > ls -h grepped.txt 16.4 MB > rm grepped.txt (虽然有点不方便) 那可能吗?
16 pipe 

5
dd会进行任何形式的验证吗?
我dd用来将数据从旧硬盘复制到新硬盘。我想确保数据的完整性是安全的。 关于这个答案,吉尔斯说 如果[dd]成功终止,则备份是正确的,除非出现硬件故障… 这到底是什么意思?是否dd有某种内置验证? 如果要改用rsync,我也要进行第二遍--checksum验证。这种偏执狂是合理的吗?

2
我可以使用什么幂等命令来建立指向目录的符号链接?
我想将命令放入外壳脚本中,该脚本将创建指向目录的符号链接,但是此脚本可以反复运行,因此在后续调用中,该命令不应更改任何内容。 这是目录结构: % tree /tmp/test_symlink /tmp/test_symlink ├── foo └── repo └── resources └── snippets ├── php.snippets ├── sh.snippets ├── snippets.snippets ├── sql.snippets └── vim.snippets 我想在foo/称为目录的片段中创建一个符号链接/tmp/test_symlink/repo/resources/snippets。 所以我跑: % ln -sfv /tmp/test_symlink/repo/resources/snippets /tmp/test_symlink/foo/snippets '/tmp/test_symlink/foo/snippets' -> '/tmp/test_symlink/repo/resources/snippets' 这给出了预期的结果。 % tree /tmp/test_symlink /tmp/test_symlink ├── foo │ └── snippets -> /tmp/test_symlink/repo/resources/snippets └── repo └── resources …

1
交互式外壳能否变为非交互式,反之亦然?
交互式外壳能否变为非交互式,反之亦然? 注意:我已经对“交互式和非交互式之间的区别是什么?”这一基本问题进行了大量研究,研究的结果使我提出了这个问题。 这个问题的序言很长,部分原因是至关重要的是我们为回答“交互”所使用的定义类型。定义可以是特定集合的任意标签;它可以描述各种特性;或者它可以为您提供信息,以帮助您预测行为和了解目的。 我们可以将这最后一种称为“动作定义”或“动态定义”,这是最有用的。 在中man 1p sh,给出了交互式外壳的以下定义: If the -i option is present, or if there are no operands and the shell’s standard input and standard error are attached to a terminal, the shell is considered to be interactive. 从提及“ -i选项”和使用“操作数”一词开始,这是指Shell的调用,而不是可以在运行中的Shell中检查的属性。 Bash手册页的措辞略有不同: An interactive shell is one started without non-option …



3
如果另一个服务启动或重新加载,则系统单元服务将重新启动
我想知道在开始或重新加载时是否有Systemd重启A.service(After)的方法B.service(仅限重新加载配置),如果可能的话,无需编辑B.service系统安装和升级的内容。 A.service即使B.service未安装,禁用或停止,也应启动。 A.service: [Unit] After = B.service network-online.target Wants = B.service [Service] Type=oneshot ExecStart = /script.sh start ExecStop = /script.sh stop RemainAfterExit=yes [Install] WantedBy = network-online.target B.service: [Unit] After=syslog.target network.target [Service] Type=forking ExecStart=/cmd start ExecStop=/cmd stop ExecReload=/cmd reload PIDFile=/var/run/cmd.pid [Install] WantedBy=multi-user.target
16 systemd 

1
禁止显示ssh或scp的横幅
当使用ssh客户端(例如或)时,是否有办法抑制sshd使用该Banner选项发送的横幅广告输出?sshscp 我看过选项和配置文件,但似乎找不到任何东西。
16 ssh 

4
按位移位和Bash中的最大整数
这是一个探索性问题,意味着我不确定这个问题是什么,但是我认为这与Bash中最大的整数有关。无论如何,我会表面上定义它。 $ echo $((1<<8)) 256 我通过移位产生一个整数。我可以走多远? $ echo $((1<<80000)) 1 显然,目前还没有。(1是意外的,我将返回。)但是, $ echo $((1<<1022)) 4611686018427387904 仍然是积极的。但是,这不是: $ echo $((1<<1023)) -9223372036854775808 再往前走一步 $ echo $((1<<1024)) 1 为什么是1?以及为什么以下? $ echo $((1<<1025)) 2 $ echo $((1<<1026)) 4 有人想分析这个系列吗? 更新 我的机器: $ uname -a Linux tomas-Latitude-E4200 4.4.0-47-generic #68-Ubuntu SMP Wed Oct 26 19:39:52 UTC …
16 bash  arithmetic 


1
如何获得文件的所有扩展属性的转储?
Getfattr转储所选文件的扩展属性列表。 然而,getfattr --dump filename 只有转储user.*命名空间,而不是security.*,system.*和trusted.*命名空间。通常,除非您手动将用户名称空间属性附加到文件,否则没有用户名称空间属性。 是的,我知道我可以使用来获取SELinux信息getfattr -n security.selinux filename。在这种情况下,我知道扩展属性的特定标识。 我已经以root用户身份尝试过此操作。我假设具有全部功能的root用户可以访问此信息。但是您只会得到user。*名称空间转储。 问题是,如何在不知道所有命名空间中所有键的名称的情况下,轻松地获得文件的所有扩展属性命名空间的完整转储?
16 linux  files  xattr 

8
二进制文件可以跨不同的CPU架构移植吗?
我的目标是能够为嵌入式Linux开发。我有使用ARM的裸机嵌入式系统的经验。 对于针对不同的CPU目标进行开发,我有一些一般性问题。我的问题如下: 如果我有一个编译为在x86目标linux OS版本xyz上运行的应用程序,是否可以在另一个系统ARM目标linux OS版本xyz上运行相同的编译二进制文件? 如果上述情况不成立,唯一的方法是使用相关工具链“例如arm-linux-gnueabi”来获取应用程序源代码以进行重建/重新编译? 同样,如果我有一个可加载的内核模块(设备驱动程序)可以在“ x86目标,Linux OS版本xyz ”上工作,我是否可以在另一个系统“ ARM目标,Linux OS版本xyz ” 上加载/使用相同的已编译.ko。? 如果上述情况不成立,唯一的方法是使用相关工具链“例如arm-linux-gnueabi”来获取驱动程序源代码进行重建/重新编译?

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.