Linux 文件操作命令大全(干货满满,掌握了这些你的文本处理能力就可以了)

先放综合思维两张图看看,有个大概了解,下面的文字部分是对命令的具体解释,可以进行参照,都是个人纯手K,不喜勿喷。

在这里插入图片描述

在这里插入图片描述

  1. LS命令的使用

    -S 将文件按从大到小进行排序
    -a 显示所有文件,也包含隐藏文件
    -R 递归,显示文件内所有文件夹下层的内容
    -t 按文件修改时间进行排序
    -r 按文件修改时间倒序显示
    -l 将文件分行显示
    -ld 显示文件的目录和符号链接信息
    -X 按文件名后缀进行排序
    -U 按目录存放顺序进行显示
    -h 增加文件大小用单位来显示
    -d 不进入目录显示文件,避免显示过多文件
    -i 显示文件的节点编号

-ls+通配符的作用

ls f*.txt   --显示所有f开头,txt属性的文件,同时包括  f.txt 本身,并且可以匹配零个或多个字符
ls .*       --显示点开头的所有文件
ls *        --显示不是已点开头的所有文件
ls f?.txt   --显示所有f开头,txt属性的文件,但是不包括  f.txt 本身,并且只匹配单个字符
ls ~-/f.txt --显示前一个目录的文件

touch /data/f{a..z}.txt  touch /data/f{A..Z}  --分别创建f开头。去分大小写的52个文件,创建区分大小写
ls /data/f[a-z].txt  --显示a-z,txt属性的所有文件,也包括大写字母
   /data/f[A-Z].txt  --同理,不管你写的是大写还是小写都会将大小写显示出来
   /data/f[A-z].txt  --显示到小写z结束,大写Z不显示
   
ls /data/f[:lower:].txt --显示所有的小写字母文件
ls /data/f[:upper:].txt --显示所有的大写字母文件
ls /data/f[:alpha:].txt --显示任意大小写字母
ls /data/f[:alnum:].txt --显示所有的任意数字或字母
ls /data/f[:digit:].txt   --显示任意数字文件,相当于0-9的任意数字
ls /data/f[wang].txt --显示不连续的f开头,agnw四个按字母表排序的文件
ls /data/f[^wang].txt --显示除了这四个字母外的其他所有文件
  1. CP 命令拷贝文件的各种用法

        -i 覆盖前加确认,不加-i 默认则是直接覆盖
        -a 保留文件或者文件夹的所有属性,原封不动不做修改的拷贝,也能用于备份
    	-r R 用于复制文件目录,递归复制
    	-v 拷贝的时候显示所有的拷贝过程
    	-f 使用普通用户登录用户文件夹,对root文件进行操作时候的强制操作
    	-u 复制的时候目标文件夹里的文件如果motify时间的没有我新的话更新文件,有我新的话就复制,一般用于更新文件
    	-b 在对文件进行复制时,如果要覆盖同名文件则先对目标进行备份再进行覆盖,但是只有一次备份
    	--banckup=numbered 同上,多次覆盖会显示数字标识,对覆盖备份文件进行保留
    
  2. mv 命令 --move 移动文件和更改名称

    	-i 覆盖前加确认,不加-i 默认则是直接覆盖
    	-f 使用普通用户登录用户文件夹,对root文件进行操作时候的强制操作
    	-b 在对文件进行移动覆盖时,如果要覆盖同名文件则先对目标进行备份再进行覆盖,但是只有一次备份
        -批量修改文件名:rename txt txt.bak f* /data/
    
  3. rm 命令 --remov 删除文件的各种用法
    -r 递归删除
    -f 强制删除
    rm -rf --no-preserve-root 删除系统不要根目录了
    很多时候可以找到命令的出发点,命令是存在路径中的,分为外部命令和内部命令,能够通过路径把命令本身删除 which rm、

     如果碰到文件名称和选项相同有以下三种写法: --   绝对路径   文件名前加./
     
     删除文件的正确步骤:1、cat /dev/null > /boot/hejm  如果存在的文件清零,有各种情况会导致直接Rm不会直接释放文件空间
                         2、rm -f /boot/hejm            删除文件,同时删除节点编号
    
    
     删除文件快的原因是因为rm删除文件只是在系统中把元数据和节点表删除了,数据本身还存在硬盘中,只要不是新创建的文件将数据覆盖了有恢复的可能,文件系统本身并不能完全将数据清空
     
     shred -zvn5  --重复刷新磁盘覆盖文件
    
  4. tree 显示文件目录树

    -d  只显示目录y
    
  5. mkdir 创建文件夹

    -p 创建父目录
    -v 显示详情
    
  6. rmdir 删除文件夹

    -p 删除空的父目录,目录有文件停止删除
    -v 显示详情
    
  7. cat --文本查看,直接cat 输入什么显示什么
    –cat /dev/null > /boot/hejm

            -A      --显示所有控制符
    		-s      --将连续的空行进行压缩成一行
    		-E      --显示行结束符$
    		-n      --对显示出的每一行进行编号
    
  8. more --文本太长逐步显示查看方式

  9. less --分页显示

  10. head --获取文本的前几行
    -1 2 3 。。。。
    -c 看前几个字节

  11. tail --显示文本的后几行
    -n 1 2 3 。。。。
    -f 跟踪文件的变化
    -c 看后几个字节

  12. cut --抽取文本信息显示,必须是文本,过滤出来的内容不起作用
    cut -d: -f 1,3-4 /etc/passwd
    -d 选择用什么内容作为列的分割
    -f 用列作为分割 单词等等可以作为第几列,配合tail head 做文本抽取

  13. paste --合并两个文件同行号的列到同一行

  14. wc --文本数据统计
    47 122 1259 anaconda-ks.cfg
    行数 字数 字节数

            -l 统计行数
            -w 统计单词数量
            -c 统计字节总数
            -L 显示文件中最长行的长度
    
  15. sort --将文本进行整理后进行排序

            -r 执行反方向(由上至下)整理
    		-R 随机排序
    		   seq 100 | sort -R | head -n1
    		-n 执行按数字大小排序
    		-f 选项忽略(fold)字符串中的字符大小
    		-u 重复的行进行忽略
    
  16. grep – 也带匹配到相应内容进行自动打印功能 --一般为grep -in

           --  过滤文本内容
           -v  显示不包括内容的文本,取反
           -i  忽略大小写
       	-o  仅显示匹配到的字符串,过滤什么,显示什么
       	-m  匹配多少次之后停止
       	-c  统计匹配的行数
       	-n  对过滤处理的内容添加行号
       	-e  包括什么或者什么
       	
       	     grep -in -e ROOT -e bash -e nologin  -v   /etc/passwd
       		 
       	-f  用文件的内容来对另外一个文件的内容进行过滤,或者匹配出两个文件相同的内容
       	
       	    grep -f anaconda-ks.cfg   /etc/passwd
       	    grep -f abc.sh abc.txt
       		
           -w  要求显示的内容必须是完整的单词	
       	-B# 显示前多少行
       	-A# 显示后多少行
       	-C# 匹配前后多少行
    
  17. find --实时查找,查询所有文件

            -inum          根据节点编号查找
            -name          根据文件名称进行查找
            -samefile name 查找相同inode好的文件
            -links n       链接数为n的文件
            -regex “1”     已1匹配整个文件路径,而非文件名称				
    		-nouser        查找没有用户的家目录文件
    		               find /home -nouser -ls
    	    -not  或者 !  查找的文件取反
    	    -o             排查法查找文件
    		               find /home -not \( -user acc -o -user hejm \)
    		-size 3k       按文件大小进行查找
                           find /etc/ -size 2048k -ls 				
    		               find / -size +10M  | xargs ls -lthi  --xargs 将输出的内容转换成另外一个命令的输出
    		-atime  +3     按文件修改时间进行查找,实例为1分钟之内的文件
    		-fls           找打文件后将文件列表输出到一个文件里
                           find  /backup/ -name "*.tar.gz"  -fls filelist.txt				
    		-perm  600     按文件权限进行匹配
            -delete        查找到相应文件后直接删除   --慎用
    		-exec          查找到文件后进行授权
    		               find /etc -name "*.conf" -exec chmod +x {} \;
    		-type  b       
    		-a             并且
    		-o             或者
    		-not           取反
    					   
    	    find /etc -type f -perm 755 -name ".conf" -exec chmod 700 {} \;  --批量修改文件权限
    		
    		find /etc \( -path "/etc/sasl2/" -o -path "/etc/fuse.conf" \) -a -prune -o -name "*.conf"   --排除法找文件
    		
    		find -perm 600            --按权限进行查找
    	    find -perm /666           --或、并且模糊查找,三个权限中的一个满足即可
    		
    	    find -perm   645 -ls -delete   --找到文件即删除
    		
    		find  -name "*.sh" -ls   -exec  chmod +x {} \;   --批量授权
    		
    		find /tmp -name "*.sh"  -exec mv /usr {} \;     --批量移动文件
    
  18. sed -n 关闭自动打印,和p结合使用,用于筛选内容

    		-$  显示最后一行
            
    		    sed "/root/a\superman" /etc/passwd1
    			
            -r  使用扩展正则表达式 	
    
    		
            i   [\]text 在行前面插入文本
    		    sed "/root/i\superman" /etc/passwd1
    			sed -i "s#^SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config  --替换内容
    			
    		a  对打印出来的内容 “行后”  追加内容
    			
    		p   打印当前模式空间内容,不加-n  则全部显示
    							
    		c   [\]text 替换行为单行或多行文本
    		    -i.bak -在修改时同时进行备份
    			sed "/root/c\superman" /etc/passwd1
    			
    		在选定的文本内容后面追加内容。&代表/root/
    		    sed -n "s/root/\/&superman/p" /etc/passwd1
    			前面追加
    			sed -n "s/root/\/superman&/p" /etc/passwd1
    			
    		\   添加内容时让空格生效加前面\
    		\n  添加多行,用\n换行
    		
    		
    		r   /path/file 读取指定文件的文本至模式空间中匹配到的行后
    		=   为模式空间中的行打印行号
    		!   模式空间中匹配行取反处理
    		w   选出指定的一些文本内容输出到一个新的文件
                sed '/^alias/w 123.log' .bashrc	
    		/// 文本替代
    		
    		    sed -n '/root/s@root@&er@gp' /etc/passwd
    
  19. hexdump --二进制文件查看

    			        -C  用十六进制显示ASCII编码表
    					-c  一个字节用字符来显示
    					-b  一个字节按八进制来显示
    					
    					/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
                        /dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
    

码字不易,转载请标注出处,谢谢配合~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值