如何将 NetworkManager 设置导出和迁移到新系统?
用例是:
应迁移所有设置,其中包括:
我在 Arch wiki 上查了一下,没有关于迁移的内容,所以我在这里问你们。
我编辑了 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)
如何为当天的信息添加一点色彩?
我在 Cinnamon 桌面上使用 Ubuntu 14.04。在尝试为 Cinnamon 任务栏的 PDF 文件创建快捷方式后,我发现也许我应该搜索一个包含任务栏配置信息的文件夹并在那里创建一个启动器。顺便说一句,我不知道我是否猜对了,或者如果是的话,它会在哪里!如何将快捷方式添加到 pdf 文件,然后将其放置在任务栏中?
您能否利用您的专业知识了解如何在两个网络接口上配置网络流量分离?
到目前为止,据我所知,静态路由用于未设计为使用默认网关的网络流量。默认网关用于所有不以本地网络为目的地且在路由表中未指定首选路由的流量。
场景如下。
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) 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 日全新安装的结果
格式化并重新安装后该目录不存在。我仍然不知道它是如何开始的。 …
首先切断琐碎但不适用的答案:我既不能使用find
+xargs
技巧也不能使用它的变体(如find
with -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) 我有几个包含无用文件的目录(如*.tmp
, desktop.ini
, Thumbs.db
, .picasa.ini
)。
如何扫描所有驱动器以查找仅包含其中一些文件的目录?
环境变量可以用env
; 但是,有些没有显示。例如...
echo $EUID
可能会产生结果,1000
但
env | grep EUID
不会产生结果。
这种类型的变量是什么?只读环境变量?
是否所有 shell 都按照某种约定设置了相同的变量?
如何列出这些隐藏变量?
我查看了类似问题的答案,并通过阅读有关 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)
用户user是devs组的成员。
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) 我正在学习终端技巧。在本教程中,这家伙说Ctrl+U删除从光标到行尾的所有内容。就我而言,它总是删除整行。我zsh
在 macOS 上使用。