每日分享

1、sass/scss 和 less的區別

一. Sass/Scss、Less是什麼?

Sass (Syntactically Awesome Stylesheets)是一種動態樣式語言,Sass語法屬於縮排語法,比css比多出好些功能(如變量、嵌套、運算,混入(Mixin)、繼承、顏色處理,函數等),更容易閱讀。javascript

Sass與Scss是什麼關係?css

Sass的縮排語法,對於寫慣css前端的web開發者來講很不直觀,也不能將css代碼加入到Sass裏面,所以sass語法進行了改良,Sass 3就變成了Scss(sassy css)。與原來的語法兼容,只是用{}取代了原來的縮進。html

Less也是一種動態樣式語言. 對CSS賦予了動態語言的特性,如變量,繼承,運算, 函數.  Less 既能夠在客戶端上運行 (支持IE 6+, Webkit, Firefox),也可在服務端運行 (藉助 Node.js)。前端

二. Sass/Scss與Less區別

1.編譯環境不同

Sass的安裝須要Ruby環境,是在服務端處理的,而Less是須要引入less.js來處理Less代碼輸出css到瀏覽器,也能夠在開發環節使用Less,而後編譯成css文件,直接放到項目中,也有 Less.app、SimpleLess、CodeKit.app這樣的工具,也有在線編譯地址。java

2.變量符不同,Less是@,而Scss是$,並且變量的做用域也不同。

複製代碼
Less-做用域
@color: #00c; /* 藍色 */
#header {
  @color: #c00; /* red */
  border: 1px solid @color; /* 紅色邊框 */
}

#footer {
  border: 1px solid @color; /* 藍色邊框 */
}

Less-做用域編譯後
#header{border:1px solid #cc0000;}
#footer{border:1px solid #0000cc;}

scss-做用域
$color: #00c; /* 藍色 */

#header {

  $color: #c00; /* red */
  border: 1px solid $color; /* 紅色邊框 */
}

#footer {
  border: 1px solid $color; /* 藍色邊框 */
}

Sass-做用域編譯後

#header{border:1px solid #c00}
#footer{border:1px solid #c00}

咱們能夠看出來,less和scss中的變量會隨着做用域的變化而不同。
複製代碼

 

3.輸出設置,Less沒有輸出設置,Sass提供4中輸出選項:nested, compact, compressed 和 expanded。

輸出樣式的風格能夠有四種選擇,默認爲nestednode

  • nested:嵌套縮進的css代碼
  • expanded:展開的多行css代碼
  • compact:簡潔格式的css代碼
  • compressed:壓縮後的css代碼

4.Sass支持條件語句,可使用if{}else{},for{}循環等等。而Less不支持。

複製代碼
/* Sample Sass 「if」 statement */

@if lightness($color) > 30% {

} @else {

}

/* Sample Sass 「for」 loop */

@for $i from 1 to 10 {
  .border-#{$i} {
    border: #{$i}px solid blue;
  }
}
複製代碼

 5. 引用外部CSS文件

scss引用的外部文件命名必須以_開頭, 以下例所示:其中_test1.scss、_test2.scss、_test3.scss文件分別設置的h1 h2 h3。文件名若是如下劃線_開頭的話,Sass會認爲該文件是一個引用文件,不會將其編譯爲css文件.jquery

複製代碼
// 源代碼:
@import "_test1.scss";
@import "_test2.scss";
@import "_test3.scss";

// 編譯後: h1 { font-size: 17px; } h2 { font-size: 17px; } h3 { font-size: 17px; }
複製代碼

Less引用外部文件和css中的@import沒什麼差別。程序員

6.Sass和Less的工具庫不一樣

Sass有工具庫Compass, 簡單說,Sass和Compass的關係有點像Javascript和jQuery的關係,Compass是Sass的工具庫。在它的基礎上,封裝了一系列有用的模塊和模板,補充強化了Sass的功能。web

Less有UI組件庫Bootstrap,Bootstrap是web前端開發中一個比較有名的前端UI組件庫,Bootstrap的樣式文件部分源碼就是採用Less語法編寫。正則表達式

 

三. 總結

無論是Sass,仍是Less,均可以視爲一種基於CSS之上的高級語言,其目的是使得CSS開發更靈活和更強大,Sass的功能比Less強大,基本能夠說是一種真正的編程語言了,Less則相對清晰明瞭,易於上手,對編譯環境要求比較寬鬆。考慮到編譯Sass要安裝Ruby,而Ruby官網在國內訪問不了,我的在實際開發中更傾向於選擇Less。

2、gulp簡介

    1.gulp是什麼?

      gulp是前端開發過程當中一種基於流的代碼構建工具,是自動化項目的構建利器;它不只能對網站資源進行優化,並且在開發過程當中不少重複的任務可以使用正確的工具自動完成;使用它,不只能夠很愉快的編寫代碼,並且大大提升咱們的工做效率。

      gulp是基於Nodejs的自動任務運行器, 它能自動化地完成 javascript、coffee、sass、less、html/image、css 等文件的測試、檢查、合併、壓縮、格式化、瀏覽器自動刷新、部署文件生成,並監聽文件在改動後重復指定的這些步驟。在實現上,她借鑑了Unix操做系統的管道(pipe)思想,前一級的輸出,直接變成後一級的輸入,使得在操做上很是簡單。經過本文,咱們將學習如何使用Gulp來改變開發流程,從而使開發更加快速高效。

      gulp 和 grunt 很是相似,但相比於 grunt 的頻繁 IO 操做,gulp 的流操做,能更快地更便捷地完成構建工做。

     2.核心概念:流

      流,簡單來講就是創建在面向對象基礎上的一種抽象的處理數據的工具。在流中,定義了一些處理數據的基本操做,如讀取數據,寫入數據等,程序員是對流進行全部操做的,而不用關心流的另外一頭數據的真正流向。流不但能夠處理文件,還能夠處理動態內存、網絡數據等多種數據形式。

      而gulp正是經過流和代碼優於配置的策略來儘可能簡化任務編寫的工做。這看起來有點「像jQuery」的方法,把動做串起來建立構建任務。早在Unix的初期,流就已經存在了。流在Node.js生態系統中也扮演了重要的角色,相似於*nix將幾乎全部設備抽象爲文件同樣,Node將幾乎全部IO操做都抽象成了stream的操做。所以用gulp編寫任務也可看做是用Node.js編寫任務。當使用流時,gulp去除了中間文件,只將最後的輸出寫入磁盤,整個過程所以變得更快。

     3.特色    

      易於使用

        經過代碼優於配置的策略,gulp 讓簡單的任務簡單,複雜的任務可管理。

      構建快速

        利用 Node.js 流的威力,你能夠快速構建項目並減小頻繁的 IO 操做。

      易於學習

        經過最少的 API,掌握 gulp 絕不費力,構建工做盡在掌握:如同一系列流管道。

      插件高質

        gulp 嚴格的插件指南確保插件如你指望的那樣簡潔高質得工做。

     4.安裝 

      首先確保你已經正確安裝了nodejs環境。而後以全局方式安裝gulp:

npm install -g gulp

      全局安裝gulp後,還須要在每一個要使用gulp的項目中都單獨安裝一次。把目錄切換到你的項目文件夾中,而後在命令行中執行:

npm install gulp

      若是想在安裝的時候把gulp寫進項目package.json文件的依賴中,則能夠加上--save-dev:

npm install --save-dev gulp

      這樣就完成了gulp的安裝,接下來就能夠在項目中應用gulp了。

     5.gulp的使用

      一、創建gulpfile.js文件

      gulp也須要一個文件做爲它的主文件,在gulp中這個文件叫作gulpfile.js。新建一個文件名爲gulpfile.js的文件,而後放到你的項目目錄中。以後要作的事情就是在gulpfile.js文件中定義咱們的任務了。下面是一個最簡單的gulpfile.js文件內容示例,它定義了一個默認的任務。

複製代碼
var gulp = require('gulp');
gulp.task('default',function(){
    console.log('hello world');
});
複製代碼

      此時咱們的目錄結構是這樣子的:

      

      2 運行gulp任務

      要運行gulp任務,只需切換到存放gulpfile.js文件的目錄(windows平臺請使用cmd或者Power Shell等工具),而後在命令行中執行gulp命令就好了,gulp後面能夠加上要執行的任務名,例如gulp task1,若是沒有指定任務名,則會執行任務名爲default的默認任務。

2、 gulp api

     1.工做方式

      在介紹gulp API以前,咱們首先來講一下gulp.js工做方式。在gulp中,使用的是Nodejs中的stream(流),首先獲取到須要的stream,而後能夠經過stream的pipe()方法把流導入到你想要的地方,好比gulp的插件中,通過插件處理後的流又能夠繼續導入到其餘插件中,固然也能夠把流寫入到文件中。因此gulp是以stream爲媒介的,它不須要頻繁的生成臨時文件,這也是咱們應用gulp的一個緣由。

  gulp的使用流程通常是:首先經過gulp.src()方法獲取到想要處理的文件流,而後把文件流經過pipe方法導入到gulp的插件中,最後把通過插件處理後的流再經過pipe方法導入到gulp.dest()中,gulp.dest()方法則把流中的內容寫入到文件中。例如:

var gulp = require('gulp');
gulp.src('script/jquery.js')         // 獲取流的api
    .pipe(gulp.dest('dist/foo.js')); // 寫放文件的api

     2.globs的匹配規則

      咱們重點說說gulp用到的globs的匹配規則以及一些文件匹配技巧,咱們將會在後面用到這些規則。

  gulp內部使用了node-glob模塊來實現其文件匹配功能。咱們可使用下面這些特殊的字符來匹配咱們想要的文件:

匹配符 說明
* 匹配文件路徑中的0個或多個字符,但不會匹配路徑分隔符,除非路徑分隔符出如今末尾
** 匹配路徑中的0個或多個目錄及其子目錄,須要單獨出現,即它左右不能有其餘東西了。若是出如今末尾,也能匹配文件。
? 匹配文件路徑中的一個字符(不會匹配路徑分隔符)
[...]

匹配方括號中出現的字符中的任意一個,當方括號中第一個字符爲^或!時,則表示不匹配方括號中出現的其餘字符中的任意一個,相似js正則表達式中的用法

!(pattern|pattern|pattern) 匹配任何與括號中給定的任一模式都不匹配的
?(pattern|pattern|pattern) 匹配括號中給定的任一模式0次或1次,相似於js正則中的(pattern|pattern|pattern)?
+(pattern|pattern|pattern) 匹配括號中給定的任一模式至少1次,相似於js正則中的(pattern|pattern|pattern)+
*(pattern|pattern|pattern) 匹配括號中給定的任一模式0次或屢次,相似於js正則中的(pattern|pattern|pattern)*
@(pattern|pattern|pattern) 匹配括號中給定的任一模式1次,相似於js正則中的(pattern|pattern|pattern)

下面以例子來加深理解

* 能匹配 a.js,x.y,abc,abc/,但不能匹配a/b.js

*.* 能匹配 a.js,style.css,a.b,x.y

*/*/*.js 能匹配 a/b/c.js,x/y/z.js,不能匹配a/b.js,a/b/c/d.js

** 能匹配 abc,a/b.js,a/b/c.js,x/y/z,x/y/z/a.b,能用來匹配全部的目錄和文件

**/*.js 能匹配 foo.js,a/foo.js,a/b/foo.js,a/b/c/foo.js

a/**/z 能匹配 a/z,a/b/z,a/b/c/z,a/d/g/h/j/k/z

a/**b/z 能匹配 a/b/z,a/sb/z,但不能匹配a/x/sb/z,由於只有單**單獨出現才能匹配多級目錄

?.js 能匹配 a.js,b.js,c.js

a?? 能匹配 a.b,abc,但不能匹配ab/,由於它不會匹配路徑分隔符

[xyz].js 只能匹配 x.js,y.js,z.js,不會匹配xy.js,xyz.js等,整個中括號只表明一個字符

[^xyz].js 能匹配 a.js,b.js,c.js等,不能匹配x.js,y.js,z.js

     3.src:獲取流

      gulp.src()方法正是用來獲取流的,但要注意這個流裏的內容不是原始的文件流,而是一個虛擬文件對象流(Vinyl files),這個虛擬文件對象中存儲着原始文件的路徑、文件名、內容等信息。其語法爲:

gulp.src(globs[, options]);

      globs參數是文件匹配模式(相似正則表達式),用來匹配文件路徑(包括文件名),固然這裏也能夠直接指定某個具體的文件路徑。當有多個匹配模式時,該參數能夠爲一個數組;類型爲String或 Array。當有多種匹配模式時可使用數組

//使用數組的方式來匹配多種文件
gulp.src(['js/*.js','css/*.css','*.html'])

options爲可選參數。如下爲options的選項參數:

options.buffer

類型: Boolean 默認值: true

  若是該項被設置爲 false,那麼將會以 stream 方式返回 file.contents 而不是文件 buffer 的形式。這在處理一些大文件的時候將會頗有用。

      注意:插件可能並不會實現對 stream 的支持。

options.read

類型: Boolean 默認值: true

若是該項被設置爲 false, 那麼 file.contents 會返回空值(null),也就是並不會去讀取文件。

options.base

類型: String , 設置輸出路徑以某個路徑的某個組成部分爲基礎向後拼接。

如, 請想像一下在一個路徑爲 client/js/somedir 的目錄中,有一個文件叫 somefile.js :

複製代碼
gulp.src('client/js/**/*.js') // 匹配 'client/js/somedir/somefile.js' 如今 `base` 的值爲 `client/js/`
  .pipe(minify())
  .pipe(gulp.dest('build'));  // 寫入 'build/somedir/somefile.js' 將`client/js/`替換爲build
 
gulp.src('client/js/**/*.js', { base: 'client' }) // base 的值爲 'client'
  .pipe(minify())
  .pipe(gulp.dest('build'));  // 寫入 'build/js/somedir/somefile.js' 將`client`替換爲build
複製代碼

     4.dest:寫文件

      gulp.dest()方法是用來寫文件的,其語法爲:

gulp.dest(path[,options])

path爲寫入文件的路徑;

options爲一個可選的參數對象,如下爲選項參數:

options.cwd

類型: String 默認值: process.cwd()

輸出目錄的 cwd 參數,只在所給的輸出目錄是相對路徑時候有效。

options.mode

類型: String 默認值: 0777

八進制權限字符,用以定義全部在輸出目錄中所建立的目錄的權限。

var gulp = require('gulp');
gulp.src('script/jquery.js')        // 獲取流
    .pipe(gulp.dest('dist/foo.js')); // 寫放文件

      下面再說說生成的文件路徑與咱們給gulp.dest()方法傳入的路徑參數之間的關係。  gulp.dest(path)生成的文件路徑是咱們傳入的path參數後面再加上gulp.src()中有通配符開始出現的那部分路徑。例如:

複製代碼
var gulp = reruire('gulp');
//有通配符開始出現的那部分路徑爲 **/*.js
gulp.src('script/**/*.js')
    .pipe(gulp.dest('dist')); //最後生成的文件路徑爲 dist/**/*.js
//若是 **/*.js 匹配到的文件爲 jquery/jquery.js ,則生成的文件路徑爲 dist/jquery/jquery.js
複製代碼

      用gulp.dest()把文件流寫入文件後,文件流仍然能夠繼續使用。

     5.watch:監聽文件 

      gulp.watch()用來監視文件的變化,當文件發生變化後,咱們能夠利用它來執行相應的任務,例如文件壓縮等。其語法爲

gulp.watch(glob[, opts], tasks); 

      glob 爲要監視的文件匹配模式,規則和用法與gulp.src()方法中的glob相同。 opts 爲一個可選的配置對象,一般不須要用到。 tasks 爲文件變化後要執行的任務,爲一個數組。

複製代碼
gulp.task('uglify',function(){
  //do something
});
gulp.task('reload',function(){
  //do something
});
gulp.watch('js/**/*.js', ['uglify','reload']);
複製代碼

      gulp.watch()還有另一種使用方式:

gulp.watch(glob[, opts, cb]);

glob和opts參數與第一種用法相同;

cb參數爲一個函數。每當監視的文件發生變化時,就會調用這個函數,而且會給它傳入一個對象,該對象包含了文件變化的一些信息,type屬性爲變化的類型,能夠是added,changed,deleted;path屬性爲發生變化的文件的路徑。

複製代碼
gulp.watch('js/**/*.js', function(event){
    console.log(event.type); //變化類型 added爲新增,deleted爲刪除,changed爲改變 
    console.log(event.path); //變化的文件的路徑
}); 
複製代碼

     6.task:定義任務

      gulp.task方法用來定義任務,其語法爲:

gulp.task(name[, deps], fn)

name 爲任務名;

deps 是當前定義的任務須要依賴的其餘任務,爲一個數組。當前定義的任務會在全部依賴的任務執行完畢後纔開始執行。若是沒有依賴,則可省略這個參數;

fn 爲任務函數,咱們把任務要執行的代碼都寫在裏面。該參數也是可選的。

當你定義一個簡單的任務時,須要傳入任務名字和執行函數兩個屬性。

gulp.task('greet', function () {
   console.log('Hello world!');
});

      執行gulp greet的結果就是在控制檯上打印出「Hello world」。

  你也能夠定義一個在gulp開始運行時候默認執行的任務,並將這個任務命名爲「default」:

gulp.task('default', function () {
   // Your default task
});

      前面已經介紹了gulp.task的語法,可是當有多個任務時,須要知道怎麼來控制任務的執行順序。

  能夠經過任務依賴來實現。例如我想要執行one,two,three這三個任務,那咱們就能夠定義一個空的任務,而後把那三個任務當作這個空的任務的依賴就好了:

//只要執行default任務,就至關於把one,two,three這三個任務執行了
gulp.task('default',['one','two','three']);

      若是任務相互之間沒有依賴,任務就會按你書寫的順序來執行,若是有依賴的話則會先執行依賴的任務。可是若是某個任務所依賴的任務是異步的,就要注意了,gulp並不會等待那個所依賴的異步任務完成,而是會接着執行後續的任務。例如:

複製代碼
gulp.task('one',function(){
  //one是一個異步執行的任務
  setTimeout(function(){
    console.log('one is done')
  },5000);
});
 
//two任務雖然依賴於one任務,但並不會等到one任務中的異步操做完成後再執行
gulp.task('two',['one'],function(){
  console.log('two is done');
});
複製代碼

      上面的例子中咱們執行two任務時,會先執行one任務,但不會去等待one任務中的異步操做完成後再執行two任務,而是緊接着執行two任務。因此two任務會在one任務中的異步操做完成以前就執行了。

  那若是咱們想等待異步任務中的異步操做完成後再執行後續的任務,該怎麼作呢?

  有三種方法能夠實現:

  第一:在異步操做完成後執行一個回調函數來通知gulp這個異步任務已經完成,這個回調函數就是任務函數的第一個參數。

複製代碼
gulp.task('one', function (cb) { //cb爲任務函數提供的回調,用來通知任務已經完成
    //one是一個異步執行的任務
    exec('', function (err) {
        setTimeout(function () {
            if (err) {
                return cb(err);
            }
            console.log('one is finish');
            cb();  //執行回調,表示這個異步任務已經完成
        }, 5000)
    });
});

//這時two任務會在one任務中的異步操做完成後再執行
gulp.task('two', ['one'], function () {
    console.log('two is finish');
});
複製代碼

      第二:定義任務時返回一個流對象。適用於任務就是操做gulp.src獲取到的流的狀況。

複製代碼
gulp.task('one',function(cb){
  var stream = gulp.src('client/**/*.js')
      .pipe(exec()) //exec()中有某些異步操做
      .pipe(gulp.dest('build'));
    return stream;
});
 
gulp.task('two',['one'],function(){
  console.log('two is done');
});
複製代碼

      第三:返回一個promise對象,例如

複製代碼
var Q = require('q');
gulp.task('one', function() {
  var deferred = Q.defer();
 
  // 執行異步的操做
  setTimeout(function() {
    deferred.resolve();
  }, 1);
  return deferred.promise;
});
 
gulp.task('two',['one'],function(){
  console.log('two is done');
});
複製代碼

3、寫本身的gulp任務

     1.項目需求

      咱們將建立一個本身的gulp,具體的需求是經過gulp把咱們本身所編寫的JS文件合併壓縮、CSS文件進行壓縮後,而且生成新的文件。咱們所須要的插件爲:gulp-minify-css gulp-concat gulp-uglify gulp-rename 以下圖所示,完成後的項目目錄結構:

     2.安裝插件

      根據咱們項目的需求,安裝所須要的插件,能夠經過"npm install 插件名" 來安裝插件

      而後打開gulpfile.js,將咱們所用到的插件引用到咱們項目中,代碼以下:

複製代碼
var gulp = require('gulp'),
    minifycss = require('gulp-minify-css'),  //CSS壓縮
    concat = require('gulp-concat'),         // 文件合併
    uglify = require('gulp-uglify'),         //js壓縮插件
    rename = require('gulp-rename');         // 重命名
複製代碼

     3.編寫任務代碼

      1.壓縮css

複製代碼
gulp.task('minifycss', function() {
    return gulp.src('src/css/*.css')         //壓縮的文件
        .pipe(minifycss())                   //執行壓縮
        .pipe(gulp.dest('dist/css'));        //輸出文件夾
});
複製代碼

      2.JS 合併壓縮

複製代碼
gulp.task('minifyjs', function() {
    return gulp.src('src/js/*.js')
        .pipe(concat('all.js'))               //合併全部js到main.js
        .pipe(gulp.dest('dist/js'))           //輸出main.js到文件夾
        .pipe(rename({suffix: '.min'}))       //rename壓縮後的文件名
        .pipe(uglify())                       //壓縮
        .pipe(gulp.dest('dist/js'));          //輸出
});
複製代碼

      3.將以上兩個任務合併爲一個任務

gulp.task('build', ['minifycss', 'minifyjs']);

      4.監視文件的變化,自動執行任務

複製代碼
// 監視文件的變化,當文件有更新時執行build任務
gulp.task('watch', function () {
    gulp.watch(['src/js/*.js', 'src/css/*.css'], ['build']);
});
複製代碼

      5.定義默認任務

gulp.task('default', ['build', 'watch']);

     4.執行任務

      在命令行中先轉到gulp-demo目錄下,就能夠輸入gulp命令來運行本項目了,刷新gulp-demo目錄看看會出現什麼結果呢。運行完成後的目錄以下圖:

      運行過程當中的消息以下圖所示:

3、CMD指令

CMD命令 net use ipipc$ " " /user:" " 創建IPC空連接 net use ipipc$ "密碼" /user:"用戶名" 創建IPC非空連接 net use h: ipc$ "密碼" /user:"用戶名" 直接登錄後映射對方C:到本地爲H: net use h: ipc$ 登錄後映射對方C:到本地爲H: net use ipipc$ /del 刪除IPC連接 net use h: /del 刪除映射對方到本地的爲H:的映射 net user 用戶名 密碼 /add 創建用戶 net user guest /active:yes 激活guest用戶 net user 查看有哪些用戶 net user 賬戶名 查看賬戶的屬性 net localgroup administrators 用戶名 /add 把「用戶」添加到管理員中使其具備管理員權限,注意:administrator後加s用複數 net start 查看開啓了哪些服務 net start 服務名  開啓服務;(如:net start telnet, net start schedule) net stop 服務名 中止某服務 net time 目標ip 查看對方時間 net time 目標ip /set 設置本地計算機時間與「目標IP」主機的時間同步,加上參數/yes可取消確認信息 net view 查看本地局域網內開啓了哪些共享 net view ip 查看對方局域網內開啓了哪些共享 net config 顯示系統網絡設置 net logoff 斷開鏈接的共享 net pause 服務名 暫停某服務 net send ip "文本信息" 向對方發信息 net ver 局域網內正在使用的網絡鏈接類型和信息 net share 查看本地開啓的共享 net share ipc$ 開啓ipc$共享 net share ipc$ /del 刪除ipc$共享 net share c$ /del 刪除C:共享 net user guest 12345 用guest用戶登錄後用將密碼改成12345 net password 密碼 更改系統登錄密碼 netstat -a 查看開啓了哪些端口,經常使用netstat -an netstat -n 查看端口的網絡鏈接狀況,經常使用netstat -an netstat -v 查看正在進行的工做 netstat -p 協議名 例:netstat -p tcq/ip 查看某協議使用狀況(查看tcp/ip協議使用狀況) netstat -s 查看正在使用的全部協議使用狀況 nbtstat -A ip 對方136到139其中一個端口開了的話,就可查看對方最近登錄的用戶名(03前的爲用戶名)-注意:參數-A要大寫 tracert -參數 ip(或計算機名) 跟蹤路由(數據包),參數:「-w數字」用於設置超時間隔。 ping ip(或域名) 向對方主機發送默認大小爲32字節的數據,參數:「-l[空格]數據包大小」;「-n發送數據次數」;「-t」指一直ping。 ping -t -l 65550 ip 死亡之ping(發送大於64K的文件並一直ping就成了死亡之ping) ipconfig (winipcfg) 用於windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用參數「/all」顯示所有配置信息 tlist -t 以樹行列表顯示進程(爲系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內) kill -F 進程名 加-F參數後強制結束某進程(爲系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內) del -F 文件名 加-F參數後就可刪除只讀文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統、存檔之外的文件。例如「DEL/AR *.*」表示刪除當前目錄下全部只讀文件,「DEL/A-S *.*」表示刪除當前目錄下除系統文件之外的全部文件 二: del /S /Q 目錄 或用:rmdir /s /Q 目錄 /S刪除目錄及目錄下的全部子目錄和文件。同時使用參數/Q 可取消刪除操做時的系統確認就直接刪除。(二個命令做用相同) move 盤符路徑要移動的文件名 存放移動文件的路徑移動後文件名 移動文件,用參數/y將取消確認移動目錄存在相同文件的提示就直接覆蓋 fc one.txt two.txt > 3st.txt 對比二個文件並把不一樣之處輸出到3st.txt文件中,"> "和"> >" 是重定向命令 at id號 開啓已註冊的某個計劃任務 at /delete 中止全部計劃任務,用參數/yes則不須要確認就直接中止 at id號 /delete 中止某個已註冊的計劃任務 at 查看全部的計劃任務 at ip time 程序名(或一個命令) /r 在某時間運行對方某程序並從新啓動計算機 finger username @host 查看最近有哪些用戶登錄 telnet ip 端口 遠和登錄服務器,默認端口爲23 open ip 鏈接到IP(屬telnet登錄後的命令) telnet 在本機上直接鍵入telnet 將進入本機的telnet copy 路徑文件名1 路徑文件名2 /y 複製文件1到指定的目錄爲文件2,用參數/y就同時取消確認你要改寫一份現存目錄文件 copy c:srv.exe ipadmin$ 複製本地c:srv.exe到對方的admin下 cppy 1st.jpg/b+2st.txt/a 3st.jpg 將2st.txt的內容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件頭要空三排,參數:/b指二進制文件,/a指ASCLL格式文件 copy ipadmin$svv.exe c: 或:copyipadmin$*.* 複製對方admini$共享下的srv.exe文件(全部文件)至本地C: xcopy 要複製的文件或目錄樹 目標地址目錄名 複製文件和目錄樹,用參數/Y將不提示覆蓋相同文件 tftp -i 本身IP(用肉機做跳板時這用肉機IP) get server.exe c:server.exe 登錄後,將「IP」的server.exe下載到目標主機c:server.exe 參數:-i指以二進制模式傳送,如傳送exe文件時用,如不加-i 則以ASCII模式(傳送文本文件模式)進行傳送 tftp -i 對方IP put c:server.exe 登錄後,上傳本地c:server.exe至主機 ftp ip 端口 用於上傳文件至服務器或進行文件操做,默認端口爲21。bin指用二進制方式傳送(可執行文件進);默認爲ASCII格式傳送(文本文件時) route print 顯示出IP路由,將主要顯示網絡地址Network addres,子網掩碼Netmask,網關地址Gateway addres,接口地址Interface arp 查看和處理ARP緩存,ARP是名字解析的意思,負責把一個IP解析成一個物理性的MAC地址。arp -a將顯示出所有信息 start 程序名或命令 /max 或/min 新開一個新窗口並最大化(最小化)運行某程序或命令 mem 查看cpu使用狀況 attrib 文件名(目錄名) 查看某文件(目錄)的屬性 attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存檔,只讀,系統,隱藏 屬性;用+則是添加爲某屬性 dir 查看文件,參數:/Q顯示文件及目錄屬系統哪一個用戶,/T:C顯示文件建立時間,/T:A顯示文件上次被訪問時間,/T:W上次被修改時間 date /t 、 time /t 使用此參數即「DATE/T」、「TIME/T」將只顯示當前日期和時間,而沒必要輸入新日期和時間 set 指定環境變量名稱=要指派給變量的字符 設置環境變量 set 顯示當前全部的環境變量 set p(或其它字符) 顯示出當前以字符p(或其它字符)開頭的全部環境變量 pause 暫停批處理程序,並顯示出:請按任意鍵繼續.... if 在批處理程序中執行條件處理(更多說明見if命令及變量) goto 標籤 將cmd.exe導向到批處理程序中帶標籤的行(標籤必須單獨一行,且以冒號打頭,例如:「:start」標籤) call 路徑批處理文件名 從批處理程序中調用另外一個批處理程序 (更多說明見call /?) for 對一組文件中的每個文件執行某個特定命令(更多說明見for命令及變量) echo on或off 打開或關閉echo,僅用echo不加參數則顯示當前echo設置 echo 信息 在屏幕上顯示出信息 echo 信息 >> pass.txt 將"信息"保存到pass.txt文件中 findstr "Hello" aa.txt 在aa.txt文件中尋找字符串hello find 文件名 查找某文件 title 標題名字 更改CMD窗口標題名字 color 顏色值 設置cmd控制檯前景和背景顏色;0=黑、1=藍、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白 prompt 名稱 更改cmd.exe的顯示的命令提示符(把C:、D:統一改成:EntSky ) 三: ver 在DOS窗口下顯示版本信息 winver 彈出一個窗口顯示版本信息(內存大小、系統版本、補丁版本、計算機名) format 盤符 /FS:類型 格式化磁盤,類型:FAT、FAT3二、NTFS ,例:Format D: /FS:NTFS md 目錄名 建立目錄 replace 源文件 要替換文件的目錄 替換文件 ren 原文件名 新文件名 重命名文件名 tree 以樹形結構顯示出目錄,用參數-f 將列出第個文件夾中文件名稱 type 文件名 顯示文本文件的內容 more 文件名 逐屏顯示輸出文件 doskey 要鎖定的命令=字符 doskey 要解鎖命令= 爲DOS提供的鎖定命令(編輯命令行,從新調用win2k命令,並建立宏)。如:鎖定dir命令:doskey dir=entsky (不能用doskey dir=dir);解鎖:doskey dir= taskmgr 調出任務管理器 chkdsk /F D: 檢查磁盤D並顯示狀態報告;加參數/f並修復磁盤上的錯誤 tlntadmn telnt服務admn,鍵入tlntadmn選擇3,再選擇8,就能夠更改telnet服務默認端口23爲其它任何端口 exit 退出cmd.exe程序或目前,用參數/B則是退出當前批處理腳本而不是cmd.exe path 路徑可執行文件的文件名 爲可執行文件設置一個路徑。 cmd 啓動一個win2K命令解釋窗口。參數:/eff、/en 關閉、開啓命令擴展;更我詳細說明見cmd /? regedit /s 註冊表文件名 導入註冊表;參數/S指安靜模式導入,無任何提示; regedit /e 註冊表文件名 導出註冊表 cacls 文件名 參數 顯示或修改文件訪問控制列表(ACL)——針對NTFS格式時。參數:/D 用戶名:設定拒絕某用戶訪問;/P 用戶名:perm 替換指定用戶的訪問權限;/G 用戶名:perm 賦予指定用戶訪問權限;Perm 能夠是: N 無,R 讀取, W 寫入, C 更改(寫入),F 徹底控制;例:cacls D: est.txt /D pub 設定d: est.txt拒絕pub用戶訪問。 cacls 文件名 查看文件的訪問用戶權限列表 REM 文本內容 在批處理文件中添加註解 netsh 查看或更改本地網絡配置狀況 

相關文章
相關標籤/搜索