十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
教你一个快乐中学习linux的方式,就是安装Fedora系统,要自己亲手安装,然后根据
成都做网站、成都网站设计介绍好的网站是理念、设计和技术的结合。创新互联拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。
教程用命令配置你的linux系统,这里为什么说让你安装fedora系统呢,就是因为此
系统是命令操作为主的,能让你更好的得到锻炼,系统安装好后,你只要用这个系统
进行各种操作就可以了,例如看电影 听音乐 聊QQ等等,前提是这些软件你要手动去
用命令去linux源安装,在这些玩,用的过程中,你的linux知识不知不觉就提高了.遇
到不会的操作就多找找教程,我觉得这个学习没有步骤,因为你在使用linux系统时,
对于linux 的知识已经在不断加深了. 纯手打,比较有诚意,复制一大篇根本没意
义.
《linux就该这么学》是一本不错的教程哦
推荐几本学习Linux的书籍供参考:
一、《快乐的Linux命令行》
这本书介绍如何生存在 Linux 命令行的世界。不像一些书籍仅仅涉及一个程序,比如像shell 程序, bash。这本书将试着向你传授如何与命令行界面友好相处。它是怎样工作的?它能做什么?使用它的最好方法是什么?
正如书中所说的“就像有位老师在你身边,指导你学习”,这本书的特点是语言简洁流畅,即使是英文版,看起来也不费劲(目前已有中文版)。涵盖了大部分命令行工具和Shell编程。最主要的是它基于 CC 协议共享,任何人都可以免费下载。
二、《Linux命令行与shell脚本编程大全》
这是一本非常适合Linux小白的入门教程,内容通俗易懂、深入浅出,除了日常工作中用的基础命令之外,像正则表达式、sed、awk 这样的高级命令也有介绍,书上还配有大量的实例,如果你想精通 shell 编程,那么这本书就是为你准备的。也是有志于从事系统运维开发的朋友必备读品,总之,只要你能跟着这本教程学完,使用 Linux 就轻车熟路了。
三、鸟哥的Linux私房菜 : 基础学习篇
如果你想要学习Linux,强烈建议通过《鸟哥的Linux私房菜》这套书籍去学习,浅显易懂,小编就是通过这套书籍学会Linux的。
四、Linux UNIX系统编程手册 套装上下册
《linux/unix系统编程手册(上、下册)》是介绍linux与unix编程接口的权威著作。linux编程资深专家michael kerrisk在书中详细描述了linux/unix系统编程所涉及的系统调用和库函数,并辅之以全面而清晰的代码示例。
《linux/unix系统编程手册(上、下册)》涵盖了逾500个系统调用及库函数,并给出逾200个程序示例,另含88张表格和115幅示意图。
学成之后从事的工作也是围绕运维进行的:
应用运维(SRE):应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作,工作职责如下:设计评审、服务管理、资源管理、例行检查、预案管理、数据备份。
系统运维(SYS):负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产管理,服务器选型、交付和维修,工作职责如下:IDC数据中心建设、网络建设、LVS负载均衡和SNAT建设、CDN规划和建设、服务器选型、交付和维护、内核选型和OS相关维护工作、资产管理、基础服务建设。
数据库运维(DBA):数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,对数据库进行变更、监控、备份、高可用设计等工作,详细的工作内容如下:设计评审、容量规划、数据备份与灾备、数据库监控、数据库安全、数据库高可用和性能优化、自动化系统建设、运维研发、运维平台、监控系统、自动化部署系统。
运维安全(SEC):运维安全负责网络、系统和业务等方面的安全加固工作,进行常规的安全扫描、渗透测试,进行安全工具和系统研发以及安全事件应急处理,工作内容如下:安全制度建立、风险评估、安全建设、安全合规、应急响应。
来自百度经验针对如何才能学好linux的网络资料
目前比较学习Linux系统比较火的论坛
谈谈如何学习Linux操作系统,来自51cto网络资料,参考资料
真正想学好linux系统,还是要研究linux内核源码。
为什么这么说呢?
无论是使用linux里面的一些命令,还是做linux应用层的开发,其实都是在使用linux内核的功能,但是其实你对linux底层的机制并不了解。长远来看,其实对你技术的提升不大。
比如:
1. 你天天使用linux里的docker命令,那你知道docker是如何做到这种隔离性的吗?
2. 你写linux应用程序,会看到入口是main()函数。那么,问题来了,为什么是main()呢?为什么不是hello()、不是fuck(),不是love()呢?
3. 你写linux应用程序,也会用write()函数。这个write函数,我们代码里并没有实现它,那是谁实现了它?是c库吗?有可能。但是如果我是写磁盘呢?c库能做到吗?
显然不能!还是需要linux内核的功能。
4. 我们知道,在linux里,不同的应用程序可以共享一个动态链接库,这又是怎么做到的?不是说进程是隔离的吗?为什么对动态链接库就不做隔离了?
5. linux应用层调用malloc是直接调用到内核吗?
很显然不是! c库里也有内存管理,c库里的内存管理单元会向内核批发内存(以page为单位),然后向应用程序零售内存(更小的粒度,可以是int大小,char大小等)
6. linux里进程和线程的共同点和差别究竟是什么?不要拿教科书里那一套来说教,从代码里得到的才是真知。
....
问题太多了,难道你不好奇吗?
如果你不好奇,那很显然你不太适合做技术,在技术这条路上可能走不远,应该早日转行;如果你很好奇,那就从现在开始,研究linux内核吧。
对于这个问题作为一个在linux下开发代码十几年的人,忍不住说几句
任何一门技能的学习,想要学精学透,都要付出巨大的努力,尤其是一些专业性比较强的技能,更需要持之以恒长期不断的投入大量的精力去学习和实践,比如linux的学习,就是一门专业性非常强的技能,如何能学好这项技能。
如何才能学好那?
思想上的重视
首先要明白自己为什么要学习linux,学习linux能给自己带来什么,也就是说要知道学好linux对自己的重要性。当从思想上认识到一件事对自己的重要性有多大的时候,就会投入多大的精力去做这件事。
行动上的具体
有了思想上的重视,下面就需要具体的行动
(1)从基础知识学习,打好基本功;任何一门新知识的学习,都要了解它的一些基本内容,基本概念等等,这样就需要找一本介绍linux的专业书籍,先大致了解一下linux的相关内容,不至于后期学习linux的时候,连一些最基本的专业名称都搞不懂。
(2)勤学多练,多多思考;linux是一门实用性非常强的技术,基础理论的学习就是为了应用的更好实现,应用的实现反过来也会使理论的知识更加巩固;找一套功能比较齐全的开发板,在开发板上实现各种功能,不断地去实践,带着问题去寻找答案,当看着自己设计的功能在开发板上实现,会乐此不彼。
总之,学好 Linux 绝非一朝一夕之事,时间、知识的积累是必不可少的
Linux是一个很大的概念,建议先从简单的入手,结合你的兴趣、工作内容,在某一方面深挖,来张图介绍Linux的学习升级。
初学入门Linux的话,可以先安装一个桌面版的Linux虚拟机(Ubuntu、CentOS7等都行),以熟悉常用命令为主,待基本掌握环境后,可以研究一下 内核源码 及 常用服务器的搭建,加深理解和应用,下面我简单介绍一下Linux的学习过程,感兴趣的朋友可以尝试一下:
01 安装Linux
这里建议安装一个桌面版的Linux虚拟机(Ubuntu、CentOS7等发行版本都行),初学入门的话,如果对Linux完全不熟悉,安装迷你版会非常不适应,许多功能和包都需要自己适配下载,可以先使用桌面版,不至于完全手足无措,后期熟悉环境后,可以使用无界面版,操作起来也会非常容易:
02 入门Linux
Linux虚拟机安装好后,就是Linux基础入门,这里网上教程和资料非常多,像慕课网、菜鸟教程、B站等都有大量优质视频和文档,当然,你也可以找一本专业的Linux书籍,一边学习一边练习,《 鸟哥的私房菜 》就非常不错,覆盖面比较广,讲解的也非常细致,常见的基础命令和配置等都要熟悉掌握,这些是使用Linux的基础:
03 深入Linux
Linux基础熟悉后,就是深入Linux的过程,这里可以学习和研究的东西就非常多了,基础的Linux应用,包括服务器搭建、嵌入式开发等,都有非常光明的前景,当然,你也可以研究一下Linux内核,包括内存管理、进程管理、文件系统、驱动等,对于深入理解操作系统来说,可以说是大有裨益:
Linux毕竟只是个操作系统,只要掌握了正确的学习方法,不会有多难。今天咱们就好好看看,Linux到底怎么学才是正确的学习方法。转自——马哥linux运维
一、从命令开始从基础开始
常常有些朋友一接触Linux 就是希望构架网站,根本没有想到要先了解一下Linux 的基础。这是相当困难的。虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解 Linux系统:
安装和登录命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh
文件处理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln
系统管理相关命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last
网络操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup
系统安全相关命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho
二、选择一本好的Linux书籍
在各个Linux论坛中,我们看到最多的问题往往是某个新手,在安装或使用linux的过程中遇到一个具体的问题就开始提问,很多都是重复性的问题,甚至有不少人连基本的问题描述都不是很清楚。这说明很多初学linux的人还没有掌握基本功。怎样才能快速提高掌握linux的基本功呢? 最有效的方法莫过于学习权威的linux工具书,工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于 linux的书籍有很多不过精品的不多,笔者强烈建议阅读《鸟哥的Linux私房菜 基础篇》,现在出到了第三版。新手最好能够买一本纸版书来仔细研读,并认真做好学习笔记。当然,如果习惯看电子书,也可以从这里 下载 PDF电子书。
三 、养成在命令行下工作的习惯
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。
四、用Unix思维思考Linux
由于Linux是参照Unix的思想来设计的,理解和掌握它就必须以Unix的思维来进行,而不能以Windows思维。不可否认,windows 在市场上的成功很大一部分在于技术思想的独到之处。可是这个创新是在面对个人用户的前提下进行的,而面对着企业级的服务应用,它还是有些力不从心。多年来在计算机操作系统领域一直是二者独大:unix在服务器领域,Windows在个人用户领域。由此可见,用户需求决定了所采用的操作系统。不管什么原因,如果要学习Linux,那么首先要将思维从Windows的“这个小河” 中拖出来,放入Unix的海洋。
五、学习shell
对于Shell(中文名称壳),习惯Windows的读者肯定是非常陌生的,因为Windows只有一个“Shell”(如果可以说是Shell的话),那就是Windows自己。用一句话容易理解的解释就是,shell是用户输入命令与系统解释命令之间的中介。最直观的说法,一种Shell有一套自己的命令。举一个容易理解的例子,Linux的标准Shel是Bash Shel;Solaris的shell是B shell;Linux的Shell是以命令行的方式表现出来的。读者可能会不理解,Windows从命令行“进化”到了图形界面,那么Linux现在还使用命令行岂不是一种倒退?
当初我刚刚接触Linux时就曾有过这种想法。可是后来发现,如果使用图形界面,那么分配给应用软件的资源就少了,在价格昂贵的服务器上,能够以较低的硬件配置实现同样的功能是非常重要的。
下面举例说明,一台服务器有1GB内存,假设其中512MB用于处理图形界面,若要安装一个需要784MB内存的数据库软件,惟一的办法就是扩大内存。但是如果使用命令行,系统可能只需要64MB内存,其它的内存就可以供数据库软件使用了。使用命令行,不仅是内存,而且CPU及硬盘等资源的占用都要节省很多。所以,作为服务器使用命令行是优点而不是缺点。既然Shell有这么多优点,就必须要学习它。
简单来说就是:兴趣,坚持,方法。
兴趣第一
对于任何事情,兴趣在很大程度上会影响你做这件事的结果。去做一件自己很感兴趣的事情,和做一件自己本来毫无兴趣却由于某种原因而不得不做的事情,其结果往往是天地之别。究其缘由,无非是对于自己感兴趣的事情,是以一种享受其中乐趣的心态去做,在不自觉中就会投入更多的心思在上面,也会更加专注,更容易一直坚持下去。而对于毫无兴趣的事情,往往是迫于某种压力才不得不做,心里或多或少会有一定排斥拒绝,甚至会有煎熬的感觉,其结果也可想而知。
对于程序开发,也是一样的。工作中,同样是程序员,却经常会有两种不同的人。一种对程序开发真的是很感兴趣,一天不写代码不看代码就如坐针毡,感觉这一天总缺少点什么,往往这种人才能成为技术人口中的大神。另外一种人,则是相反,看代码写代码完全是因为完成任务而不得不做,处理问题时能靠嘴忽悠过去的,绝不会看一眼代码,所以这种人往往技术平庸。当然,这只是从技术角度说,如果单纯看收入的话,第一种人却不见得比第二种人收入高。
所以,首先要确定自己是否对程序开发感兴趣,如果没有兴趣,那就自然不必继续下去了,完全可以换一个职业选择。然后再选择一个自己最感兴趣的方向,如内核开发,驱动开发,应用开发等等,选定方向后由浅入深,循序渐进。
持之以恒
在互联网迅猛发展的今天,我们处在一个知识迅速爆发和更新更新时代,每一天都有各种各样的新事物层出不穷,当然也会伴随着各种老的旧的东西消失。计算机技术更是如此,从编程语言到开发工具,从设计模式到系统框架,每一天每个领域都会有新的技术出现,从也会有旧的技术被淘汰被丢弃被遗忘。
这就意味着,从成为程序员的那一天开始,就不可能停止学习的脚步,不得不面对各种技术的更新换代,因此,必须要持续学习,及时更新自己的知识结构,以适应各种业务需求的变化,否则,可能就不得不面对被淘汰的结果。
找到适合自己的学习方法
就像看电影一样,同一部电影,有的人觉得精彩,有的人觉得无趣。每个人的习惯、个性、思维、背景、基础不同,学习的方法也不同,没有什么放之皆准的方法,适合自己的才是最好的。
对于入门,找到一本自己能看得懂适合自己的书。很多别人推荐的堪称圣经的经典书籍,不妨尝试一下,看自己是否能够很容易的理解和消化。如果实在看不懂,果断换一本,切忌过于勉强。刚入门时,如果长时间处于一种云里雾里的感觉,往往会对自己信心造成打击,继而一点点消耗掉继续学下去的兴趣。很多圣经级的书籍往往适合在有一定基础之后再细细品读的,却并非入门首选。
入门之后就是逐步深入了。一般来说,在实际项目中进行学习是效果最好的。做项目过程中往往能够巩固已经学到的技能,同时发现自己的知识盲点,进而消灭盲点。
此外,多读代码,多写代码。
最后的最后, 珍惜你现在的每一根头发。
linux系列有两种发行版本
1).Red
Hat系,包括RHEL、fedora、centos等
2).Debian系,包括Debian、Ubuntu、Mint等
想要学习的话如果个人学习,推荐使用Ubuntu。如果是工作的话,则使用centos学习
1.学习Linux,首先就是安装Linux系统,通过镜像安装,这个过程可以先大概的了解一下linux的启动过程,对一些概念有个大致的印象
2.在安装好的系统之上,学习一些基本命令的操作,比如ls . 列出当前文件夹下的子文件和子目录,cd /root 切换到root的目录下,top命令查看一些进程的cpu,内存等资源的使用情况,ps命令同样也可以查看进程的内存等资源使用情况,pwd查看当前所在的路径等等,将这一些命令熟练的掌握
3.在掌握了linux的一些基本命令之后,那么可以进行一些服务的安装搭建练习,比如在Linux下安装搭建DNS服务器,搭建nginx服务器等等
4.进阶阶段的话,可以尝试进行内核参数的调优,比如tcp关闭连接之后保持高速通道,扩大linux系统的最大句柄打开数之类的内核参数的优化,sysctl -a可以查看目前已经加载的内核参数
5.学会了造句子,那么之后就可以写作文了。同理学会了linux的命令之后,那么可以学习一下shell的基本语句,awk sed的学习,用shell实现一些特定功能的脚本,比如可以通过cat /proc/cpuinfo加上awk命令来实现对cpu相关信息的统计等
如果你在Linux上是一个小白请看下面的回答~
想学好Linux,先问自己几个问题。
1. 你对计算机感兴趣吗?
2. 为什么学习Linux(他能给你带来什么价值,这个价值点是否可以支持你一直坚持下去)
3.你每天可以在工作生活之余或者大学课余抽出多少时间去学习(任何的技能都是需要时间去练习+时间才能掌握的)
如果这三个问题的答案都是肯定的,那么请看下文:
我也是一个从0技术基础的小白开始学习的
推荐你一个教程:【菜鸟教程】
一定要有耐心、有恒心的坚持学完,这样你对Linux才能有一定的理解
学习的中间需要您自己不断的实操,自己去敲命令,去安装,去验证
学习LINUX首先不要被LINUX误导,LINUX有很多种,建议初学或想了解LINUX系统用RED HAT 9,很多地方都可以下载一般是6张光盘,前3张是安装盘,第4张是帮助文件等,后俩张是源代码.正常情况下下载只提供前3张或前4张光盘内容.其安装界面和WINDOWS差异不大,默认即可,安装后建议不要先看书或资料学习,第一要熟悉LINUX系统,试着用WINDOWS使用方式玩玩LINUX看看,LINUX中的SHELL你可以理解成WINDOWS中的DOS
LINUX的图形界面可以想象成WINDOWS界面,SHELL界面可以想象成放大的DOS界面(SHELL命令与DOS命令有很大差异)玩过俩天后借助资料和相关书籍学习
本文根据饥人谷相关课程整理,如有新知识或遗漏将继续补充。
1.程序员为了输入方便对命令进行缩写
2.缩写规则是省略A、E、I、O、U五个元音字母,留下2~3个字母(有时会例外)
注: Windows默认不支持链接
3. ~ 表示用户目录
假设用户名是administrator,那么
· 在Windows下, ~ 表示 /User/administrator/ 目录 (一般在C盘)
· 在Linux下, ~ 表示 /home/administrator/ 目录
注: 永远不要运行 rm -rf / 即强制删除整个硬盘
在命令后加 \ ,意思是这句话没完
有空格等特殊字符的时候加引号
新手,纯纯搬运工【出处引用自: 】
1. Linux常用命令
最常用:
ls(英文全拼:list files):列出目录及文件名
ls -l:列出目录及文件名,可查看更多
ls -al:可以看到隐藏文件
cd(英文全拼:change directory):切换目录
cd .. :返回上一级
cd 文件夹名:进入目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir 文件夹名(英文全拼:make directory):创建一个新的目录
rmdir 文件夹名(英文全拼:remove directory):删除一个空的目录
cp xxx xxx(英文全拼:copy file): 复制文件或目录
mv xxx xxx(英文全拼:move file): 移动文件或目录,或修改文件或目录的名称
rm(英文全拼:remove): 删除文件
rm -r 文件夹名:递归删除某目录
clear:清空terminal的所有内容(或者使用Ctrl+L)
tab按键:补充完整文件名或文件夹名
次常用:
vim/vi 某文件 (编辑文件)
nano 某文件 (编辑文件)
touch 文件 (新建空文件)
sudo -s (切换到root模式)
exit (退出root模式等)
sudo chmod -R 755 文件名/文件夹名 (获取文件/文件夹的755权限)
chown [用户] [文件或目录] (改变文件或目录的所有者)
chgrp [用户组] [文件或目录] (改变文件或目录的所属组)
make (编译成.exe)
解压/解包:
tar文件 (注:tar是打包,不是压缩!)
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
.gz文件
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz文件
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
安装和卸载deb软件包:
安装:sudo dpkg -i deb文件
查看:sudo dpkg -l
卸载:sudo dpkg -r 软件名
参考资料:
[1] Linux 教程
[2] Linux常用命令
[3] linux中tar命令的用法
[4] 全网最全Linux命令总结
2. vim/vi里的操作
:q 退出
:wq 保存并退出
:w 保存
:q! 强行退出(不保存退出)
:w! 强行保存
i 进入编辑,转为输入模式(光标前面)
a 进入编辑,转为输入模式(光标后面)
o 进入编辑,转为输入模式(光标下方新建一行)
Esc 退出i(插入)命令
3. 超算中PBS常用命令
pbsnodes (查看所有节点)
pbsnodes -l free (查看空闲节点)
pbsnodes 某节点 (查看某节点状态)
ssh 某节点 (转到某节点)
exit (离开节点)
qsub 文件名.pbs/sh (提交任务)
qstat (列出状态)
qstat -q (列出队列)
qstat -n (列出队列中使用的节点)
qstat -f jobid (查看jobid任务的详细信息)
qdel jobid (取消任务)
4. 其他
(1)Linux开机自启
sh文件中包含:
#!/bin/bash#chkconfig: 2345 80 90#description:auto_run
sh文件移动到/etc/init.d后,分别输入命令:
chkconfig --add xxx.sh
chkconfig --list
chkconfig xxx.sh on
service xxx.sh start
参考资料: linux 开机启动 .sh 文件 - 自己的太阳 - 博客园
(2)Linux环境变量
方法1:临时使用环境变量:export PATH="/home/www/anaconda3/bin:$PATH"
方法2:修改.bashrc文件
参考资料: Linux PATH 作用以及查看和修改方法_haozhepeng的专栏
(3)两个sh文件
a.sh文件(用于提交任务,执行a.py文件)
#!/bin/sh#PBS -N task#PBS -l nodes=1:ppn=1#PBS -q scorecd $PBS_O_WORKDIRexport OMP_NUM_THREADS=1python a.py
a.sh文件(用于提交任务,执行a.exe文件)
#!/bin/sh#PBS -N task#PBS -l nodes=1:ppn=1#PBS -q scorecd $PBS_O_WORKDIRexport OMP_NUM_THREADS=1./a.exe
(4)一个makefile文件
makefile文件(用于编译Fortran文件)
INC := -I/public/software/compiler/intel/composer_xe_2015.2.164/mkl/include/intel64/lp64
LIB := -L/public/software/compiler/intel/composer_xe_2015.2.164/mkl/lib/intel64
mpi:= -I/public/software/mpi/mpich/3.1.4/intel/include /public/software/mpi/mpich/3.1.4/intel/lib -lmpich -limf -lsvml -lintlc
src:=Console1exec:=a
all: $(src).f90
ifort $(src).f90 $(INC) $(LIB) -openmp -lmkl_intel_lp64 -Wl,--start-group -lmkl_intel_thread -lmkl_lapack95_lp64 -lmkl_core -lmkl_blas95_lp64 -Wl,--end-group -liomp5 -lpthread -O2 -o $(exec).exe