ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2021-01-11 17:00:21  阅读:214  来源: 互联网

标签:文件 显示 操作命令 -- 文本处理 etc ls Linux txt


先放综合思维两张图看看,有个大概了解,下面的文字部分是对命令的具体解释,可以进行参照,都是个人纯手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。
    

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

标签:文件,显示,操作命令,--,文本处理,etc,ls,Linux,txt
来源: https://blog.csdn.net/H_Beijing_JM/article/details/112474184

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有