一家哭,何如一路哭耶!

每当读到“先天下之忧而忧,后天下之乐而乐”这句名言的时候,就想到宋朝的范仲淹。我的记忆里,他的一段对话同样让我记忆深刻。

北宋仁宗年间,因官僚队伍庞大,行政效率低下,人民生活困苦,社会积贫积弱加上辽国和西夏威胁着北方和西北边疆等因素的影响,社会矛盾不断激化,农民起义和兵变在各地相继爆发,当时的形势正如欧阳修所说“一年多于一年,一伙强于一伙”,严重的社会问题已威胁到北宋政权统治的根基。为了国泰民安,稳定局势,革除陋习,确保北宋江山能够世代相传,以范仲淹、富弼、韩琦、欧阳修等为代表的一批有识之士,大声疾呼,慷慨陈词,提出了一系列的改革措施并进行改革,史称“庆历新政”。

在给宋仁宗《答手诏条陈十事疏》中,范仲淹提出了“明黜陟、抑侥幸、精贡举、择官长、均公田、厚农桑、修武备、减徭役、覃恩信、重命令”等10项改革主张,史称“条陈十事”。具体内容有三个方面,一是澄清吏治,包括明黜涉、抑侥幸、精贡举、择长官、均公田。二是富国强兵,具体内容包括厚农桑、减徭役、修武备。三是厉行法制,内容包括重命令、推恩信等。其中“明黜陟”,就是改革官员的升迁罢黜制度,这是针对北宋王朝庸官冗官贪官数量太多的弊端而采取的措施。

抑侥幸,主要将矛头直指造成冗官泛滥的“荫官”制度。择官长,其实是“明黜陟”的具体实施措施,选择优秀的官员,淘汰庸官贪官和懒官。在实行“庆历新政”的过程中,朝廷选派一批精明能干、正直清廉的官吏巡察全国,检视地方官吏的为政情况,并据实报告朝廷。受朝廷之命,范仲淹在巡察的过程中,根据每个人的政绩、才能和品德,对不称职者一律降黜,不徇私情;对精明能干、政绩卓著者加以迁赏。

有一天,范仲淹接到了各地按察使的报告,翻开各路官员的花名册,看到缺德少才、害民败政的转运使,便秉笔直挥,把名字勾掉了,重新安排德才兼备的有为之士。同僚富弼平时对范仲淹十分尊敬,“素以丈事公”,这时见他毫不留情地罢免不称职官吏,不免有点担心,从旁劝止说:“您一笔勾掉很容易,但是这一笔之下可要使他一家人痛哭啊!”(富弼曰:十二丈则是一笔,焉知一家哭耶!)(“十二丈”即范仲淹),范仲淹回答说:“一家哭,何如一路哭耶!”(路为宋代大行政区名;一路哭,指一个地区的人民受害)。

我们为什么出现道德滑坡

今天突然想到一个问题:我们为什么出现道德滑坡?于是百度了一下“人道德为什么会滑坡”。网络上很多人都提出了自己的见解,先来看几条:

有一个部落,因为人为的原因,划分到了两个部落。他们彼此争斗多年,仍无法弥合。如果他们觉得彼此已经争斗太久了,或许就能握手言和。这个时候,解决问题的方式,道德比起一切的方式来的更加有效。”卢梭谈到道德的作用时说了这番话。

星云大师说:“不因为你有钱就能有道德,不因为你有才能就是道德,即使贫穷、失业、一时的失败,只要不失去做人的原则,对社会、他人能有贡献,还是被认为是有道德的。有规则的是道德,好比汽车有车道、火车有轨道、飞机有航道,一旦偏离则后果不堪设想。不道德的行为,小则影响自己处世的态度,大则侵犯别人的权益,但是人往往不容易察觉。说理而不认错、无耻而不反省、愚昧而不自知。常人最大的毛病莫过于不肯认错,只管说理,譬如吩咐的事情没有做好,推说是时间不够;打破东西,不愿承认自己的冒失,却责怪东西没放好。心里头总是别人不好、东西不好,自己才是对的。道德就是一个人要有惭愧心、羞耻心,经常反省自己是不是做错了,才能形成良好的道德习惯。”星云大师认为道德不分贫贱身份,重要的是能有贡献,道德是社会赖以存在的基础,一旦偏离就会造成严重后果。他从社会发展到个人处世,谈到了道德的广泛存在性,让我们了解到道德随处可见。随后,他举了生活中丰富的例子来说明道德缺失的现象,告诉我们:道德就是有羞耻心,懂得反思自己。这番话有实例,又层层递进,把道德的含义揭示了出来。

王蒙说:“社会上发生了不少人们普遍关注的事情,‘复旦投毒案’,‘清华大学朱令铊中毒案’等等,还有明星吸毒的事情接连发生,引爆了大家关注的焦点。归根到底,一个社会的道德水平,折射的是执政者的道德水平。当官员们贪污腐败成风,草菅人命,司法公正屡屡被突破,社会风气又怎么会好呢?正所谓,其身不正,何以正人?国人的冷血,其实是政府腐败的必然结果!对待知识分子的态度标志着一个民族的文明程度,而对待工人农民的态度则考验这个民族的良心。前段时间,国家大力反腐,抓了一批贪污腐败分子。这是好事,痛快人心的事情。如果不抓好上层的道德问题,只抓社会的道德滑坡,就缘木求鱼,不得其所了。”作为文化界泰斗,王蒙掷地有声地指引人们,不要只关注社会道德滑坡问题,更要把目光放到道德滑坡的根本上——执政者的道德水平。因为官员们都不能以道德正己,又怎么能要求整个社会形成良好的道德氛围呢?王蒙另辟蹊径,为人们深刻认识道德滑坡的问题,提供了新颖的角度。这番话,敢为人先,体现的是王蒙为民代言和一腔热血。

莫言说:“每个人都是一个媒体终端,发出我们对社会的看法。但是很多时候,我们只是在批评别人,还很少触及自我。有一次,我与太太散步遇到一位摔倒的老人,无人搭理,太太看到后要上前去扶,我一把拉住她,太太说这位老人是认识的人,是一位战士的家属。但是我还是要求等到一辆军车经过,用军车将老人送去医院。后来这位战士提着水果登门感谢。我感到很惭愧,我觉得我应该像太太学习。但是这种人还是少数,即便是遇到,还是要扶,因为到处都有摄像头,可以还自己清白,即便没有摄像头,也没有关系,还有社会公义,还有善念。善念从来不是脱离危险存在的,在巨大的危险面前,善念才会感天动地,千百万普通人的善念会形成一个巨大的道德力量,看起来是无形的,但实际上是可以触摸的,所谓的天理良心,就是千百万人的善念构成的。”谈到道德的形成过程,莫言拿自己亲身经历的一件事情说起,因为害怕惹麻烦,就没有扶那位摔倒的老人。莫言由现象到本质,指出道德的力量是由无数人的善念共同组成的,是在面临潜在危险的情况下,仍然坚守善念。莫言用这番质朴的话,告诫我们,即使面临一定的风险,也应该坚守内心深处的善念,这样才能形成巨大的道德力量,形式社会的正义。

于丹说:“如果‘狼’是企业,‘羊’是消费者、百姓,那么制度便是保护羊群的‘羊圈’,狼突破羊圈进入羊群,伤害了羊群,是责怪狼还是责怪羊圈不牢?牧羊者和维修羊圈的人去哪了?我们都生活在两条线的系统之内,最低一条是以社会的法律为核心的制度体系,最高一条是以个人和家庭伦理为核心的道德体系。有学生曾经问过孔子,以德报怨,何如?有人对不起我,伤了我,我用美德去回报他,我做的挺好吧?孔子反问他一句话,以德报怨,何以报德?那别人都把你伤成这样,你还老是用美德去回报,如果没有一个原则和底线的话,等到有美好的时候,你还剩下什么回报?后来孔子说了八个字‘以直报怨,以德报德’,一个人用正直去解决这种伤害就可以了。什么是直?你看我们过去,木匠用墨线一弹是直的,我们总说绳之以法,直的东西,其实就是一种制度,规章。”于丹拿亡羊补牢的典故,比喻道德滑坡现象,把问题的实质点了出来:归根到底在于制度体系的不健全。于丹把道德和法律比作两条线,用孔子的话来做例证,告诉我们,只有最低一条的制度体系得到完善,得到重视,最高一条的道德体系才能发挥出作用来。于丹这番话形象生动,偏僻入里,巧妙分析了解决道德滑坡的方法,那就是用制度来保障。

道德来自于哪里?教化?这是传统的说法。真正的道德,来自公民自由而负责任的生活。当一个人对自己的命运感到乏力时,自我负责的意识就会下降,道德束缚就会瓦解。同样,当一个人对他人的自由缺乏尊重时,事实上也是在将对方往道德败坏的路上推。

我们目前最迫切的不是如何保持经济的增长率,而是如何构建社会的诚信体系,只要使人与人之间建立起基本的“信任”关系,信任是一个社会结构的基石,它是社会运作的效率提高的根本保证。未来一个人最大的破产是“信用破产”,信用一旦破产将会一败涂地,而只要你还有信用在,一定可以贵人相助、四方支援。马云说过一句话:中国下一个红利是“信任”。一旦中国建立一个强大的信任体系,这就意味着社会有了一个公共、公平、合理的游戏规则,人人都在遵守这个规则的前提下去创新和竞争。一旦人人遵守规则、互相信任,那么道德自然就会兴起!这才是中国复兴应该走的道路。

我也借用《论语》中开篇第一句话来表达一下自己的看法:学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?

以东方的哲学来善用西方的科技

软全球资深副总裁,微软亚太研发集团主席,微软亚洲研究院院长洪小文认为“技术都是死的,我们才是制造者与使用者。所谓的 AI 道德,最后反映的是我们的道德,是我们的价值观。”人工智能再往前发展,不管进展怎样、能够做到什么程度,它背后的原理永远是“AI+HI”(人工智能加人类智慧)。

微软1998年提出了人工智能的相关原则(“Responsible AI”),要求以负责任的方式设计人工智能。其中,最基本的原则就是合法与主权。对数据及人工智能治理而言,今天很多规则性的内容都会变成将来的法律规范。微软作为一家跨国公司,在任何国家或地区经营都要保证合法性、尊重其主权。第二是负责,任何技术和产品都有其设计制造者,要对技术和产品的部署和运营承担责任,包括法律以及社会等各方面的责任。第三是透明,设计制造者要能够解释程序如何设计,尤其是数据的收集,更需要透明化。比如当摄像头被安置在公共场所搜集数据的时候,需要提前告知数据被收集对象,进入数据收集区域其头像信息可能会被采集。第四是包容,做任何东西都需要考虑到所有的人,也要求我们创造的技术能够服务每个人,包括少数族群,残障人士,所以开发这些人工智能技术的时候需要考虑如何保证它的包容性。第五是隐私与保障,有些人利用互联网或者 AI 在网络上做一些不道德的事,比如说“黑客”、“钓鱼”,对于系统或平台而言,很重要的时要保障用户不受网络骚扰、身份信息不被窃取,以及避免产生一些实质性的灾难;第六是可靠和安全,任何 AI 系统都不可能万无一失。例如一个 GPS 系统,即使只要有万分之一的机会把司机引到悬崖,那也是不安全的。所以怎样做到安全可靠在 AI 领域中非常重要。机器学习都会存在一定误差。问题在于,存在误差的时候如何预防风险,如何提供更进一层的安全保障。第七是公平,坦言之很难做到,因为没有绝对的公平。在现实条件下存在很多偏差或偏见,这些偏见或偏差可能来自数据,可能来自我们的固有认知,可能属于一种社会偏见,毫无疑问,每个人都存在偏见,问题在于怎样不把偏见带到我们所制造的东西里、怎么样避免这些偏见。

最后,技术都是死的,我们才是制造者与使用者。所谓的 AI 道德,最后反映的是我们的道德,是我们的价值观。对于科技工作者而言,需要把正确的价值观与道德纳入技术语言中进行表达,但即使这样还不够,还需要跨领域的合作,需要法学家、社会学家、人类学家等都参与进来,才有可能把这个做得尽量完善。

以曾仕强说过的一句话来总结概括:以东方的哲学,来善用西方的科技。

linux核心索引

线上查询及帮助命令 (2 个)
man 查看命令帮助,命令的词典,更复杂的还有 info,但不常用。
help 查看 Linux 内置命令的帮助,比如 cd 命令。

文件和目录操作命令 (18 个)
ls 全拼 list,功能是列出目录的内容及其内容属性信息。
cd 全拼 change directory,功能是从当前工作目录切换到指定的工作目录。
cp 全拼 copy,其功能为复制文件或目录。
find 查找的意思,用于查找目录及目录下的文件。
mkdir 全拼 make directories,其功能是创建目录。
mv 全拼 move,其功能是移动或重命名文件。
pwd 全拼 print working directory,其功能是显示当前工作目录的绝对路径。
rename 用于重命名文件。
rm 全拼 remove,其功能是删除一个或多个文件或目录。
rmdir 全拼 remove empty directories,功能是删除空目录。
touch 创建新的空文件,改变已有文件的时间戳属性。
tree 功能是以树形结构显示目录下的内容。
basename 显示文件名或目录名。
dirname 显示文件或目录路径。
chattr 改变文件的扩展属性。
lsattr 查看文件扩展属性。
file 显示文件的类型。
md5sum 计算和校验文件的 MD5 值。

查看文件及内容处理命令(21 个)
cat 全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。
tac tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。
more 分页显示文件内容。
less 分页显示文件内容,more 命令的相反用法。
head 显示文件内容的头部。
tail 显示文件内容的尾部。
cut 将文件的每一行按指定分隔符分割并输出。
split 分割文件为不同的小片段。
paste 按行合并文件内容。
sort 对文件的文本内容排序。
uniq 去除重复行。
wc 统计文件的行数、单词数或字节数。
iconv 转换文件的编码格式。
dos2unix 将 DOS 格式文件转换成 UNIX 格式。
diff 全拼 difference,比较文件的差异,常用于文本文件。
vimdiff 命令行可视化文件比较工具,常用于文本文件。
rev 反向输出文件内容。
grep/egrep 过滤字符串,三剑客老三。
join 按两个文件的相同字段合并。
tr 替换或删除字符。
vi/vim 命令行文本编辑器。

文件压缩及解压缩命令(4 个)
tar 打包压缩。
unzip 解压文件。
gzip gzip 压缩工具。
zip 压缩工具。

信息显示命令(11 个)
uname 显示操作系统相关信息的命令。
hostname 显示或者设置当前系统的主机名。
dmesg 显示开机信息,用于诊断系统故障。
uptime 显示系统运行时间及负载。
stat 显示文件或文件系统的状态。
du 计算磁盘空间使用情况。
df 报告文件系统磁盘空间的使用情况。
top 实时显示系统资源使用情况。
free 查看系统内存。
date 显示与设置系统时间。
cal 查看日历等时间信息。

搜索文件命令(4 个)
which 查找二进制命令,按环境变量 PATH 路径查找。
find 从磁盘遍历查找文件或目录。
whereis 查找二进制命令,按环境变量 PATH 路径查找。
locate 从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库。

用户管理命令(10 个)
useradd 添加用户。
usermod 修改系统已经存在的用户属性。
userdel 删除用户。
groupadd 添加用户组。
passwd 修改用户密码。
chage 修改用户密码有效期限。
id 查看用户的 uid,gid 及归属的用户组。
su 切换用户身份。
visudo 编辑 / etc/sudoers 文件的专属命令。
sudo 以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。

基础网络操作命令(11 个)
telnet 使用 TELNET 协议远程登录。
ssh 使用 SSH 加密协议远程登录。
scp 全拼 secure copy,用于不同主机之间复制文件。
wget 命令行下载文件。
ping 测试主机之间网络的连通性。
route 显示和设置 linux 系统的路由表。
ifconfig 查看、配置、启用或禁用网络接口的命令。
ifup 启动网卡。
ifdown 关闭网卡。
netstat 查看网络状态。
ss 查看网络状态。

深入网络操作命令(9 个)
nmap 网络扫描命令。
lsof 全名 list open files,也就是列举系统中已经被打开的文件。
mail 发送和接收邮件。
mutt 邮件管理命令。
nslookup 交互式查询互联网 DNS 服务器的命令。
dig 查找 DNS 解析过程。
host 查询 DNS 的命令。
traceroute 追踪数据传输路由状况。
tcpdump 命令行的抓包工具。

有关磁盘与文件系统的命令(16 个)
mount 挂载文件系统。
umount 卸载文件系统。
fsck 检查并修复 Linux 文件系统。
dd 转换或复制文件。
dumpe2fs 导出 ext2/ext3/ext4 文件系统信息。
dump ext2/3/4 文件系统备份工具。
fdisk 磁盘分区命令,适用于 2TB 以下磁盘分区。
parted 磁盘分区命令,没有磁盘大小限制,常用于 2TB 以下磁盘分区。
mkfs 格式化创建 Linux 文件系统。
partprobe 更新内核的硬盘分区表信息。
e2fsck 检查 ext2/ext3/ext4 类型文件系统。
mkswap 创建 Linux 交换分区。
swapon 启用交换分区。
swapoff 关闭交换分区。
sync 将内存缓冲区内的数据写入磁盘。
resize2fs 调整 ext2/ext3/ext4 文件系统大小。

系统权限及用户授权相关命令(4 个)
chmod 改变文件或目录权限。
chown 改变文件或目录的属主和属组。
chgrp 更改文件用户组。
umask 显示或设置权限掩码。

查看系统用户登陆信息的命令(7 个)
whoami 显示当前有效的用户名称,相当于执行 id -un 命令。
who 显示目前登录系统的用户信息。
w 显示已经登陆系统的用户列表,并显示用户正在执行的指令。
last 显示登入系统的用户。
lastlog 显示系统中所有用户最近一次登录信息。
users 显示当前登录系统的所有用户的用户列表。
finger 查找并显示用户信息。

内置命令及其它(19 个)
echo 打印变量,或直接输出指定的字符串
printf 将结果格式化输出到标准输出。
rpm 管理 rpm 包的命令。
yum 自动化简单化地管理 rpm 包的命令。
watch 周期性的执行给定的命令,并将命令的输出以全屏方式显示。
alias 设置系统别名。
unalias 取消系统别名。
date 查看或设置系统时间。
clear 清除屏幕,简称清屏。
history 查看命令执行的历史纪录。
eject 弹出光驱。
time 计算命令执行时间。
nc 功能强大的网络工具。
xargs 将标准输入转换成命令行参数。
exec 调用并执行指令的命令。
export 设置或者显示环境变量。
unset 删除变量或函数。
type 用于判断另外一个命令是否是内置命令。
bc 命令行科学计算器

系统管理与性能监视命令 (9 个)
chkconfig 管理 Linux 系统开机启动项。
vmstat 虚拟内存统计。
mpstat 显示各个可用 CPU 的状态统计。
iostat 统计系统 IO。
sar 全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU 中断和网络等性能数据。
ipcs 用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。
ipcrm 用来删除一个或更多的消息队列、信号量集或者共享内存标识。
strace 用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
ltrace 命令会跟踪进程的库函数调用, 它会显现出哪个库函数被调用。

关机 / 重启 / 注销和查看系统信息的命令(6 个)
shutdown 关机。
halt 关机。
poweroff 关闭电源。
logout 退出当前登录的 Shell。
exit 退出当前登录的 Shell。
Ctrl+d 退出当前登录的 Shell 的快捷键。

进程管理相关命令(15 个)
bg 将一个在后台暂停的命令,变成继续执行 (在后台执行)。
fg 将后台中的命令调至前台继续运行。
jobs 查看当前有多少在后台运行的命令。
kill 终止进程。
killall 通过进程名终止进程。
pkill 通过进程名终止进程。
crontab 定时任务命令。
ps 显示进程的快照。
pstree 树形显示进程。
nice/renice 调整程序运行的优先级。
nohup 忽略挂起信号运行指定的命令。
pgrep 查找匹配条件的进程。
runlevel 查看系统当前运行级别。
init 切换运行级别。
service 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

论语-泰伯

子曰:“恭而无礼则劳,慎而无礼则葸,勇而无礼则乱,直而无礼则绞(绞,缢也。——《说文》。段注:“两绳相交而紧谓之绞。”,总的来说,“绞”使人感到不舒服)。君子笃(dǔ,厚待;忠实,不虚伪)于亲(亲近的人),则民兴于仁;故旧不遗,则民不偷(刻薄、不厚道)

恭敬但不合礼,就会空劳烦人;谨慎但不合礼,就会胆小怯懦;勇敢但不合礼,就会为非作乱;率直但不合礼,就会尖刻伤人。君子厚待亲近的人,民众就会向仁;君子不遗故旧,民风就会淳厚。

曾子有疾,孟敬子问之。曾子言曰:“鸟之将死,其鸣也哀;人之将死,其言也善。君子所贵乎道者三:动容貌,斯远暴慢矣;正颜色,斯近信矣;出辞气,斯远鄙倍矣。笾豆之事(祭祀之事。笾豆,礼器,竹制为笾,木制为豆。笾,念“biān”),则有司存。”

曾子病急,孟敬子去探问。曾子说:“鸟之将死,其鸣也哀;人之将死,其言也善。君子要重视三件事:仪容合礼,就可避免暴慢不敬;态度庄重,就会得到诚信相待;言谈得体,就可避免粗野无理。至于祭祀等仪礼之事,由主管官吏负责。”

曾子曰:“以能问于不能,以多问于寡;有若无,实若虚,犯而不校,昔者吾友尝从事于斯矣。”

曾子说:“有才能却向没有才能的请教,见识多却向见识少的请教。有而自觉如无,实而自觉如虚,(态度诚恳谦虚),受到诘难侵犯也不回击,过去我的朋友就是这样做的。

曾子曰:“可以托六尺之孤(失去父母的小孩),可以寄百里之命,临大节而不可夺也,君子人与?君子人也。”

可托付孤子,可托付国家大政,在面临国家安危的重大关节,其志坚定不可夺,这是不是君子呀?这就是君子。

曾子曰:“士不可以不弘毅,任重而道远。仁以为已任,不亦重乎?死而后已,不亦远乎?”

曾子说:“士,必须胸襟宽广,意志坚强,因为责任重大,路途遥远。以宣传仁道、贯彻仁道为已任,难道责任不重吗?为宣传仁道、贯彻仁道而奉献终身,难道不是路途遥远吗?”

子曰:“民可使(使唤;役使;支使)(任用)之;不可使,(掌管、主持;管理)之。”

民众可以差遣,就任用他们;不可以差遣,就管理他们。

子曰:“好勇(恨)贫,乱也。人而不仁,疾之(太,过)甚,乱也。”

好勇怨贫之人,是乱源。对于不仁的人,厌恶太甚(使之无所容),也会形成乱源。

子曰:“如有周公之才之美,使骄且吝,其余不足观也已。”

即使有周公那样美的才能,如果他既骄横自大又吝啬小气,其他方面也就不值得看了。

子曰:“三年学,不至于谷,不易得也。”

求学三年,还没有为官受禄的念头,这是很难得的。

子曰:“笃信好学,守死善道。危邦不入,乱邦不居。天下有道则见,无道则隐。邦有道,贫且贱焉,耻也。邦无道,富且贵焉,耻也。”

坚定信念,勤奋好学,以生命坚持理想的实现(或坚持仁道的实现)。不进入具有祸乱危险的国家,不在祸乱国家中居住。天下有道,就出来做事,天下无道,就归隐山林。国家清明有道,自己却仍然贫贱,这是可耻的;国家昏乱无道,自己却既富且贵,这也是可耻的。

子曰:“不在其位,不谋其政。”

子曰:“狂而不直,侗(tóng,幼稚,无知)而不愿(忠厚、謹慎),悾悾(kōng,老实无能的样子)而不信,吾不知之矣。”

志向大,进取心强,却不正直,愚钝无知却不谨慎厚道,老实无能却又不讲信用,这种人我不知道该怎么办了。

子曰:“学如不及,犹恐失之。”

学习要像(追赶什么似的),生怕赶不上,(赶上了的),又生怕失去。

子曰:“巍巍乎!舜禹之有天下也,而不与焉。”

伟大啊!舜和禹!拥有天下,却不以为私有。

子曰:“禹,吾无间然矣。菲饮食,而致孝乎鬼神;恶衣服,而致美乎黻冕(fú miǎn,古时祭服);卑宫室,而尽力乎沟洫(田间水道,借指农田水利)。禹,吾无间然矣!”

禹,我挑不出他的毛病。他自己饮食粗疏,祭祀鬼神却很丰盛;自己衣着简朴,朝衣祭服却很华美;自己家居简陋,却尽全力于农田水利。禹,我挑不出他的毛病。

德依于力、依于智才有光芒。

虚拟机和主机文件共享的方法

我的台式机系统装的统信UOS系统家庭版,在安装了vmware虚拟机后,接着在虚拟机里装了DEBIAN系统。问题来了,如何实现主机UOS和虚拟机DEBIAN之间的文件共享呢?在网上一阵搜索后,终于找到了答案。实现虚拟机与主机文件共享的最好最简单的方法就是用虚拟机自带的共享功能实现共享,三步即可实现,方法如下:

1.先在主机设置好要共享的文件夹。

2.在vmware里依次VM->settings->Options->Shared Folders 添加刚才在主机里设置的共享文件夹。

3.然后到虚拟机系统里的 /mnt/hgfs下可以找到要共享的文件了。

《礼运》中的大同和小康

大道之行也,天下为公,选贤与能,讲信修睦。故人不独亲其亲,不独子其子,使老有所终,壮有所用,幼有所长,矜(同“鳏”)寡孤独废疾者皆有所养,男有分,女有归。货恶其弃于地也,不必藏于己;力恶其不出于身也,不必为己。是故谋闭而不兴,盗窃乱贼而不作,故外户而不闭。是谓大同。

今大道既隐,天下为家,各亲其亲,各子其子,货力为己,大人世及以为礼,城郭沟池以为固,礼义以为纪。以正君臣,以笃父子,以睦兄弟,以和夫妇,以设制度,以立田里,以贤勇知,以功为己。故谋用是作,而兵由此起。禹、汤、文、武、成王、周公,由此其选也。此六君子者,未有不谨于礼者也。以著其义,以考其信,著有过,刑仁讲让,示民有常。如有不由此者,在埶(shì:古通“势”)者去,众以为殃。是谓小康。

linux中新建firefox桌面图标

先在桌面上新建firefox.desktop文件,然后用文本打开:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true

linux命令行下载管理器wget

wget是Linux/Unix命令行文件下载器,它是下载网站上文件的免费的非交互下载工具,它支持HTTP、HTTPS和FTP协议,也支持通过HTTP代理检索。Wget是非交互的,这就是说它可以在用户没有登录到系统时在后台工作。

实例1 :下载单个文件。以下命令会下载CentOS 7 ISO文件到用户当前工作目录中。

# wget http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

实例2:续传分段下载文件。总有那么一些场景,当我们开始下载一个大文件时,中途互联网却断开了。那样的话,我们可以使用wget命令的‘-c’选项,让下载从断点续传。

    # wget -c http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

实例3:后台下载文件。我们可以通过在wget命令中使用‘-b’选项来让它在后台下载文件。

    linuxtechi@localhost:~$ wget -b http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/
    CentOS-7.0-1406-x86_64-DVD.iso
    Continuing in background, pid 4505.
    Output will be written to ‘wget-log’.

正如我们上面所见,下载进程被捕获到用户当前目录中的‘wget-log’文件中。

    linuxtechi@localhost:~$ tail -f wget-log
    2300K .......... .......... .......... .......... .......... 0% 48.1K 18h5m
    2350K .......... .......... .......... .......... .......... 0% 53.7K 18h9m
    2400K .......... .......... .......... .......... .......... 0% 52.1K 18h13m
    2450K .......... .......... .......... .......... .......... 0% 58.3K 18h14m
    2500K .......... .......... .......... .......... .......... 0% 63.6K 18h14m
    2550K .......... .......... .......... .......... .......... 0% 63.4K 18h13m
    2600K .......... .......... .......... .......... .......... 0% 72.8K 18h10m
    2650K .......... .......... .......... .......... .......... 0% 59.8K 18h11m
    2700K .......... .......... .......... .......... .......... 0% 52.8K 18h14m
    2750K .......... .......... .......... .......... .......... 0% 58.4K 18h15m
    2800K .......... .......... .......... .......... .......... 0% 58.2K 18h16m
    2850K .......... .......... .......... .......... .......... 0% 52.2K 18h20m

实例4:限制下载速率。默认情况下,wget命令尝试以全速下载,但是有时候你可能使用的是共享互联网,那么如果你尝试使用wget来下载庞大的文件时,就会把其它用户的网络拖慢。这时,你如果使用‘-limit-rate’选项来限制下载速率,就可以避免这种情况的发生。在下面例中,下载速率被限制到了100k。

    #wget --limit-rate=100k http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

实例5:使用‘-i’选项来下载多个文件。如果你想要使用wget命令来下载多个文件,那么首先要创建一个文本文件,并将所有的URL添加到该文件中。

    # cat download-list.txt
    url1
    url2
    url3
    url4

现在,发出以下命令吧:

    # wget -i download-list.txt

实例6:增加重试次数。

我们可以使用‘-tries’选项来增加重试次数。默认情况下,wget命令会重试20次,直到下载成功。该选项在你下载一个大文件的过程中互联网连接发生问题时十分有用,因为在那种情况下,会增加下载失败的几率。

    # wget --tries=75 http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

实例7:使用-o选项来重定向wget日志到文件。我们可以使用‘-o’选项来重定向wget命令的日志到一个日志文件。下面的命令会在用户当前目录下创建download.log文件。

    #wget -o download.log http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

实例8:下载整个网站用于本地查看。

    # wget --mirror -p --convert-links -P ./<Local-Folder> website-url
–mirror : 开启适用于镜像的选项。
-p : 下载所有能正确显示指定HTML网页的全部必要文件。
–convert-links : 下载完成后,转换文档中的链接以用于本地查看。
-P ./Local-Folder : 保存所有文件和目录到指定的目录。

实例9:下载过程中拒绝文件类型。当你正打算下载整个网站时,我们可以使用‘-reject’选项来强制wget不下载图片。

    # wget --reject=png Website-To-Be-Downloaded

实例10:使用wget -Q设置下载配额。我们可以使用‘-Q’选项强制wget命令在下载大小超过特定大小时退出下载。

    # wget -Q10m -i download-list.txt

注意,配额不会对单个文件的下载产生影响。所以,如果你指定wget -Q10m ftp://wuarchive.wustl.edu/ls-lR.gz,ls-lR.gz 的全部内容都会被下载。这在下载命令行指定的多个URL时也一样。然而,在递归或从一个输入文件检索时,还是值得一用。因此,你可以安全地输入‘wget -Q10m -i download-list.txt’,在超过配额时,下载会退出。

实例11:从密码保护的网站下载文件。

    # wget --ftp-user=<user-name> --ftp-password=<password> Download-URL

另外一种指定用户名和密码的方式是在URL中。任一方法都将你的密码揭露给了那些运行“ps”命令的人。要防止密码被查看到,将它们存储到.wgetrc或.netrc中,并使用“chmod”设置合适的权限来保护这些文件不让其他用户查看到。如果密码真的很重要,不要在它们还在文件里躺着的时候走开,在Wget开始下载后,编辑该文件,或者删除它们。

linux命令行下载管理器Axel

Axel 是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载。Axel 支持 HTTP、HTTPS、FTP 和 FTPS 协议。它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为)。它非常轻量级,因为它没有依赖并且使用非常少的 CPU 和内存。Axel 一步到位地将所有数据直接下载到目标文件(LCTT 译注:而不是像其它的下载软件那样下载成多个文件块,然后拼接)。注意:不支持在单条命令中下载两个文件。

大多数发行版(Debian、Ubuntu、Mint、Fedora、suse、openSUSE、Arch Linux、Manjaro、Mageia 等)都有 axel 包,所以我们可以从发行版官方仓库轻松安装。对于 CentOS/RHEL,我们需要启用 EPEL Repository。

    [在 Debian/Ubuntu/LinuxMint 上安装 Axel]
    $ sudo apt-get install axel
    [在 RHEL/CentOS 上安装 Axel]
    $ sudo yum install axel
    [在 Fedora 上安装 Axel]
    $ sudo dnf install axel
    [在 openSUSE 上安装 Axel]
    $ sudo zypper install axel
    [在 Mageia 上安装 Axel]
    $ sudo urpmi axel
    [在基于 Arch Linux 的发行版安装 Axel]
    $ sudo pacman -S axel

1) 下载单个文件。以下命令将从给定的 URL 下载文件并存储在当前目录中,下载文件时,我们可以看到文件的信息(建立的连接数、下载速度、下载进度、完成下载所花费的时间以及连接完成的时间)。

    # axel https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file owncloud-9.0.0.tar.bz2
    Starting download
    [  0%]  .......... .......... .......... .......... ..........  [ 146.7KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 267.0KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 373.9KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 406.9KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 487.5KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 572.6KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 650.7KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 649.3KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 718.1KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 769.3KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 838.7KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 866.0KB/s]
    Connection 0 finished
    .
    .
    [ 99%]  .......... .......... .......... .......... ..........  [5721.0KB/s]
    Connection 2 finished
    [ 99%]  .......... .......... .......... .......... ..........  [5733.4KB/s]
    Connection 1 finished
    [ 99%]  .......... .......... .......... .......... ..........  [5745.4KB/s]
    [100%]  .......... .......... .......... .......... ......
    Downloaded 21.6 megabytes in 3 seconds. (5755.94 KB/s)

2) 用不同的名称保存文件。要使用其他名称来保存文件,启动下载时可以添加 -o(小写字母)选项和文件名。这里我们使用文件名 owncloud.tar.bz2 来保存文件。

    # axel -o cloud.tar.bz2 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file cloud.tar.bz2
    Starting download
    [  0%]  .......... .......... .......... .......... ..........  [ 143.0KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 264.1KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 309.8KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 406.3KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 495.4KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 586.3KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 673.1KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 647.1KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 721.1KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 781.3KB/s]
    Connection 2 finished
    .
    .
    Connection 0 finished
    [ 98%]  .......... .......... .......... .......... ..........  [6221.9KB/s]
    [ 98%]  .......... .......... .....
    Connection 1 finished
            ,,,,,,,,,, ,,,,,,,,,, ,,,,,..... .......... ..........  [6145.6KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [6159.2KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [6172.0KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [5977.9KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [5989.6KB/s]
    [100%]  .......... .......... .......... .......... ......
    Downloaded 21.6 megabytes in 3 seconds. (6001.05 KB/s)

3) 限制下载速度。默认情况下 axel 以字节/秒为单位设置下载文件的最大速度。当我们的网络连接速度较慢时,可以使用此选项。只需添加 -s 选项,后面跟字节值。这里我们要限速 512 KB/s 下载一个文件。

    # axel -s 512000 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file owncloud-9.0.0.tar.bz2
    Starting download
    [  0%]  .......... .......... .......... .......... ..........  [ 141.5KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 266.1KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 308.0KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 405.9KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 496.7KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 526.4KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 507.0KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 505.6KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 504.8KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 503.9KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 503.4KB/s]
    .
    .
    [ 99%]  .......... .......... .......... .......... ..........  [ 497.0KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [ 496.9KB/s]
    [100%]  .......... ..
    Connection 0 finished
            ,,,,,,,,,, ,,.....
    Connection 1 finished
    Connection 3 finished
            ,,,,,,,,,, ,,,,,,,... .......... .......... ......
    Downloaded 21.6 megabytes in 44 seconds. (494.54 KB/s)

4) 限制连接数。axel 默认建立 4 个连接以从不同的镜像获取文件。此外,我们可以通过使用 -n 选项添加更多的连接,后跟连接数 10 来提高下载速度。保险起见,我们添加了十个连接,但不幸的是,它花了更多时间来下载文件。

    # axel -n 10 https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file owncloud-9.0.0.tar.bz2
    Starting download
    [  0%]  .......... .......... .......... .......... ..........  [ 140.8KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 265.7KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 305.4KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 402.1KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 496.3KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 522.1KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 567.5KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 640.5KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 710.8KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 780.5KB/s]
    .
    .
    [ 98%]  .......... .......... .......... .......... ..........  [7544.9KB/s]
    [ 98%]  .......... .......... .......... .......... ..........  [7557.9KB/s]
    [ 98%]  .......... .......... .......... .......... ..........  [7570.4KB/s]
    [ 98%]  .......... .......... .......... .......... ..........  [7495.3KB/s]
    [ 99%]  .......... .......... .......... .......... ......
    Connection 2 finished
            ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,....  [7311.6KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [7318.9KB/s]
    [ 99%]  .......... .......... .......... .......... ..........
    Connection 9 finished
            ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,  [7331.0KB/s]
    [ 99%]  .......... .......... .......... ..........
    Connection 3 finished
            ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ..........  [4300.7KB/s]
    [100%]  .......... .......... .......... .......... ......
    Downloaded 21.6 megabytes in 5 seconds. (4109.41 KB/s)

5) 恢复未完成的下载。axel 默认具有恢复未完成的下载的行为。Axel 在下载文件时定期更新状态文件(扩展名为 .st)。由于某些原因,下载中途停止了?不用担心,只要使用相同的 axel 命令,它将会检查 file 和 file.st,如果找到,它会从停止处恢复下载。

    # axel https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file owncloud-9.0.0.tar.bz2
    Starting download
    [  0%]  .......... .......... .......... .......... ..........  [ 140.8KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 265.7KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 305.4KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 402.1KB/s]
    [  0%]  .......... .......... .......... .......... ..........  [ 496.3KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 522.1KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 567.5KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 640.5KB/s]
    [  1%]  .......... .......... .......... .......... ..........  [ 710.8KB/s]
    [  2%]  .......... .......... .......... .......... ..........  [ 780.5KB/s]
    .
    .
    [ 84%]  .......... .......... .......... .......... ..........  [7100.7KB/s]
    [ 84%]  .......... .......... .......... .......... ..........  [7104.3KB/s]
    [ 84%]  .......... .......... .......... .^C
    Downloaded 18.3 megabytes in 2 seconds. (7009.79 KB/s)

上面的输出清晰地显示了在下载断开时有两个文件 owncloud-9.0.0.tar.bz2 和 owncloud-9.0.0.tar.bz2.st。当重新开始下载时,它会从停止处开始下载。

    # ls -lh
    total 19M
    -rw------- 1 root root 22M Dec 27 08:33 owncloud-9.0.0.tar.bz2
    -rw------- 1 root root  44 Dec 27 08:33 owncloud-9.0.0.tar.bz2.st
    # axel https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file owncloud-9.0.0.tar.bz2
    State file found: 19180828 bytes downloaded, 3497380 to go.
    Starting download
            ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,......... ..........  [  66.5KB/s]
    [ 84%]  .......... .......... .......... .......... ..........  [ 186.0KB/s]
    [ 85%]  .......... .......... .......... .......... ..........  [ 241.7KB/s]
    [ 85%]  .......... .......... .......... .......... ..........  [ 335.6KB/s]
    [ 85%]  .......... .......... .......... .......... ..........  [ 351.5KB/s]
    [ 85%]  .......... .......... .......... .......... ..........  [ 427.1KB/s]
    [ 85%]  .......... .......... .......... .......... ..........  [ 427.4KB/s]
    [ 86%]  .......... .......... .......... .......... ..........  [ 491.5KB/s]
    .
    .
    [ 98%]  ...
    Connection 0 finished
            ,,,....... .......... .......... .......... ..........  [2106.6KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [2140.5KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [2172.4KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [2203.2KB/s]
    [ 99%]  .......... .......... .......... .......... ..........  [2236.2KB/s]
    [100%]  .......... .......... .......... .......... ......
    Downloaded 3415.4 kilobytes in 1 second. (2264.93 KB/s)

6) 不显示文件下载进度。如果你不想要看到文件的下载进度,只要在 axel 命令中加入 -q 选项。

    # axel -q https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2

7) 替换进度条。如果你不喜欢默认的进度条,你可以使用 -a 选项来替换进度条。

    # axel -a https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    Initializing download: https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file owncloud-9.0.0.tar.bz2
    Starting download
    [ 66%] [......0      ...1        ..........2  ...........3] [   5.8MB/s] [00:01]^C
    Downloaded 14.3 megabytes in 2 seconds. (5916.11 KB/s)

我们中断了上面的下载,以便在下载文件时能清楚地显示替代进度条状态。一旦文件成功下载后,你可以看到相同的输出,如下所示。

    # axel -a https://download.owncloud.org/community/owncloud-9.0.0.tar.bz2
    File size: 22678208 bytes
    Opening output file owncloud-9.0.0.tar.bz2
    Starting download
    Connection 2 finished                                                          ]
    Connection 1 finished                                                          ]
    Connection 3 finished                                                          ]
    Connection 0 finished                                                          ]
    Downloaded 21.6 megabytes in 4 seconds. (5062.32 KB/s)

8) 了解关于 axel 的更多信息。如果你想要了解更多关于 axel 的选项,只需要进入它的手册。

    # man axel
    或者
    # axel --help