24小时热门版块排行榜    

CyRhmU.jpeg
查看: 539  |  回复: 3
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 yjcmwgk 的 99 个金币

yjcmwgk

禁虫 (文坛精英)

密度泛函·小卒

优秀版主

[交流] 【求助】Linux问题,奖励100金币,谢谢诸位高手

【求助】Linux问题,奖励100金币,谢谢诸位高手

各位Linux高手你们好。我是咱们区量子化学版的斑竹,外号:密度泛函·小卒。我们版一直在做一个大工程,名为GaussianFAQ,其中第一章第4-6节涉及到了许多Linux知识。这三节都是小卒我自己写的,但是小卒毕竟是化学出身。请各位高手帮小卒看看应该改什么东西?我知道我一定有很多错误的或者不合适的东西在里面,还请各位Linux高手不吝赐教。
每个意见给10-100金币。非常感谢您的慷慨指点。
引用回帖:
(1.4)
难道非要用Linux算高斯吗?Windows算高斯的缺陷是什么?
后续问题:听说Linux很难的。我是电脑小白,在Windows上都不太懂,只会最基本的操作,看看电影听听歌而已。连Windows系统都是别人替我装的。Linux我能学会吗?
后续问题:为什么Linux那么难看?看见一行一行的命令,就一点研究它的兴趣也没有了。听说Linux也是有桌面的,为什么师兄师姐们从来不用Linux的桌面呢?你们所说的那个SSH又是个什么软件啊?头大ing……
[quote]暂时的最佳答案(提供者:密度泛函·小卒)
Linux做高斯计算比Windows优势大得多。Windows对并行处理、频繁存取、超大文件、海量运算,都是瓶颈,而这些都将是你运行高斯的大障碍。你现在算个水分子、算个甲烷分子,你用Windows觉得还挺不错的,但是你的计算量一旦变大,你将会对“Windows做计算”极为失望。

你可以用mem指定你希望能被高斯调用的最大内存。但是,Windows有自己的一套内存调用规则(高斯毕竟是一个应用软件,Windows则是操作系统。Windows能管着Gaussian)

好了,我形象化的说说这个事儿吧
Gaussian软件(以下简称高斯)说:“我要1G内存!”
Windows操作系统内核(以下简称系统)说:“行!如你所愿”
过了一会儿……
高斯:“你给我的1G内存,我咋觉得这么不对劲儿呢?”
系统:“咋就不对劲儿了?”
高斯:“就50多M的内存空间读写速度正常,另外950M的内存空间读写速度超慢!”
系统骗高斯:“哦,内存条质量不好,凑合着用吧!”
高斯:“NND,主人要做高斯计算,却买这么慢的内存条,我不干活了!我要怠工!”
于是高斯Link died。

真实情况是:Windows对内存使用的控制是非常苛刻的。高斯申请1G的内存,那么Windows也就拿出50M的真正的内存空间给高斯,剩下950M的都是用硬盘空间来“伪装”出来虚拟内存。每当有某软件要求巨大内存的时候,Windows都会用虚拟内存来应付,而软件就以为这是真内存,还用的不亦乐乎。说白了,Windows不是一个设计用来运行“海量数据频繁内存读写”的程序的操作系统,它为了勉强运行这种程序,他就用虚拟内存来欺骗,事实上是硬盘在起到内存的作用,而硬盘的读写速度不到内存的十分之一。这样造成的直接严重后果是:即使电脑资源一样大,在Windows和Linux下运行同样的任务,后者往往比前者快3到20倍。这也是我们一直推荐使用Linux的原因。

我给Windows和Linux分别打个比方:Windows是一辆精致的法拉利,很漂亮、很人性化、操作很简便(其实Windows也有自己的复杂和高明之处,只是你从没使用过它们),但是她终究是一辆小轿车。而Linux是一辆载重数十吨的斯太尔大卡车。搬运大量货物(大量数据的海量计算)还是要靠Linux。运送一个小箱子,法拉利和斯太尔没什么区别,但是如果运送一个集装箱呢?为了能顺利运送集装箱,请学习Linux
如果你既想享受法拉利的精致,也想得到斯太尔的强大工作能力,你就装一个SSH软件吧。【图5】SSH就像你的忠实信使,在Linux和Windows之间传达各种指令。你的师兄师姐会教给你如何用好SSH。
另外,不要总想着使用Linux的GUI。其实Linux有比Windows更绚丽的桌面系统,但是它对你的高斯计算毫无意义,而且会占用更多的服务器资源。把这些资源用在你的高斯计算上,比浪费在运行图形界面上更有意义。DIY是Linux很重要的宗旨之一:合适就选,不合适就不选。这比Windows强制安装“用户一辈子也不会需要的许多功能”强多了。
其实吧,现在作为初学者,你也没必要去管那些面目可憎的命令行,那还是你的师兄师姐的事儿。作为一个新手,你记住,服务器的维护管理自然有你的师兄师姐来完成,你仅仅是使用者,而且是非常初级的使用者——我这样说,并没有一点点轻视你的意思,请勿误解。因此,你所要知道的仅仅是最常用的命令即可:

ssh zzz                                       
进入zzz服务器

exit                                       
离开当前服务器

mkdir                                       
建立文件夹

rmdir                                       
删除空文件夹

rm -fr
删除非空文件夹

ls                                       
列出本文件夹下的所有文件和子文件夹

vi xxx.xxx                               
建立新文件xxx.xxx

top                                       
打开任务管理器

rm xxx.xxx                               
删除文件xxx.xxx

nohup g03 xxx.com xxx.log &               
运行高斯文件xxx.com进行计算

cd xxxx                                       
进入xxxx子文件夹

cd ..                                       
返回上层文件夹

formchk xxx.chk xxx.fchk               
用xxx.chk生成xxx.fchk

scp xxx.xxx nod:/aaa/bbb/xxx.xxx       
将xxx.xxx复制到nod下的/aaa/bbb/文件夹下

cubman                                       
使用高斯的cubman命令

cubegen                                       
使用高斯的cubegen命令

sh xxxx.in
运行批处理命令xxxx.in

ps 某个进程的进程号
查看某个进程的状态

adduser 账户名
增加一个账户

passwd 账户名
账户改密码

userdel 账户名
删除某个账户

su 账户名
转换当前账户

du -sh
查询该文件夹大小

env
列出全部环境变量

export 变量名 变量值
增加环境变量

unset 变量名
删除环境变量

chmod -R 770 g03
赋予g03使用/tmp文件夹的权限

vi下的命令

   i                                       
   进入修改状态

   ESC                               
   退出修改状态

   :wq                               
   保存退出

   :q!                               
   不保存退出

   :set nu                               
   显示行号

   /某个字符串                       
   查找某个字符串

top下的命令

   先按u再输入高斯用户名再回车       
   查看高斯所属的进程

   先按u再输入超级用户名再回车       
   查看系统所属的进程

   先按u再输入空格再回车               
   查看全部进程

   q                                       
   退出任务管理器

   先按k再输某个进程对应的pid,然后输入yes               
   强制结束某个进程

关于解压

   解压FileName.tar
   tar xvf FileName.tar

   解压FileName.gz
   解压1:gunzip FileName.gz
   解压2:gzip -d FileName.gz

   解压FileName.tar.gz 和 .tgz
   tar zxvf FileName.tar.gz

   解压FileName.bz2
   解压1:bzip2 -d FileName.bz2
   解压2:bunzip2 FileName.bz2

   解压FileName.tar.bz2
   tar jxvf FileName.tar.bz2

   解压FileName.bz
   解压1:bzip2 -d FileName.bz
   解压2:bunzip2 FileName.bz

   解压FileName.tar.bz
   tar jxvf FileName.tar.bz

   解压FileName.Z
   uncompress FileName.Z

   解压FileName.tar.Z
   tar Zxvf FileName.tar.Z

   解压FileName.zip
   unzip FileName.zip

   解压FileName.rar
   rar x FileName.rar

多说一句:其实Windows也有这种命令行操作模式【图6】,名叫DOS(不是态密度的缩写,而是Disk operation system的缩写。Microsoft的MS-DOS已经发展到7.1版了,当然你装的WindowsXP SP3自带的MS-DOS不是真正的DOS,是用XP模拟的命令行操作5.1,不过对于初学者学习dos已经足够了。Vista我没用过,我个人从心理上比较排斥它,哪位熟悉Vista的人给个补充,谢谢)有闲时间,在你上网玩游戏听歌聊天之余,如果能学学DOS,对你加深对电脑的了解,很有益处的

(1.5)
Gaussian如何在Linux下安装?
引用回帖:
暂时的最佳答案(提供者:密度泛函·小卒)
其实高斯在Linux下安装非常容易:

建立用户gau
useradd gau

以gau登录
su gau

在/home/gau目录下解压缩G03包:
gunzip g03.tar.gz
tar xvf g03.tar


在g03目录下,执行bsd/install

在/home/gau/.bashrc这个文件中加入两行:
g03root=/home/gau
. /home/gau/g03/bsd/g03.profile


现在可以运行g03了

(1.6)
Gaussian如何实现批处理?
引用回帖:
暂时的最佳答案(提供者:密度泛函·小卒)
如果你有三个文件分别进行计算
这三个文件叫做a.gjf,b.gjf和c.gjf
那么可以进行的批处理方法是:

1)Linux下
写一个文件x.in,内容如下
==文件开始==
nohup g03 a.gjf a.log &
wait
nohup g03 b.gjf b.log &
wait
nohup g03 c.gjf c.log &
==文件结束==

然后提交这个文件,命令为sh x.in &

2)Window下
写一个文件x.bcf,内容如下
==文件开始==
!start=1
a.gjf , a.out
b.gjf , b.out
c.gjf , c.out
==文件结束==

然后用G03运行这个文件

3)Linux和Windows通用
把三个gjf文件写成一个gjf,内容如下
==文件开始==
a.gjf的全部内容(原封不动照抄)
(空行)
--link1--
b.gjf的全部内容(原封不动照抄)
(空行)
--link1--
c.gjf的全部内容(原封不动照抄)
==文件结束==

[/quote]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aristolee

铁杆木虫 (著名写手)

快乐家族之抿嘴笑:)


yjcmwgk(金币+1,VIP+0):您在说什么呐?您真以为我不懂命令呀?呵呵 1-5 16:49
还是在Linux下比较好,那些命令慢慢学就懂了,不过要是只看命令我会懵的
君子慎独!朝日载升,薨薨伊氓。于室有绩,于野有耕。于途有商,于边有征。天生斯民,相养以宁。嗟我何为?踽踽无营。初孰与我,今孰主我?我将往问,安所处我?
2楼2010-01-05 16:24:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)

我觉得你已经列出来了许多常用的命令,但是最好是分类,如分成:ssh相关、文件操作、vi命令几个大类,这样比较有条理一点。
3楼2010-01-05 18:19:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

南国紫藤

银虫 (著名写手)


adu886886(金币-1,VIP+0):这是我看到的你复制别人回复的第三个贴,扣1金币,希望下不为例 1-5 19:53
我觉得你已经列出来了许多常用的命令,但是最好是分类,如分成:ssh相关、文件操作、vi命令几个大类,这样比较有条理一点。
4楼2010-01-05 19:39:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yjcmwgk 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见