从10年开始写CSDN博客,后面不支持WLW了,就不怎么写了,话说自带的编辑器确实不怎么样,不过又支持了,那就哈哈,重新开工了。
关于如何配置的,跟以前一样,详情如下所示:
http://blog.csdn.net/csdnproduct/article/details/27504397
话说经常上CSDN的肯定都是IT童鞋们,在Linux上怎么配置呢,参考:
从10年开始写CSDN博客,后面不支持WLW了,就不怎么写了,话说自带的编辑器确实不怎么样,不过又支持了,那就哈哈,重新开工了。
关于如何配置的,跟以前一样,详情如下所示:
http://blog.csdn.net/csdnproduct/article/details/27504397
话说经常上CSDN的肯定都是IT童鞋们,在Linux上怎么配置呢,参考:
参考:ftp://ftp.astro.caltech.edu/pub/difmap/README
现在Difmap的版本是2.4l,支持以下的操作系统版本:
1 | Architecture OS ANSI-C FORTRAN-77 PGPLOT |
为了成功安装difmap,我们需要满足下面的条件:
下载最新版本的difmap:
1 | $ wget ftp://ftp.astro.caltech.edu/pub/difmap/difmap2.4l.tar.gz |
顺便得到cookbook:
1 | $ wget ftp://ftp.astro.caltech.edu/pub/difmap/cookbook.ps.Z |
然后解压difmap:
1 | $ tar xzf difmap2.4l.tar.gz |
完了会创建一个uvf_difmap
的子目录。
./configure operating_system_name-compiler_name
./configure linux-i486-gcc
./configure apple-os-gcc
或者./configure intel-os-gcc
configure
完成后,执行./makeall
,如果出错,就检查下configure
文件找找原因;makemanual
来生成LaTeX文件的帮助文档。在终端下执行:difmap
如果成功,就能得到如下信息:
1 | Caltech difference mapping program – version 2.4l (17 Apr 2010) |
然后就可以畅游在difmap的海洋中了。
输入exit即可退出difmap。
.. note::
你在哪里,哪里就是风景。
Linux whereis
命令用于定位查找一个命令的二进制、源文件或帮助文件。
不过这些文件一般是位于特定目录的。
其他的程序定位可以考虑使用locate
命令。
官方的定义为:
whereis - locate the binary, source, and manual page files for a command
使用语法如下:
1 | $ whereis [options] [-BMS directory... -f] name... |
其他的选项可以为:
-b
: 查找二进制文件
-m
:查找手册
-s
:查找源文件
-B <directory>
在设置的目录下查找二进制文件。
-M <directory>
在设置的目录下查找说明文件。
-S <directory>
在设置的目录下查找原始代码文件。
比如查找bash
的位置,输入如下命令:
1 | $ whereis bash |
可以看到,以上的输出信息从左至右分别为程序名、bash路径、bash的man帮助手册路径。
可以通过不同的参数来查找不同的文件,如下:
1 | # 查找二进制文件 |
$Markdown$ 由亚伦·斯沃茨此处有掌声(Aaron Hillel Swartz;1986年11月8日-2013年1月11日)和美国著名博客作者约翰·格鲁伯(John Gruber)合作发明了。
$Markdown$格式主要在程序员间流行,自从自己入了git的坑,就喜欢上了简洁明了的语法,除非特殊需要,已经不在接触Office系列了。^_^
这里主要列举一些$Markdown$的语法,其实只要掌握几个就能用的相当遛了。
只需要加入[TOC]就可以看到内容目录了。
标题共有6级,从最大的第1级到第6级,是几级就加几个#
即可。
1 | # 标题1 |
输出为:
引用以>
开始,例如
1 | >> 这是引用。 |
输出为:
这是引用。
你想说点啥?
Markdown 支持有序列表和无序列表。
无序列表使用星号、加号或是减号作为列表标记:$Markdown$ 如下所示:
1 | * Red |
等同于:
1 | + Red |
也等同于:
1 | - Red |
输出均为:
有序列表则使用数字接着一个英文句点:
1 | 1. Bird |
其实1,2,3也可以写成1,3,4,但是并不影响输出信息:
$Markdown$ 使用星号(*
)和底线(_
)作为标记强调字词的符号,被 *
或 _
包围的字词会被转成用斜体
,用两个 *
或 _
包起来的话,则会被转成 __粗体__,例如:
Markdown:
1 | Some of these words *are emphasized*. |
输出:
Some of these words are emphasized.
Some of these words are emphasized also.
Use two asterisks for strong emphasis.
Or, if you prefer, use two underscores instead.
下划线
所添加的需要加下划线的行内文字
$\underline{下划线}$
要划除的行内内容
上划线
$\overline{X}$
下划线
$\underline{X}$
$Markdown$插入表格的语法相对复杂,必须要按格式来敲,注意表头与内容的分割线横线-不能少于3个,$Markdown$如下所示:
1 | 第一格表头 | 第二格表头 |
输出如下:
第一格表头 | 第二格表头 |
---|---|
内容单元格 第一列第一格 | 内容单元格第二列第一格 |
内容单元格 第一列第二格 多加文字 | 内容单元格第二列第二格 |
链接特别简单,只要使用尖括号扩起来网址即可。
例如$Markdown$:
1 | 这是谷歌的地址<https://www.google.com> |
输出为:
这是谷歌的地址https://www.google.com
也可以建立一个标签,此时需要使用的格式例如Markdown为:
1 | 这是谷歌的地址[Google](https://www.google.com) |
输出为:
这是谷歌的地址Google
图片的格式就是在链接的基础上加上一个**!**即可,注意alt text
是在图片无法显示或找到是显示的,而Title
是在鼠标悬停到图片上显示的内容。
1 |  |
比如Markdown为:
1 |  |
1 | --- |
为了处理图形的交叉引用,我们需要添加一个 Pandoc 插件。
在终端(macOS、Linux)或者命令行(Windows)下,执行:
1 | pip install pandoc-fignos |
1 | header-includes: |
1 | header-includes: |
1 | 质能守恒方程可以用一个很简洁的方程式 $E=mc^2$ 来表达。 |
view 质能守恒方程可以用一个很简洁的方程式 $E=mc^2$ 来表达。
1 | $$\sum_{i=1}^n a_i=0$$ |
1 | \alpha, \beta,... \omega: \Gamma, \Delta, …, \Omega: |
$\alpha .. \beta,.. \omega .. \Gamma .. \Delta .. \Omega:$
1 | ^ 和 _ |
$𝑥_𝑖^2$, $log_2𝑥$
访问 MathJax 参考更多使用方法。
其实$Markdown$最赞的就是代码功能了,各种个样的代码,并且可以上色,格式就是使用三个反斜点来扩起来,比如C预言为例:
1 | ```c |
输出为:
1 | #include <stdio.h> |
目前支持市面上的大部分语言,比如c/c++/python/php/java等等。
$${\boxed{BOXED\ BOLD}}$$
参考样式类似文章中的引用文献,可以做一个标记,全部列在文末,如下所示:
1 | 这篇文章引用了来自 [Google][1] 、[Yahoo][2] 和 [MSN][3]的搜索结果。 |
输出如下:
这篇文章引用了来自 Google 、Yahoo 和 MSN的搜索结果。
在需要添加注脚的文字后加上脚注名字[^注脚名字]
,称为加注。 然后在文本的任意位置(一般在最后)添加脚注,脚注前必须有对应的脚注名字。
注意:经测试脚注与脚注之间必须空一行,不然会失效。成功后会发现,即使你没有把脚注写在文末,经Markdown转换后,也会自动归类到文章的最后。
1 | 使用 Markdown[^1]可以效率的书写文档, 直接转换成 HTML[^2], 你可以使用 Leanote[^Le] 编辑器进行书写。 |
使用 Markdown^1可以效率的书写文档, 直接转换成 HTML^2, 你可以使用 Typora^3 编辑器进行书写。
注:脚注自动被搬运到最后面,请到文章末尾查看,并且脚注后方的链接可以直接跳转回到加注的地方。
网页中,锚点其实就是页内超链接,也就是链接本文档内部的某些元素,实现当前页面中的跳转。
NB:
1 | 跳转到[引用](#ref) |
跳转到引用
其实$Markdown$的语法都可以使用HTML来实现并增强大部分的功能,比如可以使用<font>
来对字体进行设置。
1 | $\color{red} {text}$ |
$\color{red} {red text}$
Coffee break
这样就可以显示不同的颜色了。
1 | 浅红色文字:<font color="#dd0000">浅红色文字:</font><br /> |
浅红色文字:浅红色文字:
深红色文字:深红色文字
浅绿色文字:浅绿色文字
深绿色文字:深绿色文字
浅蓝色文字:浅蓝色文字
深蓝色文字:深蓝色文字
浅黄色文字:浅黄色文字
深黄色文字:深黄色文字
浅青色文字:浅青色文字
深青色文字:深青色文字
浅紫色文字:浅紫色文字
深紫色文字:深紫色文字
size为1:size为1
size为2:size为2
size为3:size为3
size为4:size为4
size为10:size为10
1 | size为1:<font size="1">size为1</font><br /> |
1 | <font face="黑体">我是黑体字</font> |
我是黑体字
我是宋体字
我是微软雅黑字
我是fantasy字
我是Helvetica字
红色字体的微软雅黑
这是黑体字
这是微软雅黑
这是华文彩云
红色字体的微软雅黑
蓝色字体的华文彩云
我是尺寸
我是黑体,绿色,尺寸为5
黄色高亮
利用 标签实现
语法 黄色高亮
页面展示效果如下:
我不知道怎么设置别的颜色的高亮,因为 html 的 style 属性和标签这里都不支持有知道的求告知。
为文字添加背景色
由于 style 标签和标签的 style 属性不被支持,所以这里只能是借助 table, tr, td 等表格标签的 bgcolor 属性来实现背景色。故这里对于文字背景色的设置,只是将那一整行看作一个表格,更改了那个格子的背景色(bgcolor)。
语法如下:
背景色蓝色 |
1
页面展示效果如下:
背景色蓝色
表格添加背景色
表格里的某个格子如何设置背景色呢?
参考下面的例子:
方法说明 | 颜色名称 | 颜色 |
---|---|---|
此处实现方法利用 CSDN-markdown 内嵌 html 语言的优势 | Hotpink | rgb(240, 248, 255) |
借助 table, tr, td 等表格标签的 bgcolor 属性实现背景色设置 | AntiqueWhite | rgb(255, 192, 203) |
页面展示效果如下:
方法说明 颜色名称 颜色
此处实现方法利用 CSDN-markdown 内嵌 html 语言的优势 Hotpink rgb(240, 248, 255)
借助 table, tr, td 等表格标签的 bgcolor 属性实现背景色设置 AntiqueWhite rgb(255, 192, 203)
跨行表格
示例如下:
我占了三行 | 第一列 | 第二列 | 第三列 |
---|---|---|---|
第一列 | 第二列 | 第三列 | |
第一列 | 第二列 | 第三列 |
1 | begin{columns} |
begin{columns}
column{0.5textwidth}
hei
column{0.5textwidth}
Oh
end{columns}
<table style="margin-left: auto; margin-right: auto;">
<tr>
<td>
<!--左侧内容-->
左侧
</td>
<td>
<!--右侧内容-->
右侧
</td>
</tr>
</table>
::: columns
:::: column
COLUMN 1
::::
:::: column
COLUMN 2
::::
::::
Sphinx嵌入Markdown
1 | gantt |
Sphinx可以使用 [recommonmark 来支持Markdown的格式文档。
参考:https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html
为了配置Sphinx支持 Markdown ,根据下面步骤操作即可:
安装 recommonmark:
1 | $ pip install --upgrade recommonmark |
添加 recommonmark 到可支持扩展 list of configured extensions
:
1 | extensions = ['recommonmark'] |
如果希望不只是.md
后缀的也按照Markdown解析,可以使用 source_suffix
,如下使Sphinx 将.md
和 .txt
解析为Markdown:
1 | source_suffix = { |
You can further configure recommonmark to allow custom syntax that standard CommonMark doesn’t support. Read more in the recommonmark documentation.
有时碰到unix换行符转换为windows换行符的问题,特别是脚本,会报错syntax error near unexpected token `$’in\r’’,需要使用dos2unix命令将文件转换为unix格式。
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。
1 | dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...] |
选项
1 | 1. -k:保持输出文件的日期不变 |
最简单的用法就是dos2unix直接跟上文件名:
1 | dos2unix filename |
如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)
1 | dos2unix filename1 filename2 filename3 |
上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。
1 | dos2unix oldfilename newfilename |
如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。
1 | dos2unix -k filename |
当我们同时编译多个文件时,所有未加 static 前缀的全局变量和函数都具有全局可见性。
为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是 sub.c,另一个是 main.c。
下面是 sub.c 的内容:
sub.c 文件代码
1 | char a = 'A'; // global variable |
下面是 main.c 的内容:
main.c 文件代码
1 | int main(void) |
程序的运行结果是:
1 | A Hello World |
在 sub.c 中定义的全局变量 a 和函数 msg 能在 main.c 中使用是因为所有未加 static 前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问。
如果加了 static,就会对其它源文件隐藏。例如在 a 和 msg 的定义前加上 static,main.c 就看不到它们了。
利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。
static 可以用作函数和变量的前缀,对于函数来讲,static 的作用仅限于隐藏,而对于变量,static 还有下面两个作用。
存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和 static 变量,只不过和全局变量比起来,static 可以控制变量的可见范围,说到底 static 还是用来隐藏的。虽然这种用法不常见,但我还是举一个例子。
1 | #include <stdio.h> |
程序的运行结果是:
1 | global local static |
其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是 0x00,某些时候这一特点可以减少程序员的工作量。比如初始化一个稀疏矩阵,我们可以一个一个地把所有元素都置 0,然后把不是 0 的几个元素赋值。如果定义成静态的,就省去了一开始置 0 的操作。再比如要把一个字符数组当字符串来用,但又觉得每次在字符数组末尾加 \0 太麻烦。如果把字符串定义成静态的,就省去了这个麻烦,因为那里本来就是 \0 。
不妨做个小实验验证一下。
1 | #include <stdio.h> |
程序的运行结果如下:
1 | integer: 0; string: (begin)(end) |
最后对 static 的三条作用做一句话总结。首先 static 的最主要功能是隐藏,其次因为 static 变量存放在静态存储区,所以它具备持久性和默认值0。
cowsay
cowsay
顾名思义就是一头牛为你加持,一款让命令行界面生动有趣的工具。
cowsay
可说话、可思考,与fortune加持更可以变为一头睿智的牛。
该命令接受一个文本字符串,并输出一个牛说话的图形。
下面是一头牛在说它喜欢 Linux:
1 | $ cowsay I love linux. |
1 | $ cowsay -e @@ I love linux. |
1 | $ cowsay -T U I love linux. |
一旦将fortune和cowsay结合起来,那简直是一头及其睿智的牛呀。
1 | $ fortune | cowsay |
screenfetch
命令的神奇之处在于其简单而又直观的功能,该命令能够快速地收集系统信息并以一种富有个性的方式展示出来。
从使用的发行版到内核版本,再到处理器和内存,一目了然地展现系统的全貌。
1 | $ screenfetch |