笔记--linux命令(2 文件管理)

            -------lsof-------
                查看被删除的文件(有些删了文件,仍然被进程占用)
                    lsof|grep -i delete
                
                查看目录下被打开的文件
                    lsof +D /var/log
                
                查看被进程打开的文件,-c 指定进程名
                    lsof -p 100570

                当你想要杀掉某个用户所有打开的文件、设备,你可以这样:
                    kill -9 `lsof -t -u gateway`
                    此处 -t 的作用是单独的列出 进程 id 这一列

                -i 查看网络文件---
                    lsof [email protected]    #查看iP占用
                    lsof -i:80                #查看port占用
                    lsof [email protected]:22

                    列出被某个进程打开所有的网络文件:
                        lsof -i -a -p4651
                        或者
                            lsof -i -a -c ssh
                        -c command
                        -a and ,默认为或
                    
                    列出某个用户打开的所有网络文件:
                        lsof -i -a -u deploy
                        
                    列出所有 tcp、udp 连接:
                        lsof -i tcp
                        lsof -i udp
                    
                列出所有 NFS 文件:-N NFS
                    lsof -N -a -u lakshmanan 
                    注意:
                    -u 指定用户(lsof -u ^lakshmanan 可以排除某用户)    
                    -a 与条件,and;只有多个查询条件都满足, 用 "-a" 参数,默认是 -o

            ----find---
                按时间查找:
                    删除7天前文件:
                    find -type f -mtime +7 -exec rm -f {} \;
                        +7 七天前
                        -7    七天内
                        -type    #类型,f 文件,d 目录,l 软连接
                        -mtime    #最后修改时间
                最大层数查找:
                    find  -name startup.sh -exec bash {} \;
                        -maxdepth levels    #最大查找层数
                        -exec  #接shell命令,注意:接echo会有问题
                正则匹配文件名:
                    find . -type f ! -regex '.*\.\(py\|sh\)$'
                        -regex and -iregex    #使用正则匹配,后者为忽略大小写
                        ! #不匹配
                按文件大小查找:
                    find /home/tomcat -type f -name catalina.out -size +1G -exec ls -lh {} \;    #查找大于1G的文件
                按权限查找:
                    find -type f -perm 755
                
                将目录换为树结构:
                    find . -exec sh -c 'echo -n {}|tr -d -c "/"|tr "/" " ";basename {}' \;
                统计每个文件夹文件数:
                    for d in `find . -type d`;do echo `find $d -type f|wc -l` files in $d;done
                按结构统计每个文件夹文件数:
                    find -type d  -exec sh -c 'echo -n {}|tr -d -c "/"|tr "/" "\-\-";echo `basename {}` has `find {} -type f|wc -l` files' \;
    
            ----ls-----------
                ls -R #递归查看
                
                ls */*2019*    #查看当前所有子目录中含有2019的文件
                
                ls -t     #按时间排序
                    -t     sort by modification time, newest first
                    
                ls -l --time-style=long-iso        #长格式时间
                
            ---inotify------
                #监控系统文件变化
                    inotifywait -drq -o /tmp/inotify.log --exclude 'up.hostinfo.*' --exclude '^/etc/.java.*' --timefmt '%F %T' --format '%T %w %f %e' -e create -e delete -e close_write -e moved_to /etc /var/spool/cron/ /root/.ssh/
                        -d daemon
                        -r    递归
                        -q quite
                        -o 输出的日志路径
                        -e 要监控的事件
                        --exclude 要排除的文件,支持正则
                        format:
                            %T     --timefmt指定的时间格式
                            %w    目录
                            %f     文件
                            %e   事件
                max_user_watches不足时:
                    修改参数
                        echo 65535 >/proc/sys/fs/inotify/max_user_watches
                    配置文件:
                        vim /etc/sysctl.conf 
                            fs.inotify.max_user_watches=66666
                        
            ----chmod
                chmod 1777 /tmp
                

猜你喜欢

转载自blog.csdn.net/weixin_42573277/article/details/113877162