标签 linux 下的文章

windows就像租个精装修的房子,不允许自己重新装修,只能做些小的装饰;可以从商店买家具,可以在家里雇保姆和保镖,但有时候他们会“监守自盗”,三位数,百毒,几大家子一拥而上,让你的房子变得拥挤;在辞退他们的时侯,他们还会死皮赖脸的耍赖。

ubuntu这些发行版好像直接买个房子,自己可以随意装修;建筑工人能随时听从你的指令,把房子装修成想要的样子。

arch好像自己买个地基(内核),找建材提供商(pacman)拿些材料(预编译好的二进制包),在建筑工人的帮助下盖自己独一无二的房子;

gentoo好像自己打个地基,在房子不会塌的情况下想怎么打就怎么打,买些黏土(源代码)自己烧砖,烧砖的配方(USE)官方给提供,用特质的砖块,在建筑工人(portage)帮助下盖更为牢固,砖块契合严密,且有自己特色的房子;

lfs?买本《如何盖房子》,自己去各个山头挖土烧砖,先堆起来个新砖窑(临时系统),然后在砖窑再烧一遍砖用来盖房子,图纸要按照书上的理论自己画,整个过程中没有建筑工人帮忙,要了血命了。

v2-e8043a65d3450a009b3d9a06ca6b06f1_hd.jpg

作者:JerryDing
链接:https://www.zhihu.com/question/267941005/answer/564103434
来源:知乎

在安装 Laravel homestead 虚拟机的时候,由于神秘的原因,直接添加 box 实在太慢,中途失败的几率又太大。所以,在国内,非常推荐大家都直接使用本地 box 的方式安装 Laravel homestead:

1.下载 homestead.box 文件

你可以使用迅雷或其他的方式下载下面的 box

https://vagrantcloud.com/laravel/boxes/homestead/versions/6.4.0/providers/parallels.box

注意: 这里的版本号 6.4.0, 如果你使用其他的版本,请相对更改;还有就是,上面的链接是 parallels 作为 provider 的。你也可以将 parallels 换成 vmware_desktop、virtualbox、hyperv 中的一个。

2.本地方式添加 box

在命令行中执行下面的命令:

vagrant box add laravel/homestead ~/Downloads/virtualbox.box

注意后面的路径 ~/Downloads/virtualbox.box ,注意修改相对应的路径!
如果你是 windows 用户,路径形式差不多是这样:file:///c:/users/username/downloads/virtualbox.box

添加成功之后,一定不要急着执行 vagrant up

3.修改版本号

mac 用户需要来到 /.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead 目录:
windows 用户对应的目录大概是 c:/users/username/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead

首先进入该目录添加一个名为 metadata_url 的文件,里面只写上:

https://vagrantcloud.com/laravel/homestead

然后把看到的 0 或 0.0 这个目录修改为你的 box 版本号,比如这里的就是第一步的 6.4.0

homestead.jpg

4.执行 vagrant up

 _                               _                 _ 
| |                             | |               | |
| |__   ___  _ __ ___   ___  ___| |_ ___  __ _  __| |
| '_ \ / _ \| '_ ` _ \ / _ \/ __| __/ _ \/ _` |/ _` |
| | | | (_) | | | | | |  __/\__ \ ||  __/ (_| | (_| |
|_| |_|\___/|_| |_| |_|\___||___/\__\___|\__,_|\__,_|


0 packages can be updated.
0 updates are security updates.


[email protected]:~$ ls

起因

最近使用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。

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

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

本文翻译自: 原文链接