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 命令

语法: 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‘

这样,如果真的要删除的话,\rm执行,不然的话,会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 字符界
面下一款非常强大的文件管理器。

时间: 2024-08-30 09:29:53

linux 101 hacks 2date,grep,find的相关文章

linux 101 hacks 第一章cd命令

本系列来源于<linux 101 hacks>,作者还写了其他101 hacks教程,读了几章,觉得技巧都还不错,很实用,做个总结收藏. cdpath 设置基目录 [[email protected] ~]# pwd /home/ramesh [[email protected]-db ~]# cd mail -bash: cd: mail: No such file or directory [注: 以上试图进入当前目录下的 mail 子目录] [[email protected]-db ~

cat,grep,命令总结的简单用法

1:cat  -E  显示行结束符$                         cat   -n   对显示出的每一行进行编号 -A  显示所有控制符                -b   非空行编号         -s  压缩连续的空行成一行 2:more    分页查看文件                  more    -d显示翻页及退出提示 less  一页一页的查看文件或标准输出         less    是man使用的分页器 3:head  -c3  指定获取前3字

三剑客之sed,awk,grep,egrep

Sed是文本处理工具,依赖于正则表达式,可以读取文本内容,根据指定条件对数据进行添加.删除.替换等操作,广泛应用于shell脚本,以完成自动化处理任务.Sed在处理数据时默认不直接修改源文件,而是把当前处理的行存储在临时缓冲区中,所有指令都在缓冲区中操作,处理完成后,把缓冲区内容默认输出到屏幕,接着处理下一行内容,这样不断重复,直到文件末尾,文件本身内容并没有做任何改变.一.Sed三大功能:(1)读取:sed 从输入流(文件.管道.标准输入)中读取一行内容并存储到临时的缓冲区中:(2)执行:默认

多命令顺序执行,dd命令,管道|,grep,通配符

多命令顺序执行:命令1;命令2 命令之间没有逻辑关系 命令1&&命令2 命令1执行正确才执行命令2,命令1执行错误不会执行命令2 命令1||命令2 命令执行错误才执行命令2,命令1执行正确不会执行命令2 命令 && echo yes || echo no dd if=输入文件 of=输出文件 bs=字节数 count=个数 if=输入文件 指定源文件或源设备 of=输出文件 指定目标文件或目标设备 bs=字节数 指定一次输入/输出多少字节,即把这些字节看做一个数据块 cou

linux 101 hacks 3null 改文件大小写 xargs

禁止标准输出和错误信息的输出 当我们调试 shell 脚本的时候,我们往往不希望看到标准输出和标准错误的信息.我们可以使用/dev/nulll 来禁止标准错误的信息. 将标准输出重定向到/dev/null当你调试 shell 脚本的时候不想看输出,只想看错误信息的时候,这个命令会非常有用. # cat file.txt > /dev/null # ./shell-script.sh > /dev/null 用"2>/dev/null"禁止错误输出当你只想看标准输出,而

对find,xargs,grep和管道的一些深入理解

转自于:http://fatmouse.xyz/2016/05/10/2016-05-10-find-grep-xargs-and-pipe/ 问题 相信大家都知道在目录中搜索含有固定字符串文件的命令: 1 find . -name '*.py' |xargs grep test 刚开始的时候,我不熟悉xargs命令,所以直接使用的命令是 1 find . -name '*.py' |grep test 结果并不是自己所期望的.此命令只是找出文件名*.txt有test的情况. 这里我就研究一下,

无意中测试了grep,sed,awk的性能差异

最近从数据库中导出了230万条文本文件格式的数据记录.开了台freebsd虚拟机.ram 256Mb,cpu 1 core.其实就是测试在相同的硬件环境下,grep,sed,awk(nawk)三个工具的搜索文件的效率. 搜索结果: [[email protected]/var]# time grep 18921373250 vo.txt   //grep第一次搜索 /20101220/10000_18921373250_8_11623_20101220101118.pcm /20110513/1

linux 文件管理和文本三剑客之一grep,以及正则的使用

1:文件权限 用户对文件的访问有三种:r(读),w(写),x.对于文件和目录有点区别. 文件: r:使用文本查看工具可以查看其文件内容. w:使用文本编辑工具可以编辑其文件内容. x:可向内核请求将此文件运行为进城执行. 目录: r:可以使用ls命令列出文件下子目录和文件的列表. w:可以在此目录中创建和删除文件. x:可使用'ls -l'命令列出目录及子目录的文件属性,可以使用cd切换工作目录为制定目录. 文件权限主要针对三类对象进行定义. owner:属主  , group:属组, othe

Linux中grep,sed的使用

今天,Mayuyu来讲一些Linux中常用的命令. 1. grep命令 grep用于过滤自己需要的内容,语法如下    grep Mayuyu --color 过滤出所有包含Mayuyu的行,grep中也是支持正则表达式的. 2. sed命令 使用普通的vim编辑器在编辑文件时有两个主要的问题    (1)当文件比较大的时候,需要打开文件,占用较大的内存. (2)编辑文件时,必须互动,所以很难调用vim等. sed属于流编辑器,所谓流编辑器就是在编辑文件的时候,可以不用把整个文件都读入内存,可以