Linux Shell常用命令总结_linux常用命令总结
Linux Shell常用命令总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“linux常用命令总结”。
1.find
find pathname-options [-print-exec-ok]
让我们来看看该命令的参数:
pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print find命令将匹配的文件输出到标准输出。
-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {};,注意{}和;之间的空格,同时两个{}之间没有空格,注意一定有分号结尾。
0)-ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
find.-name “datafile”-ctime-1-exec ls-l {};找到文件名为datafile*, 同时创建实际为1天之内的文件, 然后显示他们的明细.find.-name “datafile”-ctime-1-exec rm-f {};找到文件名为datafile*, 同时创建实际为1天之内的文件, 然后删除他们.find.-name “datafile”-ctime-1-ok ls-l {};这两个例子和上面的唯一区别就是-ok会在每个文件被执行命令时提示用户, 更加安全.find.-name “datafile”-ctime-1-ok rm-f {};
1)find.-name 基于文件名查找,但是文件名的大小写敏感.find.-name “datafile*”
2)find.-iname 基于文件名查找,但是文件名的大小写不敏感.find.-iname “datafile*”
3)find.-maxdepth 2-name fred 找出文件名为fred,其中find搜索的目录深度为2(距当前目录), 其中当前目录被视为第一层.4)find.-perm 644-maxdepth 3-name “datafile*”(表示权限为644的, 搜索的目录深度为3, 名字为datafile*的文件)
5)find.-path “./rw”-prune-o-name “datafile*” 列出所有不在./rw及其子目录下文件名为datafile*的文件。
find.-path “./dir*” 列出所有符合dir*的目录及其目录的文件.find.(-path “./d1”-o-path “./d2”)-prune-o-name “datafile*” 列出所有不在./d1和d2及其子目录下文件名为datafile*的文件。
6)find.-user ydev 找出所有属主用户为ydev的文件。
find.!-user ydev 找出所有属主用户不为ydev的文件,注意!和-user之间的空格。
7)find.-nouser 找出所有没有属主用户的文件,换句话就是,主用户可能已经被删除。
8)find.-group ydev 找出所有属主用户组为ydev的文件。
9)find.-nogroup 找出所有没有属主用户组的文件,换句话就是,主用户组可能已经被删除。
10)find.-mtime-3[+3] 找出修改数据时间在3日之内[之外]的文件。
find.-mmin-3[+3] 找出修改数据时间在3分钟之内[之外]的文件。
find.-atime-3[+3] 找出访问时间在3日之内[之外]的文件。
find.-amin-3[+3] 找出访问时间在3分钟之内[之外]的文件。
find.-ctime-3[+3] 找出修改状态时间在3日之内[之外]的文件。
find.-cmin-3[+3] 找出修改状态时间在3分钟之内[之外]的文件。
11)find.-newer eldest_file!-newer newest_file 找出文件的更改时间 between eldest_file and newest_file。
find.-newer file 找出所有比file的更改时间更新的文件
find.!-newer file 找出所有比file的更改时间更老的文件
12)find.-type d 找出文件类型为目录的文件。
find.!-type d 找出文件类型为非目录的文件。
b目录。
c管道文件。
l普通文件。
13)find.-size [+/-]100[c/k/M/G] 表示文件的长度为等于[大于/小于]100块[字节/k/M/G]的文件。
14)find.-empty 查找所有的空文件或者空目录.15)find.-type f | xargs grep “ABC”
使用xargs和-exec的区别是,-exec可能会为每个搜索出的file,启动一个新的进程执行-exec的操作, 而xargs都是在一个进程内完成, 效率更高.2.crontab:
文件格式如下(每个列之间是使用空格分开的):
第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
分 时 日 月 星期 要运行的命令21* * * /apps/bin/cleanup.sh
上面的例子表示每晚的21:30运行/apps/bin目录下的cleanup.sh。
4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、10、22日的4:45运行/apps/bin目录下的backup.sh。1 * * 6,0 /bin/find-name “core”-exec rm {};
上面的例子表示每周六、周日的1:10运行一个find命令。
0,30 18-23 * * * /apps/bin/dbcheck.sh
上面的例子表示在每天18:00至23:00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh。
0 23 * * 6 /apps/bin/qtrend.sh
上面的例子表示每星期六的11:00pm运行/apps/bin目录下的qtrend.sh。
-u 用户名。
-e 编辑crontab文件。
-l 列出crontab文件中的内容。
-r 删除crontab文件。
系统将在/var/spool/cron/目录下自动保存名为的cron执行脚本.cron是定时完成的任务, 在任务启动时,一般来讲都是重新启动一个新的SHELL, 因此当需要使用登录配置文件的信息,特别是环境变量时,是非常麻烦的.一般这种问题的使用方法如下:
0 2 * * *(susomedir | split-d-b 500m #tar分卷压缩
/>cat x* > mytarfile.tar.gz
#tar多卷合并
13.把man或info的信息存为文本文件
/> man tcsh | col-b > tcsh.txt
/> info tcsh-o tcsh.txt-s
14.查看正在执行进程的线程数
/>ps-eo “args nlwp pid pcpu”
15.使用md5sum计算文件的md5
/> md5sum test.c
07af691360175a6808567e2b08a11724 test.c
/> md5sum test.c > hashfile
/> md5sum –c hashfile # 验证hashfile中包含的md5值和对应的文件,在执行该命令时是否仍然匹配, 如果此时test.c被修改了,该命令将返回不匹配的警告.16.在ps命令中显示进程的完整的命令行参数
/>ps auwwx
17.chkconfig:
1).编辑chkconfig操作的Shell文件头。
#!/bin/bash # # chkconfig: 2345 20 80 # description: Starts and stops the Redis Server
这个注释头非常重要,否则chkconfig命令无法识别。其中2345表示init启动的级别,即在2、3、4、5这四个级别中均启动该服务。20表示该脚本启动的优先级,80表示停止的优先级。这些可以在chkconfig的manpage中找到更为详细的说明。
2).编译Shell文件的内容:
case “$1” in start)
#TODO: 执行服务程序的启动逻辑。
;;stop)
#TODO: 执行服务程序的停止逻辑。
;;restart)
;;reload)
;;condrestart)
;;status)
;;
上面列出的case条件必不可少,如果确实没有就当做占位符放在那里即可,如上例。
3).添加和删除服务程序:
#--add选项表示添加新的服务程序。
/> chkconfig--add redis_6379 #查看是否删除或添加成功
/> chkconfig | grep redis_6379 redis_6379 0:off 1:off 2:on 3:on 4:on 5:on 6:off #--del选项表示删除已有的服务程序。
/> chkconfig--del redis_6379 分类: Linux Shell