起因

最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管,过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G了,导致硬盘空间不足了。

解决方案

只输出错误信息到日志文件
nohup ./program >/dev/null 2>log &
什么信息也不要
nohup ./program >/dev/null 2>&1 &

知识补充,关于Linux的重定向

Linux的3中重定向
0:表示标准输入
1:标准输出,在一般使用时,默认的是标准输出
2:标准错误信息输出
可以用来指定需要重定向的标准输入或输出。例如,将某个程序的错误信息输出到log文件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。

关于/dev/null文件
Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

视网膜屏幕直接忽略,下面说说非高分屏字体发虚的问题:

问题现象

vscode 字体变细:https://github.com/Microsoft/vscode/issues/51132
系统字体也会变细,只需要根据喜好在终端中执行以下指令即可:

关闭字体平滑:

defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO

字体粗细控制:

defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

将数字替换为0可以关闭,可以使用 0-3 之间的数字,建议使用中等粗细2,了解更多

安装
brew install bash-completion

查看
brew info bash-completion

添加配置

Add the following line to your ~/.bash_profile:
  [ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion

然后根据提示将配置文件加入 .bash_profile

查看原文

一不小心把文件和目录权限弄错了,想恢复回原有的样子,只需要执行一条命令即可恢复:

find folder '(' -type f -exec chmod 644 {} ';' ')' -o '(' -type d -exec chmod 755 {} ';' ')'

这条命令其实是两条命令合成的:

find folder -type d -exec chmod 755 {} \;
find folder -type f -exec chmod 644 {} \;

-o means OR. This command processes all objects in the project tree that are of type “file” or type “directory”, and executes different commands based on which type each object is.

You can make this slightly more efficient by replacing the semicolons (';') with plus signs (+); this tells find to run chmod 644 once, with all the plain files’ names as arguments, and to run chmod 755 once, with all the directories’ names as arguments.

查看原文

将当前用户加入 sudoer

sudo visudo -f /etc/sudoers.d/username

username 要替换为你系统用户名

并输入:

username ALL=(ALL:ALL) NOPASSWD:ALL

如果不习惯使用nano编辑器可以 更换为vim

使用 sudo 运行网易云音乐

编辑启动文件:

sudo gedit /usr/share/applications/netease-cloud-music.desktop

在第11行前加上 sudo

Exec=sudo netease-cloud-music %U

大功告成!点击图标即可启动!

系统版本:Ubuntu 18.04.1
软件版本:netease-cloud-music 1.1.0

切勿使用普通文本编辑器编辑此文件!始终使用 visudo 命令!

由于 /etc/sudoers 文件中的语法不正确会导致系统无法获得提升的权限,因此使用 visudo 命令编辑文件非常重要。

visudo 命令会打开一个文本编辑器,并在保存时验证文件的语法。这可以防止 sudo 操作的配置错误,这是获取 root 权限的唯一方法。

我已经从 Ubuntu 16.04 复制并粘贴了该文件,并删除了注释。CentOS /etc/sudoers 文件有更多行,其中一些我们将不在本指南中讨论。

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

root    ALL=(ALL:ALL) ALL

%admin  ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

我们来看看这些行的作用。

默认行

第一行 Defaults env_reset 重置终端环境以删除任何用户变量。这是一种安全措施,用于清除sudo会话中可能有害的环境变量。

第二行 Defaults mail_badpass 告诉系统将错误 sudo 密码尝试的通知邮寄给配置的 mailto 用户。默认情况下,这是 root 帐户。

第三行以 Defaults secure_path = ... 开头,指定PATH将用于操作的(文件系统中操作系统将查找应用程序的位置)sudo。这可以防止使用可能有害的用户路径。

用户权限行

第四行决定了 root 用户的 sudo 权限,与前面的行不同。我们来看看不同字段的含义:

root ALL=(ALL:ALL) ALL
第一个字段指示规则将应用于 root 的用户名。

demo ALL=(ALL:ALL) ALL
第一个 ALL 表示此规则适用于所有主机。

demo ALL=(ALL:ALL) ALL
此 ALL 表示root用户可以作为所有用户运行命令。

demo ALL=(ALL:ALL) ALL
此 ALL 表示root用户可以作为所有组运行命令。

demo ALL=(ALL:ALL) ALL
最后一个 ALL 表示这些规则适用于所有命令。

这意味着我们的root用户可以使用任何命令运行sudo,只要他们提供密码即可。

组权限行

接下来的两行与用户权限行类似,但它们指定sudo了组的规则。

以“%”开头的名称表示组名。

在这里,我们看到“admin”组可以像任何主机上的任何用户一样执行任何命令。同样,该 sudo 组可以具有相同的权限,但也可以作为任何组执行。

包含 /etc/sudoers.d 行

乍一看,最后一行看起来像是注释:

#includedir /etc/sudoers.d

它虽然以 # 开头,但是这是起作用的。该行实际上表明 /etc/sudoers.d 目录中的文件也将被应用。

/etc/sudoers 文件本身一样,您应始终使用 visudo 来编辑 /etc/sudoers.d 目录中的文件。编辑这些文件的语法是:

$ sudo visudo -f /etc/sudoers.d/file_to_edit

本文翻译自: 原文链接

Ubuntu:

sudo update-alternatives --config editor

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press <enter> to keep the current choice[*], or type selection number:

Non-interactive solution for setting vim as default editor:

sudo update-alternatives --set editor /usr/bin/vim.basic

CentOS:

On CentOS, you can change this value by adding the following line to your ~/.bashrc:

$ export EDITOR=`which name_of_editor`

Source the file to implement the changes:

$ source ~/.bashrc

sudo update-alternatives --set editor /usr/bin/vim.basic