小编Chr*_*her的帖子

如何将 NetworkManager 设置导出和迁移到新系统?

如何将 NetworkManager 设置导出和迁移到新系统?

用例是:

  • 重新安装机器
  • 将网络配置从笔记本电脑移动到台式机系统(反之亦然)

应迁移所有设置,其中包括:

  • 默认和自定义网络连接
  • 带密码的wifi连接
  • VLAN 配置
  • VPN 配置(如果可能,使用密钥)

我在 Arch wiki 上查了一下,没有关于迁移的内容,所以我在这里问你们。

networking networkmanager

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

如何在 MOTD 中使用颜色?

我编辑了 default/etc/update-motd.d/00-header,添加了一些颜色以使其更易于阅读:

printf "Welcome to \e[1;34m%s\e[0m \e[2m(%s %s %s)\e[0m\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"
Run Code Online (Sandbox Code Playgroud)

我可以在终端中很好地运行这行代码,但是当我00-header使用此信息进行编辑时,我会以纯文本形式打印出转义码:

Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m
Run Code Online (Sandbox Code Playgroud)

如何为当天的信息添加一点色彩?

shell colors ubuntu motd

20
推荐指数
2
解决办法
3万
查看次数

如何为 Cinnamon 任务栏添加快捷方式

我在 Cinnamon 桌面上使用 Ubuntu 14.04。在尝试为 Cinnamon 任务栏的 PDF 文件创建快捷方式后,我发现也许我应该搜索一个包含任务栏配置信息的文件夹并在那里创建一个启动器。顺便说一句,我不知道我是否猜对了,或者如果是的话,它会在哪里!如何将快捷方式添加到 pdf 文件,然后将其放置在任务栏中?

ubuntu cinnamon

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

在两个网络接口上分离网络流量

您能否利用您的专业知识了解如何在两个网络接口上配置网络流量分离?

到目前为止,据我所知,静态路由用于未设计为使用默认网关的网络流量。默认网关用于所有不以本地网络为目的地且在路由表中未指定首选路由的流量。

场景如下。

  • 网络中的每台计算机都有两个网卡。
  • 每个的生产接口是eth0(GW = 10.10.10.1)。
  • 每个的管理接口是eth1(GW = 192.168.100.1)。
  • 生产和管理流量应该完全分开。

我在下面发布了我在 Debian Wheezy 上尝试过的东西。而且,我的问题是,虽然我的主机设置方式可以在两个接口上进行通信,但各个主机似乎“听到”了错误接口上的流量。例如:

主机 140

eth0      Link encap:Ethernet  HWaddr 08:00:27:d1:b6:8f
          inet addr:10.10.10.140  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fed1:b68f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1341 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2530 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:641481 (626.4 KiB)  TX bytes:241124 (235.4 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:ad:14:b6
          inet addr:192.168.100.140  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fead:14b6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500 …
Run Code Online (Sandbox Code Playgroud)

ubuntu rhel routing debian centos

14
推荐指数
2
解决办法
2万
查看次数

macOS Mojave 目录权限

MacOS Mojave 已将 SIP 的影响扩展到用户的主目录。默认情况下,拒绝访问用户主目录中的许多目录。下面是这些目录的几个示例。

~/Library/Messages
~/Library/Mail
~/Library/Safari
[… etc.]
Run Code Online (Sandbox Code Playgroud)

为了从终端访问这些目录,终端应用程序必须在系统偏好设置 > 安全和隐私 > 隐私 > 全盘访问中定义。配置有效,除了我系统上的以下目录。容器中的其他数据可能存在相同的行为 - 不确定。

~/Library/Containers/com.apple.mail/Data/DataVaults
Run Code Online (Sandbox Code Playgroud)

有趣的行为很容易重现。该目录甚至不可见。

cd ~/Library/Containers/com.apple.mail/Data
ls
ls: DataVaults: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我用来rsync将我的主目录镜像到外部硬盘驱动器;但是,我不能再这样做了,因为rsync抱怨“遇到 IO 错误——跳过文件删除”,这破坏了镜像效果。我没有找到有关此问题的任何文档。苹果支持不知道。为什么这个目录很特别,我们如何在不禁用 SIP 的情况下访问它?

禁用 SIP 的进一步调查结果

根据系统信息,Mojave 升级是在 2018 年 9 月 24 日进行的。该目录也是在同一天创建的。我的用户拥有目录,而员工组是组所有者。它的权限是 0700。它具有扩展属性,如@符号所示。没有 ACL。没有旗帜。

xattr -l ~/Library/Containers/com.apple.mail/Data/DataVaults

com.apple.quarantine: 0082;00000000;Mail;
com.apple.rootless: Mail

ls -lO DataVaults
(no result; exit 0)
Run Code Online (Sandbox Code Playgroud)

禁用 SIP、删除目录并重新启用 SIP 后,只要打开邮件,目录就会以相同的权限重新出现。邮件(版本 12.0 (3445.100.39))没有插件。

2018 年 10 月 16 日全新安装的结果

格式化并重新安装后该目录不存在。我仍然不知道它是如何开始的。 …

osx permissions

11
推荐指数
1
解决办法
7254
查看次数

如何将 find 找到的文件作为参数传递?

首先切断琐碎但不适用的答案:我既不能使用find+xargs技巧也不能使用它的变体(如findwith -exec),因为我每次调用都需要使用很少的这样的表达式。我会在最后回到这一点。


现在有一个更好的例子,让我们考虑:

$ find -L some/dir -name \*.abc | sort
some/dir/1.abc
some/dir/2.abc
some/dir/a space.abc
Run Code Online (Sandbox Code Playgroud)

我如何将这些作为参数传递给program

只是这样做并不能解决问题

$ ./program $(find -L some/dir -name \*.abc | sort)
Run Code Online (Sandbox Code Playgroud)

失败,因为program得到以下参数:

[0]: ./program
[1]: some/dir/1.abc
[2]: some/dir/2.abc
[3]: some/dir/a
[4]: space.abc
Run Code Online (Sandbox Code Playgroud)

可以看出,带有空间的路径被拆分并program认为是两个不同的参数。

报价直到它起作用

似乎像我这样的新手用户,在遇到此类问题时,往往会随机添加引号,直到它最终起作用为止 - 只是在这里似乎没有帮助......

"$(…)"

$ ./program "$(find -L some/dir -name \*.abc | sort)"
[0]: ./program
[1]: some/dir/1.abc
some/dir/2.abc
some/dir/a space.abc
Run Code Online (Sandbox Code Playgroud)

由于引号可防止分词,因此所有文件都作为单个参数传递。

引用个别路径

一个有前途的方法:

$ ./program $(find -L some/dir …
Run Code Online (Sandbox Code Playgroud)

command-line bash find arguments

9
推荐指数
1
解决办法
8631
查看次数

如何查找仅包含特定文件的目录

我有几个包含无用文件的目录(如*.tmp, desktop.ini, Thumbs.db, .picasa.ini)。

如何扫描所有驱动器以查找仅包含其中一些文件的目录?

find

8
推荐指数
2
解决办法
5016
查看次数

如何打印明显隐藏的环境变量?

环境变量可以用env; 但是,有些没有显示。例如...

echo $EUID可能会产生结果,1000env | grep EUID不会产生结果。

这种类型的变量是什么?只读环境变量?

是否所有 shell 都按照某种约定设置了相同的变量?

如何列出这些隐藏变量?

linux bash zsh environment-variables

6
推荐指数
1
解决办法
4500
查看次数

对多个默认组使用 ACL

我查看了类似问题的答案,并通过阅读有关 Linux ACL 的教程刷新了我对 ACL 的记忆。然而,我仍然被难住了。我做错了什么,或者我不明白什么?

我有一个安装了该acl选项的文件系统。

user@host:/srv$ grep srv /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /srv ext4 relatime,nodev,nosuid,user_xattr,acl 0 2
Run Code Online (Sandbox Code Playgroud)

用户userdevs组的成员。

user@host:/srv$ id
uid=1000(user) gid=1000(user) groups=1000(user),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),1001(devs)
Run Code Online (Sandbox Code Playgroud)

umask 是正常的。

user@host:/srv$ umask
0022
Run Code Online (Sandbox Code Playgroud)

创建一个目录;组所有权和权限已设置。

user@host:/srv$ sudo mkdir lib; sudo chmod 0750 lib && sudo chgrp www-data lib
user@host:/srv$ ls -l
total 24
drwxr-x---  2 root www-data  4096 May 21 18:00 lib
drwx------  2 root root     16384 Feb 17 18:22 lost+found
drwxr-xr-x  3 root www-data  4096 May 21 17:25 www …
Run Code Online (Sandbox Code Playgroud)

linux acl

5
推荐指数
1
解决办法
1950
查看次数

无论光标位置如何,Ctrl + U 删除整行

我正在学习终端技巧。在教程中,这家伙说Ctrl+U删除从光标到行尾的所有内容。就我而言,它总是删除整行。我zsh在 macOS 上使用。

osx zsh terminal iterm2

5
推荐指数
1
解决办法
1093
查看次数