Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答


21
如何生成随机字符串?
我想生成一个随机字符串(例如密码,用户名等)。应该可以指定所需的长度(例如13个字符)。 我可以使用哪些工具? (出于安全和隐私方面的考虑,字符串最好是离线生成,而不是在网站上在线生成。)
209 password  string  random 


16
列出可用更新,但不安装它们
我希望我的cron运行报告脚本能够在程序包有更新的情况下通知我。是一种方法,可以apt-get给我可用的更新列表,但不执行其他任何操作?
208 apt 

8
断开连接后保持SSH会话运行
有时我有很长时间运行的流程,想要在回家之前启动流程,因此我创建了到服务器的SSH会话以启动该流程,但是随后我想关闭笔记本电脑并回家,晚饭后我想下班前检查一下我开始的过程。如何使用SSH做到这一点?我的理解是,如果断开SSH连接,也会断开服务器上的登录会话,因此会导致长时间运行的进程中断。

10
如何清除journalctl
我在Google中找不到清除系统日志的任何安全方法。有谁知道安全可靠的方法吗? 假设我正在尝试某些东西,但日志中却堆满了各种错误消息。此外,我正在使用Conky在桌面上显示日记。我真的不想看到这些错误,因为它们让我想起了我正在修理此产品的糟糕一天,我想在经历过这种恐怖之后感觉像个新鲜人。我想每个人都会同意,这是清除日志:P的正当理由。

1
达到内核inotify监视限制
我目前在linux机器上遇到问题,因为我已经以root身份返回了返回错误的命令,因为已经达到了inotify监视限制。 # tail -f /var/log/messages [...] tail: cannot watch '/var/log/messages': No space left on device # inotifywatch -v /var/log/messages Establishing watches... Failed to watch /var/log/messages; upper limit on inotify watches reached! Please increase the amount of inotify watches allowed per user via '/proc/sys/fs/inotify/max_user_watches'.` 我用谷歌搜索了一下,发现的每个解决方案都是通过增加以下限制: sudo sysctl fs.inotify.max_user_watches=<some random high number> …
206 linux  kernel  inotify 

3
忘记在bash / POSIX shell中引用变量的安全隐患
如果您已经关注unix.stackexchange.com一段时间了,那么您现在应该希望知道,echo $var在Bourne / POSIX shell(zsh是例外)的列表上下文中(如)在列表上下文中不加引号的变量具有非常特殊的含义,并且除非您有充分的理由,否则不应该这样做。 在此处的许多问答中对此进行了详细讨论(示例:为什么我的shell脚本为什么在空格或其他特殊字符上感到窒息?,何时需要双引号?,shell变量的扩展以及glob对其的影响和split,引用vs无引号的字符串扩展) 自从70年代末Bourne shell首次发布以来就是这种情况,但Korn shell(David Korn的最大遗憾之一(问题#7))并没有改变它,或者bash主要是复制了Korn shell,这就是POSIX / Unix如何指定的。 现在,我们仍然在这里看到许多答案,甚至偶尔看到一些不引用变量的公开发布的shell代码。您可能以为人们现在已经学到了。 根据我的经验,主要有3种类型的人忽略了引用其变量: 初学者。可以原谅这是完全不直观的语法。这是我们在此站点上进行教育的职责。 健忘的人。 甚至在反复敲打之后仍然没有被说服的人,他们认为Bourne shell的作者肯定不打算让我们引用所有变量。 如果我们暴露与此类行为相关的风险,也许我们可以说服他们。 如果忘记引用变量,最糟糕的事情莫过于发生。真的那么糟糕吗? 我们在这里谈论什么样的漏洞? 在什么情况下会出现问题?

8
为什么*不*解析`ls`(以及怎么做)?
我一直看到答案引用此链接,并明确声明“请勿解析ls!”。这使我感到烦恼有两个原因: 似乎可以毫无疑问地完全接受了该链接中的信息,尽管我可以从随意阅读中至少挑出一些错误。 似乎该链接中提到的问题似乎没有激发寻求解决方案的欲望。 从第一段开始: ...当您请求[ls]文件列表时,存在一个巨大的问题:Unix允许文件名中的几乎所有字符,包括空格,换行符,逗号,管道符号以及几乎您尝试用作的任何其他内容。除NUL外的定界符。... ls用换行符分隔文件名。除非您的文件名中包含换行符,否则这没问题。而且由于我不知道有任何实现ls允许您使用NUL字符而不是换行符来终止文件名,因此我们无法使用来安全地获取文件名列表ls。 兄弟,对吗?如何以往我们可以处理一个换行符终止可能包含换行符数据集上市?好吧,如果在这个网站上回答问题的人们每天都没有做这种事情,我可能会觉得我们遇到了麻烦。 事实是,尽管大多数ls实现实际上提供了一个非常简单的api来解析其输出,我们一直都在做,甚至都没有意识到。您不仅可以以null结尾的文件名,还可以以null或可能需要的任何其他任意字符串开头的文件名。此外,您可以为每个文件类型分配这些任意字符串。请考虑: LS_COLORS='lc=\0:rc=:ec=\0\0\0:fi=:di=:' ls -l --color=always | cat -A total 4$ drwxr-xr-x 1 mikeserv mikeserv 0 Jul 10 01:05 ^@^@^@^@dir^@^@^@/$ -rw-r--r-- 1 mikeserv mikeserv 4 Jul 10 02:18 ^@file1^@^@^@$ -rw-r--r-- 1 mikeserv mikeserv 0 Jul 10 01:08 ^@file2^@^@^@$ -rw-r--r-- 1 mikeserv mikeserv 0 Jul …
204 shell  ls 

4
为什么tar存档格式切换到xz压缩以替换bzip2,而gzip呢?
越来越多的tar档案馆使用xz基于LZMA2 的格式进行压缩,而不是传统的bzip2(bz2)压缩。实际上,kernel.org在2013年12月27日发布了最新的“ 再见bzip2 ” 公告,表示从那时起内核资源将以tar.gz和tar.xz格式发布-并在网站的主页上发布直接提供的是tar.xz。 有什么具体原因可以解释为什么会发生这种情况,以及gzip在这种情况下有什么意义?
202 history  gzip  bzip2  xz 



9
如何使用ffmpeg缩小视频的大小?
我如何ffmpeg通过降低质量来减小视频的大小(自然而然地尽可能最小化,但是我需要它在没有足够可用空间的移动设备上运行)? 我忘了写一件事。当视频可以使用字幕(* .srt或* .sub)时,我也希望将其转换为适合转换后的视频文件的参数。

9
如何在另一个bash会话中查看正在运行的进程的输出?
从本地工作开始,我就已经在远程计算机上运行了一个脚本。我可以以同一用户的身份通过SSH连接到计算机,并查看中运行的脚本ps。 $ ps aux | grep ipcheck myuser 18386 0.0 0.0 18460 3476 pts/0 S+ Dec14 1:11 /bin/bash ./ipchecker.sh 它只是在本地会话上输出到stdout(我从./ipchecker.sh本地终端窗口运行,不重定向,不使用screen等)。 无论如何,SSH会话中是否可以查看此正在运行的命令的输出(而无需停止它)? 到目前为止,我发现最好的方法是使用它,strace -p 18386但是我在屏幕上飞走了成群的文本,其内容过于详尽。我可以停下来strace,然后在输出中进行筛选,然后找到将文本打印到stdout的内容,但它又长又令人困惑,很显然,在停止时我可能会错过一些东西。我想找到一种方法来实时查看脚本输出,就像在本地工作一样。 任何人都可以对此进行改进吗?显而易见的答案是通过重定向或在screen会话等中重新启动脚本,这不是关键任务脚本,因此我可以这样做。相反,我认为这是一个有趣的学习练习。

4
为什么使用shell循环处理文本被认为是不好的做法?
在POSIX Shell中,通常使用while循环处理文本是否被认为是不好的做法? 正如StéphaneChazelas指出的,不使用shell循环的一些原因是概念,可靠性,易读性,性能和安全性。 此答案解释了可靠性和易读性方面: while IFS= read -r line <&3; do printf '%s\n' "$line" done 3< "$InputFile" 为了提高性能,从文件或管道中读取时,while循环和读取速度非常慢,因为内置的读取外壳一次读取一个字符。 怎么样的概念和安全性方面?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.