再談 apache設置virtualhost + apache的一些相關設值


首先 要弄懂究竟什么是, vitrual host: 虛擬主機, 他有什么用處?
就是說: 一台計算機(server)中, 通常只是放一個網站/站點 但是 如果機器緊張, 服務器性能比較好,或訪問的站點壓力不是很大 就可以在一台機器上 搭建多個站點. 就相當於, 原來每個房間都弄一台空調. 現在 一台空調" 一拖二""一拖三"等.

在機器上安裝apache后, apache成為網站的引擎. (這個引擎就相當於 一個單位外事部的經理, 對外辦公室的主任一樣), 他就負責http遠程訪問的事情(應用). 要不然憑什么外部來的請求能夠訪問得到站點上的內容呢? 就是由他: 第一, 負責監聽本機 80 端口的 遠程的http請求. ( 具體是哪個端口, 由httpd.conf中的配置來決定. 你也可以修改httpd.conf來改變本機web http(s)請求數據包的監聽 : lisen 80(8080, 7000等). 第二,然后, apache把httpd.conf 配置中的 DocumentRoot指定目錄中的 "默認索引"文件index.html 或index.php等發往 http外發端口(這個外發端口)就是隨機的臨時指定的了. 第三, 然后, 再往osi七層模型中的底層打包 封幀進行傳遞. 也就說說, 所謂的Apache就是干這事的. 有了apache,就相當於成立了外事辦 .就有了外事辦 主任, 就可以向外提供http web服務了. 否則, 沒有apache, 那肯定就沒有web服務的功能了. 你看apache的代碼, 基本上就是 這些: 網絡功能模塊: 連接請求監聽(輪詢機制) , 建立網絡連接, 准備數據, 決定隨機外發端口, 封包, 封幀, 外發....

一個apache可以處理一個網站/站點的業務/事情, 跟外事辦同理, 一個單位的(專門成立的一個)外事辦, 可以處理多個部門的外事活動/事務. 比如工程部, 市場部, 客服部, 技術部等多個部門的外事活動, 都將由外事辦來處理, 因此, 一個機器上的一個apache也可以處理 本機上 多個網站的 網絡請求. 也就是說, apache也可以實現 "一拖二""一拖三"的功能, 實際上, 也就是apache多弄幾個線程而已的事, 每個線程的處理功能都差不多,(粗略的認為...) 一個線程負責處理一個站點的事情.

wamp等apache的目錄結構:
/wamp/(www , tmp, bin, logs, lang, alias,和一些啟動命令文件), 其中bin是wamp的核心, apache和php和mysql的功能和配置都包含在bin中. /bin/(php, mysql, apche相當於三個分類)/, /apache/Apache2.2.17/(bin, httpd.conf這個是主配置文件, extra/是一些額外的,附加的配置文件, 等等).
也就數說, apache的配置文件目錄是: /wamp/bin/apache/Apache2.2.17/conf(有一個專門的conf配置目錄)/httpd.conf
httpd.conf是主配置文件, 其他附加配置文件包括 httpd-lang.conf, httpd-dav.conf, httpd-default, httpd-vhosts.conf(vhosts是多個虛擬主機用復數s)都是放在conf/extra/中的, 因為附加的配置太多了, 都不可能直接在主配置文件中配置, 所以使用的是包含語句: # Include conf/extra/httpd-vhosts.conf" (主配置的命令都是以Apache2.2.17目錄為默認目錄 的)

注意區分ServerRoot 和 DocumentRoot這兩個Root
ServerRoot是指apache服務引擎的根路徑, 當然就是 /wamp/bin/apache/Apache2.2.17
DocumentRoot是指web服務的內容從哪里輸出
ServerName: 是指服務器的名字, 主配置是 localhost:80
Listen 80


windows的熱鍵字母命令, 什么時候加alt? (實際上, 菜單也就只有三種: 程序的主菜單, 右鍵菜單, 下拉菜單), 那就是, 凡是右鍵菜單中的命令 + 下拉菜單中的命令, 熱鍵直接按字母, 不需要加alt, 只有對於 "主菜單"中的 熱鍵命令字母, 才需要加alt.


因此, 在配置 virtual host時,(Most configurations use only name-based virtual hosts so the server doesn't need to worry about IP addresses. This is indicated by the asterisks in the directives below. )

由於通常是基於名字的虛擬主機, 所以,不用管虛擬主機的ip地址. 也就是, 主機的ip地址是什么, 虛擬主機的ip就是什么.
配置有兩條:

  1. NameVirtualHost *:80
  2. 虛擬主機的配置, 實際上只需要真正起作用的兩句
    ServerName  hello.myvhost.com
    DocumentRoot "d:/hello/my"
    

實際上, 即使在windows中, 像apache php mysql這些程序都提供了命令行 命令: 如:
apche: /wamp/bin/apache/apache2.2.17/apache.exe 有很多選項: options: -h -v(查看version), -V -d, -f(指定額外的配置文件) -C -c(額外的處理指令)等


vim如何向上向后 復制/剪切/粘貼等操作

dnj:向下刪除n行
dnk:向上刪除n行

也就是說 , vim的操作命令有兩種方式, (一種是主謂式, 一種是動賓式), 一是 范圍/操作對象在前 + 操作動作, 這是最常見的操作方式, 如: 3yy. 另一種是: 操作動作+ 操作的對象(包括范圍, 方向), 如: y3k.... 動賓形式的操作通常要結合 表示方向的hjkl操作一起使用. 如: d3j, d3k. 兩種的區別是: 主謂式包括當前行, 而動賓式不包括當前行.

總之, 對較多行數的 內容的 最有效的復制/剪切+ 粘貼的方式, 是: 直接使用命令: m, n co/m z 使用命令才是最直接的操作方式!!!


customizable error documents responses come in three flavors(風味, 韻味; 方式;) : plain text; local redirects; external redirects.
ErrorDocument 500 "the server made a boo boo." make a boo boo(出了小錯誤)

Apache使用的是 模塊化結構, 模塊化插件式結構, 他的模塊很多, 都放在 /apache2.2.17/modules/ 目錄下, 格式是如: mod_spelling.so , 對php的

支持是通過 mod_php5.so模塊來支持的, 模塊名稱: php5_module

apache 的虛擬目錄?

  1. 注意區別, 虛擬主機和虛擬目錄的區別:
    虛擬目錄的servername服務器名稱(域名)還是 沒有改變, 但是虛擬主機的servername(域名) 甚至ip地址都可能改變.
    相同的是, 兩者的目標目錄路徑, 都不是默認的/wamp/www

  2. 虛擬目錄的兩種使用場合:

    • 臨時需要訪問一下沒有放在 /wamp/www/ 根目錄下的路徑目錄
    • 需要將某個協助內容跟 "主網站"的內容相隔離.
  3. 虛擬目錄的域名本身並沒有改變, 因為, 如果不是出於上面的兩個原因的話, 可以的話, 你完全可以將這個目錄 放在域名的/根路徑下.(因為對域名 www.hello.com/這個根的訪問, 就限定了訪問的目錄) , 而要訪問 本機上, 這個域名的根/ 之外的目錄, 又不改變域名, 就可以使用虛擬目錄.

  4. 主配置文件中, 對虛擬目錄的支持, 是通過Include語句實現的: Include "c:/wamp/alia/*"

  5. 虛擬目錄, 你完全可以在httpd.conf中配置, 也可以像wamp一樣, 用 /wamp/alias/ 目錄+ /wamp/apps/ 目錄來表達.
    alias下的虛擬目錄也是相應的??.conf配置文件, 因為這樣可以合並到主配置文件中去.

    Alias  /myvdir "d:/myvdir"   ## 別名就是虛擬目錄, 格式是: alias  /域名根下的虛擬目錄別名名稱  "虛擬目錄別名的目標地址"
    <Directory "d:/myvidr">
    關於目錄的配置有幾點:
    Options Indexes MultiViews  # 設置Options, Multiviews, 是指當你在域名后輸入一個名稱比如foo的時候, 他會判斷你這個foo是一個目錄, 還是一個foo.html文件,還是一個foo.php文件, apache會自動地進行處理
    
    AllowOverride None  # 設置重載
    Order allow, deny     # 設置access順序
    Allow from all
    
    </Directory>
    

在windosw中, httpd.conf中的配置不區分大小寫?!

Order allow , deny, deny, allow 的意思究竟是什么? 第一, 他不像 路由器的acl會 進行短路處理. 而是全部指令都處理. 第二,真實的意思是, 根據order的順序, 來決定deny語句和allow語句的 "執行順序", 也就是deny語句和allow語句在有沖突矛盾的時候, 誰 最后生效, "誰覆蓋誰", "誰的設置會超越誰"

比如, 同樣有兩句, deny from all 和 allow 192.168.1.0/24. 如果是 Order deny,allow 則192.168.1.0可以訪問, 如果是 Order allow, deny. 則192.168.1.0網段不能訪問. 到底用什么順序, 完全是看你的控制目的而言了.

關於具體的/詳細的 httpd.conf的設置, 參考: http://www.cnblogs.com/zhanghw0354/archive/2012/05/08/2490163.html

  1. Windows中的同名字的 系統環境變量和用戶環境變量, 如%path%, 在echo的時候, 會自動 "合並"顯示...所以, 不管你在系統path路徑中設置還是在當前用戶的path中設置都是可行的. 只是 系統環境變量的顯示在前, 而且優先級更高... 環境變量的好處是, 你在cmd控制台下, 運行程序的bin/command的時候, "可以省略很多的路徑字符串的書寫"

  2. windows中, 管理機器上運行的服務的命令是net. win啟動/停止/重啟等的命令是net, 如同linux下的 systemctl命令一樣: net statistics [一台機器可以有服務器和工作站兩種角色workstation | server ], net start(查看啟動了哪些服務), net start /stop [some_service]. net use/user/view/accout等等.

  3. 但是 要查看當前服務/網絡連接/偵聽的具體情況, 要使用 netstat 命令 參考: netstat的-h幫助文檔和: http://blog.sina.com.cn/s/blog_53d3cfea0100nbdq.html : 默認使用主機名來表示的, 要用ip地址則是用-n, 默認只顯示established已經建立好的連接, -a則顯示已經連接的, 還顯示正在監聽的(只有tcp才會監聽)的; 要查看連接的進程號, 使用-o選項. 即: netstat -ano

  4. 如果通過cmd的 httpd -k start/restart/stop等來控制apache的話, 可能會報" no installed service named apache2- 系統找不到指定的文件". 這時候, 進入apache2.2.17/bin目錄, 執行一次 httpd -k install 這樣就安裝了apache2 服務.. 就可以用httpd -k來控制起停了 .

  5. 右下角的wamp圖標的apche服務啟停, 並不是服務httpd本身. 而是 執行的 wampapache服務. 要使用 net start/stop wampapache 命令來控制.

  6. httpd的命令選項: -S是檢查虛擬主機的配置錯誤; -M是檢查模塊的配置錯誤; -t是檢查配置文件的語法錯誤.

  7. apache的錯誤日志, 在 /apache2.2.17/logs/error.log中只是最近一次的log, 在/wamp/logs/apache_error.log則是所有以來的日志記錄.

  8. httpd.conf中 的配置指令區分大小寫嗎? 確實, 在windows下, 是不區分大小寫的, 比如Listen 80 可以寫成 listen , 但是這些其實都是沒有什么意義的. 因為你的配置來說, 你依樣畫葫蘆就行了. 不過通常還是照 "慣例", 按 駝峰法去寫. 如 AllowOverride None.

  9. 為什么要對每個目錄明確的賦予訪問權限: 一是, 如果你發現"have no permission to access / on this server" , 通常"對於一個目錄來說, 都是644的權限, 都是有訪問權限的", 更多的可能是由於 apache服務器配置上的問題, 二是: 由於 在 <Directory /> Order deny, allow Deny from all 中, 就明確說了, 先就為了安全, 把一切訪問都禁了. 所以, 以后對於任何網站下的目錄, 你都要自己顯式的進行權限的設置賦予了.

關於apache的module?

  1. 加載模塊的命令是: LoadModule php5_module "c:/wamp/bin/php/php5.3.5/php5apache2_2.dll" 或者: LoadModule vhost_alias_module modules/mod_vhost_alias.so 即: LoadModule 模塊的名稱 模塊的地址

  2. 注意php5的模塊, 並沒有放在 apache2.2.17/modules目錄下, 而是單獨的放在 了/wamp/bin/php/php5.3.5/php5apache2_2.dll 其他模塊都是放在apache的module目錄中的.

  3. so和dll的區別 參考:http://blog.csdn.net/lhj190506206/article/details/46627227
    一個c文件/cpp文件, 經過編譯后得到一個*.o文件(目標文件), 里面包含的是 這個編譯單元的符號表symbolic tables 所謂id符號就是: o文件中包含的類(對象類), 函數, 枚舉, 結構體等. 可以為其他代碼所引用
    如果將多個.o文件ar(歸檔)起來, 就得到 .a文件(所以, .a文件就是歸檔,就是靜態庫). 多個.a經過鏈接器 鏈接ln后就得到 可執行程序;
    但是, 如果很多地方都要使用這個/這些.o文件 , 用copy/.a方式都不太好. 於是就使用 shared objects, 即: so : 共享對象. 就相當於windows中的dll.
    .a是通過ar命令來生成的; 而 so是用gcc命令加編譯選項得到的;
    .a是在可執行程序"編譯"的階段嵌入到程序中的. 靜態庫跟程序融為一個整體的.
    而so是在 程序運行的時候, 才被 load... 到內存中使用的.
    好處是: 節約內存. 當多個地方都要使用(依賴於)這個so的時候, 在機器的內存中就只有這個對象的一份拷貝.
    ld: loader(dynamic linker 的載入器): 即: 可以自動載入 放在 /lib, /usr/lib下的so和.a
    ldd: loader dependencies: 查看載入器的依賴情況: ldd /bin/foo => /bin/foo /usr/lib/libfoo1.so.1.2 ....
    so和a的命名格式: libxxx.a, libxxxx.so.major.minor.revision: 例如: libfoo.so.1.0.1
    配置ld.so.conf: 包含ld.so.conf.d/*.conf只是這個目錄下的*.conf文件, 並不是所有的文件: 比如: 在 ld.so.conf.d/下創建foo.conf ld的配置文件, 然后在foo.conf中描述libfoo.so.1.0.1的路徑: /usr/local/lib


  4. "在同一個窗口中打開每個文件夾 & 在不同的窗口中打開不同的文件夾", 是指當你要打開一個新的文件夾時, 是新開一個窗口還是就在原來的窗口中顯示(實際上在xp的ghost版本中 已經做了注冊表修改, 所以不管你怎么修改這里 的"文件夾選項", 都是一樣的結果: 使得總是在同一個窗口中打開每個文件夾. 在hkey_classes_root/下的directory/shell, drive/shell , folder/shell中的"默認"鍵值的數據都是none.

  5. system32下的快捷方式不能在cmd中執行?
    本來就是這樣的. 不要把system32下可以執行的快捷方式, 跟cmd控制台環境path相混淆:

    • cmd控制台, 只認 path中設置的環境變量路徑, 而且不能執行快捷方式. 只能是程序本身;
    • 而win+r下是可以直接執行system32下 的程序本身和其指向的快捷方式.
  6. php5apache2.dll he php5apache2_2.dll : 他們的區別是, dll的版本不同, 對應着不同的apache引擎: 可能是apache引擎不同, apache和php.dll的內部代碼也有所不同的原因. 即: php5apache? 的版本要和apache的版本相一致!

win注冊表中只存在一種內容, 鍵, 兩種內容(就是主鍵和子鍵), 而且都是用 "目錄"圖標來表示的, 右邊是她們的設置items. (每個item包括: name, type, data數據). 而且主鍵和子鍵都有自己 獨立的設置


關於regedit

  1. 是用system.dat和Ntuser.dat文件保存的注冊表數據庫, 前者是系統信息, 后者是用戶配置信息.

  2. 備份為 system.da0和ntuser.da0, 是由系統自動備份的

  3. 注冊表的最高節點是"我的電腦". 其中hkey: 表示主鍵(h key鍵)和次級主鍵subkey(也稱為主鍵和子鍵). 右邊是鍵值value. 一個鍵值由: value name, value type, value data 組成. 其中hkey_classes_root主要是(里面基本上全部是 擴展名如.doc, .dll的樣子). hkey_current_user是關於當前 "登錄用戶"的設置, 而hkey_users是關於所有 "登錄"用戶的設置. hkey_local_machine是關於當前機器的硬件和軟件的設置,包括 hardware, system, software, sam等的設置. hkey_current_config是關於當前配置.

  4. 鍵值的類型有三種(以REG_為前綴): REG_SZ字符串, 主要是用來表示文件的描述和硬件的標識,由字母.數字.漢字組成, 最長255個字符: REG_DWORD, 是數值型, 用16進制表示,占4個字節32位, REG_BINARY表示二進制數據, 也是用16進制表示, 字節數沒有限制; REG_SZ的圖標是ab表示描述的意思; 而REG_DWORD REG_BINARY都是用16進制表示,所以圖標都是011 110

  5. 關於clsid: guid是全球唯一標識符, win使用clsid來表示. 其中 的cls:class表示特定對象的類(類型). clsid 共128位, 16個字節, 注冊表中由於使用16進制,所以共32位, 表示方法是: {20d04fe0-....-...}. 分5節: 8位-4-4-4-12位. 主要由: 兩部分數字來源(一是 機器的mac地址, 二是機器(系統)的當前時間), 當然有一個算法, 和一個生成函數.. 根據算法, 總是能得到固定不變的一些 clsid來表示特定的 "特殊的系統組件/類似文件夾, 並不是真實的文件夾, 如我的電腦, 回收站, 控制面板等" 這個就記住或查閱就好了. 如:我的電腦的前8位clsid就是: 20d04fe0.... 然后你找到它就可以對他進行設置了.


hosts和dns的區別

hosts是將 ip地址和域名 進行映射. host是畢竟不是dns服務器. 所以不像dns那樣 將域名 -> ip地址. hosts是網絡中識別機器主機的, 直接的識別是通過ip地址的. 所以, hosts是關於ip地址-> 域名映射的.


關於地址: 0.0.0.0 和* 和具體的ip : 參考: http://www.2cto.com/net/201310/253427.html

0.0.0.0其實嚴格來說 已經不是"一個ip地址"了, 你ping不通它, 會 提示說" Destination specified is invalid". 在路由器/路由/路由表中,代表的是任何網絡和任何主機, 是表示路由表中沒有明確指定的無法查詢的包; 但是 在netstat中, 表示的是 this(即當前主機的ip地址). 因為, 一個主機即使只有一個網卡 也可以有多個ip, 而且至少有兩個ip地址, 即你設置的地址如192.168.1.1, 還總是存在一個127.0.0.1 這個地址. 在有些應用中, 為了保證無論你是輸入 192.168.1.1 還是你輸入127.0.0.1 都能正確的進行網絡偵聽和連接應用. 這時你的ip就要設置成0.0.0.0 , 否則你設置成其中的任何一個, 那么另一個ip地址就不能偵聽. String ip='0.0.0.0' 即, 0.0.0.0就相當於this. 代表的是本機的所有ip地址.
java的面向對象的代碼: (本機上, java進行 外部主機的 外來網絡連接 request 偵聽的, 是通過ServerSocket這個對象來實現的, 實際上, 這個Socket也是java提供的已經封裝了的對象): 很簡單, 將本機local地址和端口綁定到socket上, 然后讓socket.accept就好了.

ServerSocket socket = new ServerSocket(8080);  // 這里可以初始化一個 本機端口如8080
socket.accept();
// 這個時候, socket綁定的 inetsocketAddr就是 默認的0.0.0.0: 8080, 所以你用127.0.0.1:8080 和192.168.1.1:8080 都可以實現偵聽

-----------------------------------------------------------------------------

但是, 如果顯式的指定ip地址, 不是0.0.0.0的話, 就只能使用一個:
ServerSocket socket = new ServerSocket();
String ip='0.0.0.0';
int port=8080;
InetSocketAddress  addr=new InetSocketAddress(ip, port);
socket.bind(addr);
socket.accept();

local address和 foreign address: 是內部地址(本機地址)和外部地址. (因為對於自己的機器來說, 他本身就有兩種角色(從軟件上分), 一種是workstation, 一種是server), 所以是可以自己連接到自己的. 像system/svhosts等 很多進程 就是自己連接到自己. 的

星號表示任意的, :表示任意ip地址的機器上的任意端口....


關於vhost設置的幾個特別注意的問題

  1. 如果設置了vhosts,那么原來的 /wamp/www/ 就變得無效了. 也就說, 要用vhosts, 則所有的站點都要使用 虛擬主機進行配置, 否則就無效!
  2. 設置了虛擬主機后, 如果出現have no permission to access '..'. , 是由於你沒有顯式的 設置 虛擬主機 所對應的 目錄的訪問權限.
  3. 而且在設置虛擬主機vhosts對應的 目錄的權限時, 設置的directory的位置應該放在 vhost標簽的內部, 而不是單獨的外部 .
  4. 虛擬主機的設置, 必須要設置的兩項是: ServerName 和 DocumentRoot這兩個, 其他可以省略
  5. 關於虛擬主機的地址指定就要了解*, 127.0.0.1 和機器的ip地址之間的差別, 見后面.
  6. 虛擬主機的servername也必須 要在hosts中做域名解析的設置, 否則機器在hosts中查找不到域名對應的ip地址后, 也無法做虛擬主機的解析, 而且hoosts文件中的域名對應必須是本機的ip地址,不能是127.0.0.1, 如: 192.168.1.100 www.foo.com
  7. 在httpd-vhosts.conf中, 虛擬主機的地址可以是本機ip地址, 也可以是星號(表示本機上所有可用的ip地址, 但不包括127.0.0.1), 但是不能是127.0.0.1

總之, 一個虛擬主機的設置就是如下所示:

NameVirtualHost *:80 (或者是 192.168.1.100:80, 兩者都可以)
<Virtualhost *:80>  (這里對應的是:  192.168.1.100:80)
   ServerName  www.myvhost.com
   DocumentRoot  "d:\myvhost" 
   <Directory "D:\myvhost"> // 這個要放在 VirtualHost標簽內部
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order allow, deny
       Allow from all
   </Directory>
</VirtualHost>

[附錄]: "*", 127.0.0.1 和ip地址的區別

  1. 127.0.0.1是機器的回環地址, 整個127網段都可以, 使用127.0.0.1只是習慣約定. 它是測試協議棧是否建立的地址. 這個地址的數據包不會出網卡. 遇到127.1時會立即返回. 主要的目的是: 用作本機網絡應用的地址(因為 同一個 機器(網卡)既可以做服務器, 也可以做工作站. 完全是由機器上跑的程序軟件 決定的. 如果跑服務器端軟件, 那么他就是服務器...在同一個機器上的某些軟件,就是以自己=>到自己的應用, 因此, 此時就是以127.0.0.1為服務器-客戶端地址的.也就是說, 如果是本機本地服務-客戶端軟件的, 最好使用127.0.1地址
  2. 而本機ip地址, 是要將數據包發往網卡 外部的, 是要出網卡的. 要通過路由器, dns, 交換機等. 如果沒有路由器, dns, 交換等是無法使用本機ip地址進行網絡應用的.即要使用外部網絡應用會一些特殊應用, 如虛擬主機的應用
  3. 總之, 127.1和本機ip地址肯定是有區別的, 有些地方只能使用127地址, 有些地方只能使用ip地址.有些地方 使用兩者的效果是不一樣的.比如: 在hosts將域名www.foo.com映射為127.0.0.1, 那么在虛擬主機中無論你怎么配置, www.foo.com都將會加載 localhost對應的網站. 或者在虛擬主機中,如果將虛擬主機的地址設置為127.0.0.1, 那么同樣的無論你怎么設置, 都不會對應到虛擬主機, 而是對應到localhost. 也就是說, 要想使虛擬主機有效, 在hosts和httpd-vhosts.conf中, 都不能使用127.0.0.1, 或者說在hosts和httpd-vhosts.conf中, 都只能將地址設置/映射為本機ip地址, 類似192.168.1.100之類的地址.

windows cmd命令雜項:

  1. windows cmd的shell命令基本上 跟linux 是一樣的 . 類似的...所以, 在windows中, 凡是能夠用cmd處理的 盡量用cmd來處理.比如:
    echo hello world > index.html ; type foo.text; (注意打印/顯示到屏幕是type命令, 如果cat命令, 但是print是真的調用打印機進行打印); 一樣的有 pushd popd等等.
  2. set命令是顯示所有的環境變量, set path是顯示某一個具體的環境變量. 要注意: 只有當set varName=...后才是設置變量的值. 也就是說, 只有變量名后跟上 等於號 后才是進行設置. 設置的時候, =空格,表示設置為空; 直接等於表示覆蓋, 要追加內容, 使用 : set path=%path%;c:\;c:\test類似的
  3. 最重要的是, 使用cmd進行設置環境變量的時候, 是臨時的. 他沒有永久的生效的方法, 要永久設置生效環境變量,使用 注冊表或 電腦屬性高級-..
  4. 同一個命令可以有兩個命令單詞, 效果是一樣的: 如: ren = rename; md = mkdir; 而且win還提供了刪除文件夾的命令.rmdir= rd
    注意,這個rm 是 remove的縮寫(rm = remove)
  5. vim關於結尾有兩個, 不要搞混淆了: $是一行內容 的結尾, 而G才是整個文件的結尾, 所 d$, 是刪除到本行結尾; 而dG才是刪除到文件結尾.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM