中国Unix/Linux软件开发联盟 http://www.lisdn.com
Linux 操作系统Shell常用命令总结 (linux系统)
linux软件开发
1. find
find pathname -options [-print -exec -ok] 让我们来看看该命令的参数:
pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 -print find命令将匹配的文件输出到标准输出。
-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \\;,注意{}和\\;之间的空格,同时两个{}之间没有空格, 注意一定有分号结尾。
0) -ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
find . -name \找到文件名为datafile*, 同时创建实际为1天之内的文件, 然后显示他们的明细.
find . -name \exec rm -f {} \\; 找到文件名为datafile*, 同时创建实际为1天之内的文件, 然后删除他们.
find . -name \这两个例子和上面的唯一区别就是-ok会在每个文件被执行命令时提示用户, 更加安全.
find . -name \
1) find . -name 基于文件名查找,但是文件名的大小写敏感. find . -name \
2) find . -iname 基于文件名查找,但是文件名的大小写不敏感. find . -iname \
中国Unix/Linux软件开发联盟 http://www.lisdn.com
中国Unix/Linux软件开发联盟 http://www.lisdn.com
3) find . -maxdepth 2 -name fred 找出文件名为fred,其中find搜索的目录深度为2(距当前目录), 其中当前目录被视为第一层.
4) find . -perm 644 -maxdepth 3 -name \ (表示权限为644的, 搜索的目录深度为3, 名字为datafile*的文件)
5) find . -path \列出所有不在./rw及其子目录下文件名为datafile*的文件。
find . -path \列出所有符合dir*的目录及其目录的文件.
find . \\( -path \列出所有不在./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日之内[之外]的文件。
中国Unix/Linux软件开发联盟 http://www.lisdn.com
中国Unix/Linux软件开发联盟 http://www.lisdn.com 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 - 块设备文件。 d - 目录。 c - 字符设备文件。 p - 管道文件。 l - 符号链接文件。 f - 普通文件。
13) find . -size [+/-]100[c/k/M/G] 表示文件的长度为等于[大于/小于]100块[字节/k/M/G]的文件。
14) find . -empty 查找所有的空文件或者空目录.
15) find . -type f | xargs grep \
使用xargs和-exec的区别是, -exec可能会为每个搜索出的file,启动一个新的进程执行-exec的操作, 而xargs都是在一个进程内完成, 效率更高.
2. crontab:
文件格式如下(每个列之间是使用空格分开的):
中国Unix/Linux软件开发联盟 http://www.lisdn.com
中国Unix/Linux软件开发联盟 http://www.lisdn.com 第1列分钟1~59
第2列小时1~23(0表示子夜) 第3列日1~31 第4列月1~12
第5列星期0~6(0表示星期天) 第6列要运行的命令
分 时 日 月 星期 要运行的命令
30 21* * * /apps/bin/cleanup.sh
上面的例子表示每晚的21:30运行/apps/bin目录下的cleanup.sh。 45 4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、10、22日的4:45运行/apps/bin目录下的backup.sh。 10 1 * * 6,0 /bin/find -name \ 上面的例子表示每周六、周日的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/目录下自动保存名为
中国Unix/Linux软件开发联盟 http://www.lisdn.com
中国Unix/Linux软件开发联盟 http://www.lisdn.com cron是定时完成的任务, 在任务启动时,一般来讲都是重新启动一个新的SHELL, 因此当需要使用登录配置文件的信息,特别是环境变量时,是非常麻烦的. 一般这种问题的使用方法如下: 0
2
*
*
*
(
su
-
USERNAME
-c
\
LANG=en_US;
/home/oracle/yb2.5.1/apps/admin/1.sh\
如果打算执行多条语句, 他们之间应使用分号进行分割. 注: 以上语句必须在root的帐户下执行.
3. nohup:
nohup command &
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户之后继续运行相应的进程。 Nohup就是不挂起的意思(no hang up)。 4. cut:
1) cut一般格式为:cut [options] file1 file2 -c list 指定剪切字符数。 -f field 指定剪切域数。
-d 指定与空格和tab键不同的域分隔符。 -c 用来指定剪切范围,如下所示:
-c1,5-7 剪切第1个字符,然后是第5到第7个字符。 -c2- 剪切第2个到最后一个字符 -c-5 剪切最开始的到第5个字符 -c1-50 剪切前50个字符。 -f 格式与-c相同。
-f1,5 剪切第1域,第5域。
-f1,10-12 剪切第1域,第10域到第12域。 2) 使用方式:
中国Unix/Linux软件开发联盟 http://www.lisdn.com