重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

linuxfpp命令 linux ifup命令

怎样在MinGW上下载siesta

在MinGW上下载siesta操作方法

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的友谊网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

下载地址

链接:

提取码:kii0

第一步获取源码

从Siesta官网下载最新版本的Siesta源码: 。或者使用命令行下载工具curl或者wget来下载:

wget -c -O ${HOME}/softwares/siesta-4.1-b4.tar.gz

第二步配置翻译并安装

进入代码根目录,下的Obj文件夹:

cd siesta-4.1-b4/Obj

然后执行以下命令:

bash ../Src/obj_setup.sh

这将在执行Siesta的一个脚本来在当前路径下产生构建配置文件,此时需要修改arch.make文件中的一些参数。

需要修改指定的变量如下:

.SUFFIXES:.SUFFIXES: .f .F .o .c .a .f90 .F90SIESTA_ARCH =x86_64-unknown-linux-gnu--unknownCC = gccFPP = $(FC) -E -P -x cFC = mpif90 #gfortran# FC_SERIAL = gfortranFFLAGS = -O2 -fPIC -ftree-vectorize# FFLAGS=-gAR = arRANLIB = ranlibSYS = nagSP_KIND = 4DP_KIND = 8KINDS = $(SP_KIND) $(DP_KIND)LDFLAGS =COMP_LIBS = libsiestaLAPACK.a libsiestaBLAS.aFPPFLAGS = $(DEFS_PREFIX)-DFC_HAVE_ABORT# Dependency rules ---------FFLAGS_DEBUG = -g -O # your appropriate flags here...# added by EmuLab# For GNU compiler# the siesta guide tell me to add the FFLAGS and LIBS parameter below, but it get thing wrong,# after comment them i succeeded in the compilation!# FFLAGS += -fopenmp# LIBS += -fopenmp# OpenBLAS + LAPACK:# OpenBLAS (OpenBLAS will default to build in LAPACK 3.6)# LIBS += -L/opt/openblas/0.2.18/lib -lopenblas# use the LAPACK and BLAS provided by SIESTA# ScaLAPACK# ScaLAPACK Only required for MPI compilation.# LIBS += -L/opt/scalapack/2.0.2/lib -lscalapack# NETCDF added by deqitangINCFLAGS += -I${HOME}/softwares/netcdf_install/includeLDFLAGS += -L${HOME}/softwares/zlib_install/lib -Wl,-rpath=${HOME}/softwares/zlib_install/libLDFLAGS += -L${HOME}/softwares/hdf5_install/lib -Wl,-rpath=${HOME}/softwares/hdf5_install/libLDFLAGS += -L${HOME}/softwares/netcdf_install/lib -Wl,-rpath=${HOME}/softwares/netcdf_install/libLIBS += -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lzCOMP_LIBS += libncdf.a libfdict.aFPPFLAGS += -DCDF -DNCDF -DNCDF_4#DUMMY_FOX = --enable-dummy# For netCDF support. Make sure you get a version compatible# with the other options (for example, 32/64 bit). Don't forget# to set -DCDF below.NETCDF_ROOT= ${HOME}/softwares/netcdf_installNETCDF_LIBS= -L$(NETCDF_ROOT)/lib -lnetcdffNETCDF_INCFLAGS= -I$(NETCDF_ROOT)/include# HDF-5.HDF5_ROOT= ${HOME}/softwares/hdf5_installHDF5_LIBS = -I$(HDF5_ROOT)/include# endCOMP_LIBS += libfdict.aLIBS = $(COMP_LIBS) $(NETCDF_LIBS)#SIESTA needs an F90 interface to MPI#This will give you SIESTA's own implementation#If your compiler vendor offers an alternative, you may change#to it here.# MPI_INTERFACE=libmpi_f90.a#MPI_INCLUDE=${HOME}/softwares/openmpi_install/include# end by deqitang@# The atom.f code is very vulnerable. Particularly the Intel compiler# will make an erroneous compilation of atom.f with high optimization# levels.atom.o: atom.F $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $.c.o: $(CC) -c $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) $.F.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $.F90.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $.f.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f) $.f90.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90) $

然后执行make构建siesta:

make siesta

构建完siesta后,如果你需要构建transiesta,需执行:

make cleanmake transiesta

还有一个常用的工具是tbtrans,其位于SIesta项目的./Util/TS/TBtrans目录下,通过下面命令来构建:

cd ../Util/TS/TBtransmake

注意Siesta的构建系统 没有提供make install。因此我们可以将编译的到的可执行程序移动到一个目录,然后将该路径添加到环境变量中,方便在终端中调用程序。

就此,常用的工具构建完毕。

第三步设置环境变量

在~/.bashrc文件中添加如下内容:

export PATH=\$PATH:/home/xxx/softwares/siesta_bin

这里假设,我们将之前编译得到的siesta、transiesta、tbtrans程序都拷贝到了/home/xxx/softwares/siesta_bin中。

推荐 20 个堪称神器的命令行工具

优质文章,第一时间送达!

1.ag:比 grep、ack 更快的递归搜索文件内容。

2.tig:字符模式下交互查看 git 项目,可以替代 git 命令。

3.mycli:mysql 客户端,支持语法高亮和命令补全,效果类似 ipython,可以替代 mysql 命令。

4.jq: json 文件处理以及格式化显示,支持高亮,可以替换 python -m json.tool。

5.shellcheck:shell 脚本静态检查工具,能够识别语法错误以及不规范的写法。

6.yapf:Google 开发的 python 代码格式规范化工具,支持 pep8 以及 Google 代码风格。

7.mosh:基于 UDP 的终端连接,可以替代 ssh,连接更稳定,即使 IP 变了,也能自动重连。

8.fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端 ctrl-r 历史 命令搜索简直完美。

9.PathPicker(fpp):在命令行输出中自动识别目录和文件,支持交互式,配合 git 非常有用。

运行以下命令:

10.htop: 提供更美观、更方便的进程监控工具,替代 top 命令。

11.axel:多线程下载工具,下载文件时可以替代 curl、wget。

12.sz/rz:交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。

13.cloc:代码统计工具,能够统计代码的空行数、注释行、编程语言。

14.ccache:高速 C/C++编译缓存工具,反复编译内核非常有用。使用起来也非常方便:

改成:

15.tmux:终端复用工具,替代 screen、nohup。

16.neovim: 替代 vim。

17.script/scriptreplay: 终端会话录制。

回放:

18.you-get: 非常强大的媒体下载工具,支持 youtube、google+、优酷、芒果 TV、腾讯视频、秒拍等视频下载。

还有 mac 专有的 pbcopy/pbpaste:

把命令行输出拷贝到系统粘贴板:

把系统粘贴板内容拷到终端:

mac 下的 say 命令支持多种语言(英语、普通话、粤语)文本朗读,支持各种销魂恐怖的语气。跑这个命令感受下,小心被吓着了:

19.thefuck:用途是每次命令行打错了以后,打一句 fuck 就会自动更正命令。比如 apt-get 打成了 aptget。fuck 以后自动变成 apt-get。但还是没加 sudo。再 fuck,成功!

又比如 git branch 打成了 git brnch。fuck!更正成 git branch。

又比如 python 打成了 puthon。fuck!一秒变 python。

而且关键是每次打命令和内心 os 完全一致,有种人机合一的快感。fuck!

20.tldr: 如果你经常不想详读 man 文档,那么你应该试试这个小工具。

使用 $ man tar 时

使用 $ tldr tar 时

linux ftp的目录是mount过来的 无法写入

既然是windows服务器的share目录 ,你去装WINDOWS的电脑中看一下,有没有admin用户的,share目录有没有添加admin用户的完全控制的,因为这个目录是你mount过来的,并不是真正的LINUX上的,你chmod后,用ls -l看一下,权限是否修改了的,虽然我没做过你这样的mount的,但我估计,你chmod后,权限应该没有改变的。

Pyp–一个替代sed,awk的文本处理工具

Linux上文本处理工具虽不少,像cut,tr,join,split,paste,sort,uniq,sed,awk这些经典工具让人眼花缭乱,而且都太老了,使用方法都不太人性化,尤其awk,语法简直反人类;所以perl,python,ruby等脚本语言相当热火,我倾向用python,但处理一些简单任务python写的还是比较麻烦,无法一行命令解决,直到我发现了它- Pyp !

Pyp(Pyed piper)–一个python写的类似sed,awk的文本处理工具,简单优雅而强大~

** 安装:**

ubuntu官方源就有:

aptitude install pyp

基本使用:

echo ‘string’ | pyp “命令”

变量p:

将每行作为一个字符串,p就是这这个字符串,python的字符串方法都可以用,譬如字符替换:

cat test.txt |pyp "p.replace('123','abc')"

变量pp:

将整个文本当做一个列表,每行是个列表元素,列表方法都可以使用,譬如行排序:

cat test.txt |pyp "pp.sort()"

管道:

pyp的命令可以内嵌管道,此时管道后p或pp代表前一个命令的输出,类似unix下的标准管道:

echo 'FOO IS AN ' | pyp p.replace('FOO','THIS')|p+'EXAMPLE'"

这个例子通过管道将replace后的字符串再当做p,增加了额外字符串’EXAMPLE’

分割:

echo /this/is/a/splitting/example | pyp "p.split('/')"

将产生一个有序号的输出

算数运算:

echo 'qwe665' | pyp "(int(p[3:]) + 1)"

同时处理两个文本:

使用“–text_file”标识可以操处理第二个文本,类似于”p”"pp”,第二个文本行和整体用变量”fp”"fpp”替代: cat a.txt | pyp "p + fp" --text_file b.txt

正则表达式:

pyp也支持正则,p.re(正则表达式)就行

cat a.txt | pyp "p.replace(p.re('^#.*'),'')"

这句就删掉所有注释行

PYP参考手册:

特殊变量:

p

pp

original //original line by line input to pyp

o //same as original

sp //second steam line input, just like p, but from all non-flag arguments AFTER pyp

quote //a literal ” (double quotes can’t be used in a pyp expression)

paran //a literal ‘

dollar //a literal $

n //line counter (1st line is 0, 2nd line is 1,…use the form “(n+3)” to modify this value.

nk //n + 1000

date //date and time. Returns the current datetime.datetime.now() object.

pwd //present working directory

history //history array of all previous results: so pyp “a|u|s|i|h[-3]” shows eval of s

h //same as history

letters //abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

digits //0123456789

punctuation //!”#$%’()*+,-./:;=?@[]^_{|}~`

与split和join有关的变量:

s OR slash //p split/joined on “/”

d OR dot //p split/joined on “.”

w OR whitespace //p split on whitespace (on spaces,tabs,etc), joined on spaces

u OR underscore //p split/joined on ‘’

c OR colon //p split/joined on ‘:’

mm OR comma //p split/joined on ‘,’

m OR minus //p split/joined on ‘-’

a OR all //p split on [' '-=$...] (on “All” metacharacters)

与p有关变量:

p.dir path DIRECTORY

p.file path FILE

p.ext path EXTENSION

行级操作:

pyp “p” //直接打印各行

pyp “p +’FOO’” //每行append字符串

pyp “p +’FOO’| p + o” //append的新字符串再与老字符串做操作

pyp “p.replace(‘FOO’,'GOO’)” //字符串替换

pyp “p.kill(‘GOO’)” //删除特定字符串

string substitution pyp “‘%s FOO %s %s GOO’%(p,p,5)”

pyp “p.split(‘FOO’)” ` //分割成列表

pyp “slash“ //用’/'分割成列表的简写

pyp “slash[0]” //用’/'分割成列表并选取第一列

pyp “s[2:6]” //用’/'分割成列表并选取多列

pyp “s[2:6] | s” //用’/'分割成列表并选取多列再用’/'拼接

echo ‘qwe665′ | pyp “(int(p[3:]) + 1)” //算数操作(要用()包围)

pyp “p.replace(p.re(REGEX),STR)” //正则表达式

pyp “p.letters()” //只输出字符

pyp “p.digits()” //只输出数字

pyp “p.punctuation()” //只输出标点

pyp “p.clean(DELIM)” //处理乱码字符,将其替换为DELIM

文本当做列表操作:

pyp “pp” //输出整个文本

pyp “pp.sort()” //排序

pyp “pp.uniq” //去重

pyp “pp.oneline” //合并所有列表元素到一行字符串,元素间以空格分开

pyp “pp.unlist()” //不知道什么意思

pp.divide(N) //每N个元素合并一个新列表

pyp “pp.before(‘FOO’[,n])” ////输出指定字符串的上面n行,默认为一行

pyp “pp.after(‘FOO’[,n])” //输出指定字符串的下面n行,默认为一行

pyp “pp.matrix(‘FOO’[,n])” //输出指定字符串的上下面各n行,默认为一行

pyp ”[x for x in pp]” //遍历列表

pyp “pp.sort() | p” //文本当做列表处理完再转换成文本

pyp “pp.delimit(DELIM)” //自定义分隔符而不是默认的换行符


名称栏目:linuxfpp命令 linux ifup命令
网站URL:http://cqcxhl.com/article/ddccedh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP