zoukankan      html  css  js  c++  java
  • linux 101 hacks 2date,grep,find

    感觉挨个按着作者来的太蠢了,我还是放自己觉得不错的东西把

    用特定格式显示当前时间

    以下的方法可以用各种不同的格式来显示当前时间:
    $ date
    Thu Jan 1 08:19:23 PST 2009
    $ date --date="now"
    Thu Jan 1 08:20:05 PST 2009
    $ date --date="today"
    Thu Jan 1 08:20:12 PST 2009
    $ date --date='1970-01-01 00:00:01 UTC +5 hours' +%s
    18001
    $ date '+Current Date: %m/%d/%y%nCurrent Time:%H:%M:%S'
    Current Date: 01/01/09
    Current Time:08:21:41
    $ date +"%d-%m-%Y"
    01-01-2009
    $ date +"%d/%m/%Y"
    01/01/2009
    $ date +"%A,%B %d %Y"
    Thursday,January 01 2009

    以下是 date 命令的不同的格式选项, 各选项所代表含义如下:

    %D 日期(月/日/年)
    %d 一个月中的第几天 (01..31)
    %m 月份 (01..12)
    %y 年份的后两位 (00..99)
    %a 当前语言下星期的缩写 (Sun..Sat)
    %A 当前语言下星期的全拼 (Sunday..Saturday)
    %b 当前语言下月份的缩写 (Jan..Dec)
    %B 当前语言下的月份的全称 (January..December)
    %H 24 小时制小时 (00..23)
    %I 12 小时制小时 (01..12)
    %Y 年份(1970…)

    显示过去的日期和时间

    如下方法可以用来显示过去的日期和时间:

    $ date --date='3 seconds ago'
    Thu Jan 1 08:27:00 PST 2009
    $ date --date="1 day ago"
    Wed Dec 31 08:27:13 PST 2008
    $ date --date="1 days ago"
    Wed Dec 31 08:27:18 PST 2008
    $ date --date="1 month ago"
    Mon Dec 1 08:27:23 PST 2008
    $ date --date="1 year ago"
    Tue Jan 1 08:27:28 PST 2008
    $ date --date="yesterday"
    Wed Dec 31 08:27:34 PST 2008
    $ date --date="10 months 2 day ago"
    Thu Feb 28 08:27:41 PST 2008

    显示未来的日期和时间

    如下的方法可以用来展示未来的日期和时间:

    $ date
    Thu Jan 1 08:30:07 PST 2009
    $ date --date='3 seconds'
    Thu Jan 1 08:30:12 PST 2009
    $ date --date='4 hours'
    Thu Jan 1 12:30:17 PST 2009
    $ date --date='tomorrow'
    Fri Jan 2 08:30:25 PST 2009
    $ date --date="1 day"
    Fri Jan 2 08:30:31 PST 2009
    $ date --date="1 days"
    Fri Jan 2 08:30:38 PST 2009
    $ date --date="2 days"
    Sat Jan 3 08:30:43 PST 2009
    $ date --date='1 month'
    Sun Feb 1 08:30:48 PST 2009
    $ date --date='1 week'
    Thu Jan 8 08:30:53 PST 2009
    $ date --date="2 months"
    Sun Mar 1 08:30:58 PST 2009
    $ date --date="2 years"
    Sat Jan 1 08:31:03 PST 2011
    $ date --date="next day"
    Fri Jan 2 08:31:10 PST 2009
    $ date --date="-1 days ago"
    Fri Jan 2 08:31:15 PST 2009
    $ date --date="this Wednesday"
    Wed Jan 7 00:00:00 PST 2009

    grep

    不细讲了

    语法: grep [选项] pattern [文件名]

    在下面这个例子中, grep 在“/etc/password/” 文件下查找所有含有“John” 的行并全部显 示出来

    # grep John /etc/passwd
    jsmith:x:1082:1082:John Smith:/home/jsmith:/bin/bash
    jdoe:x:1083:1083:John Doe:/home/jdoe:/bin/bash

     参数-v 会显示出所有不包含匹配文本的内容。下面的例子中,显示了所有在“ /etc/password” 下不含有“John” 的内容。

    注: 在“/etc/password” 下有几行不包含“John” ,只有第一行显示了
    # grep -v John /etc/passwd
    jbourne:x:1084:1084:Jason Bourne:/home/jbourne:/bin/bash
    在下面这个例子中,显示了在“/etc/password/” 下含有“John” 的行的总数
    # grep -c John /etc/passwd
    2-cv 也可以得到不含有“John” 的行的总数
    # grep -cv John /etc/passwd
    39

    利用“ -i” ,搜索的时候会忽略大小写

    可以利用“ -r” 来完成在所有的子目录下执行相应的查找。 在下面的例子中,在“/home/users/” 的子目录下忽略大小写,查找“John” , 这会以“ 文件名:匹配的内容” 形式显示。也可以利用参数“ -l” ,只显示文件名。

    # grep -ri john /home/users
    /home/users/subdir1/letter.txt:John, Thanks for your contribution.
    /home/users/name_list.txt:John Smith
    /home/users/name_list.txt:John Doe
    # grep -ril john /root
    /home/users/subdir1/letter.txt
    /home/users/name_list.txt

    find 命令

    这里介绍的感觉不是太详细,参考这两篇更详细的:

    linux 下 find(文件查找)命令的用法总结 

    Linux find 用法示例

    语法: find 路径 约束条件

    如何查找在文件名中含有指定关键字的文件?
    下面这条命令查找在“/etc” 目录下所有文件名中含有“mail” 的文件。

    # find /etc -name "*mail*"

    如何查找文件大小超过指定值的文件?
    下面这个命令会列出系统中所有大于 100M 的文件

    # find / -type f -size +100M

    如何查找在最近几天没有被修改过的文件?
    下面这条命令会列出在当前目录下在最近 60 天没有被修改过文件

    # find . -mtime +60

    如何查找在最近几天被修改的文件?

    下面这条命令会列出在当前目录下在最近 2 天被修改过文件

    # find . –mtime -2

    如何删除扩展名为.tar.gz 并且大于 100M 的压缩文件?
    当你不想意外删除文件时,那么当执行下列命令要小心点。最好的方法是利用“ls -l” 去执行
    下列相同命令以确保当执行 rm 命令时,你知道什么文件会被删除。

    # find / -type f -name *.tar.gz -size +100M -exec ls -l {} ;
    # find / -type f -name *.tar.gz -size +100M -exec rm -f {} ;

    这个可以alias 

    alias rm='mv --verbose -f --backup=numbered --target-directory /mnt/lustre/asrdata/users/xch27/.Trash'

    这样,如果真的要删除的话, m执行,不然的话,会mv到一个文件夹下面,但是不能加-rf等参数了,因为mv不支持,哈哈

    如何对最近几天没有被修改的文件进行存档?
    下面的命令查找到在“/home/jsmith” 目录下最近 60 天没有被修改的文件并且在“/tmp” 下创
    建一个格式为“ddmmyyyy_archive.tar” 的归档文件   感觉不常用,还是会*用的多些

    # find /home/jsmith -type f -mtime +60 | xargs tar -cvf /tmp/`date '+%d%m%Y'_archive.tar`


    提醒一下:你可以使用“midnight commander” 上进行有关文件的一些操作, 它是 UNIX 字符界
    面下一款非常强大的文件管理器。

  • 相关阅读:
    品鉴-宋词
    【转载】全球水质最棒的十大景点
    Python文档管理与格式化工具
    Python音频处理
    Python剪切板提取、截图、图片粘贴,操作汇总
    Python多进程
    Wifi配置
    条码生成与解析
    谎言: “太空能看到的惟一的人工痕迹,长城!”
    VNC-Server安装配置详解
  • 原文地址:https://www.cnblogs.com/dahu-daqing/p/7812063.html
Copyright © 2011-2022 走看看