[网摘学习]5个Linux命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介:

以前也适用这些命令,但都是单个的使用,组合的比较少,而看到这里可以组合起来达到事半功倍的效果,遂收藏于下,供自己参考学习.原文参见:http://os.51cto.com/art/201004/193498.htm

#1. head/tail命令

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

几个例子:

  1. *持续检查Apache错误日志文件,可以使用以下命令:  
  2.  
  3. $ tail -f /var/log/httpd/error_log 
  4.  
  5. *查看MySQL日志中的前15行内容,可以使用以下命令:  
  6.  
  7. $ head -15 /var/log/mysqld.log  
  8.  

#2. vi/nano/emacs工具

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

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

  1. =>跳至行末  
  2.  $  
  3. => 跳至行首  
  4.  0  
  5. => 删除余下的行  
  6.  D  
  7. => 重复上一个命令  
  8. . (点)  
  9. => 给每行的末尾加上“maal”。1表示第一行,$表示最后一行  
  10. :1,$ s/$/maal/  
  11. =>在5至10行的行首加上“bingo”  
  12. :5,10 s/^/bingo/  
  13. => 文件在光标之后的内容中如果出现foo,则把它替换成bar  
  14. :s/foo/bar/g  
  15. => 删除本行并进入插入模式  
  16. C  
  17. => 去掉windows系统文件中的^M  
  18. :se ff=unix  
  19. => 开启/关闭行数显示  
  20.  :set nu  
  21.  :set nonu  
  22. => 显示文件里的实际行数  
  23. :%!cat -n  
  24. => 定位光标下面的单词  
  25.  * (星号)  
  26.  

#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(下一个窗口)的含义:

  1. $ cat ~/.screenrc   
  2. #请不要有烦人的铃声  
  3. vbell on  
  4.  
  5. #在挂起时分离  
  6. autodetach on  
  7.  
  8. #不显示版权页  
  9. startup_message off  
  10.  
  11. #模仿.logout消息  
  12. pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended." 
  13.  
  14. #告知$TERMCAP硬状态(窗口列表和时钟)支持  
  15. termcapinfo xterm* ti@:te@  
  16.  
  17. #把每个窗口中的shell设成登录shell  
  18. shell -$SHELL 
  19.  
  20. defscrollback 10000  
  21.  
  22. #按照某种序列扩展vt100描述  
  23.  
  24. termcap vt* AF=\E[3%dm:AB=\E[4%dm   
  25. caption always  
  26. caption string '%{= wk}[ %{k}%H %{k}][%= %{= wk}%?%-Lw%?%{r}(%{r}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %{k}][%{b} %d/%m %{k}%c %{k}]'   
  27.  
  28. #重新定义按键绑定  
  29.  
  30. bind -k F5 prev   
  31. bind -k F6 next  
  32.  

#4. netstat/nmap命令

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

netstat的例子如下:

  1. *显示全部互联网(端口80)连接数量:  
  2. $ netstat -an |grep :80 |wc -l  
  3. *显示机器上监听的所有端口:  
  4. $ netstat -ant | grep LISTEN  
  5. *在你的LAN上面用nmap命令扫描一个机器,并且获悉它的哪些端口是开放的:  
  6. $ nmap ip  
  7.  

#5. find和grep命令

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

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

find命令的例子:

  1. *在/var目录中寻找10个最大的文件:  
  2. $ find /var -type f -ls | sort -k 7 -r -n | head -10  
  3.  
  4. *在/var/log/中寻找大小超过5GB的文件:  
  5. $ find /var/log/ -type f -size +5120M -exec ls -lh {} \;  
  6.  
  7. *寻找今天所有的文件并把它们复制到另外一个目录下面:  
  8. $ find /home/me/files -ctime 0  -print -exec cp {} /mnt/backup/{} \;  
  9.  
  10. *找到所有超过一周的临时文件夹并删除:  
  11. $ find /temp/ -mtime +7-type f | xargs /bin/rm -f  
  12.  
  13. *找到并重命名所有的mp3文件(把文件名字中的大写字母变成小写):  
  14. $ find /home/me/music/ -type f -name *.mp3 -exec rename 'y/[A-Z]/[a-z]/' '{}' \;  
  15.  
  16. grep命令的一些例子:  
  17. *打印Apache的文件根目录名称:  
  18. $ grep -i documentroot  /etc/httpd/conf/httpd.conf  
  19.  
  20. *查看没有评论以及空行的文件内容:  
  21. $ grep -Ev “^$|^#” /etc/my.cnf  
  22.  
  23. *只打印分配给本接口的IP地址:  
  24. $ ifconfig eth0 | grep 'inet addr:' | cut -d':' -f2 | awk '{ print $1}' 
  25.  
  26. *查看某个特定日期发送了多少email消息:  
  27. $ cat /var/log/maillog | grep "status=sent" | grep "May 25" | wc -l  
  28.  
  29. *在进程列表中找出一个正在运行的process/daemon(多谢网友staranneph的提醒):  
  30. ps -ef | grep mysql  
  31.  
  32. *你也可以通过使用上面的命令来注释cpu/men的使用情况,比如像下面的命令输出,你可以看到Plesk的统计进程本身就占用了大于18%的cpu性能:  
  33. [root@myserver ~]# ps aux | grep statistics  
  34. root      8183 18.4  0.0  58384  2848 ?        D    04:05   3:00 /usr/local/psa/admin/sbin/statistics  
  35.  

原文:Top 5 most useful commands or tools for Linux administrators 作者:Linux Admin Zone


转载请注明出处:http://www.cnblogs.com/haochuang/ 8年IT工作经验,5年测试技术与管理,2年产品与项目管理,曾参与过云计算\云存储\车联网产品研发工作; 业余自媒体人,有技术类垂直微信公众号;如有招聘或求职方面需求,请Mail to uetest@qq.com ;或通过 QQ:363573922 微博:@念槐聚 联系;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
112 6
|
19天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
58 3
|
19天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
51 2
|
14天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
49 3
|
19天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
57 3
|
22天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
60 6
|
23天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
30 7
|
23天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
36 4
|
22天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
20 2
|
23天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
46 3