Linux在一个命令行上执行多个命令

Linux下有三种连接符号可以在一个命令行下执行多条命令。

1. [ ; ]

如果被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令。

[root@localhost etc]# lld ; echo "ok" ; lok
-bash: lld: command not found
ok
-bash: lok: command not found

2. [ && ]

如果命令被 && 所分隔,那么命令也会一直执行下去,但是中间有错误的命令存在就不会执行后面的命令,没错就直行至完为止。

[root@localhost etc]# echo "ok" && lld && echo "ok"
ok
-bash: lld: command not found

3. [ || ]

如果每个命令被双竖线 || 所分隔,那么一遇到可以执行成功的命令就会停止执行后面的命令,而不管后面的命令是否正确与否。如果执行到错误的命令就是继续执行后一个命令,一直执行到遇到正确的命令为止。

吃橘子为什么会上火

比较容易查到的一种解释来自新浪,说是热量摄入过大。

摄入热量过大

橘子中含有大量糖分,吃1千克桔子能产生1400卡热量。当过多吃桔子后产生的大量热量不能及时转化为脂肪贮存,人体活动的需求又消耗不掉时,就会造成体内热量供过于求的状况,引起肌体功能的紊乱而出现舌干燥、咽喉痛、便秘等现象,也就是人们常说的"多吃桔子会上火"。

另外,吃桔子过多,对儿童的口腔、牙齿、胃粘膜也有危害。

小儿若过量食用桔子,所产生的热量即不能转化为脂肪贮存在体内,又不能及时消耗掉,便会由积聚引起“上火”,表现为口腔炎、牙周炎、咽喉炎和便秘等。这是因为桔子是补阳益气的食品,而小儿的体质常常是“阴常不足,而阳常有余”,桔子使“阳气”更盛,便会出现“上火”现象。因此小儿不能多食桔子。

热量摄入过大而导致口腔、牙齿、胃粘膜伤害,表现为口腔炎、牙周炎、咽喉炎和便秘等。这可能吗?热量摄入过大会导致肥胖、糖尿病、脂肪肝,而且是在摄入量达到一定程度的情况下。这种假说不太可信。

知乎上关于中医的部分争论

我们要以1)科学的眼光看问题,2)不轻信任何言论也不轻易否定任意言论,3)保持独立思考。以下摘录有很多言论举不出实证,我们以有实证的言论为主要观注点。

田吉顺,西医医生 http://www.zhihu.com/question/20305352/answer/15688999

我们一直在学习科学,在提倡科学,须知道任何方法都有其局限性,即使是科学的方法也不例外。保持一种适度怀疑的态度,包括对科学方法本身的怀疑,这才是科学的精神。倘若以为科学的方法就是最好的方法,是放之四海而皆准的真理,任何方法都要往科学方法上去套,那么就等于是放弃了思考,这才是缺乏了科学的精神。

就医学领域来说,西方人更加体现了科学的精神。因为医学的复杂性,很多医学问题找不到好的答案,所以,对于西方普遍使用的医学方法(我们称之为西医,他们称之为传统医学),他们自己也在不断的反躬自省。比如对于手术的反省,对于化疗的反省等等,他们在不断的怀疑,自己正在应有的这一套医学理论是不是有问题,我为了达到目的而付出的代价是否有意义。怀疑不代表否定,其实有些时候,怀疑过反省过之后,可以让人更加坚定。

评:

中医存在这样的科学精神吗?

绑定trac与git

假设已经架设好了trac 1.0,要把git和trac绑定起来。

/conf/trac.ini 开启下面两个组件:

[components]
tracopt.versioncontrol.git.* = enabled
tracopt.ticket.commit_updater.* = enabled

并修改[trac]中的repository_type

[trac]
repository_type = git

打开网页,在admin/versioncontrol/repository页面加添加git项目。然后在git项目目录下的hock目录下添加post-commit钩子:

#!/bin/sh

trac-admin $ENV changeset added "Linux培训" $REV

exit 0

git提交

git提交可以和trac的ticket系统结合起来:在log中使用#ticket-number。

移植块设备驱动程序sbull到内核2.6及其以后版本

参照《设备驱动程序》第三版以及网上诸多的sbull代码实例,写出来的块设备驱动程序往往在linux内核2.6及其后续版本(我用的是3.7版本)无法编译通过,提示是有一些未定义的函数。原因在于,2.6内核以后一些系统提供的API接口发生了变化,包括block layer API。主要变化有以下几点(这些只是我在编程过程中遇到的情况,所以不一定完善,但对于sbull实例是足够的):

1.内核2.6中取消了typedef struct request_queue request_queue_t这个结构定义,而老版本的sbull.c中很多地方使用了request_queue_t结构体,进而出现意想不到的错误,所以需要自己在sbull.c中加上这一句,这一点很重要;

2.在请求队列中取下一个请求的函数发生了改变(可参照http://lwn.net/Articles/333620/);

推荐linux下的网盘Yunio(云诺)

Forums: 

国产网盘Yunio(云诺)完美支持Linux,在Dropbox没有保障的国内可以做很好的替代品。

可以在这里申请到一年期的"无限"空间:http://2012.yunio.com/

Archlinux下有人写过包,我没有测试:https://aur.archlinux.org/packages.php?ID=54373

Funtoo Linux下的包我已经提交,使用如下命令即可安装:

一些vim的使用命令

在普通模式下:

(1)在一个窗口中打开多个文件 :tabe filename,多个文件的切换gt

(2)复制,粘贴 N yy p 其中N为行数(已知),p表示粘贴 v y p 在行数未知的情况下使用

(3)回到文件头gg 回到文件尾G 往下翻一页 ctrl+f 往上翻一页ctrl+b

(4)合并两行J,后退u,加一行o

(5)进入纵向编辑模式ctrl+v

(6)格式化 全部格式化=G 格式化一行 == 对选中的部分格式化->=

(7)配置vim,使界面更加友好

wget http://tiaozhanshu.com/files/doc/vim.config

mv vim.config ~/.vimrc

未完待续~~

Linux内核模块编译Make prepare && modules_prepare

编译Linux内核模块需要头文件支持,但是下载的Linux内核代码需要做一定的“准备”才具备所需的头和必要的脚本。否则会出现如下类似错误:

  1. linux模块编译-bound.sh文件缺少
  2. scripts/mod/modpost: No such file or directory

首先,生成部分头文件:

LINUX模块编译 bounds.h文件缺少问题

做linux模块编译时 提示如下错误:

include/linux/mmzone.h:18:26: 错误:linux/bounds.h:没有那个文件或目录
include/linux/mmzone.h:290: 错误:‘MAX_NR_ZONES’ 未声明 (不在函数内)

出现这种错误的原因主要是由于linux内核做过 make clean 命令,把bounds.h 文件清除掉了(可以查看makefile 中的写法),因而需要重新生成这个头文件,使用命令 make prepare

执行结果如下:

Pages

Subscribe to 挑战书 RSS