Unix & Linux

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

7
轻量级传出SMTP服务器
您将什么用作轻型SMTP仅用于外发电子邮件? 我正在运行一个应用程序,该应用程序会在事件偶尔发生时通过SMTP发送电子邮件,并且我不需要功能齐全的电子邮件服务器。 编辑:我很乐意使用诸如postfix之类的东西(并这样做),如果那是最好的选择。我以为可能有些简单得多的东西用完了。


7
将来更改时,如何加固bash脚本以免造成损害?
因此,我删除了我的主文件夹(或更确切地说,是我拥有写权限的所有文件)。发生的是我有 build="build" ... rm -rf "${build}/"* ... <do other things with $build> 在bash脚本中,并在不再需要$build时删除了声明及其所有用法-而是rm。Bash高兴地扩展到rm -rf /*。是的 我感到很愚蠢,安装了备份,重新进行了丢失的工作。试图摆脱耻辱。 现在,我想知道:什么是编写bash脚本以使此类错误不会发生或者至少不太可能发生的技术?例如,我写过吗 FileUtils.rm_rf("#{build}/*") 在Ruby脚本中,解释器会抱怨build没有声明,因此该语言可以保护我。 我在bash中考虑过的内容,除了合计rm(相关问题中的许多答案都提到了,这并非没有问题): rm -rf "./${build}/"* 那会杀死我目前的工作(一个Git回购),但没有别的。 rm在当前目录之外执行操作时,需要进行交互的变体/参数化。(找不到任何内容。)类似的效果。 是这样吗,或者还有其他方法可以编写这种意义上的“健壮” bash脚本吗?
46 bash  shell-script  rm 

4
Linux根目录名称中是否包含斜杠(/)?
斜杠(/)确实是Linux根目录名称的一部分吗?还是仅仅是它的象征? 那又如何/etc呢? 更新资料 假设/dev/sda2是Linux根目录的块设备。 $ sudo debugfs / dev / sda2 debugfs 1.44.1(2018年3月24日) debugfs: pwd [pwd] INODE:2路径:/ [root] INODE:2路径:/ debugfs: 统计信息/ 索引节点 :2 类型:目录模式:0755标志:0x80000 世代:0版本:0x00000000:00000077 用户:0组:0项目:0大小:4096 文件ACL:0 链接:25阻止计数:8 片段:地址:0数字:0大小:0 ctime:0x5b13c9f1:3f017990-2018年6月3日15:28:57 atime:0x5b13ca0f:3b3ee380-2018年6月3日15:29:27 mtime:0x5b13c9f1:3f017990-2018年6月3日15:28:57 crtime:0x5aad1843:00000000-2018年3月17日星期六16:59:39 额外的inode字段的大小:32 延伸: (0):9249 因此,其中存在一个目录,即索引节点2,但没有名称。


3
“ ASCII文本,带有过度击打”文件格式的目的
在下载了Bash的源代码之后,我浏览了doc目录并遇到了以下文件: bash.1是用于构建手册页的常规troff文件。 bash.0就像手册页的纯文本版本一样–只是它在整个页面中自由分配了^H退格控制字符。 这些控制字符不会显示在Git Web界面提供的表示中,但是可以在文本编辑器(如Vim)中下载并检查实际文件。 在file上运行命令bash.0将输出以下输出: bash.0: ASCII text, with overstriking 我以前从未遇到过这种文件格式,我想知道其目的是什么以及如何使用它。在网上搜索短语“ ASCII文本,带有过度敲击”并不是很有意义。


3
在多个平台上找到正确的tmp目录
我有一个脚本,需要为其工作创建临时文件,然后自行清理。我的问题是关于为临时文件找到正确的基本目录。 该脚本需要在多个平台上工作:Git Bash(Windows),Solaris,Linux,OSX。在每个平台上,首选的temp目录均以不同的方式表示: Windows :(%TMP%可能还有%TEMP%) OSX: $TMPDIR Linux,UNIX:应该是,$TMPDIR但在我尝试的多个系统上似乎未设置 因此,在我的脚本中,我添加了以下样板: if test -d "$TMPDIR"; then : elif test -d "$TMP"; then TMPDIR=$TMP elif test -d /var/tmp; then TMPDIR=/var/tmp else TMPDIR=/tmp fi 这似乎太乏味了。有没有更好的办法?


6
删除系统中所有断开的符号链接是否不利?
我正在运行一个脚本,该脚本遍历我的Linux系统上的所有文件并创建有关它们的一些元数据,并且在命中断开的符号链接时引发了错误。 我是* nix的新手,但是我得到了链接文件背后的主要思想以及断开的链接是如何存在的。据我所知,它们就像街上的垃圾一样。我要删除的程序不足以告诉程序包管理器存在,属于它,或者在升级中遗留下来的东西。最初,我开始调整正在运行的脚本以跳过它们,然后我想,“好吧,我们一直可以在到这里时删除它们...” 我正在运行Ubuntu 14.04(Trusty Tahr)。我看不出有什么理由不这样做,但是在继续在开发系统上运行它之前,是否有任何理由实际上可能是一个糟糕的主意?损坏的符号链接是否可以达到我不知道的目的?
46 symlink 

5
bsdtar和GNU tar有什么区别?
我一直使用GNU tar。但是,我见过的所有GNU / Linux发行版都包含bsdtar在其存储库中。我什至看到它在某些IIRC中默认安装。我肯定知道Arch GNU / Linux将它作为basedevel(也许是base,但我不确定)的一部分,正如我在PKGBUILD中所看到的那样。 您为什么要bsdtar代替GNU 使用tar?有什么优势? 请注意,我是问BSD和GNU / Linux用户区之间的主要区别是什么?。
46 tar  gnu  bsd 

3
内核使用多少RAM?
当我发现Mac OS X内核使用750MB RAM 时,我震惊了这个问题。 我使用Linux已有20年了,我总是“知道”内核RAM的使用量与X相形见((是真的吗?曾经是真的吗?)。 因此,经过一番谷歌搜索后,我尝试slabtop告诉我: Active / Total Size (% used) : 68112.73K / 72009.73K (94.6%) 这是否意味着我的内核现在正在使用约72MB的RAM? (鉴于top报告Xorg的RSS为17M,内核现在使X相形见,,而不是相反)。 笔记本电脑的“正常”内核RAM使用量(范围)是多少? 为什么MacOS使用的内存要比Linux多一个数量级? PS。这里没有答案解决了最后一个问题,因此请查看相关问题: 如果在2007年中期的白色MacBook上,kernel_task通常高于130MB,是否会出现问题? 使用kernel_task 方式太多内存 kernel_task活动监视器中包含什么?
46 linux  kernel  ram 

2
UNIX套接字与TCP端口的性能
例如在php-fpm上: #listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sock 在TCP端口上使用基于unix套接字的侦听器之间在性能上有什么主要区别吗?(不仅对于PHP,而且一般而言。每个服务是否有所不同?)

3
git diff显示颜色错误
为了从所有git命令获得彩色输出,我设置了以下内容: git config --global color.ui true 然而,这产生了这样的一个输出git diff,git log 而类似的命令git status显示很好 为什么仅在某些命令中不能识别转义的颜色代码,我该如何解决? 我xterm-256color在OS X 10.8.2和zsh上使用iTerm 2(终端类型)作为外壳 zsh --version zsh 5.0.0 (x86_64-apple-darwin12.0.0) git --version git version 1.7.9.6 (Apple Git-31.1)
46 osx  colors  git  pager 


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.