二、文件管理之: 文件查找
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