Linux 操作系统Shell常用命令总结 linux系统.docx
《Linux 操作系统Shell常用命令总结 linux系统.docx》由会员分享,可在线阅读,更多相关《Linux 操作系统Shell常用命令总结 linux系统.docx(11页珍藏版)》请在冰点文库上搜索。
Linux操作系统Shell常用命令总结linux系统
Linux操作系统Shell常用命令总结(linux系统)
linux软件开发
1.find
findpathname-options[-print-exec-ok]
让我们来看看该命令的参数:
pathnamefind命令所查找的目录路径。
例如用.来表示当前目录,用/来表示系统根目录。
-printfind命令将匹配的文件输出到标准输出。
-execfind命令对匹配的文件执行该参数所给出的shell命令。
相应命令的形式为'command'{}\;,注意{}和\;之间的空格,同时两个{}之间没有空格,
注意一定有分号结尾。
0)-ok和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
find.-name"datafile"-ctime-1-execls-l{}\;找到文件名为datafile*,同时创建实际为1天之内的文件,然后显示他们的明细.
find.-name"datafile"-ctime-1-execrm-f{}\;找到文件名为datafile*,同时创建实际为1天之内的文件,然后删除他们.
find.-name"datafile"-ctime-1-okls-l{}\;这两个例子和上面的唯一区别就是-ok会在每个文件被执行命令时提示用户,更加安全.
find.-name"datafile"-ctime-1-okrm-f{}\;
1)find.-name基于文件名查找,但是文件名的大小写敏感.
find.-name"datafile*"
2)find.-iname基于文件名查找,但是文件名的大小写不敏感.
find.-iname"datafile*"
3)find.-maxdepth2-namefred找出文件名为fred,其中find搜索的目录深度为2(距当前目录),其中当前目录被视为第一层.
4)find.-perm644-maxdepth3-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.-userydev找出所有属主用户为ydev的文件。
find.!
-userydev找出所有属主用户不为ydev的文件,注意!
和-user之间的空格。
7)find.-nouser找出所有没有属主用户的文件,换句话就是,主用户可能已经被删除。
8)find.-groupydev找出所有属主用户组为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.-newereldest_file!
-newernewest_file找出文件的更改时间betweeneldest_fileandnewest_file。
find.-newerfile找出所有比file的更改时间更新的文件
find.!
-newerfile找出所有比file的更改时间更老的文件
12)find.-typed找出文件类型为目录的文件。
find.!
-typed找出文件类型为非目录的文件。
b-块设备文件。
d-目录。
c-字符设备文件。
p-管道文件。
l-符号链接文件。
f-普通文件。
13)find.-size[+/-]100[c/k/M/G]表示文件的长度为等于[大于/小于]100块[字节/k/M/G]的文件。
14)find.-empty查找所有的空文件或者空目录.
15)find.-typef|xargsgrep"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列要运行的命令
分时日月星期要运行的命令
3021***/apps/bin/cleanup.sh
上面的例子表示每晚的21:
30运行/apps/bin目录下的cleanup.sh。
4541,10,22**/apps/bin/backup.sh
上面的例子表示每月1、10、22日的4:
45运行/apps/bin目录下的backup.sh。
101**6,0/bin/find-name"core"-execrm{}\;
上面的例子表示每周六、周日的1:
10运行一个find命令。
0,3018-23***/apps/bin/dbcheck.sh
上面的例子表示在每天18:
00至23:
00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh。
023**6/apps/bin/qtrend.sh
上面的例子表示每星期六的11:
00pm运行/apps/bin目录下的qtrend.sh。
-u用户名。
-e编辑crontab文件。
-l列出crontab文件中的内容。
-r删除crontab文件。
系统将在/var/spool/cron/目录下自动保存名为的cron执行脚本.
cron是定时完成的任务,在任务启动时,一般来讲都是重新启动一个新的SHELL,因此当需要使用登录配置文件的信息,特别是环境变量时,是非常麻烦的.
一般这种问题的使用方法如下:
02***(su-USERNAME-c"exportLANG=en_US;/home/oracle/yb2.5.1/apps/admin/1.sh";)>/tmp/1.log2>&1
如果打算执行多条语句,他们之间应使用分号进行分割.注:
以上语句必须在root的帐户下执行.
3.nohup:
nohupcommand&
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。
该命令可以在你退出帐户之后继续运行相应的进程。
Nohup就是不挂起的意思(nohangup)。
4.cut:
1)cut一般格式为:
cut[options]file1file2
-clist指定剪切字符数。
-ffield指定剪切域数。
-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:
-f3cut_test.txt(基于":
"作为分隔符,同时返回field3中的数据)*field从0开始计算。
cut-d:
-f1,3cut_test.txt(基于":
"作为分隔符,同时返回field1和3中的数据)
cut-d:
-c1,5-10cut_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:
-rsort_test.txt(缺省基于第一个field进行倒序排序,field之间的分隔符为":
")
sort-t:
+1sort_test.txt(基于第二个field进行排序,field之间的分隔符为":
")
sort+3nsort_test.txt(基于第三个field进行排序,其中n选项提示是进行"数值型"排序)
sort-usort_test.txt(去除文件中重复的行,同时基于整行进行排序)
sort-ooutput_file-t:
+1.2[n]sort_text.txt(基于第二个field,同时从该field的第二个字符开始,这里n的作用也是"数值型"排序,并将结果输出到output_file中)
sort-t:
-m+0filename1filename2(合并两个文件之后在基于第一个field排序)
6.pgrep和pkill:
查找和杀死指定的进程,他们的选项和参数完全相同,这里只是介绍pgrep
/>sleep100&
1000
/>sleep100&
1001
/>pgrepsleep
1000
1001
/>pgrep-d:
sleep#-d定义多个进程之间的分隔符,如果不定义则使用newline
1000:
1001
/>pgrep-nsleep#-n表示如果该程序有多个进程,查找最新的.
1001
/>pgrep-osleep#-o表示如果该程序有多个进程,查找最老的.
1000
/>pgrep-Groot,oraclesleep#-G表示进程的groupid在-G后面的组列表中的进程会被考虑
1000
1001
/>pgrep-uroot,oraclesleep#-u表示进程的effetiveuserid在-u后面的组列表中的进程会被考虑
1000
1001
/>pgrep-Uroot,oraclesleep#-U表示进程的realuserid在-u后面的组列表中的进程会被考虑
1000
1001
/>pgrep-xsleep#-x表示进程的名字必须完全匹配,以上的例子均可以部分匹配
1000
1001
/>pgrep-xsle
/>pgrep-lsleep#-l将不仅打印pid,也打印进程名
1000sleep
1001sleep
/>pgrep-lfsleep#-f一般与-l合用,将打印进程的参数
1000sleep100
1001sleep100
/>pgrep-fsleep-d,|xargsps-fp
UIDPIDPPIDCSTIMETTYTIMECMD
root10002138006:
11pts/500:
00:
00sleep1000
root10012138006:
11pts/500:
00:
00sleep1000
7.fuser:
fuser-m/dev#列出所有和/dev设备有染的进程pid.
fusertestfile#列出和testfile有染的进程pid
fuser-utestfile#列出和testfile有染的进程pid和userid
fuser-ktestfile#杀死和testfile有染的进程pid
8.mount:
如何在unix下面mount一个windows下面的共享目录
mount-tsmbfs-ousername=USERNAME,password=PASSWORD//windowsIp/pub_directory/mountpoint
/>mkdir-p/mnt/win32
/>mount-ousername=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"blocksize"#查看当前文件系统的块儿尺寸
/>tune2fs-l/dev/sdb1|grep-i"mountcount"#查看mountcount挂载次数
11.开启或关闭Linux(iptables)防火墙
重启后永久性生效:
/>chkconfigiptableson#开启
/>chkconfigiptablesoff#关闭
即时生效,重启后还原:
/>serviceiptablesstart#开启
/>serviceiptablesstop#关闭
12.tar分卷压缩和合并
以每卷500M为例
/>tarcvzpf-somedir|split-d-b500m#tar分卷压缩
/>catx*>mytarfile.tar.gz#tar多卷合并
13.把man或info的信息存为文本文件
/>mantcsh|col-b>tcsh.txt
/>infotcsh-otcsh.txt-s
14.查看正在执行进程的线程数
/>ps-eo"argsnlwppidpcpu"
15.使用md5sum计算文件的md5
/>md5sumtest.c
07af691360175a6808567e2b08a11724test.c
/>md5sumtest.c>hashfile
/>md5sum–chashfile#验证hashfile中包含的md5值和对应的文件,在执行该命令时是否仍然匹配,如果此时test.c被修改了,该命令将返回不匹配的警告.
16.在ps命令中显示进程的完整的命令行参数
/>psauwwx
linuxlinux系统linux教程linux软件开发
中国Unix/Linux软件开发联盟技术门户网,为中国Unix/Linux软件开发者建造一个属于我们的互联网家
园,为中国Unix/Linux的发展撑起一片蓝天