发出关闭命令后,有时会收到如下状态消息:
Run Code Online (Sandbox Code Playgroud)A stop job is running for Session 1 of user xy
然后系统挂起一段时间,或永远取决于 ???
那么究竟什么是“停工”呢?
另外,为什么它有时会非常准确地估计所需的时间,而有时它可以永远运行?
我的主目录中有许多隐藏的配置文件:
~/(例如~/.cinnamon)~/.config/(例如~/.config/cinnamon-session)~/.local/share/(例如~/.local/share/cinnamon-session)家庭配置文件所在的逻辑是什么?
a) 这三个地方的隐藏文件有什么区别?
b)在这种情况下,“本地”究竟是什么意思,vs config,vs home?
c) 在主目录中,是否还有其他重要的多个应用程序使用的常用配置目录?
Debian 8.6 肉桂 2.2.16
[注意:这个类似的 Q涉及相同的 bash 错误消息。它被标记为另一个 Q的副本。但是因为我发现这个错误的来源非常不同,我将在下面回答我自己的问题。]
这个以前工作的 bash 脚本行
while ... do ... done <<< "$foo"
Run Code Online (Sandbox Code Playgroud)
有一天开始产生此错误消息:
无法为此处文档创建临时文件:权限被拒绝
这是一个显示“ InRelease ”和“ Release ”行后缀的示例:
# apt update
Hit:1 http://security.debian.org stretch/updates InRelease
Ign:2 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:3 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.2/debian stretch InRelease
Hit:4 http://mirrors.ocf.berkeley.edu/debian stretch-updates InRelease
Ign:5 http://dl.google.com/linux/earth/deb stable InRelease
Ign:6 http://ftp.uk.debian.org/debian stretch InRelease
Hit:7 http://dl.google.com/linux/chrome/deb stable Release
Hit:8 http://ftp.debian.org/debian stretch-backports InRelease
Hit:9 http://dl.google.com/linux/earth/deb stable Release
...
Run Code Online (Sandbox Code Playgroud)
我知道什么是发布。尽管对 InRelease 的网络搜索并没有出现太多。
在 GNU/Linux 中,如何区分目录和 btrfs 子卷的最佳方法是什么?
我知道他们应该看起来一样,这很酷。但是出于维护目的,当我查看目录时,我想知道它是否只是一个目录,或者它是否是一个子卷。 (就此而言,最好知道它是否已安装,如果是,如何安装以及从何处安装。)
目的:我想修改我的子卷的结构,例如建议here。我需要一种方法来查看我在做什么,以便检查我在做什么。谢谢。:-)
我看过的:
输出ls -d或tree -d显示文件夹,但不区分目录和btrfs subvolumes。使用ls -l它们实际上看起来相同。
即使ls --classify并且ls --file-type似乎也没有澄清这种区别。
可能的解决方案:
我发现我可以检查一个文件夹的 inode 编号,如果它是256,那就说明它是一个子卷。(参考1、2、3)
那么使用 inode=256 是区分目录和子卷的最佳启发式方法吗? (我假设在某些底层文件系统中,inode 可能是 =256 的另一个原因。因此,要进行明确检查,您还必须确保有问题的目录是 btrfs 文件系统的一部分。 )
另一种方法可能是通过命令btrfs subversion list .然后解析输出。您必须添加到 thismount | grep /\或类似的东西来处理 btrfs 磁盘、磁盘、分区或分区的根挂载,视情况而定。
未来: 我认为如果有一些新选项ls可以提供有关子卷和挂载点的信息,可能采用类似于软链接显示方式的格式,即
$ ls --show-mounts …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种增量备份工具,用于正在运行的基于磁盘的 linux 系统(例如 ubuntu 等),以及一种免费软件工具。
Clonezilla 可以进行准确的备份,但只能在系统空闲时进行。
Acronis for linux 可以在正在运行的系统上进行准确的备份,但它不是免费软件。Acronis 和 BTRFS 使用一些方法在文件系统运行时捕获文件系统更改,以模拟在运行时停止操作系统的效果。我正在寻找可以做到这一点的东西。
建议使用 rsync、dump 和许多其他不适合的工具,甚至将其用于此目的,但不能相信它们能够准确捕获正在运行的操作系统。rsync 用于静态文件系统时很好,但不适用于多线程运行文件系统。
令我惊讶的是,有多少人相信只需以某种方式复制文件系统,就可以准确备份正在运行的文件系统。几年前我构建了一个小型的多任务引擎,我很清楚一个任务污染另一个工作的危险。只有当备份作为原子任务运行时,所有其他任务在它工作时停止,才能确保捕获 100% 准确的可恢复备份。没有什么比拥有一个您所依赖的备份更糟糕的了,并且相信它会拯救您,但在您尝试使用它时却损坏了它。
我需要这个用于普通的旧桌面 linux,而不是虚拟设置。
我正在尝试升级我的 apt 配置以使用较新的 DEB822 样式格式。
man sources.list说:
其目的是逐渐使这种格式成为默认格式,弃用之前描述的单行格式,...
我可以将 .sources 文件添加到 /etc/apt/sources.list.d/ 中,但如何升级 /etc/apt/sources.list本身?
我已经尝试过以下操作:
将此行添加 APT::Sources::Use-Deb822 true; 到/etc/apt/apt.conf( ref )。
将 resources.list 重命名为sources.sources,并将其内容替换为 822 样式内容,
将此sources.sources移至/etc/apt/sources.list.d/sources.sources(dito the 822..)
虽然最后一件事在某种程度上有效,但我不明白它有什么好处,因为它不能确保它首先被阅读。
apt v 1.4.9
OS: GNU/Linux Debian 9.6 (x86-64);
Cinnamon desktop: 3.2.7;
Linux Kernel: 4.9.0-8-amd64;
Run Code Online (Sandbox Code Playgroud) 在 bash 中,语法有||:什么作用?
例子
$ ls foo ||:
Run Code Online (Sandbox Code Playgroud)
除了总是返回成功之外,这还有什么特别之处吗?
$ ls foo ||:; echo $?即使ls foo由于foo不存在而失败,输出是否始终为零?
我在一个以set -e. 所以我猜它可以确保不会发生错误,因此脚本不会立即退出,即使以 this 为后缀的命令返回错误。
我正在刷新我对一些基本 GNU/Linux 命令的理解,我承认在过去的 20 多年里我从未真正完全理解这些命令。
$ man ln 部分说:
-n, --no-dereference
treat LINK_NAME as a normal file if it is a symbolic link to a directory
Run Code Online (Sandbox Code Playgroud)
为了更好地理解这一点,我将其分解如下:
$ mkdir dir1
$ ln -vs dir1 dir2
'dir2' -> 'dir1'
$ mkdir dir3; touch dir3/xx
$ tree -F
.
??? dir1/
??? dir2 -> dir1/
??? dir3/
??? xx
#Now to test -n, first as a hard link
$ ln -vn dir3/xx dir2
ln: failed to create hard link 'dir2': File exists …Run Code Online (Sandbox Code Playgroud) 在 sed 中,如何使用 bash 函数创建替换字符串,尤其是一个或多个找到的部分的函数,通常标识为 \1、\2、...?
换句话说,我想做这样的事情:
sed -e 's/\(.*\)/<bash_function \1>/'
Run Code Online (Sandbox Code Playgroud)
注意:这个问题类似于如何将 shell 命令嵌入到 sed 表达式中?,但我不想调用 GNU/Linux 命令,而是想简单地调用本地 bash 函数。
众所周知,这是一条警告消息,但这准确吗?
如果是这样,那么它记录在哪里?(我已经在手册页中搜索了 dpkg 和 apt-get 以及网络。我还尝试添加--quiet, 和--quiet --quiet选项,但它们似乎并没有使这些W: ...行保持沉默。)
这是否仅适用于 apt-get,还是更广泛地适用,例如通过某些标准 c 库或某些历史标准?
例如:
$ sudo apt-get source somepackage
...
W: Download is performed unsandboxed as root as file ...
Run Code Online (Sandbox Code Playgroud)
另外,它们是否有其他标准或类似的错误行前缀代码?
我希望在 Ryzen 7 笔记本电脑上安装 GNU/Linux Mint 或可能的 Debian(作为双启动)。(具体来说,在新的 HP x360 上。)
我是否会使用与运行英特尔酷睿 i5 或 i7 的笔记本电脑相同的二进制文件(安装程序、下载和软件包)?
我知道有些事情可能无法完美运行,但我不是在这里询问这一点。我只是想知道我是否需要寻找专门为 Ryzen 编译的软件。