小编Cir*_*郝海东的帖子

我应该在指向目录的符号链接中包含尾部斜杠 / 吗?

符号链接到目录会产生不同的结果,ls -l具体取决于 Iln -s dirln -s dir/. 但实际的区别是什么,为什么我应该更喜欢哪一个?

directory symlink

36
推荐指数
4
解决办法
7405
查看次数

重用 rsync --dry-run 输出以加快实际传输速度

我通常rsync -n在做一个实际的rsync. 问题是,我如何自动执行第二次运行以准确重用用 生成的列表--dry-run

我的意思是,如果我运行rsync -n然后我会模拟rsync会做什么,我的想法是获取该输出,处理它然后以某种方式rsync仅生成--include-from该输出,因此完整列表只需要计算一次。

如果这甚至没有意义,请告诉我。

顺便说一句,我倾向于使用rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE". 如果您对使用哪些选项也有建议,请告诉我。我正在尝试将外部硬盘驱动器(仅包含图像、视频和文档)的内容复制到另一个外部硬盘驱动器。

terminal rsync text-processing

36
推荐指数
1
解决办法
10万
查看次数

字符设备或字符特殊文件如何工作?

我正在尝试了解字符特殊文件。从wikipedia,我了解到这些文件为一次一个字符传输数据的设备“提供了一个接口”。我的理解是系统以某种方式调用字符设备而不是直接调用设备驱动程序。但是文件是如何提供这个接口的呢?它是一个翻译系统调用的可执行文件吗?有人可以解释一下是怎么回事吗。

drivers files

28
推荐指数
4
解决办法
5万
查看次数

为什么我在没有 root 的情况下会出现“屏幕正在终止”?

我已经在 Fedora 19 上安装了 screen。当我以 root 身份通过 SSH 远程测试命令时,它运行良好。例如,如果我输入screen一个新的终端,模拟器就会启动并等待命令。我可以分离它等。但是,当我以标准用户身份通过​​ SSH 远程登录后尝试执行相同操作时,该命令会立即终止。我看到的唯一消息是[screen is terminating].

有人已经遇到过这个问题吗?是否与不良权限有关?

更新:

$ strace -e trace=file screen
execve("/usr/bin/screen", ["screen"], [/* 23 vars */]) = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libutempter.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpam.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libfreebl3.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libaudit.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) …
Run Code Online (Sandbox Code Playgroud)

permissions gnu-screen

25
推荐指数
3
解决办法
8万
查看次数

如何找到包含 git commit 的第一个标签?

我有我感兴趣的提交的 SHA ID,并想知道如何找到包含它的第一个标签。

git

23
推荐指数
2
解决办法
7780
查看次数

如何使用patch和diff合并两个文件并自动解决冲突

我已经阅读了 diff 和 patch,但我不知道如何应用我需要的东西。我想它很简单,所以为了显示我的问题,请使用这两个文件:

一个.xml

<resources>
   <color name="same_in_b">#AAABBB</color>
   <color name="not_in_b">#AAAAAA</color>
   <color name="in_b_but_different_val">#AAAAAA</color>
   <color name="not_in_b_too">#AAAAAA</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

xml文件

<resources>
   <color name="same_in_b">#AAABBB</color>
   <color name="in_b_but_different_val">#BBBBBB</color>
   <color name="not_in_a">#AAAAAA</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

我想要一个输出,看起来像这样(顺序无关紧要):

<resources>
   <color name="same_in_b">#AAABBB</color>
   <color name="not_in_b">#AAAAAA</color>
   <color name="in_b_but_different_val">#BBBBBB</color>
   <color name="not_in_b_too">#AAAAAA</color>
   <color name="not_in_a">#AAAAAA</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

合并应包含符合此简单规则的所有行:

  1. 仅在其中一个文件中的任何行
  2. 如果一行具有相同的名称标签但具有不同的值,则从第二个中获取值

我想在 bash 脚本中应用这个任务,所以如果另一个程序更适合,它不一定需要完成差异和补丁

xml diff patch text-processing merge

23
推荐指数
3
解决办法
4万
查看次数

如何获取当前终端名称?

如何获取当前终端名称?

我的意思ps是在 TTY 列中显示的名称,例如:

root@dor-desktop:/home/dor/Documents/LAMP_setup/webs_install/do/install# ps aux | egrep 'mysql|(^USER)'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dor       2238  0.2  1.9 448052 79796 ?        S    17:27   0:17 gedit /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.install /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.setup
root      4975  0.1  0.5 324984 22876 ?        S    18:12   0:04 gedit /usr/local/mysql/bin/mysqld_safe
root      8160  0.0  0.0   4108   664 pts/2    S    19:08   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --skip-networking --skip-grant-tables --user=mysql --basedir=/usr/local/mysql --ledir=/usr/local/mysql/libexec
mysql     8279  0.0  0.4 146552 19032 pts/2    Sl   19:08   0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --skip-networking …
Run Code Online (Sandbox Code Playgroud)

bash terminal

22
推荐指数
1
解决办法
3万
查看次数

Linux 内核 /proc 的内容记录在哪里?

是否有网站列出/proc每个条目的内容和含义?

linux kernel proc linux-kernel

18
推荐指数
1
解决办法
2159
查看次数

Busybox ping IP 有效,但主机名 nslookup 因“地址错误”而失败

我正在编译自己的 3.14 内核。我担心我可能遗漏了一些重要的网络功能来使 DNS 正常工作。

我无法解析域名。我可以 ping 我的 DNS 服务器。我可以在其他机器上使用该 DNS 解析,所以我知道它不是服务器。

~ # cat /etc/resolv.conf
nameserver 192.168.13.5

~ # nslookup google.com
Server:    192.168.13.5
Address 1: 192.168.13.5

nslookup: can't resolve 'google.com'

~ # ping -c 1 google.com
ping: bad address 'google.com'

~ # ping -c 1 192.168.13.5 
PING 192.168.13.5 (192.168.13.5): 56 data bytes
64 bytes from 192.168.13.5: seq=0 ttl=128 time=0.382 ms

--- 192.168.13.5 ping ststistics ---
1 packets transmitted, 1 packets recieved, 0% packet loss
reound-trip min/avg/max = 0.382/0.382/0.382 ms …
Run Code Online (Sandbox Code Playgroud)

linux kernel dns busybox linux-kernel

17
推荐指数
1
解决办法
4万
查看次数

init 进程可以是 Linux 中的 shell 脚本吗?

我正在阅读有关设置自定义 initramfs教程,其中指出:

唯一缺少的是 /init,它是 initramfs 根目录中的可执行文件,一旦加载内核就会执行。因为 sys-apps/busybox 包含一个功能齐全的 shell,这意味着您可以将 /init 二进制文件编写为一个简单的 shell 脚本(而不是使它成为一个必须编译的用汇编程序或 C 编写的复杂应用程序)。

并给出了一个以 init 开头的 shell 脚本示例 #!/bin/busybox sh

到目前为止,我的印象是 init 是启动的主进程,所有其他用户空间进程最终都是 init 的子进程。但是,在给定的示例中,第一个进程实际上是bin/busybox/ sh从中产生后来的 init 的。

这是正确的解释吗?例如,如果我当时有一个可用的解释器,我可以将 init 编写为 Python 脚本等吗?

linux init-script init

16
推荐指数
2
解决办法
8130
查看次数