一 文本日历
    显示本月日历
    [root@ns1 mail]# cal

    显示某年的日历
    [root@ns1 mail]#cal 2002

    显示3个月的日历
    [root@ns1 root]# cal -3

    把周一作为一周的第一天
    [root@ns1 root]# cal -m

    显示Julian日历(日子是从1月1日开始累加的)
    [root@ns1 root]# cal -j

二 使用nl命令给一个文件标记上行号
   
    例如[root@ns2 root]# nl /etc/passwd
    1 root:x:0:0:root:/root:/bin/bash

    给输出的行号后加个点,这个点号可以换成你喜欢的任何符号
    例如1. 2.
    [root@ns2 root]# nl /etc/passwd -s ‘. ‘
    1. root:x:0:0:root:/root:/bin/bash

   

三 将一个文件中的所有大写字母换成小写

    cat filename |tr "[A-Z]" "[a-z]">filename2

    例如把passwd文件全部转换为大写:
    cat /etc/passwd|tr "[a-z]" "[A-Z]">passwd
    cat passwd

四 计算一个文件有几行

    wc -l filename
    例如wc -l /etc/passwd
    41 /etc/passwd

五 小技巧:使用chattr给文件加上写保护

    许多用户会无意删除重要的文件。用上chattr 命令后,我们就能保护自己重要的文件了。
    chattr 命令改变文件属性为 "i" ,我们就能写保护象/etc/fstab, /etc/passwd, /etc/group等重要文件了。

    例如:
    $ chattr +i filename
    这个例子演示了保护 "filename" 使之不能被修改。去掉保护只要用 chattr -i filename 就可以了。
    chattr还有许多其他用法,希望大家能自己man一下看看,

    $ chattr +i filename后,如果强制修改,会产生副本

六 vi中的拷贝

    常用的copy和paste命令都是在命令模式(按Esc进入)下使用的。举几个例子:
    拷贝当前行:yy
    拷贝当前行到第15行:y15G
    拷贝当前行和下一行:yj
    拷贝当前行和下两行:y2j
    实际上,j命令是把光标向上移动一行,15G是把光标移到第15行
    如果想要拷贝一段不规则的文本(即不是完整的几行),可以在命令模式下按v键进入可视模式,使用方向键选择你想拷贝的那一段文本,然后按y键,这段内容就拷贝下来了.
    拷贝完成后,把光标移到想要粘贴的地方,按下p键即可粘贴
    命令注意大小写喔

七 如何写shell脚本?

    所谓的脚本,一般都是指解释型的程序,也就是一个文本文件。举例如下:

    用一个文本编辑器(如vi)编辑一个文本文件(假设叫做foo),内容如下
    代码:
    #!/bin/bash
    bar=’hello world’
    echo $bar
    
    然后执行
    chmod +x foo
    这个脚本就完成了,可以像一般的可执行程序一样执行它:
    ./foo
    可以看到它就是打印字符串’hello world’(没有引号)。

    解释:
    1.脚本的第一行是必须要有的,它指定了脚本解释器的路径,格式是:#!/path。这里使用的解释器就是bash(/bin/bash)。如果是perl脚本的话,一般是#!/usr/bin/perl。
    2.chmod +x foo也是必须的,是给foo以可执行权限。所有的脚本都必须有可执行权限。

    注意,运行foo的时候,一定要写成"./foo"

 

发表评论

邮箱地址不会被公开。 必填项已用*标注