Linux管理员不能不知的五大命令+ |
#5. head/tail命令 大多数情况下,登录服务器的唯一目的是诊断某些问题,常规方法是查看日志 ![]() ![]() ![]() 几个例子: *持续检查Apache错误日志文件,可以使用以下命令: $ tail -f /var/log/httpd/error_log *查看MySQL日志中的前15行内容,可以使用以下命令: $ head -15 /var/log/mysqld.log #4. vi/nano/emacs工具 一般而言,文本编辑器需要频繁地用来创建/更新配置文件 ![]() ![]() 下面是使用vi的几个例子 ![]() =>跳至行末 $ => 跳至行首 0 => 删除余下的行 D => 重复上一个命令 . (点) => 给每行的末尾加上“maal” ![]() :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命令是尚未得到充分利用的命令之一 ![]() ![]() ![]() ![]() 我们再深入的解释一下 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 你可以把你的参数保存在 ![]() ![]() $ cat ~/.screenrc #请不要有烦人的铃声 vbell on #在挂起时分离 autodetach on #不显示版权页 startup_message off #模仿 ![]() 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命令 这两个命令都是非常有用的命令,它们用来诊断网络问题 ![]() ![]() ![]() netstat的例子如下: *显示全部互联网(端口80)连接数量: $ netstat -an |grep :80 |wc -l *显示机器上监听的所有端口: $ netstat -ant | grep LISTEN *在你的LAN上面用nmap命令扫描一个机器,并且获悉它的哪些端口是开放的: $ nmap ip #1. find和grep命令 日常工作会遇到的问题包括:有多少文件占用了大多数的磁盘空间?删除所有超过两天的临时文件;找出因含有旧服务器名称而引起问题的文件数;把所有后缀名为“ ![]() ![]() ![]() ![]() Find命令用来搜索文件 ![]() ![]() ![]() find命令的例子: *在/var目录中寻找10个最大的文件: $ find /var -type f -ls | sort -k 7 -r -n | head -10 *在/var/log/中寻找大小超过5GB的文件: $ find /var/log/ -type f -size +5120M -exec ls -lh {} \; *寻找今天所有的文件并把它们复制到另外一个目录下面: $ find /home/me/files -ctime 0 -print -exec cp {} /mnt/backup/{} \; *找到所有超过一周的临时文件夹并删除: $ find /temp/ -mtime +7-type f | xargs /bin/rm -f *找到并重命名所有的mp3文件(把文件名字中的大写字母变成小写): $ find /home/me/music/ -type f -name *.mp3 -exec rename 'y/[A-Z]/[a-z]/' '{}' \; grep命令的一些例子: *打印Apache的文件根目录名称: $ grep -i documentroot /etc/httpd/conf/httpd.conf *查看没有评论以及空行的文件内容: $ grep -Ev “^$|^#” /etc/my.cnf *只打印分配给本接口的IP地址: $ ifconfig eth0 | grep 'inet addr:' | cut -d':' -f2 | awk '{ print $1}' *查看某个特定日期发送了多少email消息: $ cat /var/log/maillog | grep "status=sent" | grep "May 25" | wc -l *在进程列表中找出一个正在运行的process/daemon: ps -ef | grep mysql *你也可以通过使用上面的命令来注释cpu/men的使用情况,比如像下面的命令输出,你可以看到Plesk的统计进程本身就占用了大于18%的cpu性能: [root@myserver ~]# ps aux | grep statistics |