第六章 文件查找及命令查找,文件的上传与下载
1.locate
#根据本地的数据库查找文件,数据库每天更新一次
-i #忽略大小写
-r #支持简单的正则使用
[root@lxy ~]# yum install -y mlocate
[root@lxy ~]# locate hostname
/etc/hostname
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf
/etc/selinux/targeted/active/modules/100/hostname
/etc/selinux/targeted/active/modules/100/hostname/cil
/etc/selinux/targeted/active/modules/100/hostname/hll
/etc/selinux/targeted/active/modules/100/hostname/lang_ext
[root@lxy ~]# updatedb
[root@lxy ~]# locate hostname
/etc/hostname
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf
/etc/selinux/targeted/active/modules/100/hostname
/etc/selinux/targeted/active/modules/100/hostname/cil
/etc/selinux/targeted/active/modules/100/hostname/hll
/etc/selinux/targeted/active/modules/100/hostname/lang_ext
/root/hostname
/usr/bin/hostname
[root@lxy ~]# locate -i hostname #-i 忽略大小写
/etc/hostname
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf
/etc/selinux/targeted/active/modules/100/hostname
/etc/selinux/targeted/active/modules/100/hostname/cil
/etc/selinux/targeted/active/modules/100/hostname/hll
/etc/selinux/targeted/active/modules/100/hostname/lang_ext
/root/HOSTNAME
/root/hostname
[root@lxy ~]# locate -r hostname$ #支持简单的正则
/etc/hostname
/etc/selinux/targeted/active/modules/100/hostname
/root/hostname
/usr/bin/hostname
/usr/bin/nmtui-hostname
/usr/lib64/gettext/hostname
[root@lxy ~]# locate -r ^hostname #错误的写法
[root@lxy ~]# locate -r ^/usr/share/doc/hostname
/usr/share/doc/hostname-3.13
/usr/share/doc/hostname-3.13/COPYRIGHT
2.whereis
#根据文件类型查找文件,二进制文件,man帮助文件,源代码文件
选项:
-b #二进制文件
-m #说明文件
[root@lxy ~]# whereis hostname #显示所有类型的文件
hostname: /usr/bin/hostname /etc/hostname /usr/share/man/man1/hostname.1.gz /usr/share/man/man5/hostname.5.gz
[root@lxy ~]# whereis -b hostname #显示二进制文件
hostname: /usr/bin/hostname /etc/hostname
[root@lxy ~]# whereis -m hostname #帮助文件
hostname: /usr/share/man/man1/hostname.1.gz /usr/share/man/man5/hostname.5.gz
[root@lxy ~]# whereis -s hostname #源代码文件
hostname:[root@lxy ~]#
3.which
#查找命令的绝对路径,根据PATH环境变量下进行查找
[root@lxy ~]# which hostname
/usr/bin/hostname
[root@lxy ~]# which hostnamectl
/usr/bin/hostnamectl
4.type
#显示不同类型的命令
-a #显示所有类型命令的绝对路径
-p #只显示外部命令的绝对路径,不包含其他内容
[root@lxy ~]# type cd
cd is a shell builtin
[root@lxy ~]#
[root@lxy ~]# type -a cd
cd is a shell builtin
cd is /usr/bin/cd
[root@lxy ~]# type -p ping
/usr/bin/ping
5.find
#查找文件
-name #根据名称查找
-iname #不区分大小写查找
-maxdepth #根据层级查找匹配的条件
-print #打印 默认的动作
[root@lxy ~]# find / -name "hostname" #根据名称查找
/proc/sys/kernel/hostname
/etc/selinux/targeted/active/modules/100/hostname
/etc/hostname
/root/hostname
/usr/bin/hostname
/usr/lib64/gettext/hostname
[root@lxy ~]# find / -iname "hostname" #忽略大小写
/proc/sys/kernel/hostname
/etc/selinux/targeted/active/modules/100/hostname
/etc/hostname
/root/hostname
/root/HOSTNAME
/usr/bin/hostname
/usr/lib64/gettext/hostname
/usr/lib64/perl5/auto/Sys/Hostname
[root@lxy ~]# find / -iname "hostname*" #以hostname开头的文件
/proc/sys/kernel/hostname
/etc/selinux/targeted/active/modules/100/hostname
/etc/hostname
/root/hostname
/root/HOSTNAME
/usr/bin/hostname
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/man/man5/hostname.5.gz
/usr/share/bash-completion/completions/hostnamectl
[root@lxy ~]# find / -iname "*hostname" #以hostname为结尾的文件
/proc/sys/kernel/hostname
/sys/kernel/debug/tracing/events/syscalls/sys_enter_sethostname
/sys/kernel/debug/tracing/events/syscalls/sys_exit_sethostname
/etc/selinux/targeted/active/modules/100/hostname
/etc/hostname
/usr/lib64/gettext/hostname
/usr/lib64/perl5/auto/Sys/Hostname
[root@lxy ~]# find / -iname "*hostname*" #文件名中包含hostname的文件
/proc/sys/kernel/hostname
/sys/kernel/debug/tracing/events/syscalls/sys_enter_sethostname
/sys/kernel/debug/tracing/events/syscalls/sys_exit_sethostname
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf
/etc/selinux/targeted/active/modules/100/hostname
/etc/hostname
/root/hostname
/root/HOSTNAME
[root@lxy ~]# find /etc -iname "hostname" -print
/etc/selinux/targeted/active/modules/100/hostname
/etc/hostname
[root@lxy ~]# find /etc -maxdepth 2 -iname "hostname" -print #目录层级
/etc/hostname
[root@lxy ~]# find /etc -maxdepth 1 -iname "hostname" -print
/etc/hostname
文件的上传与下载
6.rz
#上传,不支持4G以上的文件
-E #如果文件已经存在,则上传的时候修改名称,在文件名的后面加上数字 0.1.2...
[root@lxy ~]# rz #上传本地文件到服务器上面
[root@lxy ~]# ll
total 688
drwxr-xr-x. 2 root root 22 Dec 3 18:04 data
-rw-r--r--. 1 root root 7748 Aug 17 17:25 djangoauth.md
[root@lxy ~]# rz -E #如果文件已经存在,则上传的时候修改名称,在文件名的后面加上数字 0.1.2...
[root@lxy ~]# ll
total 696
drwxr-xr-x. 2 root root 22 Dec 3 18:04 data
-rw-r--r--. 1 root root 7748 Aug 17 17:25 djangoauth.md
-rw-r--r--. 1 root root 7748 Aug 17 17:25 djangoauth.md.0
7.sz
#下载服务器上的文件到本地
[root@lxy ~]# sz file.log
联网下载
8.curl
根据url规则进行文件传输,主要用户访问网站
-o 将内容写入到指定的文件中
-s #静默输出
[root@lxy ~]# curl -o baidu.html www.baidu.com
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2381 100 2381 0 0 27351 0 --:--:-- --:--:-- --:--:-- 27686
[root@lxy ~]# ll
total 700
-rw-r--r--. 1 root root 2381 Dec 3 20:11 baidu.html
[root@lxy ~] curl -s -o bd.html www.baidu.com #-s 静默输出
[root@lxy ~]# ll
total 704
-rw-r--r--. 1 root root 2381 Dec 3 20:11 baidu.html
-rw-r--r--. 1 root root 2381 Dec 3 20:12 bd.html
#下载nginx压缩包
[root@lxy ~]# curl -o nginx.tar.gz http://nginx.org/download/nginx-1.16.1.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
29 1008k 29 301k 0 0 6621 0 0:02:35 0:00:46 0:01:49 0
9.wget
#根据url路径进行下载
-O #指定的下载的路径及文件名称
-q #静默输出
--limit-rate=20(k/m) #限速下载
[root@lxy ~]# wget https://www.cnblogs.com/yoo2767/p/6016300.html #使用默认的名称下载
#指定下载的名称
[root@lxy ~]# wget -O echo.html https://www.cnblogs.com/yoo2767/p/6016300.html
#静默输出
[root@lxy ~]# wget -q -O e.html https://www.cnblogs.com/yoo2767/p/6016300.html
#限速下载
[root@lxy ~]# wget --limit-rate=20k http://nginx.org/download/nginx-1.16.1.tar.gz