• 文件管理前章


    二、文件管理之: 文件查找

       1、查看命令所属文件
    命令# which ip
    /usr/sbin/ip
    
    # ps: 一些命令的路径都被配置到了环境变量PATH里
    

    二、查找文件
    find [ options ] [ path...] [ expression ]

    按文件名:
    命令# find /etc -name "ifcfg-eth0"
    命令# find /etc -iname "ifcfg-eth0"	# -i忽略大小写
    命令# find /etc -iname "ifcfg-eth*"
    
    按文件大小:
    命令# find /etc -size	+ 3M	#大于3M
    命令# find /etc -size	3M	
    命令# find /etc -size	-3M	
    命令# find /etc -size	+3M -ls	# -ls找到的处理动作
    
    指定查找的目录深度:
    -maxdepth levels
    命令# find / -maxdepth 5 -a -name "ifcfg-ethO" # -a 并且,-o或者,不加-a,默认就是-a
    
    按时间找(atime,mtime,ctime):
    命令# find /etc -mtime +3   	  #修改时间超过3天		
    命令# find /etc -mtime 3	          #修改时间等于3天		
    命令# find /etc -mtime -3	          #修改时间3天以内		
    
    按文件属主、属组找:
    命令# find /home	-user egon		   #属主是egon的文件						
    命令# find /home	-group it		   #属组是it组的文件						
    命令# find /home	-user egon -group it	
    命令# find /home	-user egon -a -group	it #同上意思一样
    命令# find /home	-user egon -o -group	it
    命令# find /home	-nouser             #用户还存在,在/etc/passwd中删除了记录
    命令# find /home	-nogroup            #用户还存在,在/etc/group中删除了记录
    命令# find /home	-nouser -o -nogroup	
    
    按文件类型:
    命令# find /dev -type f
    #f普通
    命令# find /dev -type d 
    #d目录
    命令# find /dev -type l
    #l链接
    命令# find /dev -type b 
    #b块设备
    命令# find /dev -type c
    #C字符设备
    命令# find /dev -type s
    #S套接字
    命令# find /dev -type p
    #P管道文件
    
    根据inode号查找:-inum n
    命令# find / -inum 1811
    
    按文件权限:
    命令# find . -perm 644 -ls
    命令# find . -perm -644 -ls
    命令# find . -perm -600 -ls
    命令# find /sbin -perm -4000 -ls #包含 set uid
    命令# find /sbin -perm -2000 -ls #包含 set gid
    命令# find /sbin -perm -1000 -ls #包含 sticky
    
    找到后处理的动作:
    -print
    -ls
    -delete
    -exec
    -ok
    命令# find /etc -name "ifcfg*" -print #必须加引号
    命令# find /etc -name "ifcfg*" -ls
    命令# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp ;	# 非交互
    命令# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp ;	# 交互
    命令# find /etc -name "ifcfg*" -exec rm -rf {} ;
    命令# find /etc -name  "ifcfg*" -delete # 同上
    
    扩展知识:find结合xargs
    命令# find . name "egon*.txt" |xargs rm -rf
    命令# find /etc -name "ifcfg-eth0" |xargs -I {} cp -rf {} /var/tmp
    命令# find /test -name "ifcfg-ens33" |xargs -I {} mv {} /ttt
    命令# find /ttt/ -name "ifcfg*" |xargs -I {} chmod 666 {}
    
    三文件管理之:上传与下载
    
    (1)下载
    wget命令
    wget -O本地路径远程包链接地址 #将远程包下载到本地,-o指定下载到哪里,可以生路-o 本地路径
    •ps :如果wget下载提示无法建立SSL连接,则加上选项--no-check-certificate wget --no-check-certificate -O本地路径远程包链接地址
    
    curl命令
    #curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS, [ftp] 等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
    命令# curl -o 123.png https://www.xxx.com/img/hello.png
    
    •ps:如果遇到下载提示无法简历SSL链接,使用-k选项或者--insecure
    curl -k -o 123.png https://www.xxx.com/img/hello.png
    
    sz命令
    #系统默认没有该命令,需要下载:yum install lrzsz -y
    #将服务器上选定的文件下载/发送到本机,
    命令# sz bak.tar.gz
    

    (2)上传

    rz命令
    #系统默认没有该命令,需要下载:yum install lrzsz -y
    #运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器。
    命令# rz #如果文件已经存,则上传失败,可以用-E选项解决 [root@localhost opt]# rz -E # -E如果目标文件名已经存在,则重命名传入文件。新文件名将添加一个点和一个数字(0・・999)
    

    四、文件管理之:输出与重定向

    输出即把相关对象通过输出设备(显示器等)显示出来,输出又分正确输出和错误输出一般情况下标准 输出设备为显示器,标准输入设备为键盘。
      linux中用
          •0代表标准输入
          •1代表标准正确输出
          •2代表标准错误输出。
    
    
设备
             设备文件名
          文件描述符        类型
    键盘             /dev/stdin             0            
标准输入
    显示器           
/dev/sdtout
            1            标准输出
    
显示器
           /dev/sdterr
            2            标准错误输出
    
    输出重定向:
    正常输出是把内容输出到显示器上,而输出重定向是把内容输出到文件中
     >代表覆盖
    >>代表追加
    
    PS:标准输出的1可以省略
    
    类型	                  符号	                作用
    标准输出重定向	      命令〉文件	        以覆盖的方式,把命令的正确输出 输出到指定的文件或设备当中。
    	              命令»文件	        以追加的方式,把命令的正确输出 输出到指定的文件或设备当中。
    标准错误输出重定向      错误命令2>文件	以覆盖的方式,把命令的错误输出 输出到指定的文件或设备当中。
    	              错误命令2>>文件	以追加的方式,把命令的错误输出 输出到指定的文件或设备当中。
    
    例如:ifconfig>test.log即把ifconfig执行显示的正确内容写入test.log.当前页面不再显示执行结果。
    注意:错误输出重定向 > 与 >> 后边不要加空格
    

    注意:
    • 1、下述两个命令作用相同
    命令 >>file.log 2>&1
    命令 &>>file.log
    
    •2、正确日志和错误日志分开保存
    命令 >>file1.log 2>>file2.log
    
    •3、系统有个常见用法Is &>/dev/null正确输出或错误输出结果都不要。(null可以理解为黑洞或垃圾站)
    
    输入重定向
    
    #没有改变输入的方向,默认键盘,此时等待输入
    命令# tr 'N' 'n'
    No
    no
    命令# tr 'N' 'n' < file.txt
    #没有改变输入的方向,默认键盘,此时等待输入
    命令# grep 'root'
    oldboy
    root
    root
    命令# grep 'root' < /etc/passwd root:x:O:O:root:/root:/bin/bash
    #读写块设备
    命令# dd if=/dev/zero of=/file1.txt bs=1M count=20
    命令# dd </dev/zero >/file2.txt bs=1M count=20
    # mysql如何恢复备份,了解即可,不用关注。
    命令# mysql -uroot -p123 < bbs.sql
    

    五、文件管理之:字符处理命令

    5.1  sort 命令
    用于将文件内容加以排序
    •-n #依照数值的大小排序
    •-r #以相反的顺序来排序
    •-k #以某列进行排序
    •-t #指定分割符,默认是以空格为分隔符
    
    准备文件,写入一段无序内容
    命令# cat >> file.txt <<EOF
    b:3
    c:2
    a:4
    e:5
    d:1
    f:11
    EOF
    例1
    命令# sort file.txt
    a:4
    b:3
    c:2
    d:1
    e:5
    f:11
    例2
    命令# sort -t ":" -n -k2 file.txt
    d:1
    c:2
    b:3
    a:4
    e:5
    f:11
    例3
    命令# sort -t ":" -n -r -k2 file.txt
    f:11
    e:5
    a:4
    b:3
    c:2
    d:1
    
    5.2  uniq 命令
    用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用
    •-c #在每列旁边显示该行重复出现的次数。
    •-d #仅显示重复出现的行列。
    •-u #仅显示出一次的行列。
    
    准备文件,写入一段无序内容 
    命令# cat > file.txt <<EOF hello
    123
    hello
    123
    func
    EOF
    例1
    命令# sort file.txt
    123
    123
    func
    hello
    hello
    例2
    命令# sort file.txt | uniq
    123
    func
    hello
    例3
    命令# sort file.txt | uniq -c
    2 123
    1func
    2hello
    例4
    命令# sort file.txt | uniq -d
    123
    hello
    
    5.3  cut命令
    cut命令用来显示行中的指定部分,删除文件中指定字段
    •-d #指定字段的分隔符,默认的字段分隔符为"TAB";
    •-f #显示指定字段的内容;
    
    命令# head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash
    命令# head -1 /etc/passwd | cut -d ":" -f1,3,4,6 root:0:0:/root
    
    5.4tr命令
    替换或删除命令
    •-d #删除字符
    例1
    命令# head -1 /etc/passwd |tr "root" "ROOT"
    R00T:x:0:0:R00T:/R00T:/bin/bash
    命令# head -1 /etc/passwd |tr -d "root"
    :x:0:0::/:/bin/bash
    例2
    命令# echo "hello egon qq:378533872" > a.txt
    命令# tr "egon" "EGON" < a.txt
    hEllO EGON qq:378533872
    
    5.5wc命令
    统计,计算数字
    •-c #统计文件的Bytes数;
    •-l #统计文件的行数;
    •-w #统计文件中单词的个数,默认以空白字符做为分隔符
    例1
    命令# ll file.txt
    -rw-r--r--. 1 root root 25 8月 12 20:09 file.txt
    命令# wc -c file.txt
    25 file.txt
    例2
    命令# cat file.txt
    hello
    123
    hello
    123
    func
    命令# wc -l file.txt
    5 file.txt
    命令# grep "hello" file.txt |wc -l
    2
    例3
    命令# cat file.txt
    hello
    123
    hello
    123
    func
    命令# wc -w file.txt
    5 file.txt
    
    
    
  • 相关阅读:
    2018 dnc .NET Core、.NET开发的大型网站列表、各大公司.NET职位精选,C#王者归来
    下载docker镜像报错,dial tcp x.x.x.x:443: connect: connection refused
    SpringMVC
    MyBatis操作数据库——增删改查
    MyBatis——Mapper配置并查询数据
    MyBatis工程搭建
    测试IOC&DI
    SpringAOP测试
    Spring连接Mysql
    Spring 工程搭建
  • 原文地址:https://www.cnblogs.com/qiukangle/p/13955781.html
Copyright © 2020-2023  润新知