Linux 服務器開發工具

jopen 12年前發布 | 32K 次閱讀 Linux

論你使用的機器是 Windows、Linux 還是 MacOS,都可以使用工具遠程登錄到 Linux 服務器上去。在此我們通常使用 SSH 協議(包括 SSH-1 和 SSH-2 兩個版本,它們之間不相兼容,建議使用 SSH-2),SSH 協議是一個用于安全數據通信的協議(相比下 FTP、Telnet 本質上是不安全的)。一些 Linux 發行版會預裝 SSH Server,有了 SSH Server 我們就可以通過 SSH Client 使用遠程服務器上的 Shell 服務。常見的 SSH Client 有(這里我使用的是 Windows 機器):

  1. SecureCRT
  2. PuTTY
  3. </ol>

    通過 SecureCRT(這里使用的是 SecureCRT 7.0.1)連接到 SSH Server:
    Linux 服務器開發工具 SecureCRT 的關鍵配置:

    1. 終端模擬配置,Option -> Session Options -> Terminal -> Emulation 處,選擇 Terminal 為 Linux 并且勾選 ANSI Color。這里選擇了需要模擬的終端為 Xterm,勾選 ANSI Color 表示使用 ANSI 調色板(ANSI Color Palette)
    2. SFTP(后面馬上會談到 SFTP)本地目錄配置,Option -> Session Options -> Connection -> SSH2 -> SFTP Session 處可以填寫本地目錄(Local directory)
    3. Option -> Session Options -> Terminal -> Appearance -> Character encoding 處可以選擇字符編碼,這里需要選擇和 Linux 服務器相匹配的編碼方式。Linux 中可以通過命令 locale 查看使用的語言和編碼

    SecureCRT 常用的快捷鍵如下:

    1. Alt+B 用于在一個新的 Tab 中打開一個新的 Session
    2. Alt+P 用于在一個新的 Tab 中打開一個新的 SFTP Session
    3. Ctrl+F4 用于關閉當前 Tab
    4. Shift+Insert 用于粘貼

    可以使用 Shell 之后,我們還面臨的一個問題就是如何把本地的文件上傳自 Linux 服務器,這里我們使用 SFTP(SSH file transfer)。在 SecureCRT 中 File -> Connect SFTP Session(或者使用快捷鍵 Ctrl+F4)打開 SFTP Session,常用的 SFTP 命令如下:

    1. help 命令用于獲取幫助信息
    2. 工作目錄相關命令
      pwd — 查看遠程 Linux 服務器的工作目錄
      lpwd — 查看本地工作目錄
      cd — 修改遠程 Linux 服務器的工作目錄
      lcd — 修改本地工作目錄
      ls — 列出遠程 Linux 服務器的工作目錄中的文件
      lls — 列出本地工作目錄中的文件
      這里的 l 含義為 Local
    3. put 命令用于上傳文件或者文件夾到 Linux 服務器。常見用法:
      1. put -r dir
      2. put file

      第一條命令用于遞歸的上傳本地目錄 dir 到遠程 Linux 服務器的工作目錄下
      第二條命令用于上傳本地文件 file 到遠程 Linux 服務器的工作目錄下

    4. get 命令用于下載文件或者文件夾到本地。常見用法:
      1. get -r dir
      2. get file

      第一條命令用于遞歸的下載目錄 dir 到本地工作目錄下
      第二條命令用于下載文件 file 到本地工作目錄下

    有了 SSH Client,我們就可以執行 Shell 命令,上傳下載文件和文件夾了。

    代碼編輯工具

    編輯代碼的工具很多,也有各種不同的做法。一種常見的代碼編輯的方式是使用 SSH Client 在遠程 Linux 服務器上使用 Vim 或者 Emacs 進行代碼編輯。Vim 的基本用法可以參考以下兩篇文章:
    http://name5566.com/3400.html
    http://name5566.com/3402.html
    Vim 的基本的配置可以參考:
    http://code.google.com/p/name5566-vim-config/

    代碼構建工具

    代碼構建工具很多,常見的有 make、automake、cmake 等等。讀者可以參考云風的關于 make 的相關文章:
    http://blog.codingnow.com/2008/09/replacement_of_ide_1.html
    http://blog.codingnow.com/2008/09/replacement_of_ide_2.html
    http://blog.codingnow.com/2008/09/replacement_of_ide_3.html
    http://blog.codingnow.com/2008/09/replacement_of_ide_4.html
    http://blog.codingnow.com/2008/09/replacement_of_ide_5.html
    http://blog.codingnow.com/2008/09/replacement_of_ide_6.html

    代碼調試工具

    一般來說使用 gdb 進行調試,http://name5566.com/4018.html 一文介紹了一些基本的命令來滿足我們在調試上的基本需要。

    版本控制工具

    在版本控制工具上,我們常見的主要是 Subversion(SVN)和 git,而后者似乎更加被 Linux 用戶所喜愛。這里主要談一下 SVN 的基本使用。
    svn 命令的用法:

    1. svn <subcommand> [options] [args]

    常用的 subcommand 如下:

    1. help
      用法:svn help [subcommand...]
      說明:用于獲取一個或者多個 subcommand 的幫助信息
      范例:svn help co
    2. co(checkout)
      用法:svn co URL [PATH]
      說明:用于從版本庫中簽出工作副本到 PATH 目錄下
      范例:svn co https://name5566-vim-bookmark.googlecode.com/svn/trunk/ name5566-vim-bookmark
    3. up(update)
      用法:svn up [PATH...]
      說明:用于將版本庫的修改合并到工作副本中
      范例:svn up
    4. ci(commit)
      用法:svn ci [PATH...]
      說明:用于把工作副本的修改提交到版本庫中,通常情況下,我們會和 -m 選項一起使用此子命令,-m 選項用于指定日志信息
      范例:svn ci -m “增加了新的 XXX 特性”
    5. st(status)
      用法:svn st [PATH...]
      說明:用于顯示工作副本中文件和目錄的狀態,常常用于檢測哪一些文件尚未處于版本控制中
      范例:svn st
    6. add
      用法:svn add [PAHT...]
      說明:用于把文件和目錄納入版本控制
      范例:svn add file.txt
    7. rm
      用法:
      svn rm PATH
      svn rm URL
      說明:可以用于把文件和目錄從版本庫中刪除,rm 子命令后可以接上 URL,用于立即從版本庫中刪除指定項目
      范例:svn rm file.txt

    我們可以設置 vimdiff 為 subversion 的 diff 工具。首先創建一個 Shell 腳本(來源于 http://svnbook.red-bean.com/en/1.4/svn.advanced.externaldifftools.html):

    1. #!/bin/sh
    2.  
    3. # Configure your favorite diff program here.
    4. DIFF="/usr/bin/vimdiff"
    5.  
    6. # Subversion provides the paths we need as the sixth and seventh
    7. # parameters.
    8. LEFT=${6}
    9. RIGHT=${7}
    10.  
    11. # Call the diff command (change the following line to make sense for
    12. # your merge program).
    13. $DIFF $LEFT $RIGHT
    14.  
    15. # Return an errorcode of 0 if no differences were detected, 1 if some were.
    16. # Any other errorcode will be treated as fatal.

    注意修改此 Shell 腳本的權限(u+x)。然后修改 $HOME/.subversion/config 文件:

    1. [helpers]
    2. diff-cmd = diff.sh

    這里的 diff.sh 為前面所述的 Shell 腳本的路徑名。

    常用命令

    這里主要介紹一下 Linux 下常用命令的一些最常見用法,實際上,很多命令遠比你想象強大,這里并不做詳述。

    1. grep 是 Linux 最常用的命令之一,其能夠用于檢索文件或者標準輸出中的行,其用法如下:
      1. grep [options] PATTERN [FILE...]

      很多命令可能會輸出大量信息而其中僅僅一小部分是我們關心的,這時候 grep 是過濾信息的利器,例如:
      ls 命令用于顯示目錄中的內容:

      1. $ ls -l
      2. -rw-r--r-- 1 name5566 name5566 0 Nov 2 19:22 file1
      3. -rw-r--r-- 1 name5566 name5566 0 Nov 2 19:22 file2
      4. drwxr-xr-x 29 name5566 name5566 4096 Oct 31 17:07 src
      5. drwxr-xr-x 2 name5566 name5566 4096 Oct 31 16:58 test

      假如我們只希望顯示目錄,可以這么使用:

      1. $ ls -l | grep ^d
      2. drwxr-xr-x 29 name5566 name5566 4096 Oct 31 17:07 src
      3. drwxr-xr-x 2 name5566 name5566 4096 Oct 31 16:58 test

      這里的 pattern ^d 含義為行首為 d。再如這樣的用法:

      1. $ ls | grep -i file1

      用于判斷當前目錄下是否存在 file1,這里的 -i 選項表示匹配時忽略大小寫。

    2. find 命令用于通過文件名去尋找文件(grep 命令主要用于在文件中查找信息),常見用法如下:
      1. $ find . -name file1

      用于在當前目錄及子目錄下查找名字為 file1 的文件。要注意的是,file1 必須是一個完整的文件名而不能是文件名的一部分

    3. ps 命令用于顯示當前進程的快照,常用的選項如下:
      1. # 查看系統上的所有進程(e 的含義為 every)
      2. ps -e
      3. # 輸出時使用 full 格式列表(f 的含義為 full)
      4. ps -ef
      5. # 輸出時使用 long 格式列表(l 的含義為 long)
      6. ps -el
      7. # 輸出 effective user 為 name 的進程
      8. ps -u name
      9. # 使用 full 格式列表
      10. ps -fu name
    4. kill 和 killall 命令用于發送一個信號到一個進程。如果不指定發送的信號則發送 SIGTERM。用法如下:
      1. # 向進程 ID 為 pid 的進程發送 SIGTERM 信號
      2. kill pid
      3. # 向名稱為 name 的所有進程發送 SIGTERM 信號
      4. killall name
    5. 作業控制

    系統基本的配置

    1. 服務的啟動、停止、檢查
    2. 環境變量

    數據庫

    在數據庫方面 MySQL 仍然有自己大量的用戶。常見的任務:

    1. 創建用戶
    2. 數據的導出和導入
    3. SQL
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!