我有一个关于 UNIX 世界的一般性问题。
我目前在家里运行 Ubuntu 并在设备上安装了传输,它以传输 debian用户身份运行并将文件保存。我想知道将其更改为我自己的用户是否有意义,因此与文件交互更容易并且我不需要sudo?为什么这是一个坏主意?
例如{a..c}{1..3}
扩展为a1 a2 a3 b1 b2 b3 c1 c2 c3
.
如果我想打印a1 b1 c1 a2 b2 c2 a3 b3 c3
,是否有类似的方法可以做到这一点?最简单的方法是什么?
尽管出于各种原因我喜欢 Debian,但要找到有关此发行版及其政策的特定方面的文档并不总是那么容易。
contrib
我的问题是:和non-free
包存储库有什么区别?
如果我没记错的话,从我能找到的一些解释中:
non-free
适用于许可证不是免费的软件包contrib
用于软件包的依赖项non-free
(这使它们不属于 Debian)但是在我看来,有两个存储库是为了同一个目的,即在 Debian 中提供非自由软件。
我想知道我是否在这里遗漏了什么。
我在 /tmp 目录中遇到了奇怪的行为。尽管属于某个组的用户具有读/写文件的权限,但他不能这样做。
在此示例中,我创建一个新文件/tmp/test.txt
为 user max
。我给它 777 权限并使文件属于该组root
,但用户root
仍然无法编辑它。
su max
touch /tmp/test.txt
chmod 777 /tmp/test.txt
su root
chown max:root /tmp/test.txt
# ls -l /tmp/test.txt
-rwxrwxrwx 1 max root 0 26. Feb 12:08 test.txt
# echo "foobar" > /tmp/test.txt
bash: /tmp/test.txt: Permission denied
当移动test.txt
到不同的目录时,一切都按预期工作。
/tmp
是通过以下选项通过 fstab 安装的 tmpfs:
tmpfs /tmp tmpfs nodev,nosuid,size=5G 0 0
运行ls -l /
时,tmp 文件夹如下所示:
drwxrwxrwt 20 root root 640 26. Feb 12:01 tmp/
我正在运行 Manjaro,一个 Arch Linux 衍生产品。
我在安装 tmpfs 时做错了吗?
在 Linux 操作系统的旧(2001 年?)脚本中,我遇到了命令-P
选项的使用:ssh
$ ssh -P host.domain -l user
但是在ssh
手册页中没有提到-P
选项。尽管如此,执行ssh -P host.domain
不会显示任何警告或错误。
那是什么?可能是一个旧的/无证选项?
我正在编写一个 bash 脚本来使用 rsync 并更新大约 20 个不同服务器上的文件。
我已经弄清楚了 rsync 部分。我遇到的麻烦是查看变量列表。
到目前为止,我的脚本如下所示:
#!/bin/bash
SERVER1="192.xxx.xxx.2"
SERVER2="192.xxx.xxx.3"
SERVER3="192.xxx.xxx.4"
SERVER4="192.xxx.xxx.5"
SERVER5="192.xxx.xxx.6"
SERVER6="192.xxx.xxx.7"
for ((i=1; i<7; i++))
do
echo [Server IP Address]
done
哪里[Server IP Address]
应该是相关变量的值。所以当 i = 1 时,我应该回显 $SERVER1 的值。
我已经尝试了几次迭代,包括
echo "$SERVER$i" # printed the value of i
echo "SERVER$i" # printer "SERVER" plus the value of i ex: SERVER 1 where i = 1
echo $("SERVER$i") # produced an error SERVER1: command not found where i = 1
echo $$SERVER$i # printed a four digit number followed by "SERVER" plus the value of i
echo \$$SERVER$i # printed "$" plus the value of i
自从我编写脚本以来已经有很长时间了,所以我知道我错过了一些东西。另外,我确信我正在混合使用 C# 可以做的事情,我在过去 11 年中一直在使用它。
我想要做的甚至可能吗?或者我应该将这些值放在一个数组中并循环遍历该数组?对于生产 IP 地址和位置名称,我需要同样的事情。
这一切都是为了不必重复我将用来同步远程服务器上的文件的代码块。