文件管理前章

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

   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


原文地址:https://www.cnblogs.com/qiukangle/p/13955781.html