find 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 find . -name "*.[h|c|sh]" #[sh]只能是s,或者是h, 不会去找sh find 。 -name "*.[h|c]" -o -name "*.sh" 应该用这个查找/etc/rc.d目录下面所有以crond结束的文件,并使用file指令查看其属性 查找删除 find . -name filename -exec rm -rf {} \;find . -name filename |xargs rm -rf磁盘中大于3 M的文件 find . -size +3000 k -exec ls -ld {} \; find . -type f -exec grep “the string you want find ...” {} ; -print #含特定字符串的文件 find -name ".*" -perm -007 -007 是指查找所有用户都可读、写、执行的文件find . -perm -100 -100 是指权限至少是属主可运行. 在unix系统下,你可以拥有对目录文件的执行权你才可以进入一个目录.这便是目录文件被列出的原因.find *.c -exec cp '{}' /tmp ';' 如果有特殊文件,可以用cpio,也可以用这样的语法: find dir -name filename -print | cpio -pdv newdirA=`find ~ -print` | ls -l --full-time $A 2 >/dev/null | grep "Jun 27" | grep 1998 查找某一天更改的文件 使用find 命令查找某个时间段的shell怎么写。比如11 点到12 点的。thanks 创建一个脚本judgetime,内容如下: ls -l $*|awk '{split($8,hour,":");if((hour[1]>23 || hour[1] < 1)&&hour[1]<24)print}' 到要查找的目录下,运行 find ./ -name "*" -exec judgetime {} /;删除指定日期的文件 find ./ -name 文件名 -exec rm -f {} /;例:删除当前30 天内没用过的文件,用如下命令: find / -atime +30 -exec rm -f {} /;使用chown, chgrp, chmod命令可以很好的比较mtime和ctime chown改变一个文件的属主,用ctime可以找到,用mtime便找不到. 访问一个文件不能改变inode信息. find / -size 1500 c 字符 c 表明这个要查找的文件的大小是以bytes为单位find / -size +10000000 c 这个命令, 则标明我们指定系统在根目录中查找出大于10000000 字节的文件find / -amin -10 # 查找在系统中最后10 分钟访问的文件 find / -atime -2 # 查找在系统中最后48 小时访问的文件 find / -empty # 查找在系统中为空的文件或者文件夹 find / -group cat # 查找在系统中属于 groupcat的文件 find / -mmin -5 # 查找在系统中最后5 分钟里修改过的文件 find / -mtime -1 #查找在系统中最后24 小时里修改过的文件 find / -nouser #查找在系统中属于作废用户的文件 find / -user fred #查找在系统中属于FRED这个用户的文件 find . -maxdepth 2 -name fredfind / -user fred -or -user george 查找属于fred或者george这两个用户的文件。find /tmp ! -user pandafind /tmp -size +10000000 c -and -mtime +2 我是在 Solaris 上面试的.我是对 -ctime 不明白. 试的结果如下: 修改文件,-mtime 改了, -ctime 也会改. 访问文件,-atime 改了, -ctime 没变. chown, chgrp, chmod,mv, 都会使 -ctime 改变,但不影响 -atime 和 -mtime. touch 可以改 -mtime and /or -atime,但 touch -a 只改访问时间时,-ctime也改了. touch -m 改修改时间时,-ctime当然也改了. 好象还有别的很多东西可以令 -ctime 改变, 搞不清楚. 有什么方法可以显示 -mtime,atime,ctime 吗? 可以用 -ctime 来实现对目录的增量文件进行备份或 transfer 吗 ? 多谢! 没有什么工具显示,(可能是俺不知道) 把下面程序里的st_mtime换成st_ctime,或st_atime便可以得到你要的了. #i nclude int main (int argc, char **argv) { struct stat buf; char date [80 ]; char fname[80 ]; printf("Enter filename (with full path) to check mtime : " ); scanf("%s" ,fname); stat(fname, &buf); printf ("mtime (in sec) of %s = %ld/n" , fname, buf.st_mtime); strcpy(date , ctime((time_t *)&(buf.st_mtime))); printf ("mtime (in date) of %s = %s/n" , fname, date ); }
#压缩文件的问题 find . -name “.jpg” -exec tar -czf picture.tgz {} \; 命令执行完毕后,picture.tgz中只有一个文件 find . -name “ .jpg” | xargs tar -czf picture.tgz
ed awk zip zip -rP a123 text.zip test.txt
grep -P 有的linux下没有 grep -Pnr “\d{3}” find -name "*.txt"
# 只搜索某一类文件 grep -Pnr “\d{3}” find |grep -P ".(txt|php)$"
#只搜索某几类文件,如下,只搜索txt和php文件 grep -Pnr “\d{3}” ls |grep -Fv weiba
#排除含某关键词的子目录不搜索。如下,含“weiba”关键词的子目录不搜索 grep -Pnr “\d{3}” ls |grep -Pv '^(weiba|huati)$'
grep -Pnr “\d{3}” ls |grep -P '^(weiba|huati)$'
正则表达式选择与解释: -E, –extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE) -F, –fixed-strings PATTERN 是一组由断行符分隔的定长字符串。 -G, –basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE) -P, –perl-regexp PATTERN 是一个 Perl 正则表达式 -e, –regexp=PATTERN 用 PATTERN 来进行匹配操作 -f, –file=FILE 从 FILE 中取得 PATTERN -i, –ignore-case 忽略大小写 -w, –word-regexp 强制 PATTERN 仅完全匹配字词 -x, –line-regexp 强制 PATTERN 仅完全匹配一行 -z, –null-data 一个 0 字节的数据行,但不是空行 杂项: -s, –no-messages 不显示错误信息 -v, –invert-match 选中不匹配的行 -V, –version 显示版本信息并退出 –help 显示此帮助并退出 –mmap 忽略向后兼容性 输出控制: -m, –max-count=NUM NUM 次匹配后停止 -b, –byte-offset 输出行的同时打印字节偏移 -n, –line-number 输出行的同时打印行号 –line-buffered 每行输出清空 -H, –with-filename 为每一匹配项打印文件名 -h, –no-filename 输出时不显示文件名前缀 –label=LABEL 标准输入将LABEL 打印为文件名 -o, –only-matching 只显示一行中匹配PATTERN 的部分 -q, –quiet, –silent 不显示所有输出 –binary-files=TYPE 假定二进制文件的TYPE 类型; TYPE 可以是binary',
text’, 或without-match'
-a, --text 等同于 --binary-files=text
-I 等同于 --binary-files=without-match
-d, --directories=ACTION 操作目录的方式;
ACTION 可以是
read’, recurse',或
skip’ -D, –devices=ACTION 操作设备、先入先出队列、套接字的方式; ACTION 可以是read'或
skip’ -R, -r, –recursive 等同于 –directories=recurse –include=FILE_PATTERN 只查找匹配FILE_PATTERN 的文件 –exclude=FILE_PATTERN 跳过匹配FILE_PATTERN 的文件和目录 –exclude-from=FILE 跳过所有除FILE 以外的文件 –exclude-dir=PATTERN 跳过所有匹配PATTERN 的目录。 -L, –files-without-match 只打印不匹配FILEs 的文件名 -l, –files-with-matches 只打印匹配FILES 的文件名 -c, –count 只打印每个FILE 中的匹配行数目 -T, –initial-tab 行首tabs 分隔(如有必要) -Z, –null 在FILE 文件最后打印空字符 文件控制: -B, –before-context=NUM 打印以文本起始的NUM 行 -A, –after-context=NUM 打印以文本结尾的NUM 行 -C, –context=NUM 打印输出文本NUM 行 -NUM 等同于 –context=NUM –color[=WHEN], –colour[=WHEN] 使用标志高亮匹配字串; WHEN 可以是always',
never’或`auto’ -U, –binary 不要清除行尾的CR 字符(MSDOS 模式) -u, –unix-byte-offsets 当CR 字符不存在,报告字节偏移(MSDOS 模式)
split linux split含多个参数
apt-get debian的源 说明: 1:deb/deb_src 表示获取安装包和源代码 2:http://mirrors.163.com/debian/ 国内一般使用这个,Debian软件资源库 3:stable 表示Debian系统的版本类型。stable/testing/unstable 三种
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 apt-get update # 更新软件包信息库。 apt-get upgrade package_name1 package_name2 package_name3 ... # 升级指定软件包至最新版本 apt-get dist-upgrade #更新整个Debian系统 apt-get install package_name1 package_name2 package_name3 ... # 安装新的软件包,安装的软件包默认会存放在/var /cache /apt/archives目录下,以便以后重新安装。 如果已安装的软件包损坏了,你可通过–reinstall选项来重新安装。如: apt-get 使用–dry-run选项可使apt-get 在安装软件包前进行测试,如: apt-get install package_name apt-get remove package_name1 package_name2 package_name3 ... # 卸载指定软件包。 如果你想把该软件的配置文件也删除,可以用–purge 选项,如: apt-get apt-get source package_name1 package_name2 package_name3 ... #下载指定软件包的源码包文件 apt-get build -dep #为源码包配置所需的构建依赖关系 apt-get dselect-upgrade # 通过dselect的“建议”和“推荐”功能更新系统。 apt-get clean #删除下载了的软件包, APT会把软件包下载到本地/var /cache /apt/archives/目录。 apt-get autoclean #删除已下载的旧版本的软件包。该命令类似于上面的命令,但它会有选择地删除旧版本的软件包 apt-get check #检查系统中已安装软件包的依赖性。 apt-cache add package_name #往源缓存加入一个软件包文件 apt-cache gencaches #并生成软件包和源代码包的缓存 apt-cache showpkg pkgname #显示软件的信息,包括版本号,安装状态和包依赖关系等。 apt-cache showsrc 显示源文件的各项记录 stats显示一些基本的统计信息 dump 简要显示整个缓存文件的内容 dumpavail 把所有有效的包文件列表打印到标准输出 unmet 显示所有未满足的依赖关系 apt-cache search pkgname 搜索软件包,可用正则表达式(apt-cache search libc*) apt-cache show pkgname 以便于阅读的格式介绍该软件包 apt-cache depends pkgname 显示指定软件包所依赖的软件包 apt-cache rdepends pkgname 显示软件包的反向依赖关系,即有什么软件包需依赖你所指定的软件包 apt-cache pkgnames 列出所有软件包的名字 apt-cache dotty 生成可用 GraphVis 处理的软件包关系图 apt-cache xvcg 生成可用 xvcg 处理的软件包的关系图 apt-cache policy package_name 显示软件包的安装设置状态 ### aptitude 命令 该命令是调用交互模式,进行包的管理操作,和apt-get 命令类似。
aptitude [-S 文件名] [-u|-i] install – 安装/升级软件包 remove – 卸载软件包 purge – 卸载软件包并删除其配置文件 hold – 将软件包置于保持状态 unhold – 取消对一个软件包的保持命令 markauto – 将软件包标记为自动安装 unmarkauto – 将软件包标记为手动安装 forbid-version – 禁止 aptitude 升级到某一特定版本的软件包。 update – 下载新/可升级软件包列表 upgrade – 执行一次安全的升级 dist-upgrade – 执行升级,可能会安装和卸载软件包 forget-new – 忘记哪些软件包是“新”的 search – 按名称 和/或 表达式搜索软件包 show – 显示一个软件包的详细信息 clean – 删除已下载的软件包文件 autoclean – 删除旧的已下载软件包文件 changelog – 查看一个软件包的变更日志 download – 下载软件包的 .deb 文件 reinstall – 下载并(可能)重新安装一个现在已经安装了的软件包1 2 ### apt-key 每个发布的deb包,都是通过密钥认证的,apt-key 用来管理密钥。
apt-key list 列出已保存在系统中key。 apt-key add keyname 把下载的key添加到本地trusted数据库中。 apt-key del keyname 从本地trusted数据库删除key。 apt-key update 更新本地trusted数据库,删除过期没用的key。1 2 3 4 5 6 7 8 9 10 11 12 13 14 ## netstat ##安装lxde图标显示 "X", 没有文件夹图标的解决方法: 1. apt-get install libgdk-pixbuf2.0 -dev 然后设置 => 外观 里面设置为可用的主题比如 tango 就可以了 2. http:To install the icons, as root: add-apt-repository ppa:landronimirc/elementary-xfce apt-get update apt-get install xubuntu-icon-theme ## 依赖关系问题 - 仍未被配置 子进程 已安装 post-installation 脚本 返回了错误号, 不用使用mv /var/lib/dpkg/info的方法
尝试自动修复 tiankonguse@tiankonguse:~$ sudo apt-get -f install 尝试修复依赖 tiankonguse@tiankonguse:~$ sudo dpkg –configure –pending 先清空缓存 sudo apt-get autoclean sudo apt-get clean sudo apt-get autoremove 然后卸载 sudo apt-get remove xxx cd /var/lib/dpkg sudo mv info info.bak sudo mkdir info sudo apt-get install -f dpkg:警告:files list file for package ‘* ‘ missing; assuming package has no files currently installed 解决
检查当前 dpkg库中残留的文件安装信息 dpkg -l | grep **
#手 动删除所有包,这一步可能仍然会 有相关错误信息报出 sudo dpkg -r * *
#这一 步很重要,彻底清除任何包相 关的信息 sudo dpkg -P * dpkg -l | grep ```