基于我个人使用Linux的经历,以及观察周围同事使用Linux时的一些习惯等,整理出这篇文章。其实没有太多技术含量。
一、换行符&编码
- 从它处复制了一串命令,命令其实并非在一行的,执行时发生报错。举个例子
curl 服务 -d {我是json串}
。我以为自己复制的是一行语句,其实是多行,结果执行时一直curl不成功,一直抓狂中。 - crlf和lf,相信很多朋友都遇到过,此处不详述。就是说在windows里编辑脚本时,最好要用utf-8,no bom。
二、备份配置文件
备份文件时不建议cp xx.conf xxbak.conf
。即后缀名仍然一致,因为你不能确定是否有一另外一个文件里有如下动作including *.conf
。
这个坑,在使用nginx、docker的时候,我踩过。
三、权限相关
- 某个应用,一开始用x用户跑,后来改用y用户跑。y用户无权修改x用户创建的文件,造成报错。
- 不建议对文件搞777。(有些数据中心不允许这么搞的)
- 不建议修改umask掩码。(举个例子,可能我心里认为我建的文件是755,但是谁知道我的umask被人改了,创建出来的文件的权限和我预期的不一样)
四、查看日志的套路
不建议使用vim xx.log
,因为log文件可能还会被修改。建议使用less、tail。
这里提到tail,分享一个关于tail的东西。
有一次我在跟踪一个问题,我进到日志目录,这里边有log1.log、log2.log、log3.log……我不确定调试问题时日志会写到哪个文件去。这时可以使用tail -f *.log
。这时屏幕可以打印出所有这些log文件的动态。(这个是松年老师教的^^)
五、尽量用一手官方资料&英文还是要好一些
有一次看某个技术的英文官方文档,因为我忘记optional
(可选的)这个单词。我把optional章节下的安装动作也执行了一遍,出错之后折腾了不少时间。这个单词的意思是这个章节的动作可以选择不操作。
尽量用一手官方资料吧。
六、一些习惯分享
- 执行某个脚本之前,一定先检查一下脚本内容。(即使自己先修改它了,准备执行前,还是再看它一眼)
- 要把某个脚本nohup挂起前,建议先直接执行,确认一下是否会报错。(之前就遇到过这种现象 ,准备下班前nohup一个脚本,等着第2天来看执行结果,结果脚本是报错的,白浪费了一个晚上)(这个习惯来自zning大神)
七、一些小技巧分享
- 清空一个文本文件,可以使用echo ‘’ > xx.sh来实现。vim它,再到第一行,再dG,也是可以,不过觉得这样要多敲点点键盘。
- 可以搜索
shell小技巧
找到更多资料。我找到的一篇,分享给各位——Linux shell 提高效率的技巧