浅谈习惯使用less命令的重要性,让less命令“丰富多彩”

        首先声明这不是一篇讲GNU的less命令使用技巧的文章,当然最后会有一点关于改进使用的内容。我一直很常用less命令,我周围的同事在查看系统的文档时都是习惯用vi直接打开查看,我非常反对这种做法。何为系统安全,防止外界入侵是一方面,防止自己破坏系统也是关键之一。有很多人喜欢直接使用root用户操作,或者喜欢把自己的用户权限最大化,美其名曰“操作方便,节省时间”,确实是省去了考虑操作权限的问题,但是这种做法我认为相当不可取。就拿坐在我后面的同事来说吧,我后面那个位置从我来公司到现在换过两个人了,但是在这个位置上坐过的两个毫不认识的人都发生了同样一件事,那就是他们都在工作期间都不小心把根目录删掉了,导致系统直接死掉了。

        他们都有一个共同的习惯就是喜欢用root用户直接操作很多事情,其中一个人写了一个脚本,里面好多当前目录的切换,其中还有一个rm *。好了,他想测试一下它写的脚本,但是他没有意识到自己当前是root用户(用的太习惯了)。然后他跑了一遍脚本,从此就和他的第一个系统说拜拜了。还好很多重要的程序都提前备份到git服务器上了。另一个后来的坐这个位置的人是喜欢用root登录,登录后直接干活,这样就省去了考虑访问权限的问题,但是有一天他习惯的清空当前目录文件,但是不小心多写了一个"/"。而且这个斜线还写在了关键的位置上"rm /*",唉,你说你要是写成"rm */"还有的活。这一下机子直接死了,半截的程序都白写了。

        仅仅就在同一个座位上的两个人,先后发生同样的事,其它类似的事情也不胜枚举,所以习惯使用less命令,或其它和less类似的命令很重要。提升一点说,注意在最小权限下使用系统很重要。GNU/Linux提供了很多有用的访问控制的机制,我习惯对一个安装好的系统进行capabilities、acl、DAC或者MAC配置等等,让我既能快速有效的工作,又能减少因误操作带来的系统损失。不要一有问题就想到切换到root去做,这是不负责任的行为,也不要你的程序不能用普通用户跑就明目张胆、理直气壮的说我的程序是需要root来跑的。理解系统的安全机制对一个合格的系统程序员来说是非常重要的。

        那么从今天开始,先改变你使用vi查看文档的习惯,如果你只是查看而不需要修改,那么就用less吧,你会慢慢发现这个习惯的重要意义的。

        下面说第二个内容,上面我们倡导使用less作查看工作,于是有人说了,vi可以通过配置vimrc文件让vi能在查看时将文档的不同关键字着色,这样非常方便查看。我想说,如果这就是你使用vi编辑模式查看文档的目的,那你真的杀鸡用了火箭弹了。首先你可以使用vi以只读方式查看文档,view命令可以帮助你达到这样的目的。其次,如果为文字着色就是你查看文档最大的目的,那less也可以。理解你的系统就能让你作到任何你想做的事。

        前些天我看到了一个关于bash/zsh powerline的文章,有人为bash做了powerline的功能,他是通过python脚本实现的,让bash在启动时使用这个脚本重新“装饰”界面。我适用了一阵,最后还是删掉了,因为加上这个脚本后界面是变的很好看,也多了很多功能,但有一个不能忍受的问题出现了——执行速度相当的慢。特别是当你进入一个git的目录时,因为它要搜集git的分支信息等,所以简单的一个cd操作要执行很长时间,这是无法忍受的,相比于它提供的功能的微不足道,而导致的问题却很严重,所以我删掉了它。但是我没有删除git下来的这个项目的脚本,以后观察看看是否有完善的更新吧。但是这个给了我一个修改less显示功能的启示,简单的嵌入一个脚本就可以让less丰富起来。下面说一下我的简单实现:


        1. 我的实现需要依赖python-pygments软件包的pygmentize命令。关于pygmentize命令的用处你可以通过man pygmentize来了解。

        2. 编辑一个~/.lessrc文件,内容如下:

#!/bin/sh
case "$1" in
    *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
    *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
    *.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
    *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
        pygmentize -f 256 "$1";;
    .bashrc|.bash_aliases|.bash_environment)
        pygmentize -f 256 -l sh "$1"
        ;;
    *)
        grep "#\!/bin/bash" "$1" > /dev/null
        if [ "$?" -eq "0" ]; then
            pygmentize -f 256 -l sh "$1"
        else
            exit 1
        fi
esac

exit 0

        意思我就不解释了,有shell脚本基础的人都一定能看懂。

        3. 我们需要让~/.lessrc文件有执行权限,执行chmod u+x ~/.lessrc

        4. 编辑~/.bashrc文件加入如下几行:

export LESS='-R'

export LESSOPEN='|~/.lessrc %s' 

        现在你可以重新打开一个bash窗口,然后用less命令打开一个.c文件看一下效果。当然那个-R根据你的喜好来使用,-R的用处参见man less文档。其实你不使用这个脚本也可以,linux的命令行很丰富,你可以在查看一个文档是执行"pygmentize file.c | less"也是可以的。或者如果你还是喜欢使用vi,那你可以使用view命令。


        上面的脚本内容很粗糙,这里只是举例,我是来抛砖引玉的,谁对这个感兴趣可以开发出更好的功能,如果你开发出了更好的程序愿意与大家分享那就更让人期待了。


总结:

        在使用系统时尽量保证在最小权限下操作,不要让自己养成root操作和不分读写的操作习惯。

        操作系统的使用是灵活的,如果你觉得哪里你不满意,不要丢了西瓜换芝麻,你可以用很多种办法解决问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值