1. 程式人生 > 資料庫 >一條查詢語句在MySQL服務端的執行過程

一條查詢語句在MySQL服務端的執行過程

一.關機和檢視系統資訊的命令

  1.poweroff命令用來關閉計算機作業系統並且切斷系統電源。

    選項:-f:強制關閉作業系統;

       等等....

  2.shutdown命令用來系統關機命令。shutdown指令可以關閉所有程式,並依使用者的需要,進行重新開機或關機的動作。

    選項:-r :shutdown之後重新啟動;

       -h :將系統關機

       等等....     

  3.reboot命令用來重新啟動正在執行的Linux作業系統。

    選項:-f:強制重新開機,不呼叫shutdown指令的功能;

       -i:在重開機之前,先關閉所有網路介面;

       -w:僅做測試,並不真正將系統重新開機,只會把重開機的資料寫入/var/log目錄下的wtmp記錄檔案(做個重開機的模擬(只有紀錄並不會真的重開機))

       等等.....  

  4.halt命令用來關閉正在執行的Linux作業系統。

    選項:-d:不要在wtmp中記錄(關閉系統,但不留下紀錄);

       -p:halt之後,執行poweroff(關閉系統後關閉電源);

       -i:在halt之前,關閉全部的網路介面;

       -i:在halt之前,關閉全部的網路介面;

       等等....  

二.線上查詢及幫助命令

  1.man命令

是Linux下的幫助指令,通過man指令可以檢視Linux中的指令幫助、配置檔案幫助和程式設計幫助等資訊。

    語法:man(選項)(引數)

    選項:-a:在所有的man幫助手冊中搜索;

       -P:指定內容時使用分頁程式;

       等等...

    引數:*數字:指定從哪一本man手冊中搜索幫助;

       *關鍵字:指定要搜尋幫助的關鍵字

  2.help命令用於顯示shell內部命令的幫助資訊。help命令只能顯示shell內部的命令幫助資訊。而對於外部命令的幫助資訊只能使用man或者info命令檢視。

    語法:help(選項)(引數)

    選項:-s:輸出短格式的幫助資訊。僅包括命令格式。

    引數:內部命令:指定需要顯示幫助資訊的shell內部命令。

三.檔案和目錄操作命令

  1.ls命令用來顯示目標列表

    選項:-a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
       -A:顯示除影藏檔案“.”和“..”以外的所有檔案列表;
       -C:多列顯示輸出結果。這是預設選項;
       -l:與“-C”選項功能相反,所有輸出資訊用單列格式輸出,不輸出為多列;

       -k:以KB(千位元組)為單位顯示檔案大小;

       --full-time:列出完整的日期與時間;
--color[=WHEN]:使用不同的顏色高亮顯示不同型別的。

  2.cd命令用來切換工作目錄至dirname。 其中dirName表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的home directory(也就是剛login時所在的目錄)。另外,~也表示為home directory的意思,.則是表示目前所在的目錄,..則表示目前目錄位置的上一層目錄。

    例:cd 進入使用者主目錄;
      cd ~ 進入使用者主目錄;
      cd - 返回進入此目錄之前所在的目錄;
      cd .. 返回上級目錄(若當前目錄為“/“,則執行完後還在“/";".."為上級目錄的意思);
      cd ../.. 返回上兩級目錄;
      cd !$ 把上個命令的引數作為cd引數使用。

  3.cp命令用來將一個或多個原始檔或者目錄複製到指定的目的檔案或目錄。它可以將單個原始檔複製成一個指定檔名的具體的檔案或一個已經存在的目錄下。cp命令還支援同時複製多個檔案,當一次複製多個檔案時,目標檔案引數必須是一個已經存在的目錄,否則將出現錯誤。

    選項:-f:強行復制檔案或目錄,不論目標檔案或目錄是否已存在;

       -R/r:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理;

       -p:保留原始檔或目錄的屬性; 

       等等...

  4.mkdir命令用來建立目錄。該命令建立由dirname命名的目錄。如果在目錄名的前面沒有加任何路徑名,則在當前目錄下建立由dirname指定的目錄;如果給出了一個已經存在的路徑,將會在該目錄下建立一個指定的目錄。在建立目錄時,應保證新建的目錄與它所在目錄下的檔案沒有重名。

    語法mkdir (選項)(引數)

    選項:-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一併建立上層目錄;
--version 顯示版本資訊。

    引數:目錄:指定要建立的目錄列表,多個目錄之間用空格隔開。

5.rmdir命令用來刪除空目錄。注意:子目錄被刪除之前應該是空目錄。雖然還可以用帶有-r選項的rm命令遞迴刪除一個目錄中的所有檔案和該目錄本身,但是這樣做存在很大的危險性。

    語法:rmdir(選項)(引數)

    選項:-p或--parents:刪除指定目錄後,若該目錄的上層目錄已變成空目錄,則將其一併刪除;

       -v或-verboes:顯示命令的詳細執行過程;

       --help:顯示命令的幫助資訊;
       --version:顯示命令的版本資訊。

    引數:目錄列表:要刪除的空目錄列表。當刪除多個空目錄時,目錄名之間使用空格隔開。

   6.rm命令可以刪除一個目錄中的一個或多個檔案或目錄,也可以將某個目錄及其下屬的所有檔案及其子目錄均刪除掉。對於連結檔案,只是刪除整個連結檔案,而原有檔案保持不變。

    語法:rm (選項)(引數)

    選項: -d:直接把欲刪除的目錄的硬連線資料刪除成0,刪除該目錄;
       -f:強制刪除檔案或目錄;
       -i:刪除已有檔案或目錄之前先詢問使用者;
       -r或-R:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理;
      --preserve-root:不對根目錄進行遞迴操作;
      -v:顯示指令的詳細執行過程。

    引數:檔案:指定被刪除的檔案列表,如果引數中含有目錄,則必須加上-r或者-R選項。

  注意:rm -rf /* 炒雞危險,有老師在場的情況下不要執行,不然直接原地裂開!!!!!!!!

  7.以絕對路徑的方式顯示使用者當前工作目錄。命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/分隔。第一個/表示根目錄,最後一個目錄是當前目錄。執行pwd命令可立刻得知你目前所在的工作目錄的絕對路徑名稱。

    語法:pwd(選項)

   選項:--help:顯示幫助資訊;
       --version:顯示版本資訊。
  

  8.rename命令用字串替換的方式批量改變檔名。(改名字)

    語法:rename(引數)

    引數:原字串:將檔名需要替換的字串;
       目標字串:將檔名中含有的原字元替換成目標字串;
       檔案:指定要改變檔名的檔案列表。

  9.mv命令用來對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。source表示原始檔或目錄,target表示目標檔案或目錄。如果將一個檔案移到一個已經存在的目標檔案中,則目標檔案的內容將被覆蓋。

    

mv命令可以用來將原始檔移至一個目標檔案中,或將一組檔案移至一個目標目錄中。原始檔被移至目標檔案有兩種不同的結果:

    1. 如果目標檔案是到某一目錄檔案的路徑,原始檔會被移到此目錄下,且檔名不變。
    2. 如果目標檔案不是目錄檔案,則原始檔名(只能有一個)會變為此目標檔名,並覆蓋己存在的同名檔案。如果原始檔和目標檔案在同一個目錄下,mv的作用就是改檔名。當目標檔案是目錄檔案時,原始檔或目錄引數可以有多個,則所有的原始檔都會被移至目標檔案中。所有移到該目錄下的檔案都將保留以前的檔名。

    注意事項:mv與cp的結果不同,mv好像檔案“搬家”,檔案個數並未增加。而cp對檔案進行復制,檔案個數增加了。

   語法:mv(選項)(引數) 

   選項:-i:互動式操作,覆蓋前先行詢問使用者,如果原始檔與目標檔案或目標目錄中的檔案同名,則詢問使用者是否覆蓋目標檔案。使用者輸入”y”,表示將覆蓋目標檔案;輸入”n”,表示取消對原始檔的移動。這樣可以避免誤將檔案覆蓋。

      -b:當檔案存在時,覆蓋前,為其建立一個備份;

      等等···

   引數:原始檔:原始檔列表。

      目標檔案:如果“目標檔案”是檔名則在移動檔案的同時,將其改名為“目標檔案”;如果“目標檔案”是目錄名則將原始檔移動到“目標檔案”下。        

  10.touch命令有兩個功能:一是用於把已存在檔案的時間標籤更新為系統當前的時間(預設方式),它們的資料將原封不動地保留下來;二是用來建立新的空檔案。

     語法:touch(選項)(引數)

     選項:-a:或--time=atime或--time=access或--time=use 只更改存取時間;

        -c:或--no-create 不建立任何檔案;

        -d:<時間日期> 使用指定的日期時間,而非現在的時間;

        -m:或--time=mtime或--time=modify 只更該變動時間;

        -r:<參考檔案或目錄> 把指定檔案或目錄的日期時間,統統設成和參考檔案或目錄的日期時間相同;

        -t:<日期時間> 使用指定的日期時間,而非現在的時間;
        --help:線上幫助;
        --version:顯示版本資訊。

     引數:檔案:指定要設定時間屬性的檔案列表      

   11.file命令是用來檢測並顯示檔案型別

     語法:file(選項)(引數)

     選項:-b:列出辨識結果時,不顯示檔名稱;
        -c:詳細顯示指令執行過程,便於排錯或分析程式執行的情形;
        -f<名稱檔案>:指定名稱檔案,其內容有一個或多個檔名稱時,讓file依序辨識這些檔案,格式為每列一個檔名稱;
        -L:直接顯示符號連線所指向的檔案類別;
        -m<魔法數字檔案>:指定魔法數字檔案;
        -v:顯示版本資訊;
        -z:嘗試去解讀壓縮檔案的內容。

     引數:檔案:要確定型別的檔案列表,多個檔案之間使用空格分開,可以使用shell萬用字元匹配多個檔案。

  12.cut

四.檢視檔案及內容處理命令

 1.cat經常用來顯示檔案的內容

  語法:cat(選項)(引數)

  選項:-n或-number:有1開始對所有輸出的行數編號;
     -b或--number-nonblank:和-n相似,只不過對於空白行不編號;
     -s或--squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行;  
     -A:顯示不可列印字元,行尾顯示“$”;

  引數:檔案列表:指定要連線的檔案列表。

 2.tac命令用於將檔案已行為單位的反序輸出,即第一行最後顯示,最後一行先顯示。

  語法:tac(選項)(引數)  

  選項:-a或——append:將內容追加到檔案的末尾;
     -i或——ignore-interrupts:忽略中斷訊號。

  引數:檔案列表:指定要儲存內容的檔案列表

 3.more命令是一個基於vi編輯器文字過濾器,它以全螢幕的方式按頁顯示文字檔案的內容。more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按b鍵就會往回(back)一頁顯示。

  語法:more(語法)(引數)

  選項:-<數字>:指定每屏顯示的行數;
     -d:顯示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
     -c:不進行滾屏操作。每次重新整理這個螢幕;
    -s:將多個空行壓縮成一行顯示;
    -u:禁止下劃線;
    +<數字>:從指定數字的行開始顯示。  

  引數:檔案:指定分頁顯示內容的檔案。  

常用操作命令:

Enter向下n行,需要定義。預設為1行

Ctrl+F向下滾動一屏

空格鍵向下滾動一屏

Ctrl+B返回上一屏

=輸出當前行的行號

:f輸出檔名和當前行的行號

V呼叫vi編輯器

!命令呼叫Shell,並執行命令

q退出more

          

   4.less命令的作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less命令允許使用者向前或向後瀏覽檔案,而more命令只能向前瀏覽。用less命令顯示檔案時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程式,應按Q鍵

   5.head 命令可用於檢視檔案的開頭部分的內容,有一個常用的引數 -n 用於顯示行數,預設為 10,即顯示 10 行的內容

  命令格式:

      head [引數] [檔案]

引數:

    • -q 隱藏檔名
    • -v 顯示檔名
    • -c<數目> 顯示的位元組數。
    • -n<行數> 顯示的行數

    6.tail 命令可用於檢視檔案的尾部的內容 ,類似宇head命令,

      命令格式:

      tail [引數] [檔案]

引數:

      • -f 迴圈讀取
      • -q 不顯示處理資訊
      • -v 顯示詳細的處理資訊
      • -c<數目> 顯示的位元組數
      • -n<行數> 顯示檔案的尾部 n 行內容
      • --pid=PID 與-f合用,表示在程序ID,PID死掉之後結束
      • -q, --quiet, --silent 從不輸出給出檔名的首部
      • -s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

    7.grep (global search regular expression(RE) and print out the line,全面搜尋正則表示式並把行打印出來)是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。

    

    8. wc命令用於計算字數。利用wc指令我們可以計算檔案的Byte數、字數、或是列數,若不指定檔名稱、或是所給予的檔名為"-",則wc指令會從標準輸入裝置讀取資料。

    語法:wc [-clw][--help][--version][檔案...]

引數

    • -c或--bytes或--chars 只顯示Bytes數。
    • -l或--lines 只顯示行數。
    • -w或--words 只顯示字數。
    • --help 線上幫助。
    • --version 顯示版本資訊。

    9.stat 檢視檔案狀態資訊

    10.sort 文字排序

      常見引數:-b 忽略每行前面開始出的空格字元

            -n 依照數值的大小排序

            -r 以相反的順序來排序

    11.uniq可檢查文字檔案中重複出現的行列

      常見引數:-c或--count 在每列旁邊顯示該行重複出現的次數

             -d或--repeated 僅顯示重複出現的行列

             -u或--unique 僅顯示出一次的行列

    12.dd 備份檔案

        常見引數:-if=檔名:輸入檔名,預設為標準輸入。即指定原始檔

             -of=檔名:輸出檔名,預設為標準輸出。即指定目的檔案 

             -count=blocks:僅拷貝blocks個塊,塊大小等於ibs指定的位元組數

    13.locate命令用於查詢符合條件的文件(6版本無此命令)

        常見引數:-b, --basename -- 僅匹配路徑名的基本名稱

              -c, --count -- 只輸出找到的數量

             -0, --null -- 在輸出上帶有NUL的單獨條目

             -n -- 至多顯示 n個輸出

   14.find用來在指定目錄下查詢檔案

使用者管理命令:

    1.who命令用於顯示系統中有哪些使用者正在上面,顯示的資料包含了使用者 ID、使用的終端機、從哪邊連上來的、上線時間、呆滯時間、CPU 使用量、動作等等。

      語法:who - [husfV] [user]

      引數:-H 或 --heading:顯示各欄位的標題資訊列;

         -i 或 -u 或 --idle:顯示閒置時間,若該使用者在前一分鐘之內有進行任何動作,將標示成"."號,如果該使用者已超過24小時沒有任何動作,則標示出"old"字串;

-m:此引數的效果和指定"am i"字串相同;

-q 或--count:只顯示登入系統的帳號名稱和總人數;

-s:此引數將忽略不予處理,僅負責解決who指令其他版本的相容性問題;

-w 或-T或--mesg或--message或--writable:顯示使用者的資訊狀態列;

--help:線上幫助;

--version:顯示版本資訊。

      

    2.whoami命令用於顯示自身使用者名稱稱。顯示自身的使用者名稱稱,本指令相當於執行"id -un"指令

      語法:whoami [--help][--version]

      引數:

--help  線上幫助。

--version  顯示版本資訊

   3.w命令用於顯示目前登入系統的使用者資訊。執行這項指令可得知目前登入系統的使用者有哪些人,以及他們正在執行的程式。單獨執行 w 指令會顯示所有的使用者,您也可指定使用者名稱稱,僅顯示某位使用者的相關資訊。

      語法:w [-fhlsuV][使用者名稱稱]

      引數:-f  開啟或關閉顯示使用者從何處登入系統。

-h  不顯示各欄位的標題資訊列。

-l  使用詳細格式列表,此為預設值。

-s  使用簡潔格式列表,不顯示使用者登入時間,終端機階段作業和程式所耗費的CPU時間。

-u  忽略執行程式的名稱,以及該程式耗費CPU時間的資訊。

-V  顯示版本資訊

    4.su(英文全拼:swith user)命令用於變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。    

      語法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

      引數:-f 或 --fast 不必讀啟動檔(如 csh.cshrc 等),僅用於 csh 或 tcsh

-m -p 或 --preserve-environment 執行 su 時不改變環境變數

-c command 或 --command=command 變更為帳號為 USER 的使用者並執行指令(command)後再變回原來使用者

-s shell 或 --shell=shell 指定要執行的 shell (bash csh tcsh 等),預設值為 /etc/passwd 內的該使用者(USER) shell

--help 顯示說明檔案

--version 顯示版本資訊

- -l 或 --login 這個引數加了之後,就好像是重新 login 為該使用者一樣大部份環境變數(HOME SHELL USER等等)都是以該使用者(USER)為主,並且工作目錄也會改變,如果沒有指定 USER ,內定是 rootUSER 欲變更的使用者帳號

ARG 傳入新的 shell 引數使用許可權:所有使用者。

命令的別名設定:

    1.alias命令用於設定指令的別名。使用者可利用alias,自定指令的別名。若僅輸入alias,則可列出目前所有的別名設定。alias的效力僅及於該次登入的操作。若要每次登入是即自動設好別名,可在.profile或.cshrc中設定指令的別名。

      語法:alias[別名]=[指令名稱]

      引數說明:若不加任何引數,則列出目前所有的別名設定。

     2.unalias命令用於刪除別名。unalias為shell內建指令,可刪除別名設定。

      語法:unalias [-a][別名]

      引數:-a 刪除全部的別名

關於時間的命令:

    1.cal 用於顯示當前日曆,或者指定日期的日曆。

      語法:cal(選項)(引數)

      選項:-l:顯示單月輸出;

-3:顯示臨近三個月的日曆;

-s:將星期日作為月的第一天;

-m:將星期一作為月的第一天;

-j:顯示“julian”日期;

-y:顯示當前年的日曆。

引數:月:指定月份

    年:指定年份

    2.date命令可以用來顯示或設定系統的日期與時間,

      語法:date(選項)(引數)

      選項:-d<字串>:顯示字串所指的日期與時間。字串前後必須加上雙引號;

        -s<字串>:根據字串來設定日期與時間。字串前後必須加上雙引號;

        -u:顯示GMT; --help:線上幫助;

        --version:顯示版本資訊。

      引數:<+時間日期格式>:指定顯示時使用的日期時間格式。

日期格式字串列表:
%H 小時,24小時制(00~23) %I 小時,12小時制(01~12) %k 小時,24小時制(0~23) %l 小時,12小時制(1~12) %M 分鐘(00~59) %p 顯示出AM或PM %r 顯示時間,12小時制(hh:mm:ss %p) %s 從1970年1月1日00:00:00到目前經歷的秒數 %S 顯示秒(00~59) %T 顯示時間,24小時制(hh:mm:ss) %X 顯示時間的格式(%H:%M:%S) %Z 顯示時區,日期域(CST) %a 星期的簡稱(Sun~Sat) %A 星期的全稱(Sunday~Saturday) %h,%b 月的簡稱(Jan~Dec) %B 月的全稱(January~December) %c 日期和時間(Tue Nov 20 14:12:58 2012) %d 一個月的第幾天(01~31) %x,%D 日期(mm/dd/yy) %j 一年的第幾天(001~366) %m 月份(01~12) %w 一個星期的第幾天(0代表星期天) %W 一年的第幾個星期(00~53,星期一為第一天) %y 年的最後兩個數字(1999則是99)

其他
  1.clear命令用於清除螢幕
  2.ln 為某一個檔案在另外一個位置建立一個同步的連結。
      語法 :
ln [引數][原始檔或目錄][目標檔案或目錄]
       常見引數:
-b 刪除,覆蓋以前建立的連結
              -s 軟連結(符號連結)
    
 注意:軟連結
  • 1.軟連結,以路徑的形式存在。類似於Windows作業系統中的快捷方式
  • 2.軟連結可以 跨檔案系統 ,硬連結不可以
  • 3.軟連結可以對一個不存在的檔名進行連結
  • 4.軟連結可以對目錄進行連結

硬連結

    • 1.硬連結,以檔案副本的形式存在。但不佔用實際空間。
    • 2.不允許給目錄建立硬連結
    • 3.硬連結只有在同一個檔案系統中才能建立