对于Linux管理员来说,有很多非常有用的工具可供选择。在这里,我只是列举出其中5个,Linux管理员日常操作都要用到的工具。我认为,功能最强的工具可能并不适合你的使用情况,而且绝对有些工具我还忘了把它们统计进来,如果是这样的话,我恳请大家把我没收录的工具在评论中写出来。另外,本文中提到的工具仅供选择,并不是每个人都一定需要它们,而那些没提到的工具,并不是说Linux管理员就不需要使用,像SSH, SCP这样的工具,每个Linux管理员都必须使用并且没有其他选择。

  #5. head/tail命令

  大多数情况下,登录服务器的唯一目的是诊断某些问题,常规方法是查看日志。有各种不同应用类型的日志,比如Apache日志、MySQL日志、邮件日志等。那么你用什么命令来查看日志呢,难道不是tail吗?这其实与此类似,我们有时候可以使用“head”命令来查看一个文件的开始几行。

  几个例子:

  *持续检查Apache错误日志文件,可以使用以下命令:

  $ tail -f /var/log/httpd/error_log

  *查看MySQL日志中的前15行内容,可以使用以下命令:

  $ head -15 /var/log/mysqld.log

  #4. vi/nano/emacs工具

  一般而言,文本编辑器需要频繁地用来创建/更新配置文件。我更喜欢使用vim,使用起来非常舒服,很容易记住它的一些快速编辑命令。

  下面是使用vi的几个例子。用vi打开一个文件,而且不进入插入模式(insert mode),那么你可以输入如下所示的有用字符:

  =>跳至行末

  $

  => 跳至行首

  0

  => 删除余下的行

  D

  => 重复上一个命令

  . (点)

  => 给每行的末尾加上“maal”。1表示第一行,$表示最后一行

  :1,$ s/$/maal/

  =>在5至10行的行首加上“bingo”

  :5,10 s/^/bingo/

  => 文件在光标之后的内容中如果出现foo,则把它替换成bar

  :s/foo/bar/g

  => 删除本行并进入插入模式

  C

  => 去掉windows系统文件中的^M

  :se ff=unix

  => 开启/关闭行数显示

  :set nu

  :set nonu => 显示文件里的实际行数

  :%!cat -n

  => 定位光标下面的单词

  * (星号)

  #3. screen命令

  在nix世界中,screen命令是尚未得到充分利用的命令之一。打个比方,当你最后一次在远程服务器上执行一个命令时,如果你发现那个命令需要几个小时才能完成,或者当你需要登录10个服务器并检查东西、在它们之间复制文件的时候,突然之间,你的互联网连接重启了,ssh会话也终结了,这时,你就会用到screen命令,而一旦你开始使用这个命令,你就会被它吸引。Screen是一个终端复用器(terminal multiplexer),允许你通过使用一个物理终端来管理多个进程(比如ssh会话)。每个进程都有自己的虚拟窗口,而你可以在跟每个进程交互的虚拟窗口之间来回切换。

  我们再深入的解释一下。假设你有许多服务器,理想情况下你应该把ssh(端口22)访问限制放在特定的IP地址上面。这样,你可以登陆一个允许远程 IP访问的服务器。此时,你就可以键入“screen”(所有主要的linux版本都安装了screen命令)并开始执行。你会看到一个状态栏,你可以按 Ctrl+ac组合键创建新的screen窗口。用Ctrl+an (下一个)和Ctrl+ap(上一个)组合键在窗口之间进行切换。通常,它提供的功能非常有用,比如远程终端会话管理(分离或共享终端会话),无限窗口数量(这与固定的Linux虚拟控制台数量不一样),在窗口之间复制/粘贴,在窗口中显示活动或静止,把终端分割成多个区(横向以及纵向),共享终端等等。

  你可以把你的参数保存在.screenrc文件中,下面是我的.screenrc文件一样,在里面我已经重新定义了状态栏的外观和感觉,并且设置了键f5(上一个窗口)和f6(下一个窗口)的含义:

  $ cat ~/.screenrc

  #请不要有烦人的铃声

  vbell on

  #在挂起时分离

  autodetach on

  #不显示版权页

  startup_message off

  #模仿.logout消息

  pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."

  #告知$TERMCAP硬状态(窗口列表和时钟)支持

  termcapinfo xterm* ti@:te@

  #把每个窗口中的shell设成登录shell

  shell -$SHELL

  defscrollback 10000

  #按照某种序列扩展vt100描述

  termcap vt* AF=\E[3%dm:AB=\E[4%dm

  caption always

  caption string '%{= wk}[ %{k}%H %{k}][%= %{= wk}%?%-Lw%?%{r}(%{r}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %{k}][%{b} %d/%m %{k}%c %{k}]'

  #重新定义按键绑定

  bind -k F5 prev

  bind -k F6 next

  #2. netstat/nmap命令

  这两个命令都是非常有用的命令,它们用来诊断网络问题。当然,ping/traceroute可能是最常用的命令,但是若要说哪个更有效,nmap 和netstat命令比基本的ping命令用处要大。Netstat可以显示网络状态,Nmap是一种安全/端口扫描器,也可以说成是网络探索命令。

  netstat的例子如下:

  *显示全部互联网(端口80)连接数量:

  $ netstat -an |grep :80 |wc -l

  *显示机器上监听的所有端口:

  $ netstat -ant | grep LISTEN

  *在你的LAN上面用nmap命令扫描一个机器,并且获悉它的哪些端口是开放的:

  $ nmap ip

  #1. find和grep命令

  日常工作会遇到的问题包括:有多少文件占用了大多数的磁盘空间?删除所有超过两天的临时文件;找出因含有旧服务器名称而引起问题的文件数;把所有后缀名为“.list”的文件改成“.txt”文件。面对这些工作时,命令find和grep会是你最好的朋友。

  Find命令用来搜索文件。你可以指定很多选项,比如文件创建日期、或者文件大小要大于你指定的容量等。通常,我们也把find跟xargs或者exec结合起来使用,在find命令返回的文件上执行命令。
http://www.54master.com/html/xinwenzixun/20100409/2868_3.html

Tags: ,
Linux | 评论(0) | 引用(0) | 阅读(128)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]