diff --git a/template/styl/index.styl b/template/styl/index.styl
index f4a0d2212f7..fdcb2bcdb53 100644
--- a/template/styl/index.styl
+++ b/template/styl/index.styl
@@ -1,314 +1,311 @@
@import('mixins/reset.styl')
-@import('mixins/highlight.styl')
+@import('mixins/css.styl')
@import('mixins/markdown.styl')
mq-mobile = "screen and (max-width: 479px)"
a.github-corner {
- position fixed
- z-index 9999
+ position: fixed
+ z-index: 9999
+ top: 0
+ right: 0
+ &:hover {
+ .octo-arm{
+ animation: octocat-wave 560ms ease-in-out
+ }
+ }
+ svg {
+ fill #f1f1f1
+ color #000
+ position absolute
top 0
+ border 0
right 0
- &:hover{
- .octo-arm{
- animation:octocat-wave 560ms ease-in-out
- }
- }
- svg{
- fill #f1f1f1
- color #000
- position absolute
- top 0
- border 0
- right 0
- z-index 99
- width 70px
- height 70px
- }
+ z-index 99
+ width 70px
+ height 70px
+ }
}
-a{
- transition: all .2s ease-in
+a {
+ transition: all .2s ease-in
}
@keyframes octocat-wave{
- 0%,100%{-webkit-transform:rotate(0);transform:rotate(0)}
- 20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}
- 40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}
+ 0%,100%{-webkit-transform:rotate(0);transform:rotate(0)}
+ 20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}
+ 40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}
}
-.header{
- width 517px
- margin 0 auto 0
- padding 0 10px
- .logo{
- text-align center
- padding-top 50px
- padding-bottom 50px
+.header {
+ width 517px
+ margin 0 auto 0
+ padding 0 10px
+ .logo {
+ text-align center
+ padding-top 50px
+ padding-bottom 50px
+ }
+ .box{
+ position relative
+ }
+ .search {
+ min-height 20px
+ position relative
+ display table
+ border-collapse separate
+ li,ul {
+ list-style none
}
- .box{
- position relative
+ #result {
+ .ok {
+ background:#f4f4f4;
+ }
}
- .search{
- min-height 20px
- position relative
- display table
- border-collapse separate
- li,ul{
- list-style none
+ .search-list {
+ position absolute
+ display none
+ z-index 999
+ box-shadow 1px 1px 3px #ededed
+ border 1px solid #d5d5d5
+ background #fff
+ min-width 100px
+ top 39px
+ width 100%
+ padding 5px
+ border-radius 5px 5px 5px 5px
+ li{
+ line-height 23px
+ span{
+ padding 0 8px
+ color #b9b9b9
}
- #result{
- .ok{
- background:#f4f4f4;
- }
+ }
+ a {
+ display block
+ padding 2px 6px 2px 6px
+ color #555555
+ &:hover {
+ background-color #f2f2f2
}
- .search-list{
- position absolute
- display none
- z-index 999
- box-shadow 1px 1px 3px #ededed
- border 1px solid #d5d5d5
- background #fff
- min-width 100px
- top 39px
- width 100%
- padding 5px
- border-radius 5px 5px 5px 5px
- li{
- line-height 23px
- span{
- padding 0 8px
- color #b9b9b9
- }
- }
- a{
- display block
- padding 2px 6px 2px 6px
- color #555555
- &:hover{
- background-color #f2f2f2
- }
- .kw{
- color #f00
- font-style inherit
- font-weight bold
- }
- }
+ .kw {
+ color #f00
+ font-style inherit
+ font-weight bold
}
- .query,.enter-input{
- display table-cell
- transition border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s
+ }
+ }
+ .query, .enter-input {
+ display table-cell
+ transition border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s
+ }
+ .query {
+ resize: none;
+ position relative
+ z-index 2
+ width 100%
+ height 40px
+ padding 6px 12px
+ font-size 14px
+ font-weight bold
+ line-height 1.42857143
+ color #555
+ background-color #fff
+ background-image none
+ border 1px solid $border-color
+ border-radius 5px 0 0 5px
+ -webkit-appearance: none;
+ &:focus {
+ z-index 99
+ border-color #66afe9
+ outline 0
+ box-shadow inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)
+ }
+ }
+ .enter-input {
+ width 1%
+ white-space nowrap
+ vertical-align middle
+ button {
+ margin 0
+ left -1px
+ position relative
+ z-index 5
+ display inline-block
+ padding 9px 23px
+ font-size 14px
+ font-weight bold
+ line-height 1.42857143
+ text-align center
+ text-rendering auto
+ white-space nowrap
+ vertical-align middle
+ touch-action manipulation
+ cursor pointer
+ user-select none
+ background-image none
+ background-color #fff
+ border 1px solid transparent
+ border-collapse separate
+ border-radius 0 5px 5px 0
+ border-color $border-color
+ color #333
+ &:focus,&:active:focus{
+ outline thin dotted
+ outline 5px auto -webkit-focus-ring-color
+ outline-offset -2px
}
- .query{
- resize: none;
- position relative
- z-index 2
- width 100%
- height 40px
- padding 6px 12px
- font-size 14px
- font-weight bold
- line-height 1.42857143
- color #555
- background-color #fff
- background-image none
- border 1px solid $border-color
- border-radius 5px 0 0 5px
- -webkit-appearance: none;
- &:focus{
- z-index 99
- border-color #66afe9
- outline 0
- box-shadow inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)
- }
+ &:active{
+ color #333
+ background-color #e6e6e6
+ border-color #b4b4b4
+ background-image none
+ box-shadow inset 0 8px 32px -8px rgba(0,0,0,0.3)
}
- .enter-input{
- width 1%
- white-space nowrap
- vertical-align middle
- button{
- margin 0
- left -1px
- position relative
- z-index 5
- display inline-block
- padding 9px 23px
- font-size 14px
- font-weight bold
- line-height 1.42857143
- text-align center
- text-rendering auto
- white-space nowrap
- vertical-align middle
- touch-action manipulation
- cursor pointer
- user-select none
- background-image none
- background-color #fff
- border 1px solid transparent
- border-collapse separate
- border-radius 0 5px 5px 0
- border-color $border-color
- color #333
- &:focus,&:active:focus{
- outline thin dotted
- outline 5px auto -webkit-focus-ring-color
- outline-offset -2px
- }
- &:active{
- color #333
- background-color #e6e6e6
- border-color #b4b4b4
- background-image none
- box-shadow inset 0 8px 32px -8px rgba(0,0,0,0.3)
- }
- &:focus{
- color #333
- background-color #e6e6e6
- border-color #999
- text-decoration none
- }
- &:hover{
- color #333
- background-color #e6e6e6
- border-color #b4b4b4
- }
- }
+ &:focus{
+ color #333
+ background-color #e6e6e6
+ border-color #999
+ text-decoration none
}
+ &:hover{
+ color #333
+ background-color #e6e6e6
+ border-color #b4b4b4
+ }
+ }
}
+ }
}
.footer{
- text-align center
- padding-top 31px
- color #616161
- font-size 14px
- font-weight 300
- border-top: 1px solid #efefef;
- padding-bottom: 50px;
- &.footer_index {
- border-top: 0
- }
+ text-align center
+ padding-top 31px
+ color #616161
+ font-size 14px
+ font-weight 300
+ border-top: 1px solid #efefef;
+ padding-bottom: 50px;
+ &.footer_index {
+ border-top: 0
+ }
}
-.header.header_list{
- width auto
- position fixed
- width 100%
- background #fff
- z-index 99
+.header.header_list {
+ width auto
+ position fixed
+ width 100%
+ background #fff
+ z-index 99
}
.header_list{
- padding 10px 10px 10px 13px
- border-bottom 1px solid #EEEEEE
- .logo{
- float left
- padding-top 3px
- padding-bottom 0
- padding-right 24px
- text-align left
- svg{
- height 37px
- width 136px
- }
- }
- .search{
- max-width 517px
- }
- .footer{
- display none
+ padding 10px 10px 10px 13px
+ border-bottom 1px solid #EEEEEE
+ .logo{
+ float left
+ padding-top 3px
+ padding-bottom 0
+ padding-right 24px
+ text-align left
+ svg{
+ height 37px
+ width 136px
}
+ }
+ .search{
+ max-width 517px
+ }
+ .footer{
+ display none
+ }
}
.search_list{
- padding 79px 27px
- a{
- font-size 16px
- strong{
- font-weight bold
- }
- .kw{
- color #f00
- font-style inherit
- font-weight bold
- }
- &:hover{
- .kw{
- color #333
- }
- }
+ padding 79px 27px
+ a{
+ font-size 16px
+ strong{
+ font-weight bold
}
- li{
- padding 10px 0 10px 0
- list-style-type none
- p{
- padding-top 5px
- color #4F4F4F
- }
+ .kw{
+ color #f00
+ font-style inherit
+ font-weight bold
}
-
+ &:hover{
+ .kw{
+ color #333
+ }
+ }
+ }
+ li{
+ padding 10px 0 10px 0
+ list-style-type none
+ p {
+ padding-top 5px
+ color #4F4F4F
+ }
+ }
}
.hotlist{
- padding 79px 27px
- a{
- font-size 16px
- strong{
- font-weight bold
- }
- &:hover{
- }
+ padding 79px 27px
+ a{
+ font-size 16px
+ strong{
+ font-weight bold
}
- li{
- padding 5px 0 5px 0
- list-style-type none
- p{
- padding-top 5px
- color #4F4F4F
- }
+ &:hover{ }
+ }
+ li{
+ padding 5px 0 5px 0
+ list-style-type none
+ p{
+ padding-top 5px
+ color #4F4F4F
}
-
+ }
}
@media mq-mobile{
- .header{
- width inherit
- .search .enter-input {
- button{
- padding: 9px 14px;
- }
- }
+ .header{
+ width inherit
+ .search .enter-input {
+ button{
+ padding: 9px 14px;
+ }
}
- .header_list{
- .logo svg{
- width 96px
- }
- .search {
- .query{
- line-height 31px
- }
- }
+ }
+ .header_list{
+ .logo svg{
+ width 96px
}
- .header_list .logo{
- float inherit
- padding-right 10px
- padding-top 8px
- padding-bottom 14px
- text-align center
- }
- div.markdown-body{
- padding: 10px 10px 10px 13px;
- }
- div.markdown-body .edit_btn + *{
- margin-top: 0 !important;
+ .search {
+ .query{
+ line-height 31px
+ }
}
- div.markdown-body .edit_btn{
- top: 9px;
- a{
- background #f1f1f1
- color #a3a3a3
- }
+ }
+ .header_list .logo{
+ float inherit
+ padding-right 10px
+ padding-top 8px
+ padding-bottom 14px
+ text-align center
+ }
+ div.markdown-body{
+ padding: 10px 10px 10px 13px;
+ }
+ div.markdown-body .edit_btn + *{
+ margin-top: 0 !important;
+ }
+ div.markdown-body .edit_btn{
+ top: 9px;
+ a{
+ background #f1f1f1
+ color #a3a3a3
}
+ }
}
\ No newline at end of file
diff --git a/template/styl/mixins/css.styl b/template/styl/mixins/css.styl
new file mode 100644
index 00000000000..c7802b23d1f
--- /dev/null
+++ b/template/styl/mixins/css.styl
@@ -0,0 +1,19 @@
+.language-css,
+.language-styl,
+.language-less,
+.language-scss,
+.language-sass {
+ color: #005cc5;
+ .punctuation {
+ color: #24292e;
+ }
+ .selector {
+ color: #6749BA;
+ }
+ .property {
+ color: #005cc5;
+ }
+ .atrule {
+ color: #d73a49;
+ }
+}
\ No newline at end of file
diff --git a/template/styl/mixins/highlight.styl b/template/styl/mixins/highlight.styl
deleted file mode 100644
index d3a46694977..00000000000
--- a/template/styl/mixins/highlight.styl
+++ /dev/null
@@ -1,53 +0,0 @@
-.hljs{
- display:block;overflow-x:auto;padding:0.5em;color:#333;background:#f8f8f8
-}
-.hljs-quote{
- font-style:italic;
-}
-.hljs-comment,.hljs-quote{
- color:#998;
-}
-.hljs-keyword,.hljs-selector-tag,.hljs-subst{
- color:#333;font-weight:bold
-}
-.hljs-number,.hljs-literal,.hljs-variable,.hljs-template-variable,.hljs-tag .hljs-attr{
- color:#008080
-}
-.hljs-string,.hljs-doctag{
- color:#d14
-}
-.hljs-title,.hljs-section,.hljs-selector-id{
- color:#900;font-weight:bold
-}
-.hljs-subst{
- font-weight:normal
-}
-.hljs-type,.hljs-class .hljs-title{
- color:#458;font-weight:bold
-}
-.hljs-tag,.hljs-name,.hljs-attribute{
- color:#000080;font-weight:normal
-}
-.hljs-regexp,.hljs-link{
- color:#009926
-}
-.hljs-symbol,.hljs-bullet{
- color:#990073
-}
-.hljs-built_in,.hljs-builtin-name{
- color:#0086b3
-}
-.hljs-meta{
- color:#999;font-weight:bold
-}
-.hljs-deletion{
- background:#fdd
-}
-.hljs-addition{
- background:#dfd
-}
-.hljs-emphasis{
- font-style:italic
-}
-.hljs-strong{
- font-weight:bold}
\ No newline at end of file
diff --git a/template/styl/mixins/markdown.styl b/template/styl/mixins/markdown.styl
index 925bcd9dcf0..ca78d37b459 100644
--- a/template/styl/mixins/markdown.styl
+++ b/template/styl/mixins/markdown.styl
@@ -1,164 +1,212 @@
-div.markdown-body
- .edit_btn{
- position relative
- right 0
- float right
- top 48px
- z-index 2
- .split{
- display inline-block
- height 13px
- vertical-align middle
- width 1px
- border-left 1px solid #dfdfdf
- margin -1px 0 0 0
- }
- a{
- text-decoration none
- background #2196F3
- color #fff
- border-radius 3px
- padding 2px 5px
- &:hover{
- color #333
- background #e6e6e6
- }
- }
+.markdown-body {
+ padding 70px 35px 30px 35px
+ word-wrap break-word
+ font-family "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif
+ font-size 14px
+ line-height 1.6
+ color #333
+ @media mq-mobile {
+ padding-right 0
+ }
+ .edit_btn {
+ position relative
+ right 0
+ float right
+ top 48px
+ z-index 2
+ .split {
+ display inline-block
+ height 13px
+ vertical-align middle
+ width 1px
+ border-left 1px solid #dfdfdf
+ margin -1px 0 0 0
}
- padding 70px 35px 30px 35px
- word-wrap break-word
- font-family "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif
- font-size 14px
- line-height 1.6
- color #333
- @media mq-mobile
- padding-right 0
- &>*:first-child
- margin-top 0 !important
- strong
- font-weight bold
- hr
- border-top 1px solid #CACACA
- border-width 1px 0 0 0
- em
- font-style italic
- img
- max-width 100%
- h1,h2,h3,h4,h5,h6
- position relative
- margin-top 1em
- margin-bottom 16px
- font-weight bold
- line-height 1.4
- a
- display none
- &:hover a
- display inline
- color #000
- font-size 85%
- h1,h2
- border-bottom 1px solid #eee
- h1
- font-size 2.25em
- line-height 1.2
- padding-bottom 0.3em
- h2
- padding-bottom 0.3em
- font-size 1.50em
- line-height 1.225
- // border-bottom:1px solid #DEDEDE
- blockquote
- padding 0 15px
- color #777
- border-left 4px solid #ddd
- margin 0;
- &>:last-child
- margin-bottom 0
- &>:first-child
- margin-top 0
- p,blockquote,ul,ol,dl,table,pre
- margin-top 0;
- margin-bottom 16px
- ul,ol
- padding-left 1.4em
- list-style:initial
- ol
- list-style-type decimal
- ol ol, ul ol
- list-style-type lower-roman
- ul ul ol, ul ol ol, ol ul ol, ol ol ol
- list-style-type lower-alpha
- pre
- margin-top: 1.5em
- margin-bottom: 1.5em
- line-height: 1.3
- word-break: break-all
- word-wrap: break-word
- color: rgb(51, 51, 51)
- border: none
- position: relative
- background-color #f7f7f9
- border-radius 3px
- font "Source Code Pro", Consolas, Menlo, Monaco, "Courier New", monospace
- font-size 0.93em
- -webkit-overflow-scrolling touch
- code
- padding: 0.7em
- overflow: auto
- max-height: 35em
- background-color transparent
- color inherit
- line-height 1.4
- display block
- font-size 0.93em
- box-sizing: border-box
- border-radius: 0px
- white-space: inherit
- overflow-wrap: normal
- word-wrap:normal!important
- font: 12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
- // code:before,code:after,tt:before,tt:after
- // letter-spacing 0
- // content ""
- code,tt
- padding 0
- padding-bottom 2px
- margin 0 3px
- vertical-align top
- background-color #EDEDF7
- border-radius 4px
- padding-left 3px
- padding-right 3px
- font-size 14px
- color #6F5990
- padding-top 2px
- // code:before,code:after,tt:before,tt:after
- // content "\00a0"
- // vertical-align text-top
- // display inline-block
- // width 0px
- table
- width 100%
- border-collapse collapse
- border-spacing 0
- max-width 100%
- display block
- background-color transparent
- th,td
- border 1px solid #ddd
- padding 4px 10px
- th
- font-weight bold
- background #F3F3F3
- tr:nth-child(2n)
- background-color #f8f8f8
- tbody
- background #fff
-
-// markdown 增强样式
-.markdown-body
- .task-list-item
- padding 0
- li
- list-style-type none
\ No newline at end of file
+ a {
+ text-decoration none
+ background #2196F3
+ color #fff
+ border-radius 3px
+ padding 2px 5px
+ &:hover{
+ color #333
+ background #e6e6e6
+ }
+ }
+ }
+
+ pre {
+ margin-top: 1.5em
+ margin-bottom: 1.5em
+ line-height: 1.3
+ word-break: break-all
+ word-wrap: break-word
+ color: rgb(51, 51, 51)
+ border: none
+ position: relative
+ background-color: #f7f7f9
+ border-radius: 3px
+ font: "Source Code Pro", Consolas, Menlo, Monaco, "Courier New", monospace
+ font-size: 0.93em
+ -webkit-overflow-scrolling: touch
+ code {
+ padding: 0.7em
+ overflow: auto
+ max-height: 35em
+ background-color transparent
+ color inherit
+ line-height 1.4
+ display block
+ font-size 0.93em
+ box-sizing: border-box
+ border-radius: 0px
+ white-space: inherit
+ overflow-wrap: normal
+ word-wrap: normal!important
+ }
+ }
+ .class-name {
+ color: #000896;
+ }
+ .comment,
+ .quote {
+ color: #998;
+ }
+
+ .keyword,
+ .selector-tag,
+ .subst {
+ color: #d73a49;
+ }
+
+ .key,
+ .number,
+ .literal,
+ .variable,
+ .template-variable,
+ .tag .attr {
+ color: #008080;
+ }
+
+ .string, .doctag {
+ color: #0065da;
+ }
+
+ .title,
+ .section,
+ .selector-id {
+ color: #900;
+ font-weight: bold;
+ }
+
+ .subst {
+ font-weight: normal;
+ }
+
+ .type,
+ .class .title {
+ color: #458;
+ font-weight: bold;
+ }
+
+ .function, .operator {
+ color: #000bc5;
+ }
+ .tag,
+ .name,
+ .attribute {
+ color: #002ade;
+ font-weight: normal;
+ }
+
+ .url {
+ color: #3c04ff;
+ }
+
+ .boolean {
+ color: #005cc5;
+ }
+
+ .property {
+ color: #032f62;
+ }
+
+ .null, .selector {
+ color: #005cc5;
+ }
+
+ .constant {
+ color: #d73a49;
+ }
+
+ .punctuation {
+ color: #A595A5;
+ }
+ .attr-name {
+ color: #8F4919;
+ }
+ .attr-value {
+ color: #13239F;
+ }
+ .tag {
+ .punctuation {
+ color: #A595A5;
+ }
+ .attr-name {
+ color: #8F4919;
+ }
+ .attr-value {
+ color: #13239F;
+ }
+ .attr-value .punctuation,
+ .script-punctuation {
+ color: #A595A5;
+ }
+ .script .keyword {
+ color: #090080;
+ }
+ .language-javascript {
+ color: #6f42c1;
+ }
+ }
+
+ .regexp, .regex,
+ .link {
+ color: #009926;
+ }
+
+ .symbol,
+ .bullet {
+ color: #990073;
+ }
+
+ .built_in,
+ .builtin-name {
+ color: #0086b3;
+ }
+
+ .meta {
+ color: #999;
+ font-weight: bold;
+ }
+
+ .deletion {
+ background: #fdd;
+ }
+
+ .addition {
+ background: #dfd;
+ }
+
+ .emphasis {
+ font-style: italic;
+ }
+
+ .strong {
+ font-weight: bold;
+ }
+ .shebang, .important {
+ color: #FF1717;
+ }
+}
\ No newline at end of file
diff --git a/template/styl/mixins/reset.styl b/template/styl/mixins/reset.styl
index 56f43e43945..8c5aca08bb7 100644
--- a/template/styl/mixins/reset.styl
+++ b/template/styl/mixins/reset.styl
@@ -1,22 +1,22 @@
body,html,ul,li,p{
- margin 0
- padding 0
+ margin 0
+ padding 0
}
body,html{
- font-size 12px
- font-family 'HanHei SC','PingFang SC','Helvetica Neue','Helvetica','STHeitiSC-Light','Arial',sans-serif
+ font-size 12px
+ font-family 'HanHei SC','PingFang SC','Helvetica Neue','Helvetica','STHeitiSC-Light','Arial',sans-serif
}
html{
- -webkit-tap-highlight-color rgba(0,0,0,0)
+ -webkit-tap-highlight-color rgba(0,0,0,0)
}
a {
- text-decoration none
- &:hover{
- color #333
- }
+ text-decoration none
+ &:hover{
+ color #333
+ }
}
* {
- box-sizing border-box
+ box-sizing border-box
}
$border-color = #D5D5D5
\ No newline at end of file
From 8df9b8908f4b2721492a9da7a264acd57da600d7 Mon Sep 17 00:00:00 2001
From: jaywcjlove <398188662@qq.com>
Date: Thu, 27 Sep 2018 01:50:30 +0800
Subject: [PATCH 0005/1081] Refactor the build script.
---
build/build.js | 306 +++++++
build/compile.js | 396 ----------
build/crawler.js | 160 ----
build/deploy.js | 43 +-
dist/data.json | 2 +-
package-lock.json | 1926 +++++++++------------------------------------
package.json | 31 +-
7 files changed, 698 insertions(+), 2166 deletions(-)
create mode 100644 build/build.js
delete mode 100644 build/compile.js
delete mode 100644 build/crawler.js
diff --git a/build/build.js b/build/build.js
new file mode 100644
index 00000000000..360e0b4c8cf
--- /dev/null
+++ b/build/build.js
@@ -0,0 +1,306 @@
+const path = require('path');
+const ejs = require('ejs');
+const FS = require('fs-extra');
+const marked = require('marked');
+const stylus = require('stylus');
+const Prism = require('prismjs');
+const loadLanguages = require('prismjs/components/');
+const UglifyJS = require("uglify-js");
+const colors = require('colors-cli/toxic');
+
+const renderer = new marked.Renderer();
+renderer.heading = (text, level) => {
+ if (/[\u4E00-\u9FA5]/i.test(text)) {
+ return '' + text + '';
+ } else {
+ var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');
+ return '' + text + '';
+ }
+}
+
+marked.setOptions({
+ renderer: renderer,
+ gfm: true,
+ tables: true,
+ breaks: false,
+ pedantic: false,
+ sanitize: false,
+ smartLists: true,
+ smartypants: false,
+ highlight: (code, lang, callback) => {
+ if (/(tex)$/.test(lang)) lang = 'latex';
+ if (/(h)$/.test(lang)) lang = 'c';
+ if (/(js)$/.test(lang)) lang = 'javascript';
+ if (/(tsx)$/.test(lang)) lang = 'jsx';
+ if (/(bat)$/.test(lang)) lang = 'batch';
+ if (/(py)$/.test(lang)) lang = 'python';
+ if (/(rb)$/.test(lang)) lang = 'ruby';
+ if (/(gitconfig|editorconfig|gitmodules)$/.test(lang)) lang = 'ini';
+ if (/(yml)$/.test(lang)) lang = 'yaml';
+ if (/(styl)$/.test(lang)) lang = 'stylus';
+ if (/(stylelintrc|postcssrc)$/.test(lang)) lang = 'json';
+ if (/(sh|shell|bash|bats|cgi|command|fcgi|ksh|sh.in|tmux|tool|zsh|bash_history|bash_logout|bash_profile|bashrc|cshrc|login|profile|zlogin|zlogout|zprofile|zshenv|zshrc)$/.test(lang)) lang = 'bash';
+ if (/(ps1|psm1)$/.test(lang)) lang = 'powershell';
+ if (/^(html|htm|xml|ejs)/.test(lang)) lang = 'html';
+ lang = lang ? lang : 'bash';
+ loadLanguages([lang]);
+ let html = code;
+ if (Prism.languages[lang]) {
+ html = Prism.highlight(code, Prism.languages[lang], lang);
+ }
+ return callback('', html);
+ }
+});
+
+const deployDir = path.resolve(process.cwd(), '.deploy');
+const faviconPath = path.resolve(process.cwd(), 'template', 'img', 'favicon.ico');
+const rootIndexJSPath = path.resolve(process.cwd(), 'template', 'js', 'index.js');
+const dataJsonPath = path.resolve(process.cwd(), 'dist', 'data.json');
+const cssPath = path.resolve(deployDir, 'css', 'index.css');
+
+let markdownIndexData = [];
+
+mkdirs(deployDir)
+ .then(dir => emptyDir(dir))
+ .then(dir => {
+ ensureDir(path.resolve(dir, 'img'));
+ ensureDir(path.resolve(dir, 'js'));
+ ensureDir(path.resolve(dir, 'css'));
+ ensureDir(path.resolve(dir, 'c'));
+ })
+ .then(() => FS.copySync(faviconPath, path.resolve(deployDir, 'img', 'favicon.ico')))
+ .then(() => FS.readFileSync(rootIndexJSPath))
+ .then((data) => {
+ FS.outputFileSync(path.resolve(deployDir, 'js', 'index.js'), UglifyJS.minify(data.toString()).code)
+ })
+ .then(dir => readMarkdownPaths(path.resolve(process.cwd(), 'command')))
+ .then(dirs => createDataJSON(dirs))
+ .then(data => {
+ FS.outputFileSync(dataJsonPath, JSON.stringify(data.json));
+ FS.outputFileSync(path.resolve(deployDir, 'js', 'dt.js'), `var linux_commands=${JSON.stringify(data.data)}`);
+ markdownIndexData = data.data;
+ })
+ .then(() => createTmpToHTML(
+ path.resolve(process.cwd(), 'template', 'index.ejs'),
+ path.resolve(deployDir, 'index.html'),
+ {
+ p: '/index.html',
+ n: 'Linux命令搜索引擎',
+ d: '最专业的Linux命令大全,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。',
+ command_length: markdownIndexData.length
+ }
+ ))
+ .then(() => createTmpToHTML(
+ path.resolve(process.cwd(), 'template', 'list.ejs'),
+ path.resolve(deployDir, 'list.html'),
+ {
+ p: '/list.html',
+ n: '搜索',
+ d: '最专业的Linux命令大全,命令搜索引擎,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。',
+ command_length: markdownIndexData.length
+ }
+ ))
+ .then(() => createTmpToHTML(
+ path.resolve(process.cwd(), 'template', 'hot.ejs'),
+ path.resolve(deployDir, 'hot.html'),
+ {
+ p: '/hot.html',
+ n: '搜索',
+ d: '最专业的Linux命令大全,命令搜索引擎,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。',
+ arr: markdownIndexData,
+ command_length: markdownIndexData.length
+ }
+ ))
+ .then(() => {
+ markdownIndexData.forEach(async (item, idx) => {
+ item.command_length = markdownIndexData.length;
+ await createTmpToHTML(
+ path.resolve(process.cwd(), 'template', 'details.ejs'),
+ path.resolve(deployDir, 'c', `${item.n}.html`),
+ item,
+ path.resolve(process.cwd(), 'command'),
+ );
+ })
+ })
+ .then(() => {
+ return createStylToCss(
+ path.resolve(process.cwd(), 'template', 'styl', 'index.styl'),
+ path.resolve(deployDir, 'css', 'index.css'),
+ );
+ })
+ .then((css) => FS.outputFileSync(cssPath, css))
+ .then(() => console.log(` ${'→'.green} ${markdownIndexData.length}`))
+ .catch((err) => {
+ if (err && err.message) {
+ console.log(`\n ERROR :> ${err.message.red_bt}\n`)
+ }
+ });
+
+/**
+ * Create a directory
+ * @param {String} dir
+ */
+function mkdirs(dir) {
+ return new Promise((resolve, reject) => {
+ FS.ensureDir(dir, err => {
+ err ? reject(err) : resolve(dir);
+ })
+ });
+}
+
+/**
+ * Empty a directory
+ * @param {String} dir
+ */
+function emptyDir(dir) {
+ return new Promise((resolve, reject) => {
+ FS.emptyDir(dir, err => {
+ err ? reject(err) : resolve(dir);
+ })
+ });
+}
+
+/**
+ * Ensures that the directory exists.
+ * @param {String} dir
+ */
+function ensureDir(dir) {
+ return new Promise((resolve, reject) => {
+ try {
+ FS.ensureDirSync(dir);
+ resolve(dir);
+ } catch (err) {
+ reject(err);
+ }
+ });
+}
+
+/**
+ * [createStylToCss 生成CSS]
+ * @param {[type]} stylPath stylus path
+ * @param {[type]} cssPath css path
+ */
+function createStylToCss(stylPath) {
+ return new Promise((resolve, reject) => {
+ try {
+ const stylStr = FS.readFileSync(stylPath, 'utf8');
+ stylus(stylStr.toString())
+ .set('filename', stylPath)
+ .set('compress', true)
+ .render((err, css) => {
+ if (err) throw err;
+ resolve(css);
+ });
+ } catch (err) {
+ reject(err);
+ }
+ });
+}
+
+/**
+ *
+ * @param {String} fromPath ejs path
+ * @param {String} toPath html path
+ */
+function createTmpToHTML(fromPath, toPath, desJson, mdPath) {
+ return new Promise((resolve, reject) => {
+ try {
+ let relative_path = '';
+ const current_path = toPath.replace(new RegExp(`${deployDir}`), '');
+ const tmpStr = FS.readFileSync(fromPath);
+ let mdPathName = '';
+ if (mdPath) {
+ // CSS/JS 引用相对地址
+ relative_path = '../';
+ mdPathName = `/command/${desJson.n}.md`;
+ }
+ // 生成 HTML
+ let html = ejs.render(tmpStr.toString(), {
+ filename: fromPath,
+ relative_path, // 当前文件相对于根目录的相对路径
+ md_path: mdPathName || '', // markdown 路径
+ current_path, // 当前 html 路径
+ describe: desJson ? desJson : {}, // 当前 md 的描述
+ }, { filename: fromPath });
+
+ if (mdPath) {
+ const READMESTR = FS.readFileSync(path.resolve(mdPath, `${desJson.n}.md`));
+ marked(READMESTR.toString(), (err, mdhtml) => {
+ if (err) return reject(err);
+ html = html.replace(/{{content}}/, mdhtml);
+ FS.outputFileSync(toPath, html);
+ console.log(` ${'→'.green} ${toPath.replace(process.cwd(), '')}`);
+ resolve(html);
+ });
+ } else {
+ FS.outputFileSync(toPath, html);
+ console.log(` ${'→'.green} ${toPath.replace(process.cwd(), '')}`);
+ resolve(html);
+ }
+ } catch (err) {
+ reject(err);
+ }
+ });
+}
+
+/**
+ * Ensures that the directory exists.
+ * @param {String} pathArr
+ */
+function createDataJSON(pathArr) {
+ return new Promise((resolve, reject) => {
+ try {
+ const commandData = {};
+ const indexes = [];
+ pathArr.forEach((mdPath, i) => {
+ const json = {}
+ const con = FS.readFileSync(mdPath);
+ const str = con.toString();
+ let title = str.match(/[^===]+(?=[===])/g);
+ title = title[0] ? title[0].replace(/\n/g, '') : title[0];
+ title = title.replace(/\r/, '')
+ // 命令名称
+ json["n"] = title;
+ // 命令路径
+ json["p"] = `/${path.basename(mdPath, '.md').replace(/\\/g, '/')}`;
+ // 命令描述
+ let des = str.match(/\n==={1,}([\s\S]*?)##/i);
+ if (!des) {
+ throw `格式错误: ${mdPath}`;
+ }
+ des = des[1] ? des[1].replace(/\n/g, '') : des[1];
+ des = des.replace(/\r/g, '')
+ json["d"] = des;
+ indexes.push(json);
+ commandData[title] = json;
+ })
+ resolve({
+ json: commandData,
+ data: indexes
+ });
+ } catch (err) {
+ reject(err);
+ }
+ });
+}
+
+/**
+ * 返回 MD 所有路径的 Array
+ * @param {String} filepath
+ */
+function readMarkdownPaths(filepath) {
+ return new Promise((resolve, reject) => {
+ try {
+ let pathAll = [];
+ const files = FS.readdirSync(filepath);
+ for (let i = 0; i < files.length; i++) {
+ if (/\.md$/.test(files[i])) {
+ pathAll.push(path.join(filepath, files[i]));
+ }
+ }
+ resolve(pathAll);
+ } catch (err) {
+ reject(err);
+ }
+ });
+}
diff --git a/build/compile.js b/build/compile.js
deleted file mode 100644
index 82b88692f4c..00000000000
--- a/build/compile.js
+++ /dev/null
@@ -1,396 +0,0 @@
-var exec = require('child_process').exec;
-var fs = require('fs');
-var ejs = require('ejs');
-var path = require('path');
-var marked = require('marked');
-var watch = require('watch');
-var stylus = require('stylus')
-var highlight = require('highlight.js')
-var UglifyJS = require("uglify-js");
-var renderer = new marked.Renderer();
-var color = require('colors-cli/safe');
-var error = color.red.bold;
-var warn = color.yellow;
-var notice = color.blue;
-var success = color.green;
-
-// console.log("该行代码所在的目录::",__dirname);
-// console.log("当前运行的的根目录::",path.dirname(__dirname));
-// console.log("当前目录名字::",path.basename(process.cwd()));
-// console.log("当前目录::",process.cwd());
-
-renderer.heading = function (text, level) {
- if(/[\u4E00-\u9FA5]/i.test(text)){
- return ''+text+'';
- }else{
- var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');
- return ''+text+'';
- }
-}
-
-marked.setOptions({
- renderer: renderer,
- gfm: true,
- tables: true,
- breaks: false,
- pedantic: false,
- sanitize: false,
- smartLists: true,
- smartypants: false,
- highlight: function (code, lang, callback) {
- lang = lang?lang:"bash";
- return callback('',highlight.highlight(lang,code).value);
- }
- // highlight: function (code, lang, callback) {
- // if(lang){
- // return highlight.highlight(lang,code).value;
- // // return callback('',highlight.highlight(lang,code).value);
- // }else{
- // return highlight.highlightAuto(code).value;
- // // return callback('',highlight.highlightAuto(code).value);
- // }
- // }
-});
-
-// 根目录
-// var path_root = path.dirname(__dirname);
-var path_root = process.cwd();
-
-
-// 删除文件夹
-exec('rm -rf .deploy');
-
-// .deploy
-// 当前项目根目录
-// 生成 项目所需的文件
-CreateDatajs('./.deploy/js/dt.js',function(dt_path,arr){
-
-
- // 拷贝 favicon.ico 文件 start
- var filetopath = path.join(process.cwd(),'/template/img/favicon.ico');
- var topath = '.deploy/img/favicon.ico'
-
- mkdirsSync(path.join(process.cwd(),'.deploy/img/'));
- // 创建读取流
- readable = fs.createReadStream( filetopath );
- // 创建写入流
- writable = fs.createWriteStream(topath);
- // 通过管道来传输流
- readable.pipe( writable);
- console.log(success(" → ")+topath + '');
- // 拷贝 favicon.ico 文件 end
-
-
- CreateJS('/template/js/index.js','/.deploy/js/index.js')
-
- CreateStyl('/template/styl/index.styl','/.deploy/css/index.css')
-
- // 首页生成
- ReadTmpToHTML('/template/index.ejs','/.deploy/index.html',null,{
- 'p':'/index.html',
- 'n':'Linux命令搜索引擎',
- 'd':'最专业的Linux命令大全,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。',
- 'command_length':arr.length
- });
- ReadTmpToHTML('/template/list.ejs','/.deploy/list.html',null,{
- p:'/list.html',
- n:'搜索',
- d: '最专业的Linux命令大全,命令搜索引擎,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。',
- command_length: arr.length
- });
-
- ReadTmpToHTML('/template/hot.ejs','/.deploy/hot.html',null,{
- p:'/hot.html',
- n:'搜索',
- d:'最专业的Linux命令大全,命令搜索引擎,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。',
- arr: arr,
- command_length: arr.length
- });
- // 文章批量生成
- arr.forEach(function(itm,idx){
- var ejstpm = path.join('/template/',itm.p);
- var md_path = path.join('/command',itm.p);
- var dep = path.join('/.deploy/c',itm.p);
- itm.command_length = arr.length;
- ReadTmpToHTML('/template/details.ejs', dep+'.html' ,md_path+'.md', itm ,arr)
- });
-
- console.log(success(" → "),arr.length)
-
-})
-
-function copy(src, dst) {
- fs.createReadStream(src).pipe(fs.createWriteStream(dst));
-}
-
-
-// // 监听实时编译
-// watch.watchTree(path.join(path.dirname(__dirname),'/'), function (f, curr, prev) {
-// if (typeof f == "object" && prev === null && curr === null) {
-// console.log(success(" → :watching ") + '/template/');
-// // Finished walking the tree
-// } else if (prev === null) {
-
-// // f is a new file
-// } else if (curr.nlink === 0) {
-// // f was removed
-// } else {
-
-// if(/\.styl$/.test(f)){
-// CreateStyl('/template/styl/index.styl','/.deploy/css/index.css')
-// }else if(/\.js$/.test(f)){
-
-// CreateJS('/template/js/index.js','/.deploy/js/index.js')
-
-// }else if(/\.ejs$/.test(f)){
-// // 首页生成
-// ReadTmpToHTML('/template/index.ejs','/.deploy/index.html');
-// ReadTmpToHTML('/template/list.ejs','/.deploy/list.html');
-
-// }else if(/\.md$/.test(f)){
-// var mdp = f.replace(path_root,'');
-// var dep = path.join('/.deploy/',mdp);
-// ReadTmpToHTML('/template/details.ejs',dep.replace('.md','.html'),mdp);
-// }
-// }
-// })
-
-
-function CreateJS(from_path,to_path){
-
- // 生成到指定目录
- var new_to_path = path.join(path.dirname(__dirname),to_path);
- // 循环创建目录
- mkdirsSync(path.dirname(new_to_path));
- var js_code = UglifyJS.minify(path.join(path_root,from_path), { mangle: { toplevel: true } });
- fs.writeFileSync(new_to_path, js_code.code);
- console.log(success(" → ")+to_path + '');
-
-}
-
-/**
- * [ReadTmpToHTML ejs 模板转换成HTML]
- * @param {[type]} from_path [模版来源地址]
- * @param {[type]} to_path [生成到指定的位置]
- * @param {[type]} md_path [Markdown的路径] // 给md地址就生产详情页面
- * @param {[type]} des_json [页面信息 json 格式]
- * @param {[type]} arr []
- */
-function ReadTmpToHTML(from_path,to_path,md_path,des_json, total_pages){
- var tmp_path = path.join(path.dirname(__dirname),from_path);
- if(!exists(tmp_path)) return console.log("\n → error: 模板文件 "+tmp_path+" 不存在")
- var tmp_str = fs.readFileSync(tmp_path);
- tmp_str = tmp_str.toString();
-
- var relative_path = '';
- var current_path = to_path.replace(/^\/\.deploy/,'');
- if(md_path){
- //CSS/JS 引用相对地址
- relative_path = path.relative(md_path.toString(),'/');
- relative_path = relative_path.replace(/\.\.$/,'');
- }
- // 生成 HTML
- var html = ejs.render(tmp_str,{
- filename: tmp_path,
- relative_path:relative_path, // 当前文件相对于根目录的相对路径
- md_path:md_path?md_path:'', // markdown 路径
- current_path:current_path, // 当前 html 路径
- describe:des_json?des_json:{}, // 当前 md 的描述
- });
- // 生成到指定目录
- var new_to_path = path.join(path.dirname(__dirname),to_path);
- // 循环创建目录
- !exists(path.dirname(new_to_path)) && mkdirsSync(path.dirname(new_to_path));
-
- if(md_path){
- var new_md_path = path.join(path.dirname(__dirname),md_path);
- var README_str = fs.readFileSync(new_md_path);
- marked(README_str.toString(),function(err,md_html){
- if (err) return console.log(error(' → '+md_path+" 转换成HTML失败!"));
-
- html = html.split('{{content}}')
- html.splice(1, 0, md_html);
- html = html.join('')
- // html = html.replace('{{content}}',md_html);
- fs.writeFileSync(new_to_path,html);
- console.log(success(" → ")+to_path + '');
- })
- }else{
- html = html.toString();
- fs.writeFileSync(new_to_path, html.replace(/\n/g,''));
- console.log(success(" → ")+to_path + '');
- }
-}
-
-
-
-
-/**
- * [CreateStyl 生成CSS]
- * @param {[type]} styl_path [description]
- * @param {[type]} css_path [description]
- */
-function CreateStyl(styl_path,css_path){
- var new_css_path = path.join(path.dirname(__dirname),css_path);
- styl_path = path.dirname(__dirname) + styl_path;
- // var paths = [
- // path.dirname(__dirname) , path.dirname(__dirname) + '/'
- // ];
- var styl_str = fs.readFileSync(styl_path, 'utf8');
- stylus(styl_str.toString())
- .set('filename', styl_path )
- .set('compress', true)
- .render(function(err, css){
- if (err) throw err;
- // 循环创建目录
- mkdirsSync(path.dirname(new_css_path));
- fs.writeFileSync(new_css_path, css);
- // console.log(err,css);
- console.log(success(" → ")+styl_path + '');
- });
-}
-
-// 生成数据索引JS
-function CreateDatajs(dt_path,callback){
- // 获取 markdown文件所在的目录
- var path_md = path.join(path.dirname(__dirname),'command');
- var path_dist = path.join(path.dirname(__dirname),'dist');
- if(!exists(path_md)) return console.log("\n → error: 文件夹 "+path_md+" 不存在 \n ")
- // 获取 markdown 目录的集合
- var path_arr = readMDSync(path_md);
- path_arr = sortLength(path_arr);
- var indexes = [];
-
- var command_data={}
- path_arr.forEach(function(md_path,i){
- var json = {}
- var con = fs.readFileSync(md_path);
- var str = con.toString();
- var title = str.match(/[^===]+(?=[===])/g);
-
- title = title[0]?title[0].replace(/\n/g,''):title[0];
- title = title.replace(/\r/,'')
- // 命令名称
- json["n"] = title;
- // 命令路径
- json["p"] = md_path.replace(/\.md$/, '').replace(path_md, '').replace(/\\/g, '/');
- // 命令描述
- var des = str.match(/\n==={1,}([\s\S]*?)##/i);
- if (!des) {
- console.log('格式错误:', error(md_path));
- }
- des = des[1]?des[1].replace(/\n/g,''):des[1];
- des = des.replace(/\r/g,'')
- json["d"] = des;
- indexes.push(json)
-
- command_data[title] = json;
- })
- mkdirsSync(path.dirname(dt_path));
-
- console.log("path.dirname(__dirname)",path.dirname(__dirname))
- //生成数据文件
- fs.writeFile(dt_path, 'var linux_commands='+JSON.stringify(indexes) , 'utf8',function(err){
- console.log(success("\n → ")+"生成数据成功!"+dt_path+" \n ");
- path_dist = path.join(path_dist,'data.json')
- fs.writeFile(path_dist, JSON.stringify(command_data) , 'utf8',function(err){
- console.log(success("\n → ")+"生成数据成功!"+path_dist+" \n ");
- callback&&callback(dt_path,indexes);
- });
-
- });
-}
-
-// 按长度排序
-function sortLength(arr){
- var compare = function (x, y) {//比较函数
- x = path.basename(x,'.md');
- y = path.basename(y,'.md');
- if (x.length < y.length) {
- return -1;
- } else if (x.length > y.length) {
- return 1;
- } else {
- return 0;
- }
- }
- return arr.sort(compare)
-}
-
-// 同步循环创建所有目录 resolvePath
-function mkdirsSync(dirpath, mode, callback) {
- if(fs.existsSync(dirpath)){
- callback&&callback(dirpath);
- return true;
- }else{
- if(mkdirsSync(path.dirname(dirpath), mode)){
- fs.mkdirSync(dirpath, mode, callback);
- callback&&callback(dirpath);
- return true;
- }else{
- callback&&callback(dirpath);
- }
- }
-};
-
-var fixture = path.join.bind(path, __dirname, 'template');
-
-function cp(src, dest, cb) {
- // yield support
- if ('function' != typeof cb) return thunk;
-
- var complete = false;
- var read = fs.createReadStream(src);
- var write = fs.createWriteStream(dest);
-
- write.on('error', done);
- write.on('close', done);
- read.on('error', done);
- read.pipe(write);
-
- // done callback
- function done(err) {
- if (!complete) {
- complete = true;
- read.destroy();
- write.destroy();
- cb(err);
- }
- }
-
- // thunk-ified
- function thunk(done) {
- cp(src, dest, done);
- }
-}
-
-//返回 MD 所有路径的 Array
-function readMDSync(filepath){
- if(!exists(filepath)) return [];
- var str = '',files = fs.readdirSync(filepath);
- for (var i = 0; i < files.length; i++) {
- var path_c = path.join(filepath,files[i]);
- if( isDir(path_c) ) {
- str += readMDSync(path_c) + ',';
- }
- else if(/\.(md)$/.test(files[i])) str += path_c + ',';
- };
- str = str.replace(/^\*|\,*$/g,'');
- return str.split(',');
-}
-//写文件
-function writeSync(filepath, content, callback) {
- mkdirsSync(path.dirname(filepath));
- return fs.writeFileSync(filepath, content, callback);
-};
-
-//写文件
-function write(filepath, content) {
- return fs.writeFile(filepath, content);
-};
-
-//判断是不是目录
-function isDir(_path){return exists(_path) && fs.statSync(_path).isDirectory();}
-
-//检查指定路径的文件或者目录,是否存在
-function exists(_path){return fs.existsSync(_path);}
\ No newline at end of file
diff --git a/build/crawler.js b/build/crawler.js
deleted file mode 100644
index 5d0622a3e33..00000000000
--- a/build/crawler.js
+++ /dev/null
@@ -1,160 +0,0 @@
-var request = require('superagent');
-var cheerio = require('cheerio');
-var toMarkdown = require('to-markdown');
-var path = require('path');
-var process = require('process');
-var fs = require('fs');
-var color = require('colors-cli/safe');
-var error = color.red.bold;
-var warn = color.yellow;
-var notice = color.blue;
-var success = color.green;
-
-var param = process.argv.slice(2);
-
-
-// 需要爬的命令
-// var arr = ["find"];
-// var arr = [];
-var arr = [];
-// var arr = ["arch","axel","chsh","comm","compress","csplit","cut","dd","dig","dmesg","domainname","du","enable","fdisk","file","ftp","htpasswd","id","insmod","losetup","ls","lynx","mail","mkinitrd","netstat","nslookup","od","passwd","pgrep","ping","quota","restorecon","rmmod","screen","sed","semanage","smbclient","split","startx","sudo","tee","tftp","wall","wget","which","accept","apt-get","apt-key","apt-sortpkgs","aptitude","awk","clockdiff","cupsenable","dnf","dpkg-reconfigure","dpkg","expr","gcc","gdb","ldconfig","ldd","lpadmin","make","ngrep","nm","ntpdate","objdump","perl","php","protoize","pssh","pstack","readelf","reject","rsync","speedtest-cli","tempfile","test","vdfuse","xargs"];
-
-// 还没有爬到的命令:--> ["bye","uucico","uucp","uupick","uuto","git","gitview","mattrib","mc","mcopy","mdel","mdir","mmove","mread","mren","mshowfat","mtoolstest","rhmask","tmpwatch","lndir","mcd","mdeltree","mdu","mlabel","mmd","mmount","mrd","mzip","rmt","cfdisk","ext2ed","fsck.ext2","fsck.minix","fsconf","mbadblocks","mformat","mkdosfs","mkfs.ext2","mkfs.minix","mkfs.msdos","mpartition","sfdisk","symlinks","apmd","aumix","eval","fbset","kbdconfig","liloconfig","minfo","mkkickstart","modinfo","mouseconfig","rdate","setconsole","setenv","setup","sndconfig","SVGAText Mode","timeconfig","adduser","fwhois","gitps","newgrp","procinfo","rwho","sliplogin","suspend","swatch","userconf","vlock","whois","mtype","rgrep","dip","getty","mingetty","ppp-off","smbd(samba daemon)","uulog","uustat","uux","dnsconf","efax","httpd","minicom","netconf","netconfig","pppstats","samba","setserial","shapecfg(shaper configuration)","smbd(samba daemon)","statserial(status ofserial port)","testparm(test parameter)","tty(teletypewriter)","uuname","wall(write all)","ytalk","smbclient(samba client)","pppsetup","dumpkeys","loadkeys","MAKEDEV","rdev","setleds","archive","ctlinnd","getlist","inncheck","mailconf","messages","metamail","mutt","nntpget","pine","slrn","X WINDOWS SYSTEM","reconfig","startx(start X Window)","Xconfigurator","XF86Setup" ,"nc/netcat","locate/slocate","get_module"]
-// 已经存在的命令:----> []
-// 名字不对的命令:----> ["ar","locate","slocate","clock","resize","cu","nc"]
-// 网站中没有的命令
-var empty_command = [];
-// 已经爬过/存在的命令
-var exists_command = [];
-// 名字不对的命令
-var name_command = [];
-var arr_len = 0;
-
-arr[arr_len]&&CreatMarkdownQuery(arr[arr_len]);
-
-
-function CreatMarkdownQuery(query){
- var url = 'http://man.linuxde.net/'+query;
- var new_to_path = path.join(path.dirname(__dirname),'command/'+query+'.md')
-
-
- if(!arr[arr_len]){
- console.log('还没有爬到的命令:-->', JSON.stringify(empty_command) )
- console.log('已经存在的命令:---->', JSON.stringify(exists_command) )
- console.log('名字不对的命令:---->', JSON.stringify(name_command) )
- return;
- };
-
- ++arr_len;
-
- // 文件已经存在
- if(exists( new_to_path )) {
- exists_command.push(query)
- CreatMarkdownQuery(arr[arr_len]);
- return console.log(" → error:文件存在 ",new_to_path)
- }
-
- request.get(url).end(function(err, res){
-
- if(arr[arr_len]){
- CreatMarkdownQuery(arr[arr_len]);
- }
- // console.log("res.text:::--->",res.text)
-
- if(/命令还没有被录入!/.test(res.text)){
- empty_command.push(query)
- return console.log(" → error: 没有爬到数据,命令" + query +'不存在!')
- }
- var $ = cheerio.load(res.text);
- var description = $('title').text();
- description = description.replace(/(.*)命令用法详解:/,'')
-
- var title = $('.main h1.l');
- title = title.text();
- title = title.replace(/命令$/,'');
-
-
- if(query!==title){
- name_command.push(query)
- return console.log(" → error: 名字不对的命令 ",query)
- }
-
- if(!title){
- empty_command.push(query);
- return console.log(error(" → error: 命令" + query +'不存在!标题为空'))
- }
- var content = $('#content-index').remove()
- content = $('.main .post_bd').html();
- var md_str = toMarkdown(content);
-
- md_str = md_str.replace(/linuxde.net/g,'jsdig.com');
- md_str = md_str.replace(/linuxde/g,'jsdigname');
- md_str = md_str.replace(/\*\*(.*?)\*\*/g,' **$1** ');
- md_str = md_str.replace(/^\s\*\*(.*?)\*\*/g,'**$1**');
- md_str = title + '\n===\n'+description+'\n\n## 补充说明\n\n' + md_str;
- md_str = md_str.replace(//gi,'```\n')
- md_str = md_str.replace(/<\/pre>/gi,'\n```')
- md_str = md_str.replace(//gi,'')
- md_str = md_str.replace(/<\/span>/gi,'')
- md_str = md_str.replace(/\[[^\]]*\]\(.*?\)/g,function(str){
- str.replace(/\[(.*?)\]/,'');
- return RegExp.$1;
- })
- // console.log("md_str--->",md_str)
- md_str += '\n\n\n'
-
- fs.writeFileSync(new_to_path, md_str ,'utf-8');
- console.log(success(" → OK!"),new_to_path)
- });
-}
-
-
-
-/**
- * 指定URL爬
- */
-
-
-// var from_path = param[0];
-// var to_path = param[1];
-// if(!from_path) return console.error("请输入请求参数!");
-// if(!to_path) return console.error("请输入写入目标目录!");
-// CreatMarkdown(from_path,to_path)
-
-function CreatMarkdown(from_path,to_path){
-
- var new_to_path = path.join(path.dirname(__dirname),to_path)
- if(exists(new_to_path)) return console.log(" → error: 目录存在 ",to_path,'\n')
-
- new_to_path = path.dirname(new_to_path)
- mkdirsSync(new_to_path,0777,function(){
-
- request.get(from_path).end(function(err, res){
- // console.log("to_path::",to_path)
- fs.writeFileSync(to_path, toMarkdown(res.text).toString() ,'utf-8');
- console.log(" → ",to_path)
- });
-
- });
-}
-
-
-// 同步循环创建所有目录 resolvePath
-function mkdirsSync(dirpath, mode, callback) {
- if(fs.existsSync(dirpath)){
- callback&&callback(dirpath);
- return true;
- }else{
- if(mkdirsSync(path.dirname(dirpath), mode)){
- fs.mkdirSync(dirpath, mode, callback);
- callback&&callback(dirpath);
- return true;
- }else{
- callback&&callback(dirpath);
- }
- }
-};
-
-
-//检查指定路径的文件或者目录,是否存在
-function exists(_path){return fs.existsSync(_path);}
\ No newline at end of file
diff --git a/build/deploy.js b/build/deploy.js
index 7d00995123d..10c094ffe27 100644
--- a/build/deploy.js
+++ b/build/deploy.js
@@ -1,28 +1,21 @@
-var exec = require('child_process').exec;
-var ghpages = require('gh-pages');
-var loading = require('loading-cli');
-var path = require('path');
-var fs = require('fs');
-var color = require('colors-cli/safe');
-var error = color.red.bold;
-var warn = color.yellow;
-var notice = color.blue;
-var success = color.green;
+const ghpages = require('gh-pages');
+const loading = require('loading-cli');
+const path = require('path');
+const fs = require('fs');
+const color = require('colors-cli/safe');
-var deploy_path = path.join(process.cwd(), '.deploy');
+const deploy_path = path.join(process.cwd(), '.deploy');
-if(fs.existsSync(deploy_path)){
- var load = loading(' Pushing code!!')
- load.start();
- ghpages.publish(deploy_path,{
- repo: 'git@github.com:jaywcjlove/linux-command.git',
- branch: 'gh-pages',
- message: 'Linux command index, Compiler generation page ' + new Date()
- }, function(err) {
- if(err) return console.log(error(' → '+"ok!"+err));
- load.stop()
- console.log(success('\n\n '+"Push success!!"));
- // 删除文件夹
- exec('rm -rf .deploy');
- });
+if (fs.existsSync(deploy_path)) {
+ const load = loading(' Pushing code!!')
+ load.start();
+ ghpages.publish(deploy_path, {
+ repo: 'git@github.com:jaywcjlove/linux-command.git',
+ branch: 'gh-pages',
+ message: 'Linux command index, Compiler generation page ' + new Date()
+ }, (err) => {
+ if (err) return console.log(` → Err: ${err.message}`);
+ load.stop()
+ console.log(`\n\n Push success!!`.green);
+ });
}
diff --git a/dist/data.json b/dist/data.json
index b171a5c8363..4c40b0e8a0a 100644
--- a/dist/data.json
+++ b/dist/data.json
@@ -1 +1 @@
-{"w":{"n":"w","p":"/w","d":"显示目前登入系统的用户信息"},"rm":{"n":"rm","p":"/rm","d":"用于删除给定的文件和目录"},"ip":{"n":"ip","p":"/ip","d":"网络配置工具"},"ld":{"n":"ld","p":"/ld","d":"将目标文件连接为可执行程序"},"ln":{"n":"ln","p":"/ln","d":"用来为文件创件连接"},"lp":{"n":"lp","p":"/lp","d":"打印文件或修改排队的打印任务"},"xz":{"n":"xz","p":"/xz","d":"POSIX 平台开发具有高压缩率的工具。"},"fg":{"n":"fg","p":"/fg","d":"将后台作业放到前台终端运行"},"ar":{"n":"ar","p":"/ar","d":"建立或修改备存文件,或是从备存文件中抽取文件"},"fc":{"n":"fc","p":"/fc","d":"修改历史命令并执行"},"ls":{"n":"ls","p":"/ls","d":"显示目录内容列表"},"wc":{"n":"wc","p":"/wc","d":"统计文件的字节数、字数、行数"},"as":{"n":"as","p":"/as","d":"汇编语言编译器"},"at":{"n":"at","p":"/at","d":"在指定时间执行一个任务"},"ex":{"n":"ex","p":"/ex","d":"启动vim编辑器的ex编辑模式"},"ed":{"n":"ed","p":"/ed","d":"单行纯文本编辑器"},"ab":{"n":"ab","p":"/ab","d":"Apache服务器的性能测试工具"},"vi":{"n":"vi","p":"/vi","d":"功能强大的纯文本编辑器"},"bc":{"n":"bc","p":"/bc","d":"算术操作精密运算工具"},"bg":{"n":"bg","p":"/bg","d":"用于将作业放到后台运行"},"mv":{"n":"mv","p":"/mv","d":"用来对文件或目录重新命名"},"du":{"n":"du","p":"/du","d":"显示每个文件和目录的磁盘使用空间"},"tr":{"n":"tr","p":"/tr","d":"将字符进行替换压缩和删除"},"nc":{"n":"nc","p":"/nc","d":"命令用于设置路由器。"},"nl":{"n":"nl","p":"/nl","d":"在Linux系统中计算文件内容行号"},"nm":{"n":"nm","p":"/nm","d":"显示二进制目标文件的符号表"},"od":{"n":"od","p":"/od","d":"输出文件的八进制、十六进制等格式编码的字节"},"pr":{"n":"pr","p":"/pr","d":"将文本文件转换成适合打印的格式"},"cd":{"n":"cd","p":"/cd","d":"切换用户当前工作目录"},"ps":{"n":"ps","p":"/ps","d":"报告当前系统的进程状态"},"pv":{"n":"pv","p":"/pv","d":"显示当前在命令行执行的命令的进度信息,管道查看器。"},"su":{"n":"su","p":"/su","d":"用于切换当前用户身份到其他用户身份"},"df":{"n":"df","p":"/df","d":"显示磁盘的相关信息"},"ss":{"n":"ss","p":"/ss","d":"比 netstat 好用的socket统计信息,iproute2 包附带的另一个工具,允许你查询 socket 的有关统计信息。"},"sh":{"n":"sh","p":"/sh","d":"shell命令解释器"},"dd":{"n":"dd","p":"/dd","d":"复制文件并对原文件的内容进行转换和格式化处理"},"cu":{"n":"cu","p":"/cu","d":"用于连接另一个系统主机。"},"cp":{"n":"cp","p":"/cp","d":"将源文件或目录复制到目标文件或目录中"},"id":{"n":"id","p":"/id","d":"显示用户的ID以及所属群组的ID"},"seq":{"n":"seq","p":"/seq","d":"以指定增量从首数开始打印数字到尾数"},"scp":{"n":"scp","p":"/scp","d":"加密的方式在本地主机和远程主机之间复制文件"},"set":{"n":"set","p":"/set","d":"显示或设置shell特性及shell变量"},"sar":{"n":"sar","p":"/sar","d":"系统运行状态统计工具"},"rsh":{"n":"rsh","p":"/rsh","d":"连接远程主机并执行命令"},"col":{"n":"col","p":"/col","d":"过滤控制字符"},"rpm":{"n":"rpm","p":"/rpm","d":"RPM软件包的管理工具"},"ack":{"n":"ack","p":"/ack","d":"比grep好用的文本搜索工具"},"cut":{"n":"cut","p":"/cut","d":"连接文件并打印到标准输出设备上"},"cmp":{"n":"cmp","p":"/cmp","d":"比较两个文件是否有差异"},"rev":{"n":"rev","p":"/rev","d":"将文件内容以字符为单位反序输出"},"ssh":{"n":"ssh","p":"/ssh","d":"openssh套件中的客户端连接工具"},"rcp":{"n":"rcp","p":"/rcp","d":"使在两台Linux主机之间的文件复制操作更简单"},"pwd":{"n":"pwd","p":"/pwd","d":"绝对路径方式显示用户当前工作目录"},"pvs":{"n":"pvs","p":"/pvs","d":"输出物理卷信息报表"},"dig":{"n":"dig","p":"/dig","d":"域名查询工具"},"sum":{"n":"sum","p":"/sum","d":"计算文件的校验码和显示块数"},"tac":{"n":"tac","p":"/tac","d":"将文件已行为单位的反序输出"},"cat":{"n":"cat","p":"/cat","d":"连接文件并打印到标准输出设备上"},"dnf":{"n":"dnf","p":"/dnf","d":"新一代的RPM软件包管理器"},"php":{"n":"php","p":"/php","d":"PHP语言的命令行接口"},"tar":{"n":"tar","p":"/tar","d":"Linux下的归档使用工具,用来打包和备份。"},"cal":{"n":"cal","p":"/cal","d":"显示当前日历或指定日期的日历"},"tee":{"n":"tee","p":"/tee","d":"把数据重定向到给定文件和屏幕上"},"top":{"n":"top","p":"/top","d":"显示或管理执行中的程序"},"bye":{"n":"bye","p":"/bye","d":"命令用于中断FTP连线并结束程序。。"},"sed":{"n":"sed","p":"/sed","d":"功能强大的流式文本编辑器"},"awk":{"n":"awk","p":"/awk","d":"文本和数据进行处理的编程语言"},"man":{"n":"man","p":"/man","d":"查看Linux中的指令帮助"},"elm":{"n":"elm","p":"/elm","d":"纯文本邮件客户端程序"},"env":{"n":"env","p":"/env","d":"显示系统中已存在的环境变量"},"atq":{"n":"atq","p":"/atq","d":"列出当前用户的at任务列表"},"arp":{"n":"arp","p":"/arp","d":"显示和修改IP到MAC转换表"},"arj":{"n":"arj","p":"/arj","d":"用于创建和管理.arj压缩包"},"lpr":{"n":"lpr","p":"/lpr","d":"将文件发送给指定打印机进行打印"},"who":{"n":"who","p":"/who","d":"显示目前登录系统的用户信息"},"lpq":{"n":"lpq","p":"/lpq","d":"显示打印队列中的打印任务的状态信息"},"lpc":{"n":"lpc","p":"/lpc","d":"命令行方式打印机控制程序"},"yes":{"n":"yes","p":"/yes","d":"重复打印指定字符串"},"yum":{"n":"yum","p":"/yum","d":"基于RPM的软件包管理器"},"fmt":{"n":"fmt","p":"/fmt","d":"读取文件后优化处理并输出"},"ftp":{"n":"ftp","p":"/ftp","d":"用来设置文件系统相关功能"},"lha":{"n":"lha","p":"/lha","d":"压缩或解压缩lzh格式文件"},"let":{"n":"let","p":"/let","d":"简单的计算器"},"gcc":{"n":"gcc","p":"/gcc","d":"基于C/C++的编译器"},"gdb":{"n":"gdb","p":"/gdb","d":"功能强大的程序调试器"},"ldd":{"n":"ldd","p":"/ldd","d":"打印程序或者库文件所依赖的共享库列表"},"apk":{"n":"apk","p":"/apk","d":"Alpine Linux 下的包管理工具"},"git":{"n":"git","p":"/git","d":"是目前世界上最先进的分布式版本控制系统"},"gpm":{"n":"gpm","p":"/gpm","d":"提供文字模式下的滑鼠事件处理"},"joe":{"n":"joe","p":"/joe","d":"强大的纯文本编辑器"},"jed":{"n":"jed","p":"/jed","d":"主要用于编辑代码的编辑器"},"zip":{"n":"zip","p":"/zip","d":"可以用来解压缩文件"},"tty":{"n":"tty","p":"/tty","d":"显示连接到当前标准输入的终端设备文件名。"},"pvck":{"n":"pvck","p":"/pvck","d":"检测物理卷的LVM元数据的一致性"},"chfn":{"n":"chfn","p":"/chfn","d":"用来改变finger命令显示的信息"},"arch":{"n":"arch","p":"/arch","d":"显示当前主机的硬件架构类型"},"pssh":{"n":"pssh","p":"/pssh","d":"批量管理执行"},"dirs":{"n":"dirs","p":"/dirs","d":"显示目录记录"},"sudo":{"n":"sudo","p":"/sudo","d":"以其他身份来执行命令"},"bind":{"n":"bind","p":"/bind","d":"显示或设置键盘按键与其相关的功能"},"stty":{"n":"stty","p":"/stty","d":"修改终端命令行的相关设置"},"popd":{"n":"popd","p":"/popd","d":"用于删除目录栈中的记录"},"pmap":{"n":"pmap","p":"/pmap","d":"报告进程的内存映射关系"},"ping":{"n":"ping","p":"/ping","d":"测试主机之间网络的连通性"},"pico":{"n":"pico","p":"/pico","d":"功能强大全屏幕的文本编辑器"},"stat":{"n":"stat","p":"/stat","d":"用于显示文件的状态信息"},"perl":{"n":"perl","p":"/perl","d":"perl语言解释器"},"sshd":{"n":"sshd","p":"/sshd","d":"openssh软件套件中的服务器守护进程"},"nmap":{"n":"nmap","p":"/nmap","d":"网络探测和安全审核"},"chsh":{"n":"chsh","p":"/chsh","d":"用来更换登录系统时使用的shell"},"uniq":{"n":"uniq","p":"/uniq","d":"报告或忽略文件中的重复行"},"nice":{"n":"nice","p":"/nice","d":"改变程序执行的优先权等级"},"dpkg":{"n":"dpkg","p":"/dpkg","d":"Debian Linux系统上安装、创建和管理软件包"},"dris":{"n":"dris","p":"/dris","d":"显示和清空目录堆栈中的内容"},"type":{"n":"type","p":"/type","d":"显示指定命令的类型"},"sort":{"n":"sort","p":"/sort","d":"将文件进行排序并输出"},"dump":{"n":"dump","p":"/dump","d":"用于备份ext2或者ext3文件系统"},"nano":{"n":"nano","p":"/nano","d":"字符终端文本编辑器"},"xset":{"n":"xset","p":"/xset","d":"设置X-Window系统中的用户爱好的实用工具"},"echo":{"n":"echo","p":"/echo","d":"输出指定的字符串或者变量"},"tree":{"n":"tree","p":"/tree","d":"树状图列出目录的内容"},"more":{"n":"more","p":"/more","d":"显示文件内容,每次显示一屏"},"mkfs":{"n":"mkfs","p":"/mkfs","d":"用于在设备上创建Linux文件系统"},"mesg":{"n":"mesg","p":"/mesg","d":"设置当前终端的写权限"},"trap":{"n":"trap","p":"/trap","d":"指定在接收到信号后将要采取的动作"},"sftp":{"n":"sftp","p":"/sftp","d":"交互式的文件传输程序"},"make":{"n":"make","p":"/make","d":"GNU的工程化编译工具"},"mail":{"n":"mail","p":"/mail","d":"命令行下发送和接收电子邮件"},"comm":{"n":"comm","p":"/comm","d":"两个文件之间的比较"},"lynx":{"n":"lynx","p":"/lynx","d":"纯文本模式的网页浏览器"},"atop":{"n":"atop","p":"/atop","d":"监控Linux系统资源与进程的工具"},"exec":{"n":"exec","p":"/exec","d":"调用并执行指定的命令"},"exit":{"n":"exit","p":"/exit","d":"退出当前的shell"},"lsof":{"n":"lsof","p":"/lsof","d":"显示Linux系统当前已打开的所有文件列表 `lsof -p pid`"},"znew":{"n":"znew","p":"/znew","d":"将.Z压缩包重新转化为gzip命令压缩的.gz压缩包"},"lprm":{"n":"lprm","p":"/lprm","d":"删除打印队列中的打印任务"},"expr":{"n":"expr","p":"/expr","d":"一款表达式计算工具"},"tput":{"n":"tput","p":"/tput","d":"通过terminfo数据库对终端会话进行初始化和操作"},"atrm":{"n":"atrm","p":"/atrm","d":"删除待执行任务队列中的指定任务"},"tmux":{"n":"tmux","p":"/tmux","d":"Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。"},"cpio":{"n":"cpio","p":"/cpio","d":"用来建立、还原备份档的工具程序"},"file":{"n":"file","p":"/file","d":"用来探测给定文件的类型。"},"find":{"n":"find","p":"/find","d":"在指定目录下查找文件"},"time":{"n":"time","p":"/time","d":"统计给定命令所花费的总时间"},"tftp":{"n":"tftp","p":"/tftp","d":"在本机和tftp服务器之间使用TFTP协议传输文件"},"look":{"n":"look","p":"/look","d":"显示文件中以指定字符串开头的任意行"},"test":{"n":"test","p":"/test","d":"shell环境中测试条件表达式工具"},"arpd":{"n":"arpd","p":"/arpd","d":"收集免费ARP信息"},"fold":{"n":"fold","p":"/fold","d":"控制文件内容输出时所占用的屏幕宽度"},"free":{"n":"free","p":"/free","d":"显示内存的使用情况"},"fsck":{"n":"fsck","p":"/fsck","d":"检查并且试图修复文件系统中的错误"},"axel":{"n":"axel","p":"/axel","d":"多线程下载工具"},"lilo":{"n":"lilo","p":"/lilo","d":"安装核心载入开机管理程序"},"curl":{"n":"curl","p":"/curl","d":"利用URL规则在命令行下工作的文件传输工具"},"lftp":{"n":"lftp","p":"/lftp","d":"优秀的文件客户端程序"},"wait":{"n":"wait","p":"/wait","d":"等待进程执行完后返回"},"less":{"n":"less","p":"/less","d":"分屏上下翻页浏览文件内容"},"date":{"n":"date","p":"/date","d":"显示或设置系统时间与日期"},"gcov":{"n":"gcov","p":"/gcov","d":"测试程序的代码覆盖率的工具"},"wget":{"n":"wget","p":"/wget","d":"Linux系统下载文件工具"},"zcat":{"n":"zcat","p":"/zcat","d":"显示压缩包中文件的内容"},"read":{"n":"read","p":"/read","d":"从键盘读取变量值"},"last":{"n":"last","p":"/last","d":"列出目前与过去登入系统的用户相关信息"},"talk":{"n":"talk","p":"/talk","d":"让用户和其他用户聊天"},"kill":{"n":"kill","p":"/kill","d":"删除执行中的程序或工作"},"tail":{"n":"tail","p":"/tail","d":"在屏幕上显示指定文件的末尾若干行"},"grep":{"n":"grep","p":"/grep","d":"强大的文本搜索工具"},"join":{"n":"join","p":"/join","d":"两个文件中指定栏位内容相同的行连接起来"},"wall":{"n":"wall","p":"/wall","d":"向系统当前所有打开的终端上输出信息"},"jobs":{"n":"jobs","p":"/jobs","d":"显示Linux中的任务列表及任务状态"},"pwck":{"n":"pwck","p":"/pwck","d":"用来验证系统认证文件内容和格式的完整性"},"ipcs":{"n":"ipcs","p":"/ipcs","d":"分析消息队列共享内存和信号量 "},"diff":{"n":"diff","p":"/diff","d":"比较给定的两个文件的不同"},"init":{"n":"init","p":"/init","d":"init进程是所有Linux进程的父进程"},"grub":{"n":"grub","p":"/grub","d":"多重引导程序grub的命令行shell工具"},"info":{"n":"info","p":"/info","d":"Linux下info格式的帮助指令"},"ifup":{"n":"ifup","p":"/ifup","d":"激活指定的网络接口"},"gzip":{"n":"gzip","p":"/gzip","d":"用来压缩文件"},"halt":{"n":"halt","p":"/halt","d":"关闭正在运行的Linux操作系统"},"sync":{"n":"sync","p":"/sync","d":"用于强制被改变的内容立刻写入磁盘"},"head":{"n":"head","p":"/head","d":"在屏幕上显示指定文件的开头若干行"},"help":{"n":"help","p":"/help","d":"显示帮助信息"},"htop":{"n":"htop","p":"/htop","d":"[非内部命令]一个互动的进程查看器,可以动态观察系统进程状况。"},"host":{"n":"host","p":"/host","d":"常用的分析域名查询工具"},"chown":{"n":"chown","p":"/chown","d":"用来变更文件或目录的拥有者或所属群组"},"touch":{"n":"touch","p":"/touch","d":"创建新的空文件"},"ifcfg":{"n":"ifcfg","p":"/ifcfg","d":"置Linux中的网络接口参数"},"iftop":{"n":"iftop","p":"/iftop","d":"一款实时流量监控工具"},"gzexe":{"n":"gzexe","p":"/gzexe","d":"用来压缩可执行文件"},"tload":{"n":"tload","p":"/tload","d":"显示系统负载状况"},"bzip2":{"n":"bzip2","p":"/bzip2","d":"将文件压缩成bz2格式"},"iotop":{"n":"iotop","p":"/iotop","d":"用来监视磁盘I/O使用状况的工具"},"bzcmp":{"n":"bzcmp","p":"/bzcmp","d":"比较两个压缩包中的文件"},"alias":{"n":"alias","p":"/alias","d":"用来设置指令的别名"},"zfore":{"n":"zfore","p":"/zfore","d":"强制为gzip格式的压缩文件添加.gz后缀"},"ipcrm":{"n":"ipcrm","p":"/ipcrm","d":"删除消息队列、信号集、或者共享内存标识"},"grpck":{"n":"grpck","p":"/grpck","d":"用于验证组文件的完整性"},"iperf":{"n":"iperf","p":"/iperf","d":"网络性能测试工具"},"kexec":{"n":"kexec","p":"/kexec","d":"从当前正在运行的内核引导到一个新内核"},"bzcat":{"n":"bzcat","p":"/bzcat","d":"解压缩指定的.bz2文件"},"lastb":{"n":"lastb","p":"/lastb","d":"列出登入系统失败的用户相关信息"},"xinit":{"n":"xinit","p":"/xinit","d":"是Linux下X-Window系统的初始化程序"},"xhost":{"n":"xhost","p":"/xhost","d":"制哪些X客户端能够在X服务器上显示"},"fuser":{"n":"fuser","p":"/fuser","d":"使用文件或文件结构识别进程"},"tailf":{"n":"tailf","p":"/tailf","d":"在屏幕上显示指定文件的末尾若干行内容,通常用于日志文件的跟踪输出。"},"chage":{"n":"chage","p":"/chage","d":"修改帐号和密码的有效期限"},"xclip":{"n":"xclip","p":"/xclip","d":"管理 X 粘贴板"},"login":{"n":"login","p":"/login","d":"登录系统或切换用户身份"},"xauth":{"n":"xauth","p":"/xauth","d":"显示和编辑被用于连接X服务器的认证信息"},"xargs":{"n":"xargs","p":"/xargs","d":"给其他命令传递参数的一个过滤器"},"chcon":{"n":"chcon","p":"/chcon","d":"修改对象(文件)的安全上下文"},"fgrep":{"n":"fgrep","p":"/fgrep","d":"为文件搜索文字字符串"},"fdisk":{"n":"fdisk","p":"/fdisk","d":"查看磁盘使用情况和磁盘分区"},"write":{"n":"write","p":"/write","d":"向指定登录用户终端上发送信息"},"lsblk":{"n":"lsblk","p":"/lsblk","d":"列出块设备信息"},"lscpu":{"n":"lscpu","p":"/lscpu","d":"显示有关CPU架构的信息"},"lsmod":{"n":"lsmod","p":"/lsmod","d":"显示已载入系统的模块"},"lspci":{"n":"lspci","p":"/lspci","d":"显示当前主机的所有PCI总线信息"},"lsusb":{"n":"lsusb","p":"/lsusb","d":"显示本机的USB设备列表信息"},"mailq":{"n":"mailq","p":"/mailq","d":"显示待发送的邮件队列"},"emacs":{"n":"emacs","p":"/emacs","d":"功能强大的全屏文本编辑器"},"eject":{"n":"eject","p":"/eject","d":"用来退出抽取式设备"},"mkdir":{"n":"mkdir","p":"/mkdir","d":"用来创建目录"},"egrep":{"n":"egrep","p":"/egrep","d":"在文件内查找指定的字符串"},"chgrp":{"n":"chgrp","p":"/chgrp","d":"用来变更文件或目录的所属群组"},"mknod":{"n":"mknod","p":"/mknod","d":"创建字符设备文件和块设备文件"},"chmod":{"n":"chmod","p":"/chmod","d":"用来变更文件或目录的权限"},"mount":{"n":"mount","p":"/mount","d":"用于挂载Linux系统外的文件。"},"iconv":{"n":"iconv","p":"/iconv","d":"转换文件的编码方式"},"mysql":{"n":"mysql","p":"/mysql","d":"MySQL服务器客户端工具"},"which":{"n":"which","p":"/which","d":"查找并显示给定命令的绝对路径"},"watch":{"n":"watch","p":"/watch","d":"可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令"},"dstat":{"n":"dstat","p":"/dstat","d":"通用的系统资源统计工具"},"ncftp":{"n":"ncftp","p":"/ncftp","d":"是增强的的FTP工具"},"cksum":{"n":"cksum","p":"/cksum","d":"检查文件的CRC是否正确"},"ngrep":{"n":"ngrep","p":"/ngrep","d":"方便的数据包匹配和显示工具"},"batch":{"n":"batch","p":"/batch","d":"在系统不繁忙的时候执行定时任务"},"nmcli":{"n":"nmcli","p":"/nmcli","d":"地址配置工具"},"nohup":{"n":"nohup","p":"/nohup","d":"将程序以忽略挂起信号的方式运行起来"},"umask":{"n":"umask","p":"/umask","d":"用来设置限制新建文件权限的掩码"},"clear":{"n":"clear","p":"/clear","d":"清除当前屏幕终端上的任何信息"},"squid":{"n":"squid","p":"/squid","d":"squid服务器守护进程"},"paste":{"n":"paste","p":"/paste","d":"将多个文件按列队列合并"},"patch":{"n":"patch","p":"/patch","d":"为开放源代码软件安装补丁程序"},"split":{"n":"split","p":"/split","d":"分割任意大小的文件"},"pfctl":{"n":"pfctl","p":"/pfctl","d":"PF防火墙的配置命令"},"pgrep":{"n":"pgrep","p":"/pgrep","d":"设置用户的认证信息,包括用户密码、密码过期时间等"},"pidof":{"n":"pidof","p":"/pidof","d":"查找指定名称的进程的进程号ID号"},"pkill":{"n":"pkill","p":"/pkill","d":"可以按照进程名杀死进程"},"spell":{"n":"spell","p":"/spell","d":"对文件进行拼写检查"},"dmesg":{"n":"dmesg","p":"/dmesg","d":"显示Linux系统启动信息"},"uname":{"n":"uname","p":"/uname","d":"显示Linux系统信息"},"pushd":{"n":"pushd","p":"/pushd","d":"将目录加入命令堆叠中"},"diff3":{"n":"diff3","p":"/diff3","d":"比较3个文件不同的地方"},"dhcpd":{"n":"dhcpd","p":"/dhcpd","d":"运行DHCP服务器。"},"quota":{"n":"quota","p":"/quota","d":"显示磁盘已使用的空间与限制"},"clock":{"n":"clock","p":"/clock","d":"用于调整 RTC 时间。"},"unarj":{"n":"unarj","p":"/unarj","d":"解压缩由arj命令创建的压缩包"},"users":{"n":"users","p":"/users","d":"显示当前登录系统的所有用户"},"sleep":{"n":"sleep","p":"/sleep","d":"将目前动作延迟一段时间"},"rexec":{"n":"rexec","p":"/rexec","d":"运程执行Linux系统下命令 "},"skill":{"n":"skill","p":"/skill","d":"向选定的进程发送信号冻结进程"},"rmdir":{"n":"rmdir","p":"/rmdir","d":"用来删除空目录"},"rmmod":{"n":"rmmod","p":"/rmmod","d":"从运行的内核中移除指定的内核模块"},"route":{"n":"route","p":"/route","d":"显示并设置Linux中静态路由表"},"blkid":{"n":"blkid","p":"/blkid","d":"查看块设备的文件系统类型、LABEL、UUID等信息"},"rpmdb":{"n":"rpmdb","p":"/rpmdb","d":"初始化和重建RPM数据库"},"shopt":{"n":"shopt","p":"/shopt","d":"显示和设置shell操作选项"},"rsync":{"n":"rsync","p":"/rsync","d":"远程数据同步工具"},"colrm":{"n":"colrm","p":"/colrm","d":"删除文件中的指定列"},"unset":{"n":"unset","p":"/unset","d":"删除指定的shell变量或函数"},"unzip":{"n":"unzip","p":"/unzip","d":"用于解压缩由zip命令压缩的压缩包"},"vgscan":{"n":"vgscan","p":"/vgscan","d":"扫描并显示系统中的卷组"},"bzless":{"n":"bzless","p":"/bzless","d":"增强.bz2压缩包查看器"},"mpstat":{"n":"mpstat","p":"/mpstat","d":"显示各个可用CPU的状态"},"mtools":{"n":"mtools","p":"/mtools","d":"显示mtools支持的指令"},"ipcalc":{"n":"ipcalc","p":"/ipcalc","d":"简单的IP地址计算器"},"lnstat":{"n":"lnstat","p":"/lnstat","d":"显示Linux系统的网路状态"},"locate":{"n":"locate","p":"/locate","d":"比 find 好用的文件查找工具"},"strace":{"n":"strace","p":"/strace","d":"跟踪系统调用和信号"},"whatis":{"n":"whatis","p":"/whatis","d":"查询一个命令执行什么功能"},"arping":{"n":"arping","p":"/arping","d":"通过发送ARP协议报文测试网络"},"logger":{"n":"logger","p":"/logger","d":"在系统日志中记录相应条目"},"e2fsck":{"n":"e2fsck","p":"/e2fsck","d":"用于检查第二扩展文件系统的完整性"},"indent":{"n":"indent","p":"/indent","d":"格式化C语言的源文件"},"chattr":{"n":"chattr","p":"/chattr","d":"用来改变文件属性"},"startx":{"n":"startx","p":"/startx","d":"用来启动X Window"},"chroot":{"n":"chroot","p":"/chroot","d":"把根目录换成指定的目的目录"},"logout":{"n":"logout","p":"/logout","d":"退出当前登录的Shell"},"gunzip":{"n":"gunzip","p":"/gunzip","d":"用来解压缩文件"},"ulimit":{"n":"ulimit","p":"/ulimit","d":"控制shell程序的资源"},"vmstat":{"n":"vmstat","p":"/vmstat","d":"显示虚拟内存状态"},"syslog":{"n":"syslog","p":"/syslog","d":"系统默认的日志守护进程"},"hdparm":{"n":"hdparm","p":"/hdparm","d":"显示与设定硬盘的参数"},"sysctl":{"n":"sysctl","p":"/sysctl","d":"时动态地修改内核的运行参数"},"finger":{"n":"finger","p":"/finger","d":"用于查找并显示用户信息"},"umount":{"n":"umount","p":"/umount","d":"用于卸载已经加载的文件系统"},"ntsysv":{"n":"ntsysv","p":"/ntsysv","d":"集中管理系统的各种服务"},"telnet":{"n":"telnet","p":"/telnet","d":"登录远程主机和管理(测试ip端口是否连通)"},"hping3":{"n":"hping3","p":"/hping3","d":"测试网络及主机的安全"},"findfs":{"n":"findfs","p":"/findfs","d":"标签或UUID查找文件系统"},"parted":{"n":"parted","p":"/parted","d":"磁盘分区和分区大小调整工具"},"passwd":{"n":"passwd","p":"/passwd","d":"用于让用户可以更改自己的密码"},"telint":{"n":"telint","p":"/telint","d":"切换当前正在运行系统的运行等级"},"iptraf":{"n":"iptraf","p":"/iptraf","d":"实时地监视网卡流量"},"lpstat":{"n":"lpstat","p":"/lpstat","d":"显示CUPS中打印机的状态信息"},"export":{"n":"export","p":"/export","d":"设置或显示系统环境变量"},"lsattr":{"n":"lsattr","p":"/lsattr","d":"查看文件的第二扩展文件系统属性"},"ispell":{"n":"ispell","p":"/ispell","d":"检查文件中出现的拼写错误"},"groups":{"n":"groups","p":"/groups","d":"用来打印指定用户所属的工作组"},"jwhois":{"n":"jwhois","p":"/jwhois","d":"whois 客户端服务"},"printf":{"n":"printf","p":"/printf","d":"格式化并输出结果"},"insmod":{"n":"insmod","p":"/insmod","d":"将给定的模块加载到内核中"},"expand":{"n":"expand","p":"/expand","d":"将文件的制表符转换为空白字符"},"pstack":{"n":"pstack","p":"/pstack","d":"显示每个进程的栈跟踪"},"pstree":{"n":"pstree","p":"/pstree","d":"以树状图的方式展现进程之间的派生关系"},"bzmore":{"n":"bzmore","p":"/bzmore","d":"查看bzip2压缩过的文本文件的内容"},"vdfuse":{"n":"vdfuse","p":"/vdfuse","d":"VirtualBox软件挂载VDI分区文件工具"},"uupick":{"n":"uupick","p":"/uupick","d":"命令处理传送进来的文件。"},"bzdiff":{"n":"bzdiff","p":"/bzdiff","d":"直接比较两个.bz2压缩包中文件的不同"},"pvscan":{"n":"pvscan","p":"/pvscan","d":"扫描系统中所有硬盘的物理卷列表"},"pwconv":{"n":"pwconv","p":"/pwconv","d":"用来开启用户的投影密码"},"ltrace":{"n":"ltrace","p":"/ltrace","d":"用来跟踪进程调用库函数的情况"},"hostid":{"n":"hostid","p":"/hostid","d":"用来打印当前主机的数字化标识"},"whoami":{"n":"whoami","p":"/whoami","d":"打印当前有效的用户名称"},"uucico":{"n":"uucico","p":"/uucico","d":"UUCP文件传输服务程序。"},"source":{"n":"source","p":"/source","d":"在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态。"},"rcconf":{"n":"rcconf","p":"/rcconf","d":"Debian Linux下的运行等级服务配置工具"},"depmod":{"n":"depmod","p":"/depmod","d":"分析可载入模块的相依性"},"accept":{"n":"accept","p":"/accept","d":"指示打印系统接受发往指定目标打印机的打印任务"},"reboot":{"n":"reboot","p":"/reboot","d":"重新启动正在运行的Linux操作系统"},"reject":{"n":"reject","p":"/reject","d":"指示打印系统拒绝发往指定目标打印机的打印任务"},"rename":{"n":"rename","p":"/rename","d":"用字符串替换的方式批量改变文件名"},"renice":{"n":"renice","p":"/renice","d":"修改正在运行的进程的调度优先级"},"resize":{"n":"resize","p":"/resize","d":"命令设置终端机视窗的大小。"},"lvscan":{"n":"lvscan","p":"/lvscan","d":"扫描逻辑卷"},"swapon":{"n":"swapon","p":"/swapon","d":"激活Linux系统中交换空间"},"enable":{"n":"enable","p":"/enable","d":"启动或关闭shell内建命令"},"iostat":{"n":"iostat","p":"/iostat","d":"监视系统输入输出设备和CPU的使用情况"},"rlogin":{"n":"rlogin","p":"/rlogin","d":"从当前终端登录到远程Linux主机"},"cancel":{"n":"cancel","p":"/cancel","d":"取消已存在的打印任务"},"elinks":{"n":"elinks","p":"/elinks","d":"纯文本界面的WWW浏览器"},"md5sum":{"n":"md5sum","p":"/md5sum","d":"计算和校验文件报文摘要的工具程序"},"ifdown":{"n":"ifdown","p":"/ifdown","d":"禁用指定的网络接口"},"ifstat":{"n":"ifstat","p":"/ifstat","d":"统计网络接口流量状态"},"mke2fs":{"n":"mke2fs","p":"/mke2fs","d":"创建磁盘分区上的“etc2/etc3”文件系统"},"bzgrep":{"n":"bzgrep","p":"/bzgrep","d":"使用正则表达式搜索.bz2压缩包中文件"},"unlink":{"n":"unlink","p":"/unlink","d":"系统调用函数unlink去删除指定的文件"},"csplit":{"n":"csplit","p":"/csplit","d":"将一个大文件分割成小的碎片文件"},"ftpwho":{"n":"ftpwho","p":"/ftpwho","d":"显示当前每个ftp会话信息"},"ftptop":{"n":"ftptop","p":"/ftptop","d":"proftpd服务器的连接状态"},"uptime":{"n":"uptime","p":"/uptime","d":"查看Linux系统负载信息"},"screen":{"n":"screen","p":"/screen","d":"用于命令行终端切换"},"seinfo":{"n":"seinfo","p":"/seinfo","d":"查询SELinux的策略提供多少相关规则"},"mkswap":{"n":"mkswap","p":"/mkswap","d":"建立和设置SWAP交换分区"},"setsid":{"n":"setsid","p":"/setsid","d":"在新的会话中运行程序。"},"mktemp":{"n":"mktemp","p":"/mktemp","d":"创建临时文件供shell脚本使用"},"setpci":{"n":"setpci","p":"/setpci","d":"查询和配置PCI设备的使用工具"},"strings":{"n":"strings","p":"/strings","d":"在对象文件或二进制文件中查找可打印的字符串"},"setfacl":{"n":"setfacl","p":"/setfacl","d":"设置文件访问控制列表"},"service":{"n":"service","p":"/service","d":"控制系统服务的实用工具"},"crontab":{"n":"crontab","p":"/crontab","d":"提交和管理用户的需要周期性执行的任务"},"useradd":{"n":"useradd","p":"/useradd","d":"创建的新的系统用户"},"rpmsign":{"n":"rpmsign","p":"/rpmsign","d":"使用RPM软件包的签名管理工具"},"userdel":{"n":"userdel","p":"/userdel","d":"用于删除给定的用户以及与用户相关的文件"},"usermod":{"n":"usermod","p":"/usermod","d":"用于修改用户的基本信息"},"slabtop":{"n":"slabtop","p":"/slabtop","d":"实时显示内核slab内存缓存信息"},"declare":{"n":"declare","p":"/declare","d":"声明或显示shell变量"},"slocate":{"n":"slocate","p":"/slocate","d":"命令查找文件或目录"},"restore":{"n":"restore","p":"/restore","d":"所进行的操作和dump指令相反"},"readelf":{"n":"readelf","p":"/readelf","d":"用于显示elf格式文件的信息"},"quotaon":{"n":"quotaon","p":"/quotaon","d":"激活Linux内核中指定文件系统的磁盘配额功能"},"dirname":{"n":"dirname","p":"/dirname","d":"去除文件名中的非目录部分"},"ppp-off":{"n":"ppp-off","p":"/ppp-off","d":"关闭ppp连线"},"pathchk":{"n":"pathchk","p":"/pathchk","d":"检查文件中不可移植的部分"},"openssl":{"n":"openssl","p":"/openssl","d":"强大的安全套接字层密码库"},"unalias":{"n":"unalias","p":"/unalias","d":"删除由alias设置的别名"},"objdump":{"n":"objdump","p":"/objdump","d":"显示二进制文件信息"},"ssh-add":{"n":"ssh-add","p":"/ssh-add","d":"把专用密钥添加到ssh-agent的高速缓存中"},"ntpdate":{"n":"ntpdate","p":"/ntpdate","d":"使用网络计时协议(NTP)设置日期和时间"},"nologin":{"n":"nologin","p":"/nologin","d":"拒绝用户登录系统"},"volname":{"n":"volname","p":"/volname","d":"显示指定的ISO-9660格式的设备的卷名称"},"nfsstat":{"n":"nfsstat","p":"/nfsstat","d":"列出NFS客户端和服务器的工作状态"},"netstat":{"n":"netstat","p":"/netstat","d":"查看Linux中网络系统状态信息"},"nethogs":{"n":"nethogs","p":"/nethogs","d":"终端下的网络流量监控工具"},"whereis":{"n":"whereis","p":"/whereis","d":"查找二进制程序、代码等相关文件路径"},"command":{"n":"command","p":"/command","d":"调用并执行指定的命令"},"e2label":{"n":"e2label","p":"/e2label","d":"设置第二扩展文件系统的卷标"},"edquota":{"n":"edquota","p":"/edquota","d":"用于编辑指定用户或工作组磁盘配额"},"mkisofs":{"n":"mkisofs","p":"/mkisofs","d":"建立ISO 9660映像文件"},"builtin":{"n":"builtin","p":"/builtin","d":"执行shell内部命令"},"swapoff":{"n":"swapoff","p":"/swapoff","d":"关闭指定的交换空间"},"ethtool":{"n":"ethtool","p":"/ethtool","d":"显示或修改以太网卡的配置信息"},"lpadmin":{"n":"lpadmin","p":"/lpadmin","d":"配置CUPS套件中的打印机和类"},"losetup":{"n":"losetup","p":"/losetup","d":"设定与控制循环(loop)设备"},"logsave":{"n":"logsave","p":"/logsave","d":"将命令的输出信息保存到指定的日志文件"},"bunzip2":{"n":"bunzip2","p":"/bunzip2","d":"创一个bz2文件压缩包"},"systool":{"n":"systool","p":"/systool","d":"显示基于总线、类和拓扑显示系统中设备的信息"},"logname":{"n":"logname","p":"/logname","d":"用来显示用户名称"},"ftpshut":{"n":"ftpshut","p":"/ftpshut","d":"在指定的时间关闭FTP服务器"},"lftpget":{"n":"lftpget","p":"/lftpget","d":"调用lftp指令下载指定的文件"},"lastlog":{"n":"lastlog","p":"/lastlog","d":"显示系统中所有用户最近一次登录信息"},"tcpdump":{"n":"tcpdump","p":"/tcpdump","d":"一款sniffer工具,是Linux上的抓包工具,嗅探器。"},"killall":{"n":"killall","p":"/killall","d":"使用进程的名称来杀死一组进程"},"gpasswd":{"n":"gpasswd","p":"/gpasswd","d":"Linux下工作组文件的管理工具"},"apt-key":{"n":"apt-key","p":"/apt-key","d":"管理Debian Linux系统中的软件包密钥"},"apt-get":{"n":"apt-get","p":"/apt-get","d":"Debian Linux发行版中的APT软件包管理工具"},"apropos":{"n":"apropos","p":"/apropos","d":"在 whatis 数据库中查找字符串"},"grpconv":{"n":"grpconv","p":"/grpconv","d":"用来开启群组的投影密码"},"install":{"n":"install","p":"/install","d":"安装或升级软件或备份数据"},"zipinfo":{"n":"zipinfo","p":"/zipinfo","d":"用来列出压缩文件信息"},"hwclock":{"n":"hwclock","p":"/hwclock","d":"显示与设定硬件时钟"},"hexdump":{"n":"hexdump","p":"/hexdump","d":"显示文件十六进制格式"},"history":{"n":"history","p":"/history","d":"用于显示历史命令"},"iptstate":{"n":"iptstate","p":"/iptstate","d":"显示iptables的工作状态"},"arpwatch":{"n":"arpwatch","p":"/arpwatch","d":"监听网络上ARP的记录"},"pvchange":{"n":"pvchange","p":"/pvchange","d":"修改物理卷属性"},"diffstat":{"n":"diffstat","p":"/diffstat","d":"显示diff命令输出信息的柱状图"},"pvcreate":{"n":"pvcreate","p":"/pvcreate","d":"将物理硬盘分区初始化为物理卷"},"basename":{"n":"basename","p":"/basename","d":"打印目录或者文件的基本名称"},"pvremove":{"n":"pvremove","p":"/pvremove","d":"删除一个存在的物理卷"},"lvremove":{"n":"lvremove","p":"/lvremove","d":"删除指定LVM逻辑卷"},"ldconfig":{"n":"ldconfig","p":"/ldconfig","d":"动态链接库管理命令"},"shutdown":{"n":"shutdown","p":"/shutdown","d":"用来执行系统关机的命令"},"dhcrelay":{"n":"dhcrelay","p":"/dhcrelay","d":"使用dhcrelay命令可以提供中继DHCP和BOOTP请求"},"mkinitrd":{"n":"mkinitrd","p":"/mkinitrd","d":"建立要载入ramdisk的映像文件"},"zipsplit":{"n":"zipsplit","p":"/zipsplit","d":"将较大的zip压缩包分割成各个较小的压缩包"},"logwatch":{"n":"logwatch","p":"/logwatch","d":"可定制和可插入式的日志监视系统"},"unexpand":{"n":"unexpand","p":"/unexpand","d":"将文件的空白字符转换为制表符"},"groupmod":{"n":"groupmod","p":"/groupmod","d":"更改群组识别码或名称"},"nslookup":{"n":"nslookup","p":"/nslookup","d":"查询域名DNS信息的工具"},"quotaoff":{"n":"quotaoff","p":"/quotaoff","d":"关闭Linux内核中指定文件系统的磁盘配额功能"},"groupdel":{"n":"groupdel","p":"/groupdel","d":"用于删除指定的工作组"},"modprobe":{"n":"modprobe","p":"/modprobe","d":"自动处理可载入模块"},"dhclient":{"n":"dhclient","p":"/dhclient","d":"动态获取或释放IP地址"},"lvcreate":{"n":"lvcreate","p":"/lvcreate","d":"用于创建LVM的逻辑卷"},"groupadd":{"n":"groupadd","p":"/groupadd","d":"用于创建一个新的工作组"},"readonly":{"n":"readonly","p":"/readonly","d":"定义只读shell变量或函数"},"lvextend":{"n":"lvextend","p":"/lvextend","d":"扩展逻辑卷空间"},"lvreduce":{"n":"lvreduce","p":"/lvreduce","d":"收缩逻辑卷空间"},"vgrename":{"n":"vgrename","p":"/vgrename","d":"使用vgrename命令可以重命名卷组的名称。"},"htdigest":{"n":"htdigest","p":"/htdigest","d":"Apache服务器内置工具"},"blockdev":{"n":"blockdev","p":"/blockdev","d":"从命令行调用区块设备控制程序"},"repquota":{"n":"repquota","p":"/repquota","d":"报表的格式输出磁盘空间限制的状态"},"lvresize":{"n":"lvresize","p":"/lvresize","d":"调整逻辑卷空间大小"},"xlsfonts":{"n":"xlsfonts","p":"/xlsfonts","d":"列出X Server使用的字体"},"chpasswd":{"n":"chpasswd","p":"/chpasswd","d":"批量更新用户口令的工具"},"ftpcount":{"n":"ftpcount","p":"/ftpcount","d":"显示目前已FTP登入的用户人数"},"vgremove":{"n":"vgremove","p":"/vgremove","d":"用于用户删除LVM卷组"},"hostname":{"n":"hostname","p":"/hostname","d":"显示和设置系统的主机名"},"exportfs":{"n":"exportfs","p":"/exportfs","d":"管理NFS共享文件系统列表"},"bmodinfo":{"n":"bmodinfo","p":"/bmodinfo","d":"显示给定模块的详细信息"},"vgreduce":{"n":"vgreduce","p":"/vgreduce","d":"从卷组中删除物理卷"},"dpkg-deb":{"n":"dpkg-deb","p":"/dpkg-deb","d":"Debian Linux下的软件包管理工具"},"mailstat":{"n":"mailstat","p":"/mailstat","d":"显示到达的邮件状态"},"dos2unix":{"n":"dos2unix","p":"/dos2unix","d":"将DOS格式文本文件转换成Unix格式"},"htpasswd":{"n":"htpasswd","p":"/htpasswd","d":"apache服务器创建密码认证文件"},"rpm2cpio":{"n":"rpm2cpio","p":"/rpm2cpio","d":"将RPM软件包转换为cpio格式的文件"},"rpmbuild":{"n":"rpmbuild","p":"/rpmbuild","d":"创建RPM的二进制软件包和源码软件包"},"vgextend":{"n":"vgextend","p":"/vgextend","d":"向卷组中添加物理卷"},"rpmquery":{"n":"rpmquery","p":"/rpmquery","d":"从RPM数据库中查询软件包信息"},"vgcreate":{"n":"vgcreate","p":"/vgcreate","d":"用于创建LVM卷组"},"poweroff":{"n":"poweroff","p":"/poweroff","d":"关闭Linux系统,关闭记录会被写入到/var/log/wtmp日志文件中。"},"iptables":{"n":"iptables","p":"/iptables","d":"Linux上常用的防火墙软件"},"cdrecord":{"n":"cdrecord","p":"/cdrecord","d":"Linux系统下光盘刻录功能命令"},"vgchange":{"n":"vgchange","p":"/vgchange","d":"修改卷组属性"},"runlevel":{"n":"runlevel","p":"/runlevel","d":"打印当前Linux系统的运行等级"},"xlsatoms":{"n":"xlsatoms","p":"/xlsatoms","d":"列出X服务器内部所有定义的原子成分"},"protoize":{"n":"protoize","p":"/protoize","d":"GNU-C代码转换为ANSI-C代码"},"ifconfig":{"n":"ifconfig","p":"/ifconfig","d":"配置和显示Linux系统网卡的网络参数"},"updatedb":{"n":"updatedb","p":"/updatedb","d":"创建或更新slocate命令所必需的数据库文件"},"tempfile":{"n":"tempfile","p":"/tempfile","d":"shell中给临时文件命名"},"mii-tool":{"n":"mii-tool","p":"/mii-tool","d":"配置网络设备协商方式的工具"},"semanage":{"n":"semanage","p":"/semanage","d":"默认目录的安全上下文查询与修改"},"sendmail":{"n":"sendmail","p":"/sendmail","d":"著名电子邮件服务器"},"compress":{"n":"compress","p":"/compress","d":"使用Lempress-Ziv编码压缩数据文件"},"newusers":{"n":"newusers","p":"/newusers","d":"用于批处理的方式一次创建多个命令"},"sesearch":{"n":"sesearch","p":"/sesearch","d":"查询SELinux策略的规则详情"},"aptitude":{"n":"aptitude","p":"/aptitude","d":"Debian Linux系统中软件包管理工具"},"pwunconv":{"n":"pwunconv","p":"/pwunconv","d":"用来关闭用户的投影密码"},"dircolors":{"n":"dircolors","p":"/dircolors","d":"置ls命令在显示目录或文件时所用的色彩"},"getsebool":{"n":"getsebool","p":"/getsebool","d":"查询SElinux策略内各项规则的布尔值"},"systemctl":{"n":"systemctl","p":"/systemctl","d":"系统服务管理器指令"},"fishshell":{"n":"fishshell","p":"/fishshell","d":"比 bash 更好用的 shell"},"chkconfig":{"n":"chkconfig","p":"/chkconfig","d":"检查或设置系统的各种服务"},"logrotate":{"n":"logrotate","p":"/logrotate","d":"统日志进行轮转、压缩和删除"},"lvdisplay":{"n":"lvdisplay","p":"/lvdisplay","d":"显示逻辑卷属性"},"mysqldump":{"n":"mysqldump","p":"/mysqldump","d":"MySQL数据库中备份工具"},"ssh-agent":{"n":"ssh-agent","p":"/ssh-agent","d":"ssh密钥管理器"},"mysqlshow":{"n":"mysqlshow","p":"/mysqlshow","d":"显示MySQL中数据库相关信息"},"grpunconv":{"n":"grpunconv","p":"/grpunconv","d":"用来关闭群组的投影密码"},"smbpasswd":{"n":"smbpasswd","p":"/smbpasswd","d":"samba用户和密码管理工具"},"arptables":{"n":"arptables","p":"/arptables","d":"管理ARP包过滤规则表"},"smbclient":{"n":"smbclient","p":"/smbclient","d":"交互方式访问samba服务器"},"showmount":{"n":"showmount","p":"/showmount","d":"显示NFS服务器加载的信息"},"clockdiff":{"n":"clockdiff","p":"/clockdiff","d":"检测两台linux主机的时间差"},"badblocks":{"n":"badblocks","p":"/badblocks","d":"查找磁盘中损坏的区块"},"ip6tables":{"n":"ip6tables","p":"/ip6tables","d":"linux中防火墙软件"},"setsebool":{"n":"setsebool","p":"/setsebool","d":"修改SElinux策略内各项规则的布尔值"},"apachectl":{"n":"apachectl","p":"/apachectl","d":"Apache服务器前端控制工具"},"rpmverify":{"n":"rpmverify","p":"/rpmverify","d":"验证已安装的RPM软件包的正确性"},"partprobe":{"n":"partprobe","p":"/partprobe","d":"不重启的情况下重读分区"},"tcpreplay":{"n":"tcpreplay","p":"/tcpreplay","d":"将PCAP包重新发送,用于性能或者功能测试"},"vgdisplay":{"n":"vgdisplay","p":"/vgdisplay","d":"显示LVM卷组的信息"},"vgconvert":{"n":"vgconvert","p":"/vgconvert","d":"转换卷组元数据格式"},"dmidecode":{"n":"dmidecode","p":"/dmidecode","d":"在Linux系统下获取有关硬件方面的信息"},"pvdisplay":{"n":"pvdisplay","p":"/pvdisplay","d":"显示物理卷的属性"},"tracepath":{"n":"tracepath","p":"/tracepath","d":"追踪目的主机经过的路由信息"},"uncompress":{"n":"uncompress","p":"/uncompress","d":"用来解压.Z文件"},"quotacheck":{"n":"quotacheck","p":"/quotacheck","d":"检查磁盘的使用空间与限制"},"traceroute":{"n":"traceroute","p":"/traceroute","d":"显示数据包到主机间的路径"},"usernetctl":{"n":"usernetctl","p":"/usernetctl","d":"被允许时操作指定的网络接口"},"domainname":{"n":"domainname","p":"/domainname","d":"显示和设置系统的NIS域名"},"getenforce":{"n":"getenforce","p":"/getenforce","d":"显示当前SELinux的应用模式,是强制、执行还是停用。"},"cupsenable":{"n":"cupsenable","p":"/cupsenable","d":"启动指定的打印机"},"get_module":{"n":"get_module","p":"/get_module","d":"获取Linux内核模块的详细信息"},"dpkg-query":{"n":"dpkg-query","p":"/dpkg-query","d":"Debian Linux中软件包的查询工具"},"ssh-keygen":{"n":"ssh-keygen","p":"/ssh-keygen","d":"为ssh生成、管理和转换认证密钥"},"dpkg-split":{"n":"dpkg-split","p":"/dpkg-split","d":"Debian Linux中将大软件包分割成小包"},"mkbootdisk":{"n":"mkbootdisk","p":"/mkbootdisk","d":"可建立目前系统的启动盘"},"unprotoize":{"n":"unprotoize","p":"/unprotoize","d":"删除C语言源代码文件中的函数原型"},"restorecon":{"n":"restorecon","p":"/restorecon","d":"恢复文件的安全上下文"},"mysqladmin":{"n":"mysqladmin","p":"/mysqladmin","d":"MySQL服务器管理客户端"},"xlsclients":{"n":"xlsclients","p":"/xlsclients","d":"列出显示器中的客户端应用程序"},"mysqlimport":{"n":"mysqlimport","p":"/mysqlimport","d":"为MySQL服务器用命令行方式导入数据"},"squidclient":{"n":"squidclient","p":"/squidclient","d":"squid服务器的客户端管理工具"},"sftp-server":{"n":"sftp-server","p":"/sftp-server","d":"sftp协议的服务器端程序"},"consoletype":{"n":"consoletype","p":"/consoletype","d":"输出已连接的终端类型"},"lsb_release":{"n":"lsb_release","p":"/lsb_release","d":"显示发行版本信息"},"ssh-copy-id":{"n":"ssh-copy-id","p":"/ssh-copy-id","d":"把本地的ssh公钥文件安装到远程主机对应的账户下"},"supervisord":{"n":"supervisord","p":"/supervisord","d":"配置后台服务/常驻进程的进程管家工具"},"cupsdisable":{"n":"cupsdisable","p":"/cupsdisable","d":"停止指定的打印机"},"dpkg-divert":{"n":"dpkg-divert","p":"/dpkg-divert","d":"Debian Linux中创建并管理一个转向列表"},"inotifywait":{"n":"inotifywait","p":"/inotifywait","d":"异步文件系统监控机制"},"ssh-keyscan":{"n":"ssh-keyscan","p":"/ssh-keyscan","d":"收集主机公钥的使用工具"},"dpkg-trigger":{"n":"dpkg-trigger","p":"/dpkg-trigger","d":"Debian Linux下的软件包触发器"},"apt-sortpkgs":{"n":"apt-sortpkgs","p":"/apt-sortpkgs","d":"Debian Linux下对软件包索引文件进行排序的工具"},"convertquota":{"n":"convertquota","p":"/convertquota","d":"把老的配额文件转换为新的格式"},"ypdomainname":{"n":"ypdomainname","p":"/ypdomainname","d":"显示主机的NIS的域名"},"bzip2recover":{"n":"bzip2recover","p":"/bzip2recover","d":"恢复被破坏的.bz2压缩包中的文件"},"firewall-cmd":{"n":"firewall-cmd","p":"/firewall-cmd","d":"Linux上新用的防火墙软件,跟iptables差不多的工具。"},"kernelversion":{"n":"kernelversion","p":"/kernelversion","d":"打印当前内核的主版本号"},"iptables-save":{"n":"iptables-save","p":"/iptables-save","d":"备份iptables的表配置"},"nisdomainname":{"n":"nisdomainname","p":"/nisdomainname","d":"显示主机NIS的域名"},"speedtest-cli":{"n":"speedtest-cli","p":"/speedtest-cli","d":"命令行下测试服务器外网速度"},"dnsdomainname":{"n":"dnsdomainname","p":"/dnsdomainname","d":"定义DNS系统中FQDN名称的域名"},"ip6tables-save":{"n":"ip6tables-save","p":"/ip6tables-save","d":"保存ip6tables表配置"},"named-checkzone":{"n":"named-checkzone","p":"/named-checkzone","d":"使用named-checkzone命令可以进行区域文件有效性检查和转换,必须指定区域名称和区域文件名称。"},"iptables-restore":{"n":"iptables-restore","p":"/iptables-restore","d":"还原iptables表的配置"},"dpkg-reconfigure":{"n":"dpkg-reconfigure","p":"/dpkg-reconfigure","d":"Debian Linux中重新配制一个已经安装的软件包"},"ip6tables-restore":{"n":"ip6tables-restore","p":"/ip6tables-restore","d":"还原ip6tables表"},"dpkg-statoverride":{"n":"dpkg-statoverride","p":"/dpkg-statoverride","d":"Debian Linux中覆盖文件的所有权和模式"},"dpkg-preconfigure":{"n":"dpkg-preconfigure","p":"/dpkg-preconfigure","d":"Debian Linux中软件包安装之前询问问题"}}
\ No newline at end of file
+{"ab":{"n":"ab","p":"/ab","d":"Apache服务器的性能测试工具"},"accept":{"n":"accept","p":"/accept","d":"指示打印系统接受发往指定目标打印机的打印任务"},"ack":{"n":"ack","p":"/ack","d":"比grep好用的文本搜索工具"},"alias":{"n":"alias","p":"/alias","d":"用来设置指令的别名"},"apachectl":{"n":"apachectl","p":"/apachectl","d":"Apache服务器前端控制工具"},"apk":{"n":"apk","p":"/apk","d":"Alpine Linux 下的包管理工具"},"apropos":{"n":"apropos","p":"/apropos","d":"在 whatis 数据库中查找字符串"},"apt-get":{"n":"apt-get","p":"/apt-get","d":"Debian Linux发行版中的APT软件包管理工具"},"apt-key":{"n":"apt-key","p":"/apt-key","d":"管理Debian Linux系统中的软件包密钥"},"apt-sortpkgs":{"n":"apt-sortpkgs","p":"/apt-sortpkgs","d":"Debian Linux下对软件包索引文件进行排序的工具"},"aptitude":{"n":"aptitude","p":"/aptitude","d":"Debian Linux系统中软件包管理工具"},"ar":{"n":"ar","p":"/ar","d":"建立或修改备存文件,或是从备存文件中抽取文件"},"arch":{"n":"arch","p":"/arch","d":"显示当前主机的硬件架构类型"},"arj":{"n":"arj","p":"/arj","d":"用于创建和管理.arj压缩包"},"arp":{"n":"arp","p":"/arp","d":"显示和修改IP到MAC转换表"},"arpd":{"n":"arpd","p":"/arpd","d":"收集免费ARP信息"},"arping":{"n":"arping","p":"/arping","d":"通过发送ARP协议报文测试网络"},"arptables":{"n":"arptables","p":"/arptables","d":"管理ARP包过滤规则表"},"arpwatch":{"n":"arpwatch","p":"/arpwatch","d":"监听网络上ARP的记录"},"as":{"n":"as","p":"/as","d":"汇编语言编译器"},"at":{"n":"at","p":"/at","d":"在指定时间执行一个任务"},"atop":{"n":"atop","p":"/atop","d":"监控Linux系统资源与进程的工具"},"atq":{"n":"atq","p":"/atq","d":"列出当前用户的at任务列表"},"atrm":{"n":"atrm","p":"/atrm","d":"删除待执行任务队列中的指定任务"},"awk":{"n":"awk","p":"/awk","d":"文本和数据进行处理的编程语言"},"axel":{"n":"axel","p":"/axel","d":"多线程下载工具"},"badblocks":{"n":"badblocks","p":"/badblocks","d":"查找磁盘中损坏的区块"},"basename":{"n":"basename","p":"/basename","d":"打印目录或者文件的基本名称"},"batch":{"n":"batch","p":"/batch","d":"在系统不繁忙的时候执行定时任务"},"bc":{"n":"bc","p":"/bc","d":"算术操作精密运算工具"},"bg":{"n":"bg","p":"/bg","d":"用于将作业放到后台运行"},"bind":{"n":"bind","p":"/bind","d":"显示或设置键盘按键与其相关的功能"},"blkid":{"n":"blkid","p":"/blkid","d":"查看块设备的文件系统类型、LABEL、UUID等信息"},"blockdev":{"n":"blockdev","p":"/blockdev","d":"从命令行调用区块设备控制程序"},"bmodinfo":{"n":"bmodinfo","p":"/bmodinfo","d":"显示给定模块的详细信息"},"builtin":{"n":"builtin","p":"/builtin","d":"执行shell内部命令"},"bunzip2":{"n":"bunzip2","p":"/bunzip2","d":"创一个bz2文件压缩包"},"bye":{"n":"bye","p":"/bye","d":"命令用于中断FTP连线并结束程序。。"},"bzcat":{"n":"bzcat","p":"/bzcat","d":"解压缩指定的.bz2文件"},"bzcmp":{"n":"bzcmp","p":"/bzcmp","d":"比较两个压缩包中的文件"},"bzdiff":{"n":"bzdiff","p":"/bzdiff","d":"直接比较两个.bz2压缩包中文件的不同"},"bzgrep":{"n":"bzgrep","p":"/bzgrep","d":"使用正则表达式搜索.bz2压缩包中文件"},"bzip2":{"n":"bzip2","p":"/bzip2","d":"将文件压缩成bz2格式"},"bzip2recover":{"n":"bzip2recover","p":"/bzip2recover","d":"恢复被破坏的.bz2压缩包中的文件"},"bzless":{"n":"bzless","p":"/bzless","d":"增强.bz2压缩包查看器"},"bzmore":{"n":"bzmore","p":"/bzmore","d":"查看bzip2压缩过的文本文件的内容"},"cal":{"n":"cal","p":"/cal","d":"显示当前日历或指定日期的日历"},"cancel":{"n":"cancel","p":"/cancel","d":"取消已存在的打印任务"},"cat":{"n":"cat","p":"/cat","d":"连接文件并打印到标准输出设备上"},"cd":{"n":"cd","p":"/cd","d":"切换用户当前工作目录"},"cdrecord":{"n":"cdrecord","p":"/cdrecord","d":"Linux系统下光盘刻录功能命令"},"chage":{"n":"chage","p":"/chage","d":"修改帐号和密码的有效期限"},"chattr":{"n":"chattr","p":"/chattr","d":"用来改变文件属性"},"chcon":{"n":"chcon","p":"/chcon","d":"修改对象(文件)的安全上下文"},"chfn":{"n":"chfn","p":"/chfn","d":"用来改变finger命令显示的信息"},"chgrp":{"n":"chgrp","p":"/chgrp","d":"用来变更文件或目录的所属群组"},"chkconfig":{"n":"chkconfig","p":"/chkconfig","d":"检查或设置系统的各种服务"},"chmod":{"n":"chmod","p":"/chmod","d":"用来变更文件或目录的权限"},"chown":{"n":"chown","p":"/chown","d":"用来变更文件或目录的拥有者或所属群组"},"chpasswd":{"n":"chpasswd","p":"/chpasswd","d":"批量更新用户口令的工具"},"chroot":{"n":"chroot","p":"/chroot","d":"把根目录换成指定的目的目录"},"chsh":{"n":"chsh","p":"/chsh","d":"用来更换登录系统时使用的shell"},"cksum":{"n":"cksum","p":"/cksum","d":"检查文件的CRC是否正确"},"clear":{"n":"clear","p":"/clear","d":"清除当前屏幕终端上的任何信息"},"clock":{"n":"clock","p":"/clock","d":"用于调整 RTC 时间。"},"clockdiff":{"n":"clockdiff","p":"/clockdiff","d":"检测两台linux主机的时间差"},"cmp":{"n":"cmp","p":"/cmp","d":"比较两个文件是否有差异"},"col":{"n":"col","p":"/col","d":"过滤控制字符"},"colrm":{"n":"colrm","p":"/colrm","d":"删除文件中的指定列"},"comm":{"n":"comm","p":"/comm","d":"两个文件之间的比较"},"command":{"n":"command","p":"/command","d":"调用并执行指定的命令"},"compress":{"n":"compress","p":"/compress","d":"使用Lempress-Ziv编码压缩数据文件"},"consoletype":{"n":"consoletype","p":"/consoletype","d":"输出已连接的终端类型"},"convertquota":{"n":"convertquota","p":"/convertquota","d":"把老的配额文件转换为新的格式"},"cp":{"n":"cp","p":"/cp","d":"将源文件或目录复制到目标文件或目录中"},"cpio":{"n":"cpio","p":"/cpio","d":"用来建立、还原备份档的工具程序"},"crontab":{"n":"crontab","p":"/crontab","d":"提交和管理用户的需要周期性执行的任务"},"csplit":{"n":"csplit","p":"/csplit","d":"将一个大文件分割成小的碎片文件"},"cu":{"n":"cu","p":"/cu","d":"用于连接另一个系统主机。"},"cupsdisable":{"n":"cupsdisable","p":"/cupsdisable","d":"停止指定的打印机"},"cupsenable":{"n":"cupsenable","p":"/cupsenable","d":"启动指定的打印机"},"curl":{"n":"curl","p":"/curl","d":"利用URL规则在命令行下工作的文件传输工具"},"cut":{"n":"cut","p":"/cut","d":"连接文件并打印到标准输出设备上"},"date":{"n":"date","p":"/date","d":"显示或设置系统时间与日期"},"dd":{"n":"dd","p":"/dd","d":"复制文件并对原文件的内容进行转换和格式化处理"},"declare":{"n":"declare","p":"/declare","d":"声明或显示shell变量"},"depmod":{"n":"depmod","p":"/depmod","d":"分析可载入模块的相依性"},"df":{"n":"df","p":"/df","d":"显示磁盘的相关信息"},"dhclient":{"n":"dhclient","p":"/dhclient","d":"动态获取或释放IP地址"},"dhcpd":{"n":"dhcpd","p":"/dhcpd","d":"运行DHCP服务器。"},"dhcrelay":{"n":"dhcrelay","p":"/dhcrelay","d":"使用dhcrelay命令可以提供中继DHCP和BOOTP请求"},"diff":{"n":"diff","p":"/diff","d":"比较给定的两个文件的不同"},"diff3":{"n":"diff3","p":"/diff3","d":"比较3个文件不同的地方"},"diffstat":{"n":"diffstat","p":"/diffstat","d":"显示diff命令输出信息的柱状图"},"dig":{"n":"dig","p":"/dig","d":"域名查询工具"},"dircolors":{"n":"dircolors","p":"/dircolors","d":"置ls命令在显示目录或文件时所用的色彩"},"dirname":{"n":"dirname","p":"/dirname","d":"去除文件名中的非目录部分"},"dirs":{"n":"dirs","p":"/dirs","d":"显示目录记录"},"dmesg":{"n":"dmesg","p":"/dmesg","d":"显示Linux系统启动信息"},"dmidecode":{"n":"dmidecode","p":"/dmidecode","d":"在Linux系统下获取有关硬件方面的信息"},"dnf":{"n":"dnf","p":"/dnf","d":"新一代的RPM软件包管理器"},"dnsdomainname":{"n":"dnsdomainname","p":"/dnsdomainname","d":"定义DNS系统中FQDN名称的域名"},"domainname":{"n":"domainname","p":"/domainname","d":"显示和设置系统的NIS域名"},"dos2unix":{"n":"dos2unix","p":"/dos2unix","d":"将DOS格式文本文件转换成Unix格式"},"dpkg-deb":{"n":"dpkg-deb","p":"/dpkg-deb","d":"Debian Linux下的软件包管理工具"},"dpkg-divert":{"n":"dpkg-divert","p":"/dpkg-divert","d":"Debian Linux中创建并管理一个转向列表"},"dpkg-preconfigure":{"n":"dpkg-preconfigure","p":"/dpkg-preconfigure","d":"Debian Linux中软件包安装之前询问问题"},"dpkg-query":{"n":"dpkg-query","p":"/dpkg-query","d":"Debian Linux中软件包的查询工具"},"dpkg-reconfigure":{"n":"dpkg-reconfigure","p":"/dpkg-reconfigure","d":"Debian Linux中重新配制一个已经安装的软件包"},"dpkg-split":{"n":"dpkg-split","p":"/dpkg-split","d":"Debian Linux中将大软件包分割成小包"},"dpkg-statoverride":{"n":"dpkg-statoverride","p":"/dpkg-statoverride","d":"Debian Linux中覆盖文件的所有权和模式"},"dpkg-trigger":{"n":"dpkg-trigger","p":"/dpkg-trigger","d":"Debian Linux下的软件包触发器"},"dpkg":{"n":"dpkg","p":"/dpkg","d":"Debian Linux系统上安装、创建和管理软件包"},"dris":{"n":"dris","p":"/dris","d":"显示和清空目录堆栈中的内容"},"dstat":{"n":"dstat","p":"/dstat","d":"通用的系统资源统计工具"},"du":{"n":"du","p":"/du","d":"显示每个文件和目录的磁盘使用空间"},"dump":{"n":"dump","p":"/dump","d":"用于备份ext2或者ext3文件系统"},"e2fsck":{"n":"e2fsck","p":"/e2fsck","d":"用于检查第二扩展文件系统的完整性"},"e2label":{"n":"e2label","p":"/e2label","d":"设置第二扩展文件系统的卷标"},"echo":{"n":"echo","p":"/echo","d":"输出指定的字符串或者变量"},"ed":{"n":"ed","p":"/ed","d":"单行纯文本编辑器"},"edquota":{"n":"edquota","p":"/edquota","d":"用于编辑指定用户或工作组磁盘配额"},"egrep":{"n":"egrep","p":"/egrep","d":"在文件内查找指定的字符串"},"eject":{"n":"eject","p":"/eject","d":"用来退出抽取式设备"},"elinks":{"n":"elinks","p":"/elinks","d":"纯文本界面的WWW浏览器"},"elm":{"n":"elm","p":"/elm","d":"纯文本邮件客户端程序"},"emacs":{"n":"emacs","p":"/emacs","d":"功能强大的全屏文本编辑器"},"enable":{"n":"enable","p":"/enable","d":"启动或关闭shell内建命令"},"env":{"n":"env","p":"/env","d":"显示系统中已存在的环境变量"},"ethtool":{"n":"ethtool","p":"/ethtool","d":"显示或修改以太网卡的配置信息"},"ex":{"n":"ex","p":"/ex","d":"启动vim编辑器的ex编辑模式"},"exec":{"n":"exec","p":"/exec","d":"调用并执行指定的命令"},"exit":{"n":"exit","p":"/exit","d":"退出当前的shell"},"expand":{"n":"expand","p":"/expand","d":"将文件的制表符转换为空白字符"},"export":{"n":"export","p":"/export","d":"设置或显示系统环境变量"},"exportfs":{"n":"exportfs","p":"/exportfs","d":"管理NFS共享文件系统列表"},"expr":{"n":"expr","p":"/expr","d":"一款表达式计算工具"},"fc":{"n":"fc","p":"/fc","d":"修改历史命令并执行"},"fdisk":{"n":"fdisk","p":"/fdisk","d":"查看磁盘使用情况和磁盘分区"},"fg":{"n":"fg","p":"/fg","d":"将后台作业放到前台终端运行"},"fgrep":{"n":"fgrep","p":"/fgrep","d":"为文件搜索文字字符串"},"file":{"n":"file","p":"/file","d":"用来探测给定文件的类型。"},"find":{"n":"find","p":"/find","d":"在指定目录下查找文件"},"findfs":{"n":"findfs","p":"/findfs","d":"标签或UUID查找文件系统"},"finger":{"n":"finger","p":"/finger","d":"用于查找并显示用户信息"},"firewall-cmd":{"n":"firewall-cmd","p":"/firewall-cmd","d":"Linux上新用的防火墙软件,跟iptables差不多的工具。"},"fishshell":{"n":"fishshell","p":"/fishshell","d":"比 bash 更好用的 shell"},"fmt":{"n":"fmt","p":"/fmt","d":"读取文件后优化处理并输出"},"fold":{"n":"fold","p":"/fold","d":"控制文件内容输出时所占用的屏幕宽度"},"free":{"n":"free","p":"/free","d":"显示内存的使用情况"},"fsck":{"n":"fsck","p":"/fsck","d":"检查并且试图修复文件系统中的错误"},"ftp":{"n":"ftp","p":"/ftp","d":"用来设置文件系统相关功能"},"ftpcount":{"n":"ftpcount","p":"/ftpcount","d":"显示目前已FTP登入的用户人数"},"ftpshut":{"n":"ftpshut","p":"/ftpshut","d":"在指定的时间关闭FTP服务器"},"ftptop":{"n":"ftptop","p":"/ftptop","d":"proftpd服务器的连接状态"},"ftpwho":{"n":"ftpwho","p":"/ftpwho","d":"显示当前每个ftp会话信息"},"fuser":{"n":"fuser","p":"/fuser","d":"使用文件或文件结构识别进程"},"gcc":{"n":"gcc","p":"/gcc","d":"基于C/C++的编译器"},"gcov":{"n":"gcov","p":"/gcov","d":"测试程序的代码覆盖率的工具"},"gdb":{"n":"gdb","p":"/gdb","d":"功能强大的程序调试器"},"get_module":{"n":"get_module","p":"/get_module","d":"获取Linux内核模块的详细信息"},"getenforce":{"n":"getenforce","p":"/getenforce","d":"显示当前SELinux的应用模式,是强制、执行还是停用。"},"getsebool":{"n":"getsebool","p":"/getsebool","d":"查询SElinux策略内各项规则的布尔值"},"git":{"n":"git","p":"/git","d":"是目前世界上最先进的分布式版本控制系统"},"gpasswd":{"n":"gpasswd","p":"/gpasswd","d":"Linux下工作组文件的管理工具"},"gpm":{"n":"gpm","p":"/gpm","d":"提供文字模式下的滑鼠事件处理"},"grep":{"n":"grep","p":"/grep","d":"强大的文本搜索工具"},"groupadd":{"n":"groupadd","p":"/groupadd","d":"用于创建一个新的工作组"},"groupdel":{"n":"groupdel","p":"/groupdel","d":"用于删除指定的工作组"},"groupmod":{"n":"groupmod","p":"/groupmod","d":"更改群组识别码或名称"},"groups":{"n":"groups","p":"/groups","d":"用来打印指定用户所属的工作组"},"grpck":{"n":"grpck","p":"/grpck","d":"用于验证组文件的完整性"},"grpconv":{"n":"grpconv","p":"/grpconv","d":"用来开启群组的投影密码"},"grpunconv":{"n":"grpunconv","p":"/grpunconv","d":"用来关闭群组的投影密码"},"grub":{"n":"grub","p":"/grub","d":"多重引导程序grub的命令行shell工具"},"gunzip":{"n":"gunzip","p":"/gunzip","d":"用来解压缩文件"},"gzexe":{"n":"gzexe","p":"/gzexe","d":"用来压缩可执行文件"},"gzip":{"n":"gzip","p":"/gzip","d":"用来压缩文件"},"halt":{"n":"halt","p":"/halt","d":"关闭正在运行的Linux操作系统"},"hdparm":{"n":"hdparm","p":"/hdparm","d":"显示与设定硬盘的参数"},"head":{"n":"head","p":"/head","d":"在屏幕上显示指定文件的开头若干行"},"help":{"n":"help","p":"/help","d":"显示帮助信息"},"hexdump":{"n":"hexdump","p":"/hexdump","d":"显示文件十六进制格式"},"history":{"n":"history","p":"/history","d":"用于显示历史命令"},"host":{"n":"host","p":"/host","d":"常用的分析域名查询工具"},"hostid":{"n":"hostid","p":"/hostid","d":"用来打印当前主机的数字化标识"},"hostname":{"n":"hostname","p":"/hostname","d":"显示和设置系统的主机名"},"hping3":{"n":"hping3","p":"/hping3","d":"测试网络及主机的安全"},"htdigest":{"n":"htdigest","p":"/htdigest","d":"Apache服务器内置工具"},"htop":{"n":"htop","p":"/htop","d":"[非内部命令]一个互动的进程查看器,可以动态观察系统进程状况。"},"htpasswd":{"n":"htpasswd","p":"/htpasswd","d":"apache服务器创建密码认证文件"},"hwclock":{"n":"hwclock","p":"/hwclock","d":"显示与设定硬件时钟"},"iconv":{"n":"iconv","p":"/iconv","d":"转换文件的编码方式"},"id":{"n":"id","p":"/id","d":"显示用户的ID以及所属群组的ID"},"ifcfg":{"n":"ifcfg","p":"/ifcfg","d":"置Linux中的网络接口参数"},"ifconfig":{"n":"ifconfig","p":"/ifconfig","d":"配置和显示Linux系统网卡的网络参数"},"ifdown":{"n":"ifdown","p":"/ifdown","d":"禁用指定的网络接口"},"ifstat":{"n":"ifstat","p":"/ifstat","d":"统计网络接口流量状态"},"iftop":{"n":"iftop","p":"/iftop","d":"一款实时流量监控工具"},"ifup":{"n":"ifup","p":"/ifup","d":"激活指定的网络接口"},"indent":{"n":"indent","p":"/indent","d":"格式化C语言的源文件"},"info":{"n":"info","p":"/info","d":"Linux下info格式的帮助指令"},"init":{"n":"init","p":"/init","d":"init进程是所有Linux进程的父进程"},"inotifywait":{"n":"inotifywait","p":"/inotifywait","d":"异步文件系统监控机制"},"insmod":{"n":"insmod","p":"/insmod","d":"将给定的模块加载到内核中"},"install":{"n":"install","p":"/install","d":"安装或升级软件或备份数据"},"iostat":{"n":"iostat","p":"/iostat","d":"监视系统输入输出设备和CPU的使用情况"},"iotop":{"n":"iotop","p":"/iotop","d":"用来监视磁盘I/O使用状况的工具"},"ip":{"n":"ip","p":"/ip","d":"网络配置工具"},"ip6tables-restore":{"n":"ip6tables-restore","p":"/ip6tables-restore","d":"还原ip6tables表"},"ip6tables-save":{"n":"ip6tables-save","p":"/ip6tables-save","d":"保存ip6tables表配置"},"ip6tables":{"n":"ip6tables","p":"/ip6tables","d":"linux中防火墙软件"},"ipcalc":{"n":"ipcalc","p":"/ipcalc","d":"简单的IP地址计算器"},"ipcrm":{"n":"ipcrm","p":"/ipcrm","d":"删除消息队列、信号集、或者共享内存标识"},"ipcs":{"n":"ipcs","p":"/ipcs","d":"分析消息队列共享内存和信号量 "},"iperf":{"n":"iperf","p":"/iperf","d":"网络性能测试工具"},"iptables-restore":{"n":"iptables-restore","p":"/iptables-restore","d":"还原iptables表的配置"},"iptables-save":{"n":"iptables-save","p":"/iptables-save","d":"备份iptables的表配置"},"iptables":{"n":"iptables","p":"/iptables","d":"Linux上常用的防火墙软件"},"iptraf":{"n":"iptraf","p":"/iptraf","d":"实时地监视网卡流量"},"iptstate":{"n":"iptstate","p":"/iptstate","d":"显示iptables的工作状态"},"ispell":{"n":"ispell","p":"/ispell","d":"检查文件中出现的拼写错误"},"jed":{"n":"jed","p":"/jed","d":"主要用于编辑代码的编辑器"},"jobs":{"n":"jobs","p":"/jobs","d":"显示Linux中的任务列表及任务状态"},"joe":{"n":"joe","p":"/joe","d":"强大的纯文本编辑器"},"join":{"n":"join","p":"/join","d":"两个文件中指定栏位内容相同的行连接起来"},"jwhois":{"n":"jwhois","p":"/jwhois","d":"whois 客户端服务"},"kernelversion":{"n":"kernelversion","p":"/kernelversion","d":"打印当前内核的主版本号"},"kexec":{"n":"kexec","p":"/kexec","d":"从当前正在运行的内核引导到一个新内核"},"kill":{"n":"kill","p":"/kill","d":"删除执行中的程序或工作"},"killall":{"n":"killall","p":"/killall","d":"使用进程的名称来杀死一组进程"},"last":{"n":"last","p":"/last","d":"列出目前与过去登入系统的用户相关信息"},"lastb":{"n":"lastb","p":"/lastb","d":"列出登入系统失败的用户相关信息"},"lastlog":{"n":"lastlog","p":"/lastlog","d":"显示系统中所有用户最近一次登录信息"},"ld":{"n":"ld","p":"/ld","d":"将目标文件连接为可执行程序"},"ldconfig":{"n":"ldconfig","p":"/ldconfig","d":"动态链接库管理命令"},"ldd":{"n":"ldd","p":"/ldd","d":"打印程序或者库文件所依赖的共享库列表"},"less":{"n":"less","p":"/less","d":"分屏上下翻页浏览文件内容"},"let":{"n":"let","p":"/let","d":"简单的计算器"},"lftp":{"n":"lftp","p":"/lftp","d":"优秀的文件客户端程序"},"lftpget":{"n":"lftpget","p":"/lftpget","d":"调用lftp指令下载指定的文件"},"lha":{"n":"lha","p":"/lha","d":"压缩或解压缩lzh格式文件"},"lilo":{"n":"lilo","p":"/lilo","d":"安装核心载入开机管理程序"},"ln":{"n":"ln","p":"/ln","d":"用来为文件创件连接"},"lnstat":{"n":"lnstat","p":"/lnstat","d":"显示Linux系统的网路状态"},"locate":{"n":"locate","p":"/locate","d":"比 find 好用的文件查找工具"},"logger":{"n":"logger","p":"/logger","d":"在系统日志中记录相应条目"},"login":{"n":"login","p":"/login","d":"登录系统或切换用户身份"},"logname":{"n":"logname","p":"/logname","d":"用来显示用户名称"},"logout":{"n":"logout","p":"/logout","d":"退出当前登录的Shell"},"logrotate":{"n":"logrotate","p":"/logrotate","d":"统日志进行轮转、压缩和删除"},"logsave":{"n":"logsave","p":"/logsave","d":"将命令的输出信息保存到指定的日志文件"},"logwatch":{"n":"logwatch","p":"/logwatch","d":"可定制和可插入式的日志监视系统"},"look":{"n":"look","p":"/look","d":"显示文件中以指定字符串开头的任意行"},"losetup":{"n":"losetup","p":"/losetup","d":"设定与控制循环(loop)设备"},"lp":{"n":"lp","p":"/lp","d":"打印文件或修改排队的打印任务"},"lpadmin":{"n":"lpadmin","p":"/lpadmin","d":"配置CUPS套件中的打印机和类"},"lpc":{"n":"lpc","p":"/lpc","d":"命令行方式打印机控制程序"},"lpq":{"n":"lpq","p":"/lpq","d":"显示打印队列中的打印任务的状态信息"},"lpr":{"n":"lpr","p":"/lpr","d":"将文件发送给指定打印机进行打印"},"lprm":{"n":"lprm","p":"/lprm","d":"删除打印队列中的打印任务"},"lpstat":{"n":"lpstat","p":"/lpstat","d":"显示CUPS中打印机的状态信息"},"ls":{"n":"ls","p":"/ls","d":"显示目录内容列表"},"lsattr":{"n":"lsattr","p":"/lsattr","d":"查看文件的第二扩展文件系统属性"},"lsb_release":{"n":"lsb_release","p":"/lsb_release","d":"显示发行版本信息"},"lsblk":{"n":"lsblk","p":"/lsblk","d":"列出块设备信息"},"lscpu":{"n":"lscpu","p":"/lscpu","d":"显示有关CPU架构的信息"},"lsmod":{"n":"lsmod","p":"/lsmod","d":"显示已载入系统的模块"},"lsof":{"n":"lsof","p":"/lsof","d":"显示Linux系统当前已打开的所有文件列表 `lsof -p pid`"},"lspci":{"n":"lspci","p":"/lspci","d":"显示当前主机的所有PCI总线信息"},"lsusb":{"n":"lsusb","p":"/lsusb","d":"显示本机的USB设备列表信息"},"ltrace":{"n":"ltrace","p":"/ltrace","d":"用来跟踪进程调用库函数的情况"},"lvcreate":{"n":"lvcreate","p":"/lvcreate","d":"用于创建LVM的逻辑卷"},"lvdisplay":{"n":"lvdisplay","p":"/lvdisplay","d":"显示逻辑卷属性"},"lvextend":{"n":"lvextend","p":"/lvextend","d":"扩展逻辑卷空间"},"lvreduce":{"n":"lvreduce","p":"/lvreduce","d":"收缩逻辑卷空间"},"lvremove":{"n":"lvremove","p":"/lvremove","d":"删除指定LVM逻辑卷"},"lvresize":{"n":"lvresize","p":"/lvresize","d":"调整逻辑卷空间大小"},"lvscan":{"n":"lvscan","p":"/lvscan","d":"扫描逻辑卷"},"lynx":{"n":"lynx","p":"/lynx","d":"纯文本模式的网页浏览器"},"mail":{"n":"mail","p":"/mail","d":"命令行下发送和接收电子邮件"},"mailq":{"n":"mailq","p":"/mailq","d":"显示待发送的邮件队列"},"mailstat":{"n":"mailstat","p":"/mailstat","d":"显示到达的邮件状态"},"make":{"n":"make","p":"/make","d":"GNU的工程化编译工具"},"man":{"n":"man","p":"/man","d":"查看Linux中的指令帮助"},"md5sum":{"n":"md5sum","p":"/md5sum","d":"计算和校验文件报文摘要的工具程序"},"mesg":{"n":"mesg","p":"/mesg","d":"设置当前终端的写权限"},"mii-tool":{"n":"mii-tool","p":"/mii-tool","d":"配置网络设备协商方式的工具"},"mkbootdisk":{"n":"mkbootdisk","p":"/mkbootdisk","d":"可建立目前系统的启动盘"},"mkdir":{"n":"mkdir","p":"/mkdir","d":"用来创建目录"},"mke2fs":{"n":"mke2fs","p":"/mke2fs","d":"创建磁盘分区上的“etc2/etc3”文件系统"},"mkfs":{"n":"mkfs","p":"/mkfs","d":"用于在设备上创建Linux文件系统"},"mkinitrd":{"n":"mkinitrd","p":"/mkinitrd","d":"建立要载入ramdisk的映像文件"},"mkisofs":{"n":"mkisofs","p":"/mkisofs","d":"建立ISO 9660映像文件"},"mknod":{"n":"mknod","p":"/mknod","d":"创建字符设备文件和块设备文件"},"mkswap":{"n":"mkswap","p":"/mkswap","d":"建立和设置SWAP交换分区"},"mktemp":{"n":"mktemp","p":"/mktemp","d":"创建临时文件供shell脚本使用"},"modprobe":{"n":"modprobe","p":"/modprobe","d":"自动处理可载入模块"},"more":{"n":"more","p":"/more","d":"显示文件内容,每次显示一屏"},"mount":{"n":"mount","p":"/mount","d":"用于挂载Linux系统外的文件。"},"mpstat":{"n":"mpstat","p":"/mpstat","d":"显示各个可用CPU的状态"},"mtools":{"n":"mtools","p":"/mtools","d":"显示mtools支持的指令"},"mv":{"n":"mv","p":"/mv","d":"用来对文件或目录重新命名"},"mysql":{"n":"mysql","p":"/mysql","d":"MySQL服务器客户端工具"},"mysqladmin":{"n":"mysqladmin","p":"/mysqladmin","d":"MySQL服务器管理客户端"},"mysqldump":{"n":"mysqldump","p":"/mysqldump","d":"MySQL数据库中备份工具"},"mysqlimport":{"n":"mysqlimport","p":"/mysqlimport","d":"为MySQL服务器用命令行方式导入数据"},"mysqlshow":{"n":"mysqlshow","p":"/mysqlshow","d":"显示MySQL中数据库相关信息"},"named-checkzone":{"n":"named-checkzone","p":"/named-checkzone","d":"使用named-checkzone命令可以进行区域文件有效性检查和转换,必须指定区域名称和区域文件名称。"},"nano":{"n":"nano","p":"/nano","d":"字符终端文本编辑器"},"nc":{"n":"nc","p":"/nc","d":"命令用于设置路由器。"},"ncftp":{"n":"ncftp","p":"/ncftp","d":"是增强的的FTP工具"},"nethogs":{"n":"nethogs","p":"/nethogs","d":"终端下的网络流量监控工具"},"netstat":{"n":"netstat","p":"/netstat","d":"查看Linux中网络系统状态信息"},"newusers":{"n":"newusers","p":"/newusers","d":"用于批处理的方式一次创建多个命令"},"nfsstat":{"n":"nfsstat","p":"/nfsstat","d":"列出NFS客户端和服务器的工作状态"},"ngrep":{"n":"ngrep","p":"/ngrep","d":"方便的数据包匹配和显示工具"},"nice":{"n":"nice","p":"/nice","d":"改变程序执行的优先权等级"},"nisdomainname":{"n":"nisdomainname","p":"/nisdomainname","d":"显示主机NIS的域名"},"nl":{"n":"nl","p":"/nl","d":"在Linux系统中计算文件内容行号"},"nm":{"n":"nm","p":"/nm","d":"显示二进制目标文件的符号表"},"nmap":{"n":"nmap","p":"/nmap","d":"网络探测和安全审核"},"nmcli":{"n":"nmcli","p":"/nmcli","d":"地址配置工具"},"nohup":{"n":"nohup","p":"/nohup","d":"将程序以忽略挂起信号的方式运行起来"},"nologin":{"n":"nologin","p":"/nologin","d":"拒绝用户登录系统"},"nslookup":{"n":"nslookup","p":"/nslookup","d":"查询域名DNS信息的工具"},"ntpdate":{"n":"ntpdate","p":"/ntpdate","d":"使用网络计时协议(NTP)设置日期和时间"},"ntsysv":{"n":"ntsysv","p":"/ntsysv","d":"集中管理系统的各种服务"},"objdump":{"n":"objdump","p":"/objdump","d":"显示二进制文件信息"},"od":{"n":"od","p":"/od","d":"输出文件的八进制、十六进制等格式编码的字节"},"openssl":{"n":"openssl","p":"/openssl","d":"强大的安全套接字层密码库"},"parted":{"n":"parted","p":"/parted","d":"磁盘分区和分区大小调整工具"},"partprobe":{"n":"partprobe","p":"/partprobe","d":"不重启的情况下重读分区"},"passwd":{"n":"passwd","p":"/passwd","d":"用于让用户可以更改自己的密码"},"paste":{"n":"paste","p":"/paste","d":"将多个文件按列队列合并"},"patch":{"n":"patch","p":"/patch","d":"为开放源代码软件安装补丁程序"},"pathchk":{"n":"pathchk","p":"/pathchk","d":"检查文件中不可移植的部分"},"perl":{"n":"perl","p":"/perl","d":"perl语言解释器"},"pfctl":{"n":"pfctl","p":"/pfctl","d":"PF防火墙的配置命令"},"pgrep":{"n":"pgrep","p":"/pgrep","d":"设置用户的认证信息,包括用户密码、密码过期时间等"},"php":{"n":"php","p":"/php","d":"PHP语言的命令行接口"},"pico":{"n":"pico","p":"/pico","d":"功能强大全屏幕的文本编辑器"},"pidof":{"n":"pidof","p":"/pidof","d":"查找指定名称的进程的进程号ID号"},"ping":{"n":"ping","p":"/ping","d":"测试主机之间网络的连通性"},"pkill":{"n":"pkill","p":"/pkill","d":"可以按照进程名杀死进程"},"pmap":{"n":"pmap","p":"/pmap","d":"报告进程的内存映射关系"},"popd":{"n":"popd","p":"/popd","d":"用于删除目录栈中的记录"},"poweroff":{"n":"poweroff","p":"/poweroff","d":"关闭Linux系统,关闭记录会被写入到/var/log/wtmp日志文件中。"},"ppp-off":{"n":"ppp-off","p":"/ppp-off","d":"关闭ppp连线"},"pr":{"n":"pr","p":"/pr","d":"将文本文件转换成适合打印的格式"},"printf":{"n":"printf","p":"/printf","d":"格式化并输出结果"},"protoize":{"n":"protoize","p":"/protoize","d":"GNU-C代码转换为ANSI-C代码"},"ps":{"n":"ps","p":"/ps","d":"报告当前系统的进程状态"},"pssh":{"n":"pssh","p":"/pssh","d":"批量管理执行"},"pstack":{"n":"pstack","p":"/pstack","d":"显示每个进程的栈跟踪"},"pstree":{"n":"pstree","p":"/pstree","d":"以树状图的方式展现进程之间的派生关系"},"pushd":{"n":"pushd","p":"/pushd","d":"将目录加入命令堆叠中"},"pv":{"n":"pv","p":"/pv","d":"显示当前在命令行执行的命令的进度信息,管道查看器。"},"pvchange":{"n":"pvchange","p":"/pvchange","d":"修改物理卷属性"},"pvck":{"n":"pvck","p":"/pvck","d":"检测物理卷的LVM元数据的一致性"},"pvcreate":{"n":"pvcreate","p":"/pvcreate","d":"将物理硬盘分区初始化为物理卷"},"pvdisplay":{"n":"pvdisplay","p":"/pvdisplay","d":"显示物理卷的属性"},"pvremove":{"n":"pvremove","p":"/pvremove","d":"删除一个存在的物理卷"},"pvs":{"n":"pvs","p":"/pvs","d":"输出物理卷信息报表"},"pvscan":{"n":"pvscan","p":"/pvscan","d":"扫描系统中所有硬盘的物理卷列表"},"pwck":{"n":"pwck","p":"/pwck","d":"用来验证系统认证文件内容和格式的完整性"},"pwconv":{"n":"pwconv","p":"/pwconv","d":"用来开启用户的投影密码"},"pwd":{"n":"pwd","p":"/pwd","d":"绝对路径方式显示用户当前工作目录"},"pwunconv":{"n":"pwunconv","p":"/pwunconv","d":"用来关闭用户的投影密码"},"quota":{"n":"quota","p":"/quota","d":"显示磁盘已使用的空间与限制"},"quotacheck":{"n":"quotacheck","p":"/quotacheck","d":"检查磁盘的使用空间与限制"},"quotaoff":{"n":"quotaoff","p":"/quotaoff","d":"关闭Linux内核中指定文件系统的磁盘配额功能"},"quotaon":{"n":"quotaon","p":"/quotaon","d":"激活Linux内核中指定文件系统的磁盘配额功能"},"rcconf":{"n":"rcconf","p":"/rcconf","d":"Debian Linux下的运行等级服务配置工具"},"rcp":{"n":"rcp","p":"/rcp","d":"使在两台Linux主机之间的文件复制操作更简单"},"read":{"n":"read","p":"/read","d":"从键盘读取变量值"},"readelf":{"n":"readelf","p":"/readelf","d":"用于显示elf格式文件的信息"},"readonly":{"n":"readonly","p":"/readonly","d":"定义只读shell变量或函数"},"reboot":{"n":"reboot","p":"/reboot","d":"重新启动正在运行的Linux操作系统"},"reject":{"n":"reject","p":"/reject","d":"指示打印系统拒绝发往指定目标打印机的打印任务"},"rename":{"n":"rename","p":"/rename","d":"用字符串替换的方式批量改变文件名"},"renice":{"n":"renice","p":"/renice","d":"修改正在运行的进程的调度优先级"},"repquota":{"n":"repquota","p":"/repquota","d":"报表的格式输出磁盘空间限制的状态"},"resize":{"n":"resize","p":"/resize","d":"命令设置终端机视窗的大小。"},"restore":{"n":"restore","p":"/restore","d":"所进行的操作和dump指令相反"},"restorecon":{"n":"restorecon","p":"/restorecon","d":"恢复文件的安全上下文"},"rev":{"n":"rev","p":"/rev","d":"将文件内容以字符为单位反序输出"},"rexec":{"n":"rexec","p":"/rexec","d":"运程执行Linux系统下命令 "},"rlogin":{"n":"rlogin","p":"/rlogin","d":"从当前终端登录到远程Linux主机"},"rm":{"n":"rm","p":"/rm","d":"用于删除给定的文件和目录"},"rmdir":{"n":"rmdir","p":"/rmdir","d":"用来删除空目录"},"rmmod":{"n":"rmmod","p":"/rmmod","d":"从运行的内核中移除指定的内核模块"},"route":{"n":"route","p":"/route","d":"显示并设置Linux中静态路由表"},"rpm":{"n":"rpm","p":"/rpm","d":"RPM软件包的管理工具"},"rpm2cpio":{"n":"rpm2cpio","p":"/rpm2cpio","d":"将RPM软件包转换为cpio格式的文件"},"rpmbuild":{"n":"rpmbuild","p":"/rpmbuild","d":"创建RPM的二进制软件包和源码软件包"},"rpmdb":{"n":"rpmdb","p":"/rpmdb","d":"初始化和重建RPM数据库"},"rpmquery":{"n":"rpmquery","p":"/rpmquery","d":"从RPM数据库中查询软件包信息"},"rpmsign":{"n":"rpmsign","p":"/rpmsign","d":"使用RPM软件包的签名管理工具"},"rpmverify":{"n":"rpmverify","p":"/rpmverify","d":"验证已安装的RPM软件包的正确性"},"rsh":{"n":"rsh","p":"/rsh","d":"连接远程主机并执行命令"},"rsync":{"n":"rsync","p":"/rsync","d":"远程数据同步工具"},"runlevel":{"n":"runlevel","p":"/runlevel","d":"打印当前Linux系统的运行等级"},"sar":{"n":"sar","p":"/sar","d":"系统运行状态统计工具"},"scp":{"n":"scp","p":"/scp","d":"加密的方式在本地主机和远程主机之间复制文件"},"screen":{"n":"screen","p":"/screen","d":"用于命令行终端切换"},"sed":{"n":"sed","p":"/sed","d":"功能强大的流式文本编辑器"},"seinfo":{"n":"seinfo","p":"/seinfo","d":"查询SELinux的策略提供多少相关规则"},"semanage":{"n":"semanage","p":"/semanage","d":"默认目录的安全上下文查询与修改"},"sendmail":{"n":"sendmail","p":"/sendmail","d":"著名电子邮件服务器"},"seq":{"n":"seq","p":"/seq","d":"以指定增量从首数开始打印数字到尾数"},"service":{"n":"service","p":"/service","d":"控制系统服务的实用工具"},"sesearch":{"n":"sesearch","p":"/sesearch","d":"查询SELinux策略的规则详情"},"set":{"n":"set","p":"/set","d":"显示或设置shell特性及shell变量"},"setfacl":{"n":"setfacl","p":"/setfacl","d":"设置文件访问控制列表"},"setpci":{"n":"setpci","p":"/setpci","d":"查询和配置PCI设备的使用工具"},"setsebool":{"n":"setsebool","p":"/setsebool","d":"修改SElinux策略内各项规则的布尔值"},"setsid":{"n":"setsid","p":"/setsid","d":"在新的会话中运行程序。"},"sftp-server":{"n":"sftp-server","p":"/sftp-server","d":"sftp协议的服务器端程序"},"sftp":{"n":"sftp","p":"/sftp","d":"交互式的文件传输程序"},"sh":{"n":"sh","p":"/sh","d":"shell命令解释器"},"shopt":{"n":"shopt","p":"/shopt","d":"显示和设置shell操作选项"},"showmount":{"n":"showmount","p":"/showmount","d":"显示NFS服务器加载的信息"},"shutdown":{"n":"shutdown","p":"/shutdown","d":"用来执行系统关机的命令"},"skill":{"n":"skill","p":"/skill","d":"向选定的进程发送信号冻结进程"},"slabtop":{"n":"slabtop","p":"/slabtop","d":"实时显示内核slab内存缓存信息"},"sleep":{"n":"sleep","p":"/sleep","d":"将目前动作延迟一段时间"},"slocate":{"n":"slocate","p":"/slocate","d":"命令查找文件或目录"},"smbclient":{"n":"smbclient","p":"/smbclient","d":"交互方式访问samba服务器"},"smbpasswd":{"n":"smbpasswd","p":"/smbpasswd","d":"samba用户和密码管理工具"},"sort":{"n":"sort","p":"/sort","d":"将文件进行排序并输出"},"source":{"n":"source","p":"/source","d":"在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态。"},"speedtest-cli":{"n":"speedtest-cli","p":"/speedtest-cli","d":"命令行下测试服务器外网速度"},"spell":{"n":"spell","p":"/spell","d":"对文件进行拼写检查"},"split":{"n":"split","p":"/split","d":"分割任意大小的文件"},"squid":{"n":"squid","p":"/squid","d":"squid服务器守护进程"},"squidclient":{"n":"squidclient","p":"/squidclient","d":"squid服务器的客户端管理工具"},"ss":{"n":"ss","p":"/ss","d":"比 netstat 好用的socket统计信息,iproute2 包附带的另一个工具,允许你查询 socket 的有关统计信息。"},"ssh-add":{"n":"ssh-add","p":"/ssh-add","d":"把专用密钥添加到ssh-agent的高速缓存中"},"ssh-agent":{"n":"ssh-agent","p":"/ssh-agent","d":"ssh密钥管理器"},"ssh-copy-id":{"n":"ssh-copy-id","p":"/ssh-copy-id","d":"把本地的ssh公钥文件安装到远程主机对应的账户下"},"ssh-keygen":{"n":"ssh-keygen","p":"/ssh-keygen","d":"为ssh生成、管理和转换认证密钥"},"ssh-keyscan":{"n":"ssh-keyscan","p":"/ssh-keyscan","d":"收集主机公钥的使用工具"},"ssh":{"n":"ssh","p":"/ssh","d":"openssh套件中的客户端连接工具"},"sshd":{"n":"sshd","p":"/sshd","d":"openssh软件套件中的服务器守护进程"},"startx":{"n":"startx","p":"/startx","d":"用来启动X Window"},"stat":{"n":"stat","p":"/stat","d":"用于显示文件的状态信息"},"strace":{"n":"strace","p":"/strace","d":"跟踪系统调用和信号"},"strings":{"n":"strings","p":"/strings","d":"在对象文件或二进制文件中查找可打印的字符串"},"stty":{"n":"stty","p":"/stty","d":"修改终端命令行的相关设置"},"su":{"n":"su","p":"/su","d":"用于切换当前用户身份到其他用户身份"},"sudo":{"n":"sudo","p":"/sudo","d":"以其他身份来执行命令"},"sum":{"n":"sum","p":"/sum","d":"计算文件的校验码和显示块数"},"supervisord":{"n":"supervisord","p":"/supervisord","d":"配置后台服务/常驻进程的进程管家工具"},"swapoff":{"n":"swapoff","p":"/swapoff","d":"关闭指定的交换空间"},"swapon":{"n":"swapon","p":"/swapon","d":"激活Linux系统中交换空间"},"sync":{"n":"sync","p":"/sync","d":"用于强制被改变的内容立刻写入磁盘"},"sysctl":{"n":"sysctl","p":"/sysctl","d":"时动态地修改内核的运行参数"},"syslog":{"n":"syslog","p":"/syslog","d":"系统默认的日志守护进程"},"systemctl":{"n":"systemctl","p":"/systemctl","d":"系统服务管理器指令"},"systool":{"n":"systool","p":"/systool","d":"显示基于总线、类和拓扑显示系统中设备的信息"},"tac":{"n":"tac","p":"/tac","d":"将文件已行为单位的反序输出"},"tail":{"n":"tail","p":"/tail","d":"在屏幕上显示指定文件的末尾若干行"},"tailf":{"n":"tailf","p":"/tailf","d":"在屏幕上显示指定文件的末尾若干行内容,通常用于日志文件的跟踪输出。"},"talk":{"n":"talk","p":"/talk","d":"让用户和其他用户聊天"},"tar":{"n":"tar","p":"/tar","d":"Linux下的归档使用工具,用来打包和备份。"},"tcpdump":{"n":"tcpdump","p":"/tcpdump","d":"一款sniffer工具,是Linux上的抓包工具,嗅探器。"},"tcpreplay":{"n":"tcpreplay","p":"/tcpreplay","d":"将PCAP包重新发送,用于性能或者功能测试"},"tee":{"n":"tee","p":"/tee","d":"把数据重定向到给定文件和屏幕上"},"telint":{"n":"telint","p":"/telint","d":"切换当前正在运行系统的运行等级"},"telnet":{"n":"telnet","p":"/telnet","d":"登录远程主机和管理(测试ip端口是否连通)"},"tempfile":{"n":"tempfile","p":"/tempfile","d":"shell中给临时文件命名"},"test":{"n":"test","p":"/test","d":"shell环境中测试条件表达式工具"},"tftp":{"n":"tftp","p":"/tftp","d":"在本机和tftp服务器之间使用TFTP协议传输文件"},"time":{"n":"time","p":"/time","d":"统计给定命令所花费的总时间"},"tload":{"n":"tload","p":"/tload","d":"显示系统负载状况"},"tmux":{"n":"tmux","p":"/tmux","d":"Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。"},"top":{"n":"top","p":"/top","d":"显示或管理执行中的程序"},"touch":{"n":"touch","p":"/touch","d":"创建新的空文件"},"tput":{"n":"tput","p":"/tput","d":"通过terminfo数据库对终端会话进行初始化和操作"},"tr":{"n":"tr","p":"/tr","d":"将字符进行替换压缩和删除"},"tracepath":{"n":"tracepath","p":"/tracepath","d":"追踪目的主机经过的路由信息"},"traceroute":{"n":"traceroute","p":"/traceroute","d":"显示数据包到主机间的路径"},"trap":{"n":"trap","p":"/trap","d":"指定在接收到信号后将要采取的动作"},"tree":{"n":"tree","p":"/tree","d":"树状图列出目录的内容"},"tty":{"n":"tty","p":"/tty","d":"显示连接到当前标准输入的终端设备文件名。"},"type":{"n":"type","p":"/type","d":"显示指定命令的类型"},"ulimit":{"n":"ulimit","p":"/ulimit","d":"控制shell程序的资源"},"umask":{"n":"umask","p":"/umask","d":"用来设置限制新建文件权限的掩码"},"umount":{"n":"umount","p":"/umount","d":"用于卸载已经加载的文件系统"},"unalias":{"n":"unalias","p":"/unalias","d":"删除由alias设置的别名"},"uname":{"n":"uname","p":"/uname","d":"显示Linux系统信息"},"unarj":{"n":"unarj","p":"/unarj","d":"解压缩由arj命令创建的压缩包"},"uncompress":{"n":"uncompress","p":"/uncompress","d":"用来解压.Z文件"},"unexpand":{"n":"unexpand","p":"/unexpand","d":"将文件的空白字符转换为制表符"},"uniq":{"n":"uniq","p":"/uniq","d":"报告或忽略文件中的重复行"},"unlink":{"n":"unlink","p":"/unlink","d":"系统调用函数unlink去删除指定的文件"},"unprotoize":{"n":"unprotoize","p":"/unprotoize","d":"删除C语言源代码文件中的函数原型"},"unset":{"n":"unset","p":"/unset","d":"删除指定的shell变量或函数"},"unzip":{"n":"unzip","p":"/unzip","d":"用于解压缩由zip命令压缩的压缩包"},"updatedb":{"n":"updatedb","p":"/updatedb","d":"创建或更新slocate命令所必需的数据库文件"},"uptime":{"n":"uptime","p":"/uptime","d":"查看Linux系统负载信息"},"useradd":{"n":"useradd","p":"/useradd","d":"创建的新的系统用户"},"userdel":{"n":"userdel","p":"/userdel","d":"用于删除给定的用户以及与用户相关的文件"},"usermod":{"n":"usermod","p":"/usermod","d":"用于修改用户的基本信息"},"usernetctl":{"n":"usernetctl","p":"/usernetctl","d":"被允许时操作指定的网络接口"},"users":{"n":"users","p":"/users","d":"显示当前登录系统的所有用户"},"uucico":{"n":"uucico","p":"/uucico","d":"UUCP文件传输服务程序。"},"uupick":{"n":"uupick","p":"/uupick","d":"命令处理传送进来的文件。"},"vdfuse":{"n":"vdfuse","p":"/vdfuse","d":"VirtualBox软件挂载VDI分区文件工具"},"vgchange":{"n":"vgchange","p":"/vgchange","d":"修改卷组属性"},"vgconvert":{"n":"vgconvert","p":"/vgconvert","d":"转换卷组元数据格式"},"vgcreate":{"n":"vgcreate","p":"/vgcreate","d":"用于创建LVM卷组"},"vgdisplay":{"n":"vgdisplay","p":"/vgdisplay","d":"显示LVM卷组的信息"},"vgextend":{"n":"vgextend","p":"/vgextend","d":"向卷组中添加物理卷"},"vgreduce":{"n":"vgreduce","p":"/vgreduce","d":"从卷组中删除物理卷"},"vgremove":{"n":"vgremove","p":"/vgremove","d":"用于用户删除LVM卷组"},"vgrename":{"n":"vgrename","p":"/vgrename","d":"使用vgrename命令可以重命名卷组的名称。"},"vgscan":{"n":"vgscan","p":"/vgscan","d":"扫描并显示系统中的卷组"},"vi":{"n":"vi","p":"/vi","d":"功能强大的纯文本编辑器"},"vmstat":{"n":"vmstat","p":"/vmstat","d":"显示虚拟内存状态"},"volname":{"n":"volname","p":"/volname","d":"显示指定的ISO-9660格式的设备的卷名称"},"w":{"n":"w","p":"/w","d":"显示目前登入系统的用户信息"},"wait":{"n":"wait","p":"/wait","d":"等待进程执行完后返回"},"wall":{"n":"wall","p":"/wall","d":"向系统当前所有打开的终端上输出信息"},"watch":{"n":"watch","p":"/watch","d":"可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令"},"wc":{"n":"wc","p":"/wc","d":"统计文件的字节数、字数、行数"},"wget":{"n":"wget","p":"/wget","d":"Linux系统下载文件工具"},"whatis":{"n":"whatis","p":"/whatis","d":"查询一个命令执行什么功能"},"whereis":{"n":"whereis","p":"/whereis","d":"查找二进制程序、代码等相关文件路径"},"which":{"n":"which","p":"/which","d":"查找并显示给定命令的绝对路径"},"who":{"n":"who","p":"/who","d":"显示目前登录系统的用户信息"},"whoami":{"n":"whoami","p":"/whoami","d":"打印当前有效的用户名称"},"write":{"n":"write","p":"/write","d":"向指定登录用户终端上发送信息"},"xargs":{"n":"xargs","p":"/xargs","d":"给其他命令传递参数的一个过滤器"},"xauth":{"n":"xauth","p":"/xauth","d":"显示和编辑被用于连接X服务器的认证信息"},"xclip":{"n":"xclip","p":"/xclip","d":"管理 X 粘贴板"},"xhost":{"n":"xhost","p":"/xhost","d":"制哪些X客户端能够在X服务器上显示"},"xinit":{"n":"xinit","p":"/xinit","d":"是Linux下X-Window系统的初始化程序"},"xlsatoms":{"n":"xlsatoms","p":"/xlsatoms","d":"列出X服务器内部所有定义的原子成分"},"xlsclients":{"n":"xlsclients","p":"/xlsclients","d":"列出显示器中的客户端应用程序"},"xlsfonts":{"n":"xlsfonts","p":"/xlsfonts","d":"列出X Server使用的字体"},"xset":{"n":"xset","p":"/xset","d":"设置X-Window系统中的用户爱好的实用工具"},"xz":{"n":"xz","p":"/xz","d":"POSIX 平台开发具有高压缩率的工具。"},"yes":{"n":"yes","p":"/yes","d":"重复打印指定字符串"},"ypdomainname":{"n":"ypdomainname","p":"/ypdomainname","d":"显示主机的NIS的域名"},"yum":{"n":"yum","p":"/yum","d":"基于RPM的软件包管理器"},"zcat":{"n":"zcat","p":"/zcat","d":"显示压缩包中文件的内容"},"zfore":{"n":"zfore","p":"/zfore","d":"强制为gzip格式的压缩文件添加.gz后缀"},"zip":{"n":"zip","p":"/zip","d":"可以用来解压缩文件"},"zipinfo":{"n":"zipinfo","p":"/zipinfo","d":"用来列出压缩文件信息"},"zipsplit":{"n":"zipsplit","p":"/zipsplit","d":"将较大的zip压缩包分割成各个较小的压缩包"},"znew":{"n":"znew","p":"/znew","d":"将.Z压缩包重新转化为gzip命令压缩的.gz压缩包"}}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 998b23b3224..91b2116ff34 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,1768 +1,566 @@
{
"name": "linux-command",
- "version": "1.0.3",
+ "version": "1.2.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
- "abab": {
- "version": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
- "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=",
- "dev": true
- },
- "acorn": {
- "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz",
- "integrity": "sha1-7c2jvZN+dVZBDULtWGD2c5nHlMA=",
- "dev": true
- },
- "acorn-globals": {
- "version": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
- "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
- "dev": true,
- "requires": {
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
- }
- },
- "ajv": {
- "version": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz",
- "integrity": "sha1-tu50ZXuZOgHc5Et5RNVvSFgo1b0=",
- "dev": true,
- "requires": {
- "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
- }
- },
- "align-text": {
- "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "dev": true,
- "requires": {
- "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz",
- "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
- }
- },
"amdefine": {
- "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
"dev": true
},
- "ansi-regex": {
- "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "argparse": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "dev": true,
- "requires": {
- "sprintf-js": "1.0.3"
- }
- },
- "array-equal": {
- "version": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
- "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
- "dev": true
- },
"array-union": {
- "version": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"dev": true,
"requires": {
- "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
+ "array-uniq": "^1.0.1"
}
},
"array-uniq": {
- "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
"dev": true
},
- "asn1": {
- "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "dev": true
- },
- "assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
- "dev": true
- },
"async": {
- "version": "https://registry.npmjs.org/async/-/async-2.1.2.tgz",
- "integrity": "sha1-YSpKtF70KnDN6Aa62G7m2wR+g4U=",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"dev": true,
"requires": {
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ "lodash": "^4.17.10"
}
},
- "asynckit": {
- "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
- "autoprefixer": {
- "version": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
- "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
- "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
- "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000646.tgz",
- "normalize-range": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "num2fraction": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
- "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.16.tgz",
- "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "autoprefixer-stylus": {
- "version": "https://registry.npmjs.org/autoprefixer-stylus/-/autoprefixer-stylus-0.11.0.tgz",
- "integrity": "sha1-AgZO2IvHzws3PzNGu14GYDmzbgI=",
+ "clipboard": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.1.tgz",
+ "integrity": "sha512-7yhQBmtN+uYZmfRjjVjKa0dZdWuabzpSKGtyQZN+9C8xlC788SSJjOHWh7tzurfwTqTD5UDYAhIv5fRJg3sHjQ==",
"dev": true,
+ "optional": true,
"requires": {
- "autoprefixer": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.0.tgz",
- "multi-stage-sourcemap": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz",
- "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.4.tgz"
- },
- "dependencies": {
- "autoprefixer": {
- "version": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.0.tgz",
- "integrity": "sha1-kQ3gqg8ir0x9UDZ8vJ1NQSlFFi8=",
- "dev": true,
- "requires": {
- "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.4.0.tgz",
- "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000646.tgz",
- "normalize-range": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "num2fraction": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
- "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.4.tgz",
- "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
- }
- },
- "browserslist": {
- "version": "https://registry.npmjs.org/browserslist/-/browserslist-1.4.0.tgz",
- "integrity": "sha1-nP3PU4TZFY9bcNoqoAsw6P8BkEk=",
- "dev": true,
- "requires": {
- "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000646.tgz"
- }
- },
- "postcss": {
- "version": "https://registry.npmjs.org/postcss/-/postcss-5.2.4.tgz",
- "integrity": "sha1-jrS+4+XE4JFYWxFt8y2NskpTXyE=",
- "dev": true,
- "requires": {
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
- "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"
- }
- },
- "supports-color": {
- "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "dev": true,
- "requires": {
- "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
- }
- }
+ "good-listener": "^1.2.2",
+ "select": "^1.1.2",
+ "tiny-emitter": "^2.0.0"
}
},
- "aws-sign2": {
- "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
- "dev": true
- },
- "aws4": {
- "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "colors-cli": {
+ "version": "1.0.20",
+ "resolved": "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.20.tgz",
+ "integrity": "sha512-cV6cg526xhNa1vUkMIK6+vSoPTXz9eqiYRTTnOokm7jUT57w/Gpwi6wqrFtu388w2eC7SPYdEzQ19uMP9buB+w==",
"dev": true
},
- "balanced-match": {
- "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "commander": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz",
+ "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==",
"dev": true
},
- "bcrypt-pbkdf": {
- "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
- "dev": true,
- "optional": true,
- "requires": {
- "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
- }
- },
- "block-elements": {
- "version": "https://registry.npmjs.org/block-elements/-/block-elements-1.1.0.tgz",
- "integrity": "sha1-ef6/iDD6aiJTK1thnZybGB518JM=",
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
- "boolbase": {
- "version": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "css-parse": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
+ "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
"dev": true
},
- "boom": {
- "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "dev": true,
- "requires": {
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
- }
- },
- "brace-expansion": {
- "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
- "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+ "debug": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.0.1.tgz",
+ "integrity": "sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==",
"dev": true,
"requires": {
- "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ "ms": "^2.1.1"
}
},
- "browserslist": {
- "version": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
- "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "delegate": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
+ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
"dev": true,
- "requires": {
- "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000646.tgz",
- "electron-to-chromium": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.2.tgz"
- }
+ "optional": true
},
- "buffer-shims": {
- "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
- "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
+ "ejs": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz",
+ "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==",
"dev": true
},
- "camelcase": {
- "version": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "email-addresses": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.2.tgz",
+ "integrity": "sha512-IMn9dnwLMsgZjdUHswB/UZ0S8LQ/u+2/qjnHJ9tCtp3QHZsIYwJCiJOo2FT0i3CwwK/dtSODYtxuvzV4D9MY5g==",
"dev": true
},
- "caniuse-db": {
- "version": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000646.tgz",
- "integrity": "sha1-xyS5DWHfJChuAV/FKNBiBzwA3vQ=",
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
- "caseless": {
- "version": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "filename-reserved-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
+ "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=",
"dev": true
},
- "center-align": {
- "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "dev": true,
- "requires": {
- "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "lazy-cache": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz"
- }
- },
- "chalk": {
- "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "filenamify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
+ "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
"dev": true,
"requires": {
- "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ "filename-reserved-regex": "^1.0.0",
+ "strip-outer": "^1.0.0",
+ "trim-repeated": "^1.0.0"
}
},
- "cheerio": {
- "version": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
- "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
+ "filenamify-url": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz",
+ "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=",
"dev": true,
"requires": {
- "css-select": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "lodash.assignin": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
- "lodash.bind": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
- "lodash.defaults": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "lodash.filter": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
- "lodash.flatten": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "lodash.foreach": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
- "lodash.map": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
- "lodash.merge": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz",
- "lodash.pick": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "lodash.reduce": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
- "lodash.reject": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
- "lodash.some": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz"
+ "filenamify": "^1.0.0",
+ "humanize-url": "^1.0.0"
}
},
- "cliui": {
- "version": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "fs-extra": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz",
+ "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==",
"dev": true,
"requires": {
- "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "wrap-ansi": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
}
},
- "co": {
- "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
- },
- "code-point-at": {
- "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
- "collapse-whitespace": {
- "version": "https://registry.npmjs.org/collapse-whitespace/-/collapse-whitespace-1.1.2.tgz",
- "integrity": "sha1-ubMdedVZTuPCLBWBnFSCjlZbMIU=",
+ "gh-pages": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.0.0.tgz",
+ "integrity": "sha512-zGs6QDPXOpzZRa53s4/ezazHnRLY11RPo6CfbhOyVIl/wdWMZOIuuOhxrUhmVAO8Xdiu2OeGmBPy/+zsUCD/0Q==",
"dev": true,
"requires": {
- "block-elements": "https://registry.npmjs.org/block-elements/-/block-elements-1.1.0.tgz",
- "void-elements": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"
+ "async": "^2.6.1",
+ "commander": "^2.18.0",
+ "email-addresses": "^3.0.1",
+ "filenamify-url": "^1.0.0",
+ "fs-extra": "^7.0.0",
+ "globby": "^6.1.0",
+ "graceful-fs": "^4.1.11",
+ "rimraf": "^2.6.2"
}
},
- "collections": {
- "version": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz",
- "integrity": "sha1-HyMCay7zb5J+7MkB6ZxfDUj6M04=",
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"requires": {
- "weak-map": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
- "colors-cli": {
- "version": "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.8.tgz",
- "integrity": "sha1-svtixOo8MWk7u7mWgqYK3P6pyfs=",
- "dev": true
- },
- "combined-stream": {
- "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
"dev": true,
"requires": {
- "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
}
},
- "commander": {
- "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "good-listener": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
+ "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"dev": true,
+ "optional": true,
"requires": {
- "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
+ "delegate": "^3.1.2"
}
},
- "component-emitter": {
- "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
- },
- "concat-map": {
- "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "content-type-parser": {
- "version": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz",
- "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=",
- "dev": true
- },
- "cookiejar": {
- "version": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.0.tgz",
- "integrity": "sha1-hlSWiVObbQ4mm2Y3owS+UIGU2Jg=",
- "dev": true
- },
- "core-util-is": {
- "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
},
- "cryptiles": {
- "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "humanize-url": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz",
+ "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=",
"dev": true,
"requires": {
- "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+ "normalize-url": "^1.0.0",
+ "strip-url-auth": "^1.0.0"
}
},
- "css-parse": {
- "version": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
- "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
- "dev": true
- },
- "css-select": {
- "version": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
- "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "css-what": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "nth-check": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
- "css-what": {
- "version": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
- "cssom": {
- "version": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
- "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
"dev": true
},
- "cssstyle": {
- "version": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
- "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
- "dev": true,
- "requires": {
- "cssom": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz"
- }
- },
- "dashdash": {
- "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"dev": true,
"requires": {
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
- },
- "dependencies": {
- "assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
+ "graceful-fs": "^4.1.6"
}
},
- "debug": {
- "version": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz",
- "integrity": "sha1-D364wwll7AjHKsz6ATDIt5mEFB0=",
+ "loading-cli": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/loading-cli/-/loading-cli-1.0.8.tgz",
+ "integrity": "sha512-h2PgbEPRQzDj9Ox8voggvXfRkxIQGMGRPwCAGPijRjXB0UyiIBAdYjoJG0on/uCl0gYLeJJQ9bgOiKO1v+++vA==",
"dev": true,
"requires": {
- "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
+ "colors-cli": "^1.0.14"
}
},
- "decamelize": {
- "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
- },
- "deep-is": {
- "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "lodash": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
"dev": true
},
- "delayed-stream": {
- "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "marked": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.1.tgz",
+ "integrity": "sha512-iUkBZegCZou4AdwbKTwSW/lNDcz5OuRSl3qdcl31Ia0B2QPG0Jn+tKblh/9/eP9/6+4h27vpoh8wel/vQOV0vw==",
"dev": true
},
- "dom-serializer": {
- "version": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
- },
- "dependencies": {
- "domelementtype": {
- "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
- "dev": true
- }
+ "brace-expansion": "^1.1.7"
}
},
- "domelementtype": {
- "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
},
- "domhandler": {
- "version": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
- "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
- "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
+ "minimist": "0.0.8"
}
},
- "domutils": {
- "version": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
- }
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
},
- "ecc-jsbn": {
- "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
"dev": true,
- "optional": true,
"requires": {
- "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ "object-assign": "^4.0.1",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
}
},
- "ejs": {
- "version": "https://registry.npmjs.org/ejs/-/ejs-2.5.6.tgz",
- "integrity": "sha1-R5Y2v6P+Ox3r1SCH8KyyBLTxnIg=",
- "dev": true
- },
- "electron-to-chromium": {
- "version": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.2.tgz",
- "integrity": "sha1-uM5ck7MI2w6S9tBDXEbd7I9jY6s=",
- "dev": true
- },
- "entities": {
- "version": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
- "escodegen": {
- "version": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
- "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
- "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
- "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz"
- },
- "dependencies": {
- "source-map": {
- "version": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
- "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
- "dev": true,
- "optional": true,
- "requires": {
- "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
- }
- }
+ "wrappy": "1"
}
},
- "esprima": {
- "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
- "dev": true
- },
- "estraverse": {
- "version": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
- "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
- "dev": true
- },
- "esutils": {
- "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true
- },
- "exec-sh": {
- "version": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
- "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "path": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
+ "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
"dev": true,
"requires": {
- "merge": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz"
+ "process": "^0.11.1",
+ "util": "^0.10.3"
}
},
- "extend": {
- "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
- "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=",
- "dev": true
- },
- "extsprintf": {
- "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
- "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
- "fast-levenshtein": {
- "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
"dev": true
},
- "forever-agent": {
- "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
"dev": true
},
- "form-data": {
- "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
- "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=",
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
"requires": {
- "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"
+ "pinkie": "^2.0.0"
}
},
- "formidable": {
- "version": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz",
- "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=",
- "dev": true
- },
- "fs.realpath": {
- "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
"dev": true
},
- "getpass": {
- "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
- "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
+ "prismjs": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.15.0.tgz",
+ "integrity": "sha512-Lf2JrFYx8FanHrjoV5oL8YHCclLQgbJcVZR+gikGGMqz6ub5QVWDTM6YIwm3BuPxM/LOV+rKns3LssXNLIf+DA==",
"dev": true,
"requires": {
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
- },
- "dependencies": {
- "assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
+ "clipboard": "^2.0.0"
}
},
- "gh-pages": {
- "version": "https://registry.npmjs.org/gh-pages/-/gh-pages-0.12.0.tgz",
- "integrity": "sha1-2VHj7Zi4VpnUsEGOsaFbGgSYjcE=",
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
"dev": true,
"requires": {
- "async": "https://registry.npmjs.org/async/-/async-2.1.2.tgz",
- "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "globby": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.10.tgz",
- "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "q-io": "https://registry.npmjs.org/q-io/-/q-io-1.13.2.tgz",
- "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
- },
- "dependencies": {
- "globby": {
- "version": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
- "dev": true,
- "requires": {
- "array-union": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
- }
- },
- "graceful-fs": {
- "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.10.tgz",
- "integrity": "sha1-8tcgwiCS90Mih3XHXjYSYyUB8TE=",
- "dev": true
- }
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
}
},
- "glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
- "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "glob": "^7.0.5"
}
},
- "graceful-readlink": {
- "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "sax": {
+ "version": "0.5.8",
+ "resolved": "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
+ "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
"dev": true
},
- "har-schema": {
- "version": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
- "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
- "dev": true
+ "select": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
+ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
+ "dev": true,
+ "optional": true
},
- "har-validator": {
- "version": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
- "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
"dev": true,
"requires": {
- "ajv": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz",
- "har-schema": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz"
+ "is-plain-obj": "^1.0.0"
}
},
- "has-ansi": {
- "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "source-map": {
+ "version": "0.1.43",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
"dev": true,
"requires": {
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ "amdefine": ">=0.0.4"
}
},
- "has-flag": {
- "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"dev": true
},
- "hawk": {
- "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "strip-outer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
+ "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
"dev": true,
"requires": {
- "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+ "escape-string-regexp": "^1.0.2"
}
},
- "highlight.js": {
- "version": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.10.0.tgz",
- "integrity": "sha1-+fCxTAvgDw5PseV3t0n+2eb1L1U=",
- "dev": true
- },
- "hoek": {
- "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "strip-url-auth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz",
+ "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=",
"dev": true
},
- "html-encoding-sniffer": {
- "version": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz",
- "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=",
+ "stylus": {
+ "version": "0.54.5",
+ "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz",
+ "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
"dev": true,
"requires": {
- "whatwg-encoding": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz"
+ "css-parse": "1.7.x",
+ "debug": "*",
+ "glob": "7.0.x",
+ "mkdirp": "0.5.x",
+ "sax": "0.5.x",
+ "source-map": "0.1.x"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
}
},
- "htmlparser2": {
- "version": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
+ "tiny-emitter": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz",
+ "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==",
"dev": true,
- "requires": {
- "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "domhandler": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
- "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz"
- }
+ "optional": true
},
- "http-signature": {
- "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "trim-repeated": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
"dev": true,
"requires": {
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
- "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz"
+ "escape-string-regexp": "^1.0.2"
}
},
- "iconv-lite": {
- "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
- "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
- "dev": true
- },
- "inflight": {
- "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "uglify-js": {
+ "version": "3.4.9",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
+ "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
"dev": true,
"requires": {
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "commander": "~2.17.1",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
}
},
- "inherits": {
- "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "invert-kv": {
- "version": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "dev": true
- },
- "is-buffer": {
- "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
- "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
},
- "is-fullwidth-code-point": {
- "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
"dev": true,
"requires": {
- "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ "inherits": "2.0.3"
}
},
- "is-typedarray": {
- "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
- },
- "isarray": {
- "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "isstream": {
- "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
- },
- "jodid25519": {
- "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
- "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
- }
- },
- "js-base64": {
- "version": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
- "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
- "dev": true
- },
- "jsbn": {
- "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true,
- "optional": true
- },
- "jsdom": {
- "version": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
- "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
- "dev": true,
- "requires": {
- "abab": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz",
- "acorn-globals": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
- "array-equal": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
- "content-type-parser": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz",
- "cssom": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
- "cssstyle": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
- "escodegen": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
- "html-encoding-sniffer": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz",
- "nwmatcher": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.9.tgz",
- "parse5": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
- "request": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
- "sax": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz",
- "symbol-tree": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
- "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "webidl-conversions": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.1.tgz",
- "whatwg-encoding": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz",
- "whatwg-url": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.6.0.tgz",
- "xml-name-validator": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz"
- },
- "dependencies": {
- "sax": {
- "version": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz",
- "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=",
- "dev": true
- }
- }
- },
- "json-schema": {
- "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
- },
- "json-stable-stringify": {
- "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true,
- "requires": {
- "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
- }
- },
- "json-stringify-safe": {
- "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
- "dev": true
- },
- "jsonify": {
- "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
- "dev": true
- },
- "jsprim": {
- "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
- "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
- "dev": true,
- "requires": {
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
- "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
- },
- "dependencies": {
- "assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "kind-of": {
- "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz",
- "integrity": "sha1-R11pil5J/15T0U4+cyQp3Iv0z0c=",
- "dev": true,
- "requires": {
- "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz"
- }
- },
- "lazy-cache": {
- "version": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "dev": true
- },
- "lcid": {
- "version": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "dev": true,
- "requires": {
- "invert-kv": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz"
- }
- },
- "levn": {
- "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "dev": true,
- "requires": {
- "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
- }
- },
- "linkify-it": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
- "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
- "dev": true,
- "requires": {
- "uc.micro": "1.0.3"
- }
- },
- "loading-cli": {
- "version": "https://registry.npmjs.org/loading-cli/-/loading-cli-1.0.2.tgz",
- "integrity": "sha1-nqRz9dPKZgKTMdhUmt9pFmavHNg=",
- "dev": true
- },
- "lodash": {
- "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
- "dev": true
- },
- "lodash.assignin": {
- "version": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
- "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=",
- "dev": true
- },
- "lodash.bind": {
- "version": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
- "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=",
- "dev": true
- },
- "lodash.defaults": {
- "version": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
- "dev": true
- },
- "lodash.filter": {
- "version": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
- "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=",
- "dev": true
- },
- "lodash.flatten": {
- "version": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
- "dev": true
- },
- "lodash.foreach": {
- "version": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
- "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=",
- "dev": true
- },
- "lodash.map": {
- "version": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
- "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=",
- "dev": true
- },
- "lodash.merge": {
- "version": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz",
- "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=",
- "dev": true
- },
- "lodash.pick": {
- "version": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=",
- "dev": true
- },
- "lodash.reduce": {
- "version": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
- "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=",
- "dev": true
- },
- "lodash.reject": {
- "version": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
- "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=",
- "dev": true
- },
- "lodash.some": {
- "version": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
- "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=",
- "dev": true
- },
- "longest": {
- "version": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
- "dev": true
- },
- "markdown-it": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.0.tgz",
- "integrity": "sha512-tNuOCCfunY5v5uhcO2AUMArvKAyKMygX8tfup/JrgnsDqcCATQsAExBq7o5Ml9iMmO82bk6jYNLj6khcrl0JGA==",
- "dev": true,
- "requires": {
- "argparse": "1.0.9",
- "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "linkify-it": "2.0.3",
- "mdurl": "1.0.1",
- "uc.micro": "1.0.3"
- }
- },
- "marked": {
- "version": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz",
- "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=",
- "dev": true
- },
- "marked3": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/marked3/-/marked3-0.5.1.tgz",
- "integrity": "sha512-I5XLEvFfGk9FBN0QUk9gyISaIsXeSHfhn67k2HsOlCQFsgepLoAgUJGCtAdanr7oifmdTiZQmLEMh2P7C2ieIw==",
- "dev": true,
- "requires": {
- "slugo": "0.2.1"
- }
- },
- "mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
- "dev": true
- },
- "merge": {
- "version": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
- "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
- "dev": true
- },
- "methods": {
- "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
- "dev": true
- },
- "mime": {
- "version": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
- "dev": true
- },
- "mime-db": {
- "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
- "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=",
- "dev": true
- },
- "mime-types": {
- "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
- "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
- "dev": true,
- "requires": {
- "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"
- }
- },
- "mimeparse": {
- "version": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz",
- "integrity": "sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo=",
- "dev": true
- },
- "minimatch": {
- "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
- "dev": true,
- "requires": {
- "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
- }
- },
- "minimist": {
- "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- },
- "mkdirp": {
- "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "dev": true,
- "requires": {
- "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
- }
- },
- "ms": {
- "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- },
- "multi-stage-sourcemap": {
- "version": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz",
- "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=",
- "dev": true,
- "requires": {
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
- },
- "dependencies": {
- "source-map": {
- "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "dev": true,
- "requires": {
- "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
- }
- }
- }
- },
- "normalize-range": {
- "version": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
- "dev": true
- },
- "nth-check": {
- "version": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
- "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
- "requires": {
- "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
- }
- },
- "num2fraction": {
- "version": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
- "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
- "dev": true
- },
- "number-is-nan": {
- "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- },
- "nwmatcher": {
- "version": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.9.tgz",
- "integrity": "sha1-i6tIb/f6Pf0IZla76LFxFtNpLSo=",
- "dev": true
- },
- "oauth-sign": {
- "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
- "dev": true
- },
- "object-assign": {
- "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
- "once": {
- "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "requires": {
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
- }
- },
- "optionator": {
- "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
- "dev": true,
- "requires": {
- "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
- }
- },
- "os-locale": {
- "version": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true,
- "requires": {
- "lcid": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz"
- }
- },
- "parse5": {
- "version": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
- "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
- "dev": true
- },
- "path-is-absolute": {
- "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "performance-now": {
- "version": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
- "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
- "dev": true
- },
- "pify": {
- "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "pinkie": {
- "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
- }
- },
- "postcss": {
- "version": "https://registry.npmjs.org/postcss/-/postcss-5.2.16.tgz",
- "integrity": "sha1-cysxAAAPn/g3mkilODntCXN2rVc=",
- "dev": true,
- "requires": {
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
- "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"
- },
- "dependencies": {
- "supports-color": {
- "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "dev": true,
- "requires": {
- "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
- }
- }
- }
- },
- "postcss-value-parser": {
- "version": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
- "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
- "dev": true
- },
- "prelude-ls": {
- "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "dev": true
- },
- "process-nextick-args": {
- "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
- "dev": true
- },
- "punycode": {
- "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
- },
- "q": {
- "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
- "dev": true
- },
- "q-io": {
- "version": "https://registry.npmjs.org/q-io/-/q-io-1.13.2.tgz",
- "integrity": "sha1-7qEw1IHdteGqG8WmaFX3OR0G8AM=",
- "dev": true,
- "requires": {
- "collections": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz",
- "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "mimeparse": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz",
- "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "qs": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz",
- "url2": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz"
- }
- },
- "qs": {
- "version": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz",
- "integrity": "sha1-GbV/8k3CqZzh+L32r82ln472H4g=",
- "dev": true
- },
- "readable-stream": {
- "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz",
- "integrity": "sha1-i0Ou125xSDk40SqNRsbPGgCx+BY=",
- "dev": true,
- "requires": {
- "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
- "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
- }
- },
- "repeat-string": {
- "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
- },
- "request": {
- "version": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
- "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
- "dev": true,
- "requires": {
- "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
- "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
- "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
- "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
- "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "performance-now": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
- "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
- "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz"
- },
- "dependencies": {
- "qs": {
- "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
- "dev": true
- }
- }
- },
- "right-align": {
- "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "dev": true,
- "requires": {
- "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"
- }
- },
- "rimraf": {
- "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
- "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
- "dev": true,
- "requires": {
- "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
- }
- },
- "safe-buffer": {
- "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
- "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=",
- "dev": true
- },
- "sax": {
- "version": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
- "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
- "dev": true
- },
- "slugo": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/slugo/-/slugo-0.2.1.tgz",
- "integrity": "sha1-pEuyxqcqiSGIiwj8GOMYHp3X344=",
- "dev": true
- },
- "sntp": {
- "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
- "dev": true,
- "requires": {
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
- }
- },
- "source-map": {
- "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
- "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
- "dev": true
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "sshpk": {
- "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz",
- "integrity": "sha1-LY1eu0pvqyj/ujf6YqkPSj6lnXc=",
- "dev": true,
- "requires": {
- "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
- "jodid25519": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
- "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
- },
- "dependencies": {
- "assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "ssr": {
- "version": "https://registry.npmjs.org/ssr/-/ssr-1.1.1.tgz",
- "integrity": "sha1-uo6R+PCgFd0Vc+4tXpztjoWRm+4=",
- "dev": true,
- "requires": {
- "colors-cli": "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.8.tgz",
- "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
- "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz"
- }
- },
- "string_decoder": {
- "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
- "string-width": {
- "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
- }
- },
- "stringstream": {
- "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
- }
- },
- "stylus": {
- "version": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz",
- "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
- "dev": true,
- "requires": {
- "css-parse": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
- "debug": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz",
- "glob": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
- "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "sax": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
- },
- "dependencies": {
- "glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
- "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
- "dev": true,
- "requires": {
- "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
- }
- },
- "source-map": {
- "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "dev": true,
- "requires": {
- "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
- }
- }
- }
- },
- "superagent": {
- "version": "https://registry.npmjs.org/superagent/-/superagent-3.5.2.tgz",
- "integrity": "sha1-M2GjlxVnUEw1EGOr6q4PqiPb8/g=",
- "dev": true,
- "requires": {
- "component-emitter": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "cookiejar": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.0.tgz",
- "debug": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz",
- "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
- "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
- "formidable": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz",
- "methods": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz"
- },
- "dependencies": {
- "qs": {
- "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
- "dev": true
- }
- }
- },
- "supports-color": {
- "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- },
- "symbol-tree": {
- "version": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
- "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
- "dev": true
- },
- "to-markdown": {
- "version": "https://registry.npmjs.org/to-markdown/-/to-markdown-3.0.4.tgz",
- "integrity": "sha1-PHgi+ShrwpT/N/ng5eIxVMEizmk=",
- "dev": true,
- "requires": {
- "collapse-whitespace": "https://registry.npmjs.org/collapse-whitespace/-/collapse-whitespace-1.1.2.tgz",
- "jsdom": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz"
- }
- },
- "tough-cookie": {
- "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
- "dev": true,
- "requires": {
- "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
- }
- },
- "tr46": {
- "version": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
- "dev": true
- },
- "tunnel-agent": {
- "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true,
- "requires": {
- "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"
- }
- },
- "tweetnacl": {
- "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true,
- "optional": true
- },
- "type-check": {
- "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "dev": true,
- "requires": {
- "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
- }
- },
- "uc.micro": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz",
- "integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI=",
- "dev": true
- },
- "uglify-js": {
- "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.18.tgz",
- "integrity": "sha1-kl0UuuSKti0Yg7Qa/m4iYWYq244=",
- "dev": true,
- "requires": {
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
- "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"
- },
- "dependencies": {
- "camelcase": {
- "version": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true
- },
- "cliui": {
- "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "dev": true,
- "requires": {
- "center-align": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "right-align": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
- }
- },
- "window-size": {
- "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
- "dev": true
- },
- "wordwrap": {
- "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
- "dev": true
- },
- "yargs": {
- "version": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "dev": true,
- "requires": {
- "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "cliui": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
- }
- }
- }
- },
- "uglify-to-browserify": {
- "version": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "dev": true,
- "optional": true
- },
- "url2": {
- "version": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz",
- "integrity": "sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo=",
- "dev": true
- },
- "util-deprecate": {
- "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
- },
- "uuid": {
- "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
- "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=",
- "dev": true
- },
- "verror": {
- "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
- "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
- "dev": true,
- "requires": {
- "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
- }
- },
- "void-elements": {
- "version": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
- "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
- "dev": true
- },
- "watch": {
- "version": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
- "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
- "dev": true,
- "requires": {
- "exec-sh": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
- "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
- },
- "dependencies": {
- "minimist": {
- "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- }
- }
- },
- "weak-map": {
- "version": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz",
- "integrity": "sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc=",
- "dev": true
- },
- "webidl-conversions": {
- "version": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.1.tgz",
- "integrity": "sha1-gBWherg+fhsxFjhIas6B2mziBqA=",
- "dev": true
- },
- "whatwg-encoding": {
- "version": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz",
- "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=",
- "dev": true,
- "requires": {
- "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
- "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
- "dev": true
- }
- }
- },
- "whatwg-url": {
- "version": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.6.0.tgz",
- "integrity": "sha1-75jaRCJzvgTPljLhdvJX0jlaGuQ=",
- "dev": true,
- "requires": {
- "tr46": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "webidl-conversions": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
- },
- "dependencies": {
- "webidl-conversions": {
- "version": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
- "dev": true
- }
- }
- },
- "window-size": {
- "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
- "dev": true
- },
- "wordwrap": {
- "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
- "dev": true
- },
- "wrap-ansi": {
- "version": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dev": true,
- "requires": {
- "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
- }
- },
- "wrappy": {
- "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- },
- "xml-name-validator": {
- "version": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
- "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
- "dev": true
- },
- "y18n": {
- "version": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "dev": true
- },
- "yargs": {
- "version": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
- "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
- "dev": true,
- "requires": {
- "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "cliui": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "os-locale": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "y18n": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz"
- }
}
}
}
diff --git a/package.json b/package.json
index 1c6c125266a..687ac780034 100644
--- a/package.json
+++ b/package.json
@@ -4,13 +4,11 @@
"description": "Linux Command",
"main": "dist/data.json",
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
"start": "node build/compile.js && npm run deploy",
- "deploy": "node build/deploy.js",
- "build:css": "stylus -u autoprefixer-stylus template/styl/index.styl -o .deploy/ -c",
- "watch:css": "stylus -u autoprefixer-stylus -w template/styl/index.styl -o .deploy/ -c"
+ "deploy": "node build/deploy.js"
},
"keywords": [
+ "cli",
"Linux",
"Command"
],
@@ -21,23 +19,16 @@
"url": "git+https://github.com/jaywcjlove/linux-command.git"
},
"devDependencies": {
- "autoprefixer": "^6.5.1",
- "autoprefixer-stylus": "^0.11.0",
- "cheerio": "^0.22.0",
- "colors-cli": "^1.0.7",
- "ejs": "^2.5.2",
- "gh-pages": "^0.12.0",
- "highlight.js": "^9.8.0",
- "loading-cli": "^1.0.2",
- "markdown-it": "^8.4.0",
- "marked": "^0.3.6",
- "marked3": "^0.5.1",
- "ssr": "^1.1.1",
+ "colors-cli": "^1.0.20",
+ "ejs": "^2.6.1",
+ "fs-extra": "^7.0.0",
+ "gh-pages": "^2.0.0",
+ "loading-cli": "^1.0.8",
+ "marked": "^0.5.1",
+ "path": "^0.12.7",
+ "prismjs": "^1.15.0",
"stylus": "^0.54.5",
- "superagent": "^3.0.0",
- "to-markdown": "^3.0.3",
- "uglify-js": "^2.7.4",
- "watch": "^1.0.1"
+ "uglify-js": "^3.4.9"
},
"dependencies": {},
"bugs": {
From e041518d012af3d8729f0a4c15d89dc49de3a98f Mon Sep 17 00:00:00 2001
From: jaywcjlove <398188662@qq.com>
Date: Sat, 29 Sep 2018 16:09:36 +0800
Subject: [PATCH 0006/1081] Modify build.js
---
build/build.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build/build.js b/build/build.js
index 360e0b4c8cf..8dbb32ced14 100644
--- a/build/build.js
+++ b/build/build.js
@@ -11,10 +11,10 @@ const colors = require('colors-cli/toxic');
const renderer = new marked.Renderer();
renderer.heading = (text, level) => {
if (/[\u4E00-\u9FA5]/i.test(text)) {
- return '' + text + '';
+ return `${text}`;
} else {
- var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');
- return '' + text + '';
+ const escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');
+ return `${text}`;
}
}
From af65b1b0699a7fa7bdfdfd21b65b97ba758cab78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=A1=B9=E9=87=91?=
Date: Sun, 7 Oct 2018 10:42:15 +0800
Subject: [PATCH 0007/1081] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20--send-eth/--sen?=
=?UTF-8?q?d-ip=20=E8=AF=B4=E6=98=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
command/nmap.md | 145 ++++++++++++++++++++++++------------------------
1 file changed, 73 insertions(+), 72 deletions(-)
diff --git a/command/nmap.md b/command/nmap.md
index bb558a64525..c5a0790f524 100644
--- a/command/nmap.md
+++ b/command/nmap.md
@@ -1,72 +1,73 @@
-nmap
-===
-
-网络探测和安全审核
-
-## 补充说明
-
-**nmap命令** 是一款开放源代码的网络探测和安全审核工具,它的设计目标是快速地扫描大型网络。
-
-### 语法
-
-```
-nmap(选项)(参数)
-```
-
-### 选项
-
-```
--O:激活操作探测;
--P0:值进行扫描,不ping主机;
--PT:是同TCP的ping;
--sV:探测服务版本信息;
--sP:ping扫描,仅发现目标主机是否存活;
--ps:发送同步(SYN)报文;
--PU:发送udp ping;
--PE:强制执行直接的ICMPping;
--PB:默认模式,可以使用ICMPping和TCPping;
--6:使用IPv6地址;
--v:得到更多选项信息;
--d:增加调试信息地输出;
--oN:以人们可阅读的格式输出;
--oX:以xml格式向指定文件输出信息;
--oM:以机器可阅读的格式输出;
--A:使用所有高级扫描选项;
---resume:继续上次执行完的扫描;
--P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
--e:在多网络接口Linux系统中,指定扫描使用的网络接口;
--g:将指定的端口作为源端口进行扫描;
---ttl:指定发送的扫描报文的生存期;
---packet-trace:显示扫描过程中收发报文统计;
---scanflags:设置在扫描报文中的TCP标志。
-```
-
-### 参数
-
-ip地址:指定待扫描报文中的TCP地址。
-
-### 实例
-
- **安装nmap**
-
-```
-yum install nmap
-```
-
- **使用nmap扫描www.jsdig.com的开放端口**
-
-```
-[root@localhost ~]# nmap www.jsdig.com
-
-Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-12-28 00:06 CST
-Interesting ports on 100-42-212-8.static.webnx.com (100.42.212.8):
-Not shown: 1678 filtered ports
-PORT STATE service
-22/tcp open ssh
-80/tcp open http
-
-Nmap finished: 1 IP address (1 host up) scanned in 45.870 seconds
-```
-
-
-
\ No newline at end of file
+nmap
+===
+
+网络探测和安全审核
+
+## 补充说明
+
+**nmap命令** 是一款开放源代码的网络探测和安全审核工具,它的设计目标是快速地扫描大型网络。
+
+### 语法
+
+```
+nmap(选项)(参数)
+```
+
+### 选项
+
+```
+-O:激活操作探测;
+-P0:值进行扫描,不ping主机;
+-PT:是同TCP的ping;
+-sV:探测服务版本信息;
+-sP:ping扫描,仅发现目标主机是否存活;
+-ps:发送同步(SYN)报文;
+-PU:发送udp ping;
+-PE:强制执行直接的ICMPping;
+-PB:默认模式,可以使用ICMPping和TCPping;
+-6:使用IPv6地址;
+-v:得到更多选项信息;
+-d:增加调试信息地输出;
+-oN:以人们可阅读的格式输出;
+-oX:以xml格式向指定文件输出信息;
+-oM:以机器可阅读的格式输出;
+-A:使用所有高级扫描选项;
+--resume:继续上次执行完的扫描;
+-P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
+-e:在多网络接口Linux系统中,指定扫描使用的网络接口;
+-g:将指定的端口作为源端口进行扫描;
+--ttl:指定发送的扫描报文的生存期;
+--packet-trace:显示扫描过程中收发报文统计;
+--scanflags:设置在扫描报文中的TCP标志。
+--send-eth/--send-ip 使用原始以太网发送/构造指定IP发送
+```
+
+### 参数
+
+ip地址:指定待扫描报文中的TCP地址。
+
+### 实例
+
+ **安装nmap**
+
+```
+yum install nmap
+```
+
+ **使用nmap扫描www.jsdig.com的开放端口**
+
+```
+[root@localhost ~]# nmap www.jsdig.com
+
+Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-12-28 00:06 CST
+Interesting ports on 100-42-212-8.static.webnx.com (100.42.212.8):
+Not shown: 1678 filtered ports
+PORT STATE service
+22/tcp open ssh
+80/tcp open http
+
+Nmap finished: 1 IP address (1 host up) scanned in 45.870 seconds
+```
+
+
+
From daec36f19513c6568d877351125d9bf379198e26 Mon Sep 17 00:00:00 2001
From: jaywcjlove <398188662@qq.com>
Date: Sun, 7 Oct 2018 11:17:33 +0800
Subject: [PATCH 0008/1081] Fix deploy command error.
---
build/deploy.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/deploy.js b/build/deploy.js
index 10c094ffe27..59f731cbcd5 100644
--- a/build/deploy.js
+++ b/build/deploy.js
@@ -2,7 +2,7 @@ const ghpages = require('gh-pages');
const loading = require('loading-cli');
const path = require('path');
const fs = require('fs');
-const color = require('colors-cli/safe');
+const color = require('colors-cli/toxic');
const deploy_path = path.join(process.cwd(), '.deploy');
From 22926dcf097d03fa71185e6d3be6b46d38614263 Mon Sep 17 00:00:00 2001
From: jaywcjlove <398188662@qq.com>
Date: Sun, 7 Oct 2018 11:20:16 +0800
Subject: [PATCH 0009/1081] Update scripts command.
---
package.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 687ac780034..145c98f74b7 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,8 @@
"description": "Linux Command",
"main": "dist/data.json",
"scripts": {
- "start": "node build/compile.js && npm run deploy",
+ "start": "npm run build && npm run deploy",
+ "build": "node build/build.js",
"deploy": "node build/deploy.js"
},
"keywords": [
From 64ad089c95b346636439d9d4e3dc23aa9d6c27f2 Mon Sep 17 00:00:00 2001
From: jaywcjlove <398188662@qq.com>
Date: Mon, 8 Oct 2018 16:06:51 +0800
Subject: [PATCH 0010/1081] Modify markdown styles.
---
template/styl/mixins/markdown.styl | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/template/styl/mixins/markdown.styl b/template/styl/mixins/markdown.styl
index ca78d37b459..d6873d34280 100644
--- a/template/styl/mixins/markdown.styl
+++ b/template/styl/mixins/markdown.styl
@@ -2,7 +2,7 @@
.markdown-body {
padding 70px 35px 30px 35px
word-wrap break-word
- font-family "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif
+ font-family: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;
font-size 14px
line-height 1.6
color #333
@@ -47,7 +47,6 @@
position: relative
background-color: #f7f7f9
border-radius: 3px
- font: "Source Code Pro", Consolas, Menlo, Monaco, "Courier New", monospace
font-size: 0.93em
-webkit-overflow-scrolling: touch
code {
@@ -64,6 +63,7 @@
white-space: inherit
overflow-wrap: normal
word-wrap: normal!important
+ font-family: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;
}
}
.class-name {
@@ -209,4 +209,11 @@
.shebang, .important {
color: #FF1717;
}
+ ul, ol {
+ padding-left: 2em;
+ }
+ p, blockquote, ul, ol, dl, table, pre {
+ margin-top: 0;
+ margin-bottom: 16px;
+ }
}
\ No newline at end of file
From b590341480846ea9423a650d2351d7f7b10f4a9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E5=BC=9F=E8=B0=83=E8=B0=83=E2=84=A2?=
<398188662@qq.com>
Date: Thu, 11 Oct 2018 09:55:40 +0800
Subject: [PATCH 0011/1081] Update nc.md
---
command/nc.md | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/command/nc.md b/command/nc.md
index e8cd6b22f88..361745c791b 100644
--- a/command/nc.md
+++ b/command/nc.md
@@ -60,4 +60,13 @@ TCP端口扫描
y //用户输入
```
+查看 443 端口是否被阻止
+
+```bash
+nc -vz acme-v02.api.letsencrypt.org 443 -w2
+# Ncat: Version 7.50 ( https://nmap.org/ncat )
+# Ncat: Connected to 23.77.214.183:443.
+# Ncat: 0 bytes sent, 0 bytes received in 0.07 seconds.
+```
+
From e1c6a356096a036174380746a0b926aca07631e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E5=BC=9F=E8=B0=83=E8=B0=83=E2=84=A2?=
<398188662@qq.com>
Date: Thu, 11 Oct 2018 09:57:30 +0800
Subject: [PATCH 0012/1081] Update nc.md
---
command/nc.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/command/nc.md b/command/nc.md
index 361745c791b..11489e6fdb6 100644
--- a/command/nc.md
+++ b/command/nc.md
@@ -60,7 +60,7 @@ TCP端口扫描
y //用户输入
```
-查看 443 端口是否被阻止
+查看从服务器到目的地的出站端口 443 是否被防火墙阻止
```bash
nc -vz acme-v02.api.letsencrypt.org 443 -w2
From c7caaa437c569ca6f1cc6f860ed50ae3f19e0368 Mon Sep 17 00:00:00 2001
From: jaywcjlove <398188662@qq.com>
Date: Thu, 11 Oct 2018 12:49:18 +0800
Subject: [PATCH 0013/1081] Modify footer info.
---
template/footer.ejs | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/template/footer.ejs b/template/footer.ejs
index 130a354720f..2182f82624d 100644
--- a/template/footer.ejs
+++ b/template/footer.ejs
@@ -1,10 +1,15 @@