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 - 块设备文件。
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 "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列要运行的命令
分 时 日 月 星期 要运行的命令
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 "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 * * * ( su - USERNAME -c "export LANG=en_US; /home/oracle/yb2.5.1/apps/admin/1.sh"; ) > /tmp/1.log 2>&1
如果打算执行多条语句, 他们之间应使用分号进行分割. 注: 以上语句必须在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) 使用方式:
cut -d: -f3 cut_test.txt (基于":"作为分隔符,同时返回field 3中的数据) *field从0开始计算。
cut -d: -f1,3 cut_test.txt (基于":"作为分隔符,同时返回field 1和3中的数据)
cut -d: -c1,5-10 cut_test.txt(返回第1个和第5-10个字符)
5. sort:
1) 对文件内容进行排序,缺省分割符为空格,如果自定义需要使用-t选择,如-t:
2) 使用分隔符分割后,第一个field为0,awk中为1
3) 具体用法如下:
sort -t: sort_test.txt(缺省基于第一个field进行排序,field之间的分隔符为":")
sort -t: -r sort_test.txt(缺省基于第一个field进行倒序排序,field之间的分隔符为":")
sort -t: +1 sort_test.txt(基于第二个field进行排序,field之间的分隔符为":")
sort +3n sort_test.txt(基于第三个field进行排序,其中n选项提示是进行"数值型"排序)
sort -u sort_test.txt(去除文件中重复的行,同时基于整行进行排序)
sort -o output_file -t: +1.2[n] sort_text.txt(基于第二个field,同时从该field的第二个字符开始,这里n的作用也是"数值型"排序,并将结果输出到output_file中)
sort -t: -m +0 filename1 filename2(合并两个文件之后在基于第一个field排序)
6. pgrep和pkill:
查找和杀死指定的进程, 他们的选项和参数完全相同, 这里只是介绍pgrep
/> sleep 100&
1000
/> sleep 100&
1001
/> pgrep sleep
1000
1001
/> pgrep -d: sleep # -d定义多个进程之间的分隔符, 如果不定义则使用newline
1000:1001
/> pgrep -n sleep # -n表示如果该程序有多个进程,查找最新的.
1001
/> pgrep -o sleep # -o表示如果该程序有多个进程,查找最老的.
1000
/> pgrep -G root,oracle sleep # -G 表示进程的group id在-G后面的组列表中的进程会被考虑
1000
1001
/> pgrep -u root,oracle sleep # -u 表示进程的effetive user id在-u后面的组列表中的进程会被考虑
1000
1001
/> pgrep -U root,oracle sleep # -U 表示进程的real user id在-u后面的组列表中的进程会被考虑
1000
1001
/> pgrep -x sleep # -x 表示进程的名字必须完全匹配, 以上的例子均可以部分匹配
1000
1001
/> pgrep -x sle
/> pgrep -l sleep # -l 将不仅打印pid,也打印进程名
1000 sleep
1001 sleep
/> pgrep -lf sleep # -f 一般与-l合用, 将打印进程的参数
1000 sleep 100
1001 sleep 100
/> pgrep -f sleep -d, | xargs ps -fp
UID PID PPID C STIME TTY TIME CMD
root 1000 2138 0 06:11 pts/5 00:00:00 sleep 1000
root 1001 2138 0 06:11 pts/5 00:00:00 sleep 1000
7. fuser:
fuser -m /dev # 列出所有和/dev设备有染的进程pid.
fuser testfile # 列出和testfile有染的进程pid
fuser -u testfile # 列出和testfile有染的进程pid和userid
fuser -k testfile # 杀死和testfile有染的进程pid
8. mount:
如何在unix下面mount一个windows下面的共享目录
mount -t smbfs -o username=USERNAME,password=PASSWORD //windowsIp/pub_directory /mountpoint
/> mkdir -p /mnt/win32
/> mount -o username=administrator,password=1234 //10.1.4.103/Mine /mnt/win32
/> umount /mnt/win32 # 卸载该mount.
9. netstat:
-a 表示显示所有的状态
-l 则只是显示listen状态的,缺省只是显示connected
-p 显示应用程序的名字
-n 显示ip、port和user等信息
-t 只显示TCP的连接
/> netstat -apnt
/> netstat -lpnt #如果只是显示监听端口的状态,可以使用该命令
10. tune2fs:
调整ext2/ext3文件系统特性的工具
-l 查看文件系统信息
/> tune2fs -l /dev/sda1 #将会列出所有和该磁盘分区相关的数据信息,如Inode等。
/> tune2fs -l /dev/sda1 | grep -i "block size" #查看当前文件系统的块儿尺寸
/> tune2fs -l /dev/sdb1 |grep -i "mount count" #查看 mount count 挂载次数
11. 开启或关闭Linux(iptables)防火墙
重启后永久性生效:
/> chkconfig iptables on #开启
/> chkconfig iptables off #关闭
即时生效,重启后还原:
/> service iptables start #开启
/> service iptables stop #关闭
12. tar 分卷压缩和合并
以每卷500M为例
/>tar cvzpf - somedir | 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
相关推荐
linux指令大全 linux指令大全 linux指令大全 linux指令大全 linux指令大全
Linux 指令大全Linux 指令大全
Linux指令Linux指令Linux指令Linux指令Linux指令Linux指令Linux指令Linux指令Linux指令Linux指令
linux系统指令大全
Linux基础指令与文件系统,适合linux初学者
该文档 包含了 Linux 常用的指令 让你跟好的熟练使用 Linux
linux指令,工具大全, 可以参考的一个文档。
Linux常用指令速查手册
Linux指令大全 Linux指令大全 Linux指令大全
Linux 基本指令
Linux 操作系统 移植指令 Linux 操作系统 移植指令 Linux 操作系统 移植指令 Linux 操作系统 移植指令
最详尽的linux指令集锦,个人的一些总结和经验。
linux常用指令大全,收集所有常有命令,绝对实用,超值
用惯了linux指令,在 windows下想使用类似linux指令,可使用该文件,将父目录添加到环境变量即可
本人积累的一些linux常用指令
另一个版本的pdf格式的Linux操作指令大全。
Linux 指令集 Linux 指令集 Linux 指令集 Linux 指令集
linux常用指令(全)
可快速查询Linux常用指令,及指令的帮助文档。并可添加维护。