linux常见命令汇总

1、root用户无权限格式化namenode

chown 777 /hadoop-2.7.1/bin/hdfs

1、把文件夹压缩成压缩包

tar -jcvf http_out_07.tar.bz2 ./http_out_07
tar -zcvf output.tar.gz ./output

2、查看当前目录下所有文件的大小

ll -h
	total 1.6G
	drwxr-xr-x 2 deepen app 4.0K Mar 16 18:50 http_out
	-rw-r--r-- 1 deepen app 1.6G Mar 16 18:37 mme_out.tar.gz

3、df-查看不同的文件系统有多少空闲的磁盘空间、被挂载文件系统的磁盘利用率(仅以K显示)。
4、df -h 以可读的方式展示磁盘空间(会根据文件大小以K,M,G直观显示)

[deepen@vq18ptkh04 mr]$ df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vg00-lv_root     19G   18G   67M 100% /
tmpfs                        20G  7.3G   13G  37% /dev/shm
/dev/sda1                  1008M   62M  895M   7% /boot
/dev/mapper/vg00-lv_app01    20G   19G  541M  98% /app
/dev/mapper/vg00-lv_data01   39G   20G   17G  55% /data
[deepen@vq18ptkh04 mr]$ ls -l
total 1624656

文件显示对应关系:

 drwxr-xr-x 	2 		deepen 	app       	4096 		Mar 16 18:50 	http_out
 -rw-r--r-- 	1 		deepen 	app 		1663638337 	Mar 16 18:37 	mme_out.tar.gz

按列分别为:文件属性、文件数、拥有者、所属的group、文件大小、 建档日期、文件名

5、显示当前目录各个文件的大小

[deepen@vq18ptkh04 mr]$ du -h *
	13G     http_out
	1.6G    mme_out.tar.gz

显示文件夹下第一层文件的大小–max-depth=0表示深入到第几层,0表示不深入到子目录

du -h --max-depth=0 ./*

6、显示文件当前文件夹下有多少个文件

ll|wc -l
	216

7、从hdfs上获得数据

hdfs dfs -get /jc_deepen/tmp/http_out/0008* ./http_out_07

8、查看文件中特殊字符的个数

grep -o 'haha' filename | wc -l

9、sed全局替换文件中的关键字

sed -i “s/原字符串/新字符串/g”
g表示行内全部替换, 当需要从第N处匹配开始替换时,可以使用 /Ng
-i直接编辑文件选项

sed -i 's/\x01/,/g' /home/fast/load_data/test_http.txt

常用选项:
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e∶直接在指令列模式上进行 sed 的动作编辑;
-f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i∶直接修改读取的档案内容,而不是由萤幕输出。

常用命令:
a∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
grep
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。

awk
把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

cat test.log | awk -F" " '{print $9}'

取第几行

sed -n '5p' path
	sed -n '1,6p' /data1/gyl/duishu/bdap_$DATE/$table/count.log

a=“39040188000046474|+|20180129|+|20180129|+|153505|+|8416|+||+|0|+|3173|+|5005250.27”
可以分割几个字段

b=$(echo $a | awk -F '|+|' '{print NF-1}')
b=8
b=$(echo $a | awk -F '|+|' '{print NF}')
b=9

10、压缩命令 把文件夹下文件压缩到另外一个文件

tar -jcvf 2017031719_mme_part_04.tar.bz2 ./2017031717_mme_part_04

12、把一个压缩文件解压到相应目录(-C)

tar -xjvf  /home/fast/data/20091304-mme.tar.gz -C /home/fast/mme/

13、取文件的前10行形成一个新文件

head -10 file > newfile

14、合并多个文件

cat /home/fast/data/2017031721-http/0 /home/fast/data/2017031721-http/1 > /home/fast/load_data/test_http.txt

15、合并多个文件追加到test_http.txt后

cat /home/fast/data/2017031721-http/0 /home/fast/data/2017031721-http/1 >> /home/fast/load_data/test_http.txt

16、sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具
sudo root

su - hadoop  转入hadoop用户切导入环境变量

17、导入root环境变量

source ~/.bash_profile

18、查询进程

ps -ef|grep load
	ps

ps -aux

a:显示所有程序
u:以用户为主的格式来显示
x:显示所有程序,不以终端机来区分

19、在后台不间断的运行命令

nohup ./load_data_http2.sh >load_data_http2.log &

20、把/home/fast目录下的所有文件和目录的拥有者改为hadoop

chown hadoop:oinstall /home/fast/*

21、递归修改目录下所有文件和目录权限(-R 递归目录)

chown –R hadoop:oinstall dir

22、释放所有权限

chmod 777 test.sh

23、shell 脚本 for 循环

#!/bin/bash
	for i in {1..8} do
		if [ $i -gt 2 ] && [ $i -lt 4 ] then  #[]开始结尾的空格不能省略
		      
			echo $i     
			continue   
		fi
		echo "hello world"
	done  

24、shell关系符号

-eq ==
-ne !=
-gt >
-lt <
-ge >=
-le <=

25、自动生成ctl文件

sqluldr2.bin user=zhejiang/zj*2016 query="select * from cfg_cilist" table=cfg_cilist head=yes log=$path/out$day.log file=$path/$day.txt ontrol=$path/$tb.ctl mode=insert field=0x60;

26、遍历一个文件夹的子文件夹

solr_dirs=$(ls -l /opt/solr-6.6.0/server/solr |awk '/^d/ {print $NF}')
for filename in ${solr_dirs}
do
	echo ${filename}
done

27、shell脚本提交带参数

./start-lucene.sh default sparktest hdfs://bdpha/test/output /opt/solr-6.6.0/server/solr/ 7
./test.sh hdfs://master2:9000/test/output /opt/solr-6.6.0/server/solr/ 7
./solrClient.sh hdfs://172.16.210.201:9000/test/output /opt/solr-6.6.0/server/solr/ 7 true
./solrClient.sh hdfs://master2:9000/test/output /opt/solr-6.6.0/server/solr/ 13 false

/opt/solr-6.6.0/server/solr/collection1_shard1_replica1/data/index

28、shell脚本调用远程调用其他节点的shell

ssh -tt master2 << EOF    
sh /lucene_client/test.sh
exit
EOF

29、 创建一个权限为777的C目录

mkdir -m 777 c

30、查看运行端口14031

netstat -anp | grep 8983

31、查询solr的进程

ps -ef|grep solr

32、强制删除123的进程

kill -9 123

删除123的进程

kill 123

33、从当前光标处,向上查找world关键字

:/world

从当前光标处,向后查找world关键字

:?world 

34、递归复制整个目录

cp -R patha pathb

35、显示所有文件包括隐藏文件

ll -a

36、shell脚本中$含义

$0	当前脚本的文件名
$n	传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$#	传递给脚本或函数的参数个数。
$*	传递给脚本或函数的所有参数。
$@	传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同。



$?	上个命令的退出状态,或函数的返回值。(大部分命令执行成功会返回 0,失败返回 1)
$$	当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。



-e filename 				如果 filename 存在,		为真
-d filepath 				如果 filepath 为目录,		为真
-f filename 				如果 filename 为常规文件,	为真
-L filename 				如果 filename 为符号链接,	为真
-r filename 				如果 filename 为可读,		为真
-w filename 				如果 filename 为可写,		为真
-x filename 				如果 filename 为可执行,	为真
filename1 -nt filename2 	如果 filename1比filename2新,为真
filename1 -ot filename2 	如果 filename1比filename2旧,为真
-z string 					如果 string长度为零,		为真
-n string 					如果 string长度非零,		为真

if [ -e filename ]

37、shell脚本中判断hdfs路径是否存在

hadoop fs -test -d path            #path为路径
if [ $? -eq 0 ]
then
	echo "hdfs目录存在"
else
	echo "hdfs目录不存在"
fi

38、shell脚本中判断文件是否存在

hadoop fs -test -e $OUTPUT_PATH/$table

39、创建多级目录(-p)

mkdir -p a/b/c

40、cut详解
-d :后面跟分隔字符,分隔字符要用双引号括起来
-c :后面接的是第几个字符
-f :后面接的是第几个区块

目录下有一个文档password内容为:
spark:hive:hadoop:hdfs:kafka:flume:hbase:akka

[root@master1 test]# cat password | cut -d ":" -f1
spark
[root@master1 test]# cat password | cut -d ":" -f2
hive
[root@master1 test]# cat password | cut -d ":" -f3
hadoop
[root@master1 test]# cat password | cut -c1
s
[root@master1 test]# cat password | cut -c2
p
[root@master1 test]# cat password | cut -c2-8
park:hi

41、shell脚本总结
(1)计算int相加时用expr关键字,但是等号后面的空格要严格安装下面所写
a= expr 2 + 2
(2)也可以用“$(())”来计算

a=$((2+2))

(3)判断是否是整数的脚本

while true
do
	read -p "Please input:" a
	expr $a + 0 &> /dev/null
	[ $? -eq 0 ] && echo int||echo chars
done

(4)与或非
在[]中使用
与:-a 或:-0 非:!
在[[]]中使用
与:&& 或:|| 非:!

42、shell编辑显示行号

:set nu

43、linux调用java的.jar文件方法

java -cp test.jar com.cn.test.Test

44、计时器格式
cron.removeExpiredCache = 0 0/5 * * * ?
秒 分 时 月中天 月份 月中星期几 年(可选)
quar.******//两者有区别

允许填入的值
秒			必填	0-59
分			必填	0-59
时			必填	0-23
日			必填	1-31
月			必填	1-12 or JAN-DEC
周			必填	1-7  or SUN-SAT
年			非必填	空	or 1970-2099
下面几个例子
0 0 12 * * ?				每天12点触发
0 15 10 ? * *				每天10点15分触发
0 15 10 * * ?				每天10点15分触发
0 15 10 * * ? *				每天10点15分触发
0 15 10 * * ? 2005			2005年每天10点15分触发
0 * 14 * * ?				每天14点到14点59分每分钟触发
0 0/5 14 * * ?				每天14点到14点59分(整点开始,每隔5分钟触发)
0 0/5 14,18 * * ?			每天14点到14点59分(整点开始,每隔5分钟触发),每天18点到18点59分(整点开始,每隔5分钟触发)
0 0-5 14 * * ?				每天14点整到14点5分每分钟触发
0 10,44 14 ? 3 WED			每年3月份每周三14点10分和14点44分触发
0 15 10 ? * MON-FRI			每星期一到星期五10点15分触发
0 15 10 15 * ?				每月15号10点15分触发
0 15 10 L * ?				每月最后一天的10点15分触发
0 15 10 ? * 6L				每月最后一周的星期五的10点15分触发
0 15 10 ? * 6L 2002-2005	从2002年到2005年每月的最后一周的星期五的10点15分触发
0 15 10 ? * 6#3				每个月的第三周的星期五的10点15分触发
0 0 12 1/5 * ?				每个月的第一个中午12点开始,每隔5天12点触发
0 11 11 11 11 ?				每年11月11号11点11分触发

L表示最后一个
W表示最近一个工作日

45、while [ -h dist ]; do done

-h判断一个文件存在并且是一个软链接

软链接:相当于windows下的快捷方式。软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看的软链接后自动跳到对应的文件位置处进行处理。

硬链接:看作是同一个文件的不同命名。硬链接为文件开设一个新的目录项,硬链接与文件原有的名字是平权的,在linux里看来他们是等价的,硬链接不能链接两个不同的文件系统的文件。

46、expr计算整数变量值
expr (2+3)*4

47、dirname 和 pwd
pwd: 获得当前目录
dirname: 获得程序运行时的目录

48、linux中shell变量KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲、@、$0、$1、$2、、、、、的含义
$$
shell本身的PID(ProcessID)
$!
shell最后运行的后台Process的PID
$?
最后命令结束的结束代码(返回值)
$-
使用Set命令设定的Flag一览
&quot; * 所有参数列表。如&quot; “用[]括起来的情况,以”$1 2... 2... n"的形式输出所有参数。
@ &quot; @ 所有参数列表。如&quot;
“用[]括起来的情况,以”$1" 2 &quot; . . . &quot; 2&quot;...&quot; n"的形式输出所有参数。
$#
添加到shell的参数的个数
$0
shell本身的文件名
1   1~ n
添加到shell的各参数的值。

49、2>&1结尾表示正确输出和错误输出都有,将标准错误2重定向到标准输出1中,此处&是为了让bash将1解释成标准输出而不是文件1

51、字符串测试操作符
-n “字符串” 若字符串长度不为0,则为真,n可以理解为no zero
-z “字符串” 若字符串长度为0,则为真,z可以理解为zero
“串1"“串2” 若字符串1等于字符串2,则为真,可使用"=“代替”
“串1”!=“串2” 若字符串1不等于字符串2,则为真,
52、不同符号测试表达式[]、[[]]、(())、test的区别

测试表达式符号			[]			   test				[[]]		   (())
						
边界是否需要空格			需要				需要				需要			   不需要
						
逻辑操作符				!、-a、-o		!、-a、-o		!、&&、||	   !、&&、||
		
整数比较操作符			-eq、-gt、-lt	-eq、-gt、-lt	-eq、-gt、-lt	=、>、<、>=、<=
						-ge、-le		-ge、-le		-ge、-le或=、>、
														<、>=、<=
	
字符串比较操作符			=、==、!=		=、==、!=		=、==、!=		=、==、!=
	
是否支持通配符匹配		不支持			不支持			支持				不支持

53、expr命令
expr 表达式
表达式说明:
用空格隔开每一项
用(反斜杠)放在shell特定字符前面
对包含空格和其他特殊字符的字符串要用引号括起来
1、计算字串长度

>expr length "this is a test"
>14

2、抓取字串

>expr substr "this is a test" 3 5
>is is

3、抓取第一个字符数字串出现位置

>expr index "sarasara" a
>2

4、整数运算

>expr 14 % 9
>5
	
>expr 10 + 10
>20
	
>expr 30 / 3 / 2
>5
	
>expr 30 \* 3
>90

54、如果没有安装dos2unix,则用下面命令进行安装

yum install dos2unix -y

55、bash命令参数调试

	sh [ -nvx ] test.sh
	-n 不会执行该脚本,仅查询脚本语法是否有问题,并给出错误提示。
	-v 在执行脚本时,先将脚本的内容输出到屏幕上,然后执行脚本,如果有错误,也会给出错误提示。
	-x 将执行的脚本内容及输出显示到屏幕上,这是对调试很有用的参数。

56、vim常用编辑器操作技巧

命令											说明

G或(shift+g)						将光标移动到最后一行
gg									将光标移动到文件的第一行,等价于1gg或1G
0									数字0,表示将光标从所在位置移动到当前行的开头
$									从光标所在位置将光标移动到当前行的结尾
n<Enter>						    n为数字,Enter为回车键,表示将光标从当前位置向下移动n行
ngg									n为数字,表示移动到文件的第n行,可配合set un查看
.									重复前一个执行过的动作
u									撤销上一个动作

57、把一个命令的结果作为变量的内容赋值的方法

变量名 = `ls`
变量名 = $(ls)

58、获取脚本路径

dirname path/test.sh 获取脚本路径path
basename path/test.sh获取脚本名字

59、压缩用法
tar命令(注:tar是打包,不是压缩)

解包:tar xvf Filename.tar
打包:tar czvf FileName.tar DirName

gz命令

解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz和.tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
压缩多个文件:tar zcvf FileName.tar.gz DirName1 DirName2 DirName3 ...

bz2命令

解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩:bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

bz命令:

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
.tar.bz
解压:tar jxvf FileName.tar.bz

Z命令:

解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

zip命令:

解压:unzip FileName.zip
压缩:zip FileName.zip fileName
	文件夹 zip -r FileName.zip DirName

.rar命令:

解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

.lha命令:

解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName

60、shell中的${}、##和%%使用范例
file=/dir1/dir2/dir3/my.file.txt

${file#*/}:删掉第一个/及其左边的字符串
	得:dir1/dir2/dir3/my.file.txt
	
${file##*/}:删掉最后一个/及其左边的字符串
	得:my.file.txt
	
${file#*.}删掉第一个.及其左边的字符串
	得:file.txt

${file##*.}:删掉最后一个.及其左边的字符串
	得:txt
	
${file%/*}:删掉最后一个/及其右边的字符串
	得:/dir1/dir2/dir3
	
${file%%/*}:删掉第一个/及其右边的字符串
	得:(空值)
	
${file%.*}:删掉最后一个.及其右边的字符串
	得:/dir1/dir2/dir3/my.file
	
${file%%.*}:删掉第一个.及其右边的字符串
	得:/dir1/dir2/dir3/my
	
记忆方法为:
	#是去掉左边(键盘上#在$左边)
	%是去掉右边(键盘上%在$右边)
	单一符号是最小匹配,两个符号是最大匹配
	单一符号是删除最小的部分,两个字符是删除最大部分
	
${file:0:5}:提取最左边的5个字节
	得:/dir1
	
${file:5:5}:提取第5个字节右边的连续5个字节
	得:/dir2

${file:5}:提取第5个字节开始后面所有字节
	得:dir2/dir3/my.file.txt
	
也可以对变量值里的字符串作替换:
${file/dir/path}:将第一个dir替换为path
	得:/path1/dir2/dir3/my.file.txt
	
${file//dir/path}:将全部dir替换为path
	得:/path1/path2/path3/my.file.txt

61、小写转大写

up_tb=`echo "$tb_cobps" | tr [a-z] [A-Z]`

大写转小写

down_tb=`echo "$tb_cobps" | tr [A-Z] [a-z]`

62、shift
可以使shell启动时传入的参数左移

shift 2 	左移两位
shift		默认左移一位	

63、tr详解
-c或–complerment:取代所有不属于第一字符集的字符
-d或–delete:删除所有属于第一字符集的字符
-s或–squeeze-repeats:把连续重复的字符以单独一个字符表示
-t或–truncate-setl:先删除第一字符集较第二字符集多出的字符

实例1
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world

实例2
echo "hello 123 world 456" | tr -d '0-9'
hello world

实例3
echo aaa...a 1 b#$bb 2 c*cc/ 3 ddd 4 | tr -d -c '0-9 \n'
1  2  3  4

64、创建目录链接

举例:
当前目录是/local,而我经常要访问/usr/local/linux/work
那么我就可以使用在local下建立一个文件linkwork,
然后sudo ln -s /usr/local/linux/work /local/linkwork
即建立两者之间的链接。

删除链接
那么上面我就是rm -rf /local/linkwork

ln -s /data4/logs logs
ln -s 远程目录 本地目录
ll
logs -> /data2/logs/solr_logs/

65、free
-b:以byte为单位显示内存使用情况
-k:以KB为单位显示内存使用情况
-m:以MB为单位显示内存使用情况
-o:不显示缓冲区调节列
-s<间隔秒数>:持续观察内存使用情况
-t:显示内存总和列
-V:显示版本信息

实例:
			 total       used       free     shared    buffers     cached
Mem:      65938780   59612608    6326172        336     437340   31421672
-/+ buffers/cache:   27753596   38185184
Swap:     16777212    2901068   13876144

第一部分Mem行解释:
total:内存总数
used:已经使用内存数
free:空闲的内存数
shared:当前已经废弃不用
buffers Buffer:缓存内存数
cached Page:缓存内存数

total = used + free

第二部分(-/+ buffers/cache)解释:
used内存数:第一部分Mem中的used - buffers - cached
反应的是被程序实实在在吃掉的内存

free内存数:第一部分Mem中free + buffers + cached
反应的是可以挪用的内存总数

第三部分是指交换分区

66、ssh时需要密码是用shell如何调

sshpass -p ${PASS_WORD} ssh root@${node1} 命令

67、获取当前用户名称

currentUser=$(whoami)
if [ $currentUser = hadoop ];then

fi

who
#获取当前服务器连接端的ip,以及ip复制了几个窗口
bdap     pts/1        2018-03-28 16:40 (10.202.17.9)
root     pts/2        2018-03-28 17:09 (10.202.17.21)
hdqs     pts/4        2018-03-28 08:28 (10.196.21.189)
root     pts/13       2018-03-28 08:38 (10.196.33.46)
root     pts/14       2018-03-28 16:16 (10.202.17.168)
root     pts/17       2018-03-28 16:53 (10.202.17.33)

68、跨集群免密码scp

#!/usr/bin/expect
	cd /data4/shengchan/20180202
	spawn scp -r /data4/shengchan/20180202/INDEXBZFMX01 [email protected]:/data1/syl/

#expect "password"

#send "hadoop\r"

expect {
	"*yes/no"  { send "yes\r"; exp_continue }
	"Password:" { send "hadoop\r" }
}

set timeout 100 #设置连接时间(单位秒,默认10秒)
expect eof

scp -r /data4/shengchan/20180202/INDEXBZFMX01 [email protected]:/data1/syl/

69、正则表达式批量修改文件名
cebank-newft.log.20171117
createHfile_cobps.log.20171117
createHfile_ecif.log.20171117
newDownloadHfile.log.20171117
newPutdata_CreateHfile.log.20171117
newUploadtar.log.20171117
report.log.20171117
verifyAll.log.20171117

rename '.20171117' '.20171118' *  ##将后缀改成.20171118

70、指定日期是星期几

a=`date -d "20180320" +%w`
echo $a 
2

71、排序、去重

|sort|uniq

72、删除ftp目录下多个文件

mdelete *.txt

73、按文件名关键字查找文件

find . -name "*.pc"|xargs grep 'TRemoveSpace'

find ./* -name '*dpbwcs.h*'

74、linux定时任务

# .---------------- minute (0 - 59) 
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
分 时 月中天 月 周中天
minute hour day month week command

minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

在以上各个字段中,还可以使用以下特殊字符:
星号(
):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次*

/etc/crontab文件包括下面几行:
	
SHELL=/bin/bash	
PATH=/sbin:/bin:/usr/sbin:/usr/bin	
MAILTO=root
HOME=/	
# run-parts	
51 * * * * root run-parts /etc/cron.hourly	
24 7 * * * root run-parts /etc/cron.daily	
22 4 * * 0 root run-parts /etc/cron.weekly	
42 4 1 * * root run-parts /etc/cron.monthly
第一行SHELL变量指定了系统要使用哪个shell,这里是bash,
第二行PATH变量指定了系统执行 命令的路径,
第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,
第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。

使用者权限文件:

/etc/cron.deny	
该文件中所列用户不允许使用crontab命令

/etc/cron.allow
该文件中所列用户允许使用crontab命令

/var/spool/cron/
所有用户crontab文件存放的目录,以用户名命名
	
crontab 命令
crontab -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
crontab file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
crontab -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
crontab -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
crontab -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
crontab -i:在删除用户的crontab文件时给确认提示。

75、sz命令发送文件到本地:

sz filename

rz命令本地上传文件到服务器:
rz

猜你喜欢

转载自blog.csdn.net/syl_1264946104/article/details/83578082