0%

shell相关命令

centos 相关命令

文件树结构-tree

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@cdh01 nti-bigdata-bg]# tree
.
├── clearExecutor.sh
├── clearSync.sh
├── executor.logging
├── nti-executor-1.0.0-SNAPSHOT.jar
├── nti-sync-1.0.0-SNAPSHOT.jar
├── startExecutor.sh
├── startSync.sh
├── sync.logging
└── temp
└── executor
├── json
├── jsonjobTmp-014d7df5bf5545afa928244e38d8313e.conf
├── jsonjobTmp-222afd6dc0d74229bd8af3a60fd52484.conf
├── jsonjobTmp-6e60e7db32be4261a1f359f3e7743cb0.conf
├── jsonjobTmp-870e9469b87642848178ca3b57618b3a.conf
└── jsonjobTmp-884bc4f8a4e3411699d2dc320037adce.conf

3 directories, 115 files

查看磁盘占用空间

1
2
3
4
5
6
7
8
9
10
11
[fmzh@localhost ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 2.9G 0 2.9G 0% /dev
tmpfs 2.9G 0 2.9G 0% /dev/shm
tmpfs 2.9G 8.8M 2.9G 1% /run
tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 150G 64G 87G 43% /
/dev/mapper/centos-home 46G 43G 2.7G 95% /home
/dev/sda1 1014M 192M 823M 19% /boot
tmpfs 581M 0 581M 0% /run/user/1000
tmpfs 581M 0 581M 0% /run/user/0

查看文件夹占用空间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@cdh01 nti-bigdata-bg]# du -h --max-depth=2 /data
229G /data/opt/java
60M /data/opt/www
13M /data/opt/nti-bigdata-ft
11M /data/opt/nti-datacollection-ft
14M /data/opt/nti-iot-ft
242G /data/opt
1.6G /data/applogs/xxl-job
1.6G /data/applogs
1.5M /data/fmzh/hadoop-common-2.2.0-bin
72K /data/fmzh/static_dir
1.8M /data/fmzh/static_dir_tmp
345M /data/fmzh/docker
247M /data/fmzh/dataplatform_v0.0.1
12G /data/fmzh/nti-dataplatform-bg
196M /data/fmzh/logs
153M /data/fmzh/davinci
172K /data/fmzh/redis
15G /data/fmzh/nti-bigdata-bg
0 /data/fmzh/arthas-output
29G /data/fmzh
1.1G /data/source
0 /data/record
321G /data

查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 查找文件名
find 搜索目录 -name 目标名字
find / -name file名
/代表是全盘搜索,也可以指定目录搜索

find 搜索文件的命令格式:
find [搜索范围] [匹配条件]
选项:
-name 根据名字查找
-size 根据文件大小查找, +,-:大于设置的大小,直接写大小是等于
-user 查找用户名的所有者的所有文件
-group 根据所属组查找相关文件
-type 根据文件类型查找(f文件,d目录,l软链接文件)
-inum 根据i节点查找
-amin 访问时间access
-cmin 文件属性change
-mmin 文件内容modify


# 查找文件内容------注意和find的放置位置差别
grep aaa *.log


# 删除文件 ---文件名存在空格;时间比较
tmp=`ls /root/sign/tmp/ | tr " " "?"`

for i in $tmp
do
if [ $i ];then
f=${i//'?'/' '}
a=`stat -c %Y /root/sign/tmp/"$f"`
b=`date +%s`
if [ $[ $b - $a ] -gt 500 ];then
echo "delete file:$f"
rm -rf /root/sign/tmp/"$f"
fi
fi
done

# 删除文件 --- 查找test文件或者目录,并删除
find / -name test | xargs rm -rf

# 可以查找 /home下最近两天修改过的文件:
find /home -type f -mtime -2
# 如果要把这些文件也删掉,那么可以:
find /home -type f -mtime -2 -exec rm {} \;

-type f 查找文件
-type d 查找目录

-mtime -2 修改时间在2天内
-mtime +3 修改时间在3天前

-exec rm {} \; 将找到的文件 (假定找到文件的名字为 a.txt), 执行 rm a.txt 命令

# find有很多参数,有很强大的搜索功能,具体可以 man find 查看

参考

  1. for 有空格文件夹
  2. for 有空格文件夹

赋权-执行权限

1
2
3
4
5
首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

chmod 777 *.sh

赋权-将根目录赋权给其他用户

1
2
3
4
5
6
7
8
9
例1:把文件yusi123.com的所有者改为yusi。

$ chown yusi yusi123.com
例2:把目录/demo及其下的所有文件和子目录的属主改成yusi,属组改成users。

$ chown - R yusi.users /demo
例如:chown qq /home/qq (把home目录下的qq目录的拥有者改为qq用户)

例如:chown -R qq /home/qq (把home目录下的qq目录下的所有子文件的拥有者改为qq用户)

shell中的单引号和双银号的区别

1
2
3
4
5
单引号:所见即所得,即输出时会将单引号内的所有内容都原样输出,或者描述为单引号里面看到的什么就输出什么,这成为强引用。

双引号:输出双引号的所有内容;如果内容中有命令(要反引)、变量、特殊转义,会先把变量、命令、转义字符解析出结果,然后在输出最终内容,这称为弱引。

反引号:一般用于命令,执行的时候命令会被执行,相当于$(),赋值和输出都要用反引号引起来。