markdown语法备忘笔记

##1. 什么是markdown## ##2. 我选择的markdown编辑器## 首先选择适合自己的markdown编辑器需要考虑几个方面: 平台:Mac OS X, Windows, Online, 插件形式 预览:实时预览、html预览 语法:选定某一款后,适应自己的习惯,不必太复杂 其它:如主题,快捷键,同步等 ###首先来说一下以下几款为什么我没选用:(纯属个人喜好)### Sublime Text的插件markdown preview,编辑和预览是分离的,在浏览器里预览。 CuteMarkEd,独立编辑器,支持多平台,不知道为什么我的编辑和预览窗口字体都那么丑。 MarkdownPad,独立编辑器,windows下口碑比较好的,但我把曾经写好的md文章放进去,格式不太对,应该是语法上略有差别,其它都还好。它多标签页的形式可以加分。 社区活跃,新功能反馈及时,例如 toc replace vim或emacs的markdown插件,windows平台下我还是正常一点吧。 ###习惯采用的编辑器### Haroopad,不得不说韩国人开发的软件体验上超赞,与segmentfault的文章写作一样,左右实时预览,多种主题可选。如果能实现多标签页就更好了。各平台上都可以使用,还有vim编辑模式。 马克飞象,google浏览器插件,专为印象笔记开发的浏览器markdown扩展,用起来特别舒服,自动保存在本地缓存,没有导出html格式或浏览器在线预览的功能,但比MaDe好用多了。(现在有离线客户端版) 在线markdown编辑器(首先你得有网络) [github]:不用多说 MaHua:与Mac OS X上相传甚广的Mou风格类似 cmd markdown:大牛开发的 ##3. 常用markdown语法## 标题/粗斜体 文章内容较多时,可以用标题分段: # 一级标题 # ## 大标题 ## ### 小标题 ### sf只有三级标题 粗体/斜体 *斜体文本* 或 _斜体文本_ 显示成 斜体文本 **粗体文本** 或 __粗体文本__ 显示成 粗体文本 ***粗斜体文本*** 或 ___粗斜体文本___ 显示成 粗斜体文本 代码段 行内代码:`code here` 显示成 code here 代码段落: (可为某种语言指定高亮效果如 ` ` `python,支持bash、javascript、java、sql、xml、html等,有的markdown不支持指定语言) ` ` ` $(document)....

October 25, 2014 · admin

CentOS 6.x 内核升级(2.6.32 -> 3.10.58)过程记录

本人升级的目的是想在CentOS6.2上运行docker,官方建议内核版本在3.8.0及以上,于是就自己从Linux内核官方网站上下载源码,自己编译。 ##1. 准备工作## ###1.1 确认内核及版本信息### [root@hostname ~]# uname -r 2.6.32-220.el6.x86_64 [root@hostname ~]# cat /etc/centos-release CentOS release 6.2 (Final) ###1.2 安装软件### 编译安装新内核,依赖于开发环境和开发库 # yum grouplist //查看已经安装的和未安装的软件包组,来判断我们是否安装了相应的开发环境和开发库; # yum groupinstall "Development Tools" //一般是安装这两个软件包组,这样做会确定你拥有编译时所需的一切工具 # yum install ncurses-devel //你必须这样才能让 make *config 这个指令正确地执行 # yum install qt-devel //如果你没有 X 环境,这一条可以不用 # yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel //创建 CentOS-6 内核时需要它们 如果当初安装系统是选择了Software workstation,上面的安装包几乎都已包含。 ##2. 编译内核## ###2.1 获取并解压内核源码,配置编译项### 去 http://www.kernel.org 首页,可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,因此我选择 3.10.58。 [root@sean ~]# tar -xf linux-3....

October 24, 2014 · admin

Linux进阶培训-tplink

本文没啥实际内容,是给新人做linux培训的第二课进阶篇,主要着眼于体系,把一些工具混个眼熟。 目录 Linux磁盘管理(进阶) Linux内存管理 Linux进程管理(进阶) Linux网络管理(进阶) Linux系统状态监控与调优 常见服务 Linux安全策略 其他 Linux磁盘管理(进阶) ext4文件系统格式 Inode、block、superblock、MBR VFS LVM pv、lv、vg lvdisplay、lvextend、vgdisplay、pvcreate… RAID raid0、raid1、raid5、raid10 r/w速度、磁盘利用率、安全性的权衡 磁盘IO性能 dd、iostat、iotop I/O等待 Linux内存管里(基础) 物理内存与虚拟内存 Swap space,分页存取 buffer与cache区分 内存监控命令 free、vmstat /proc文件系统 Linux进程管理(进阶) 进程与线程 进程优先级 进程监控命令 pidstat、lsof strace(系统调用跟踪) 后台进程 Ctrl+z、jobs、bg、fg、&、nohup screen Linux的网络管理 一些概念 防火墙 路由/网关 子网掩码 网络接口(参数) MAC TCP/IP协议 应用层协议 Linux网络管理 iptables Linux网络管理 主机网络流量监控 iftop、iptraf、sar tcpdump抓包 wireshark数据包分析工具 ##Linux网络管理 iproute2 ip、ss Linux系统状态监控与调优 一些工具 sar、sysstat perf、logwatch 一些配置文件 sysctl.conf limits.conf Linux安全策略 禁止root直接登录 锁定不使用的账号 关闭ipv6 启用防火墙 定期检查日志 … Linux常见服务 tcp_wrappers SSH postfix FTP NFS/Samba DNS Apache/nginx … Linux其他 Linux开机过程分析 pam模块解读lsmod 编译make、ldd、ldconfig、gcc、gdb ACL Linux集群 内核模块 linux编程 … 本文链接地址:http://xgknight....

October 6, 2014 · admin

CentOS 6 服务器安全配置指南(通用)

Linux是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入Linux系统,或者盗取Linux系统上的重要信息。不过,只要我们仔细地设定Linux的各种系统功能,并且加上必要的安全措施,就能让黑客们无机可乘。一般来说,对Linux系统的安全设定包括取消不必要的服务、限制远程存取、隐藏重要资料、修补安全漏洞、采用安全工具以及经常性的安全检查等。 本文是可参考的实际操作,不涉及如IP欺骗这样的原理,而且安全问题也不算几行命令就能预防的,这里只是linux系统上基本的安全加固方法,后续有新的内容再添加进来。 注:所有文件在修改之前都要进行备份如 cp /etc/passwd{,.dist} 1. 禁用不使用的用户 注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。也可以usermod -L或passwd -l user锁定。 cp /etc/passwd{,.bak} 修改之前先备份 vi /etc/passwd 编辑用户,在前面加上#注释掉此行 注释的用户名: # cat /etc/passwd|grep ^# #adm:x:3:4:adm:/var/adm:/sbin/nologin #lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin #shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown #halt:x:7:0:halt:/sbin:/sbin/halt #uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin #operator:x:11:0:operator:/root:/sbin/nologin #games:x:12:100:games:/usr/games:/sbin/nologin #gopher:x:13:30:gopher:/var/gopher:/sbin/nologin #ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin #postfix:x:89:89::/var/spool/postfix:/sbin/nologin 注释的组: # cat /etc/group|grep ^# #adm:x:4:adm,daemon #lp:x:7:daemon #uucp:x:14: #games:x:20: #gopher:x:30: #video:x:39: #dip:x:40: #ftp:x:50: #audio:x:63: #floppy:x:19: #postfix:x:89: 2. 关闭不使用的服务 # chkconfig --list |grep '3:on' 邮件服务,使用公司邮件服务器: service postfix stop chkconfig postfix --level 2345 off 通用unix打印服务,对服务器无用: service cups stop chkconfig cups --level 2345 off 调节cpu速度用来省电,常用在Laptop上:...

September 7, 2014 · admin

在Linux上使用logwatch分析监控日志文件

1. 介绍 在维护Linux服务器时,经常需要查看系统中各种服务的日志,以检查服务器的运行状态。 如登陆历史、邮件、软件安装等日志。系统管理员一个个去检查会十分不方便;且大多时候,这会是一种被动的检查,即只有在发现系统运行异常时才会想到去查看日志以获取异常的信息。那么如何主动、集中的分析这些日志,并产生报告,定时发送给管理员就会显得十分重要。 logwatch 是一款用 Perl 语言编写的开源日志解析分析器。它能对原始的日志文件进行解析并转换成结构化格式的文档,也能根据您的使用情况和需求来定制报告。logwatch 的主要目的是生成更易于使用的日志摘要,并不是用来对日志进行实时的处理和监控的。正因为如此,logwatch 通常被设定好时间和频率的自动定时任务来调度运行或者是有需要日志处理的时候从命令行里手动运行。一旦日志报告生成,logwatch 可以通过电子邮件把这报告发送给您,您可以把它保存成文件或者直接显示在屏幕上。 Logwatch 报告的详细程度和报告覆盖范围是完全可定制化的。Logwatch 的日志处理引擎也是可扩展的,从某种意义上来说,如果您想在一个新的应用程序中使用 logwatch 功能的话,只需要为这个应用程序的日志文件编写一个日志处理脚本(使用 Perl 语言),然后挂接到 logwatch 上就行。 logwatch 有一点不好的就是,在它生成的报告中没有详细的时间戳信息,而原来的日志文件中是存在的。您只能知道被记录下来的一段时间之内的特定事件,如果想要知道精确的时间点的信息,就不得不去查看原日志文件了。 2. 安装与配置说明 2.1 安装 无论在Debian系还是Redhat系上,安装logwatch都非常简单: # apt-get install logwatch //Debian、Ubuntu.etc # yum install logwatch -y //Redhat、Centos.etc 以下内容基于 CentOS 6.x,其余系统相差不大。 2.2 配置 2.2.1 配置文件说明 安装后的目录文件说明: /usr/share/logwatch default.conf/ # 配置目录 logwatch.conf # 主配置文件,收件人,级别等 logfiles/ # 定义待分析服务的日志文件组路径,相对于/var/log(*.conf) services/ # 自定义需分析日志的Service目录(*.conf) scripts/ # 可执行脚本 logwatch.pl # 启动分析的perl脚本,/usr/sbin/logwatch的源链接 logfiles/ # 可包含多个logwatch日志文件组的子目录,对应的日志服务运行的时候,子目录下的脚本会自动被调用 services/ # logwatch日志服务的过滤脚本,一一对应 shared/ # 可被多个logwatch日志服务引用的脚本 dist....

August 23, 2014 · admin

vim编辑器技巧备忘(初级-中级)

“学习vim并且其会成为你最后一个使用的文本编辑器” 学习建议: 丢弃鼠标和小键盘 具有搭配使用各种按键的意识 首先来一张 mindmap : 1. 初级 1.1 编辑模式(Insert Mode) 编辑模式包括以下动作: insert:i在光标所在字符前插入,I在当前行首第一个非空格字符前插入 append:a在光标所在字符后插入,A在行末尾开始插入 open:o在下一行插入新行,O在光标所在行的上一行插入新行 replace:r将光标处字符替换成r紧接的字符;R一直替换字符串,知道ESC键退出,同windows下的Insert键 Ctrl+p:自动提示 [ESC]:回到普通模式 1.2 普通模式(Normal Mode) h, j, k, l ,分别对应 左← 下↓ 上↑ 右→ :q, :q!, :wq 退出 不保存强行退出 保存退出 移动光标到当前行首/非空格,同^,:0 $ 移动光标到当前行尾,同:$ G 移动光标到文档最后一行首 30G 转到第30行,同 :30 9- 光标向上移动9行,同9k 9+ 光饼向下移动9行,同9[space],9j gg 转到文档第一行(1G) H 移动到屏幕的第一列 M 移动到屏幕的中间列 L 移动到屏幕的最后列 w 移动到下一个单词的首字母,(标点符号认为是一个单词,W表示单词以空格分隔) e 移动到下一个单词的末尾,(E认为单词以空格分隔) b 移动到上一个单词的首字母,(B认为单词以空格分隔) fx 移动到下一个字母是x的位置。Fx向上移动。 % 匹配括号移动,包括 (, {, [ ,你需要把光标先移到括号上...

August 7, 2014 · admin

高效Linux bash快捷键及alias总结

bash快捷键 习惯使用编辑的快捷键可以大大提高效率,记忆学习过程要有意识的忽略功能键、方向键和数字小键盘。以下快捷键适用在bash处于默认的Emacs模式下,是由一个名为Readline的库实现的,用户可以通过命令bind添加新快捷键,或者修改系统中已经存在的快捷键。(如果你有set -o vi,就处于 vi 模式就不适用了) 另外下面的内容并不包含所有快捷键,只是我个人适用频率最高的几种,但相信已经可以大大提高工作效率了。以下所有 Alt 键可以以 Esc 键代替。 Ctrl + l :清除屏幕,同clear Ctrl + a :将光标定位到命令的开头 Ctrl + e :与上一个快捷键相反,将光标定位到命令的结尾 Ctrl + u :剪切光标之前的内容,在输错命令或密码 Ctrl + k :与上一个快捷键相反,剪切光标之后的内容 Ctrl + y :粘贴以上两个快捷键所剪切的内容。Alt+y粘贴更早的内容 Ctrl + w :删除光标左边的参数(选项)或内容(实际是以空格为单位向前剪切一个word) Ctrl + / :撤销,同Ctrl+x + Ctrl+u Ctrl + f :按字符前移(右向),同→ Ctrl + b :按字符后移(左向),同← Alt + f :按单词前移,标点等特殊字符与空格一样分隔单词(右向),同Ctrl+→ Alt + b :按单词后移(左向),同Ctrl+← Alt + d :从光标处删除至字尾。可以Ctrl+y粘贴回来 Alt + \ :删除当前光标前面所有的空白字符 Ctrl + d :删除光标处的字符,同Del键。没有命令是表示注销用户...

March 9, 2014 · admin

iptables常用实例备查(更新中)

1. 普通规则 1.1 操作规则 iptables -nL 查看本机关于iptables的设置情况,默认查看的是-t filter,可以指定-t nat iptables-save > iptables.rule 会保存当前的防火墙规则设置,命令行下通过iptables配置的规则在下次重启后会失效,当然这也是为了防止错误的配置防火墙。默认读取和保存的配置文件地址为/etc/sysconfig/iptables。 设置chain默认策略 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 将 INPUT 链默认处理策略设置为DROP,前提是已经存在一条可以访问22端口的规则。这里要说明的是,在添加这类拒绝访问的规则之前,一定要想好执行完,会不会把自己关在防火墙外面,不然就傻眼了。像下面这句。 1.2 限制访问规则 iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT 把这条语句插在input链的最前面(第一条),对状态为ESTABLISHED,RELATED的连接放行。 这条规则在某种情况下甚至比下面开放ssh服务都重要:① 如果INPUT连默认为DROP,② INPUT链默认为INPUT,但存在这条规则-A INPUT -j REJECT --reject-with icmp-host-prohibited,上面两种情况下都必须添加--state RELATED,ESTABLISHED为第一条,否则22端口无法通行,把自己锁在防火墙外面了。 有了这条规则,可保证只要当前ssh没有关闭,哪怕防火墙忘记开启22端口,也可以继续连接。 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 允许所有,不安全,默认。 iptables -A INPUT -s 172....

February 26, 2014 · admin

iptables防火墙原理详解

1. netfilter与iptables Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。Iptables/Netfilter的这些规则可以通过灵活组合,形成非常多的功能、涵盖各个方面,这一切都得益于它的优秀设计思想。 Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能: 网络地址转换(Network Address Translate) 数据包内容修改 以及数据包过滤的防火墙功能 Netfilter 平台中制定了数据包的五个挂载点(Hook Point,我们可以理解为回调函数点,数据包到达这些位置的时候会主动调用我们的函数,使我们有机会能在数据包路由的时候改变它们的方向、内容),这5个挂载点分别是PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING。 Netfilter 所设置的规则是存放在内核内存中的,而 iptables 是一个应用层的应用程序,它通过 Netfilter 放出的接口来对存放在内核内存中的 XXtables(Netfilter的配置表)进行修改。这个XXtables由表tables、链chains、规则rules组成,iptables在应用层负责修改这个规则文件。类似的应用程序还有 firewalld 。 1.1 filter、nat、mangle等规则表 filter表 主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包(如DROP、ACCEPT、REJECT、LOG)。filter 表对应的内核模块为iptable_filter,包含三个规则链: INPUT链:INPUT针对那些目的地是本地的包 FORWARD链:FORWARD过滤所有不是本地产生的并且目的地不是本地(即本机只是负责转发)的包 OUTPUT链:OUTPUT是用来过滤所有本地生成的包 nat表 主要用于修改数据包的IP地址、端口号等信息(网络地址转换,如SNAT、DNAT、MASQUERADE、REDIRECT)。属于一个流的包(因为包 的大小限制导致数据可能会被分成多个数据包)只会经过这个表一次。如果第一个包被允许做NAT或Masqueraded,那么余下的包都会自动地被做相同的操作,也就是说,余下的包不会再通过这个表。表对应的内核模块为 iptable_nat,包含三个链: PREROUTING链:作用是在包刚刚到达防火墙时改变它的目的地址 OUTPUT链:改变本地产生的包的目的地址 POSTROUTING链:在包就要离开防火墙之前改变其源地址 mangle表 主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)指以及为数据包设置Mark标记,以实现Qos(Quality Of Service,服务质量)调整以及策略路由等应用,由于需要相应的路由设备支持,因此应用并不广泛。包含五个规则链——PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD。 raw表 是自1.2.9以后版本的iptables新增的表,主要用于决定数据包是否被状态跟踪机制处理。在匹配数据包时,raw表的规则要优先于其他表。包含两条规则链——OUTPUT、PREROUTING iptables中数据包和4种被跟踪连接的4种不同状态: NEW:该包想要开始一个连接(重新连接或将连接重定向) RELATED:该包是属于某个已经建立的连接所建立的新连接。例如:FTP的数据传输连接就是控制连接所 RELATED出来的连接。--icmp-type 0 ( ping 应答) 就是--icmp-type 8 (ping 请求)所RELATED出来的。 ESTABLISHED :只要发送并接到应答,一个数据连接从NEW变为ESTABLISHED,而且该状态会继续匹配这个连接的后续数据包。 INVALID:数据包不能被识别属于哪个连接或没有任何状态比如内存溢出,收到不知属于哪个连接的ICMP错误信息,一般应该DROP这个状态的任何数据。 1.2 INPUT、FORWARD等规则链和规则 在处理各种数据包时,根据防火墙规则的不同介入时机,iptables供涉及5种默认规则链,从应用时间点的角度理解这些链:...

February 23, 2014 · admin

linux进程后台运行的几种方式

Ctrl+z/bg/nohup/setsid/& 在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了: # ./rsync.sh & # jobs 对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:bg %1,放回前台运行:%1。 但是如上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号,或者setsid将将父进程设为init进程(进程号为1): # nohup ./rsync.sh & # setsid ./rsync.sh & 或 # (./rsync.sh &) ////在一个subshell中执行 # ps -ef|grep rsync nohup 的用途就是让提交的命令忽略 hangup 信号,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。。一般我们可在结尾加上"&“来将命令同时放入后台运行,也可用” > log.out 2>&1"来更改缺省的重定向文件名。 上面的试验演示了使用nohup/setsid加上&使进程在后台运行,同时不受当前shell退出的影响。那么对于已经在后台运行的进程,该怎么办呢?可以使用disown命令: # jobs # disown -h %1 # ps -ef|grep rsync 效果与setid相同,但是disown后无法通过jobs命令查看了。 screen 还有一种更加强大的方式是使用screen,首先创建一个断开模式的虚拟终端,然后用-r选项重新连接这个虚拟终端,在其中执行的任何命令,都能达到nohup的效果,这在有多个命令需要在后台连续执行的时候比较方便。 GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换,可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。 # yum install screen -y 常用screen参数: # screen -S docker-d 新建一个名叫docker-d的session,并马上进入 # screen -dmS docker-d 新建一个名叫docker-d的session,但暂不进入,可用于系统启动脚本里 # screen -ls 列出当前所有session # screen -r docker-d 恢复到zhouxiao这个session,前提是已经是断开状态(-d可以远程断开会话) # screen -x docker-d 连接到离线模式的会话(多窗口同步演示) # screen ....

February 20, 2014 · admin