标签 linux 下的文章

Linux系统,在服务器端的大多数常用软件都有足够多的使用者,所以就足够稳定,由于它在服务器端市场占有率远高于微软,所以服务器端就是比微软稳定,很正常的事。在桌面端,市场占用率远低于微软,不稳定也是自然的。为什么Linux下命令行程序往往又好用又稳定?是因为用户喜欢装逼吗?不是,因为命令行程序是服务器端跟桌面端通用的,而服务器端程序经过了足够多用户的使用,经过了足够的反馈开发迭代,所以稳定。而图形界面只有桌面用户用,桌面占有率那么低,这些程序往往缺乏足够的测试人力也缺乏足够的开发维护人力,所以并不会非常稳定。那么,你要想体验Linux稳定,怎么办?答案就是只使用市场占有率高,用户量大,因而获得了充分测试的软件,这就稳定了。比方说只使用服务器端。或者桌面端只使用最常用的那些,例如终端仿真器,浏览器,输入法,gcc编译器之类,肯定是稳定的。你看我就用浏览器,输入法,xterm,screen,编程ide,vim,以及一堆命令行的东西,稳定得很啊,六个月才重启一次电脑,重启的那一次还是因为ubuntu升级。

作者:pansz
链接:https://www.zhihu.com/question/301581684/answer/547761587
来源:知乎 著作权归作者所有。

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.

查看原文