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

通过 SecureCRT(这里使用的是 SecureCRT 7.0.1)连接到 SSH Server:
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值