day11
2019-04-09
第十一天.png
代表的文件类型
-
普通文件
1.二进制文件(命令)
2.文本文件(text)
3.数据文件(data)
d
目录
l
软连接
b
设备(块)文件
c
字符设备
file
查看文件类型
[root@gyj ~]# ls
1 1.txt 3 anaconda-ks.cfg issue net
[root@gyj ~]# file 1
1: ASCII text
[root@gyj ~]# file 3
3: directory
tr
删除字符(临时,不是实质性修改)
tr -d '目标字符'<文件
删除目标字符
[root@gyj ~]# cat 1
aaayyyybbbcccaaabbbcccaaabbbccc
[root@gyj ~]# tr -d 'a' <1
yyyybbbcccbbbcccbbbccc
[root@gyj ~]#
tr -c '字符' '字符' <文件
除了第一个字符,其他换成第二个字符
[root@gyj ~]# cat 1
aaayyyybbbcccaaabbbcccaaabbbccc
[root@gyj ~]# tr -c 'a' 'b' <1
aaabbbbbbbbbbaaabbbbbbaaabbbbbbb[root@gyj ~]#
tr -cd '目标字符' <文件
除了目标字符,其他都删除
[root@gyj ~]# cat 1
aaayyyybbbcccaaabbbcccaaabbbccc
[root@gyj ~]# tr -cd 'a' <1
aaaaaaaaa[root@gyj ~]#
ln
创建软连接
ln -s
[root@gyj ~]# ls
1 1.txt 3 anaconda-ks.cfg issue net
[root@gyj ~]# ln -s 1 1.soft
[root@gyj ~]# ls -l
总用量 16
-rw-r--r--. 1 root root 32 4月 8 17:11 1
lrwxrwxrwx. 1 root root 1 4月 9 20:41 1.soft -> 1
-rw-r--r--. 1 root root 59 4月 8 16:10 1.txt
drwxr-xr-x. 12 root root 106 4月 4 16:33 3
-rw-------. 1 root root 1655 3月 26 00:37 anaconda-ks.cfg
-rw-r--r--. 1 root root 10 4月 9 19:54 issue
-rw-r--r--. 1 root root 0 4月 8 10:19 net
[root@gyj ~]#
which
查看可执行文件的位置
[root@gyj ~]# which rm
alias rm='rm -i'
/usr/bin/rm
[root@gyj ~]#
\which
只查看命令的绝对路径
[root@gyj ~]# \which rm
/usr/bin/rm
[root@gyj ~]#
whereis
查看文件的位置
[root@gyj ~]# whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz
[root@gyj ~]#
如何查询命令属于哪个软件包
命令
yum provdes 命令
[root@GYJ ~]# yum provides locate
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
Repo : base
Matched from:
Filename : /usr/bin/locate
mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
Repo : @base
Matched from:
Filename : /usr/bin/locate
[root@GYJ ~]#
mlocate-0.26-8.el7.x86_64
显示locate 在mlocate的软件包里
locate
配合数据库查看文件位置
Linux mlocate安装
在centOS7以上的系统中使用“locate”文件查找命令,发现该命令不可用。
因为centos7默认没有安装该命令,
在联网状态运行
yum install -y mlocate
命令即可安装"locate"命令。
安装完之后运行“locate inittab”,发现结果如下:
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
并没有查询出相关文件,此时需要线运行下
updatedb
命令初始化一下文件库,再运行
locate inittab
这时“locate”命令就可以正确使用了。
[root@GYJ ~]# locate 123
/usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/media/dvb-frontends/cx24123.ko.xz
/usr/lib64/gconv/IBM1123.so
/usr/share/man/man1/perl5123delta.1.gz
/usr/share/perl5/pod/perl5123delta.pod
/usr/src/kernels/3.10.0-957.el7.x86_64/include/config/dvb/cx24123.h
/usr/src/kernels/3.10.0-957.el7.x86_64/include/linux/platform_data/st1232_pdata.h
[root@GYJ ~]#
rpm
查询软件安装
rpm -q 软件包
查询
[root@GYJ ~]# rpm -q mlocate
mlocate-0.26-8.el7.x86_64
rpm -qa 软件包
查询软件是否安装
[root@GYJ ~]# rpm -qa mlocate
mlocate-0.26-8.el7.x86_64
rpm -ql
显示软件包里的内容
[root@GYJ ~]# rpm -ql mlocate
/etc/cron.daily/mlocate
/etc/updatedb.conf
/usr/bin/locate
/usr/bin/updatedb
/usr/share/doc/mlocate-0.26
/usr/share/doc/mlocate-0.26/AUTHORS
/usr/share/doc/mlocate-0.26/COPYING
...
...
/usr/share/man/man8/updatedb.8.gz
/var/lib/mlocate
/var/lib/mlocate/mlocate.db
find
查找
find 路径 -type f -name ‘文件名’
查找文件路径
[root@GYJ ~]# find /root/ -type f -name '1'
/root/1
[root@GYJ ~]#
find oldboy -type f -name '*.txt'
查找oldboy下所有带.txt后缀的文件 带*(星号)
[root@GYJ ~]# find oldboy -type f -name '*.txt'
oldboy/1.txt
oldboy/2.txt
oldboy/3.txt
oldboy/4.txt
oldboy/5.txt
[root@GYJ ~]#
find / -maxdepth 1 -type d
显示根下第一层目录
[root@GYJ ~]# find / -maxdepth 1 -type d
/
/boot
/dev
/proc
/run
/sys
/etc
/root
/var
/tmp
/usr
/home
/media
/mnt
/opt
/srv
/oldboy
[root@GYJ ~]#
find / -size +10M -type f
显示大于10M的文件
[root@GYJ ~]# find / -size +10M -type f
/boot/initramfs-0-rescue-18af378aee19477d96c6498a7a9d8f57.img
/boot/initramfs-3.10.0-957.el7.x86_64.img
/proc/kcore
find: ‘/proc/7701/task/7701/fdinfo/6’: No such file or directory
find: ‘/proc/7701/fdinfo/5’: No such file or directory
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/var/lib/rpm/Packages
/var/cache/yum/x86_64/7/base/gen/primary_db.sqlite
/var/cache/yum/x86_64/7/base/gen/filelists_db.sqlite
/var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite
/var/cache/yum/x86_64/7/updates/gen/filelists_db.sqlite
/usr/lib/locale/locale-archive
/usr/lib64/libicudata.so.50.1.2
/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/cc1
/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto1
/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/f951
/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/cc1plus
[root@GYJ ~]#
find
-maxdepth 最多几层
-type 类型
-name 名字
-iname 不区分大小写
-size 根据大小写查找文件
-mtime 根据文件的最后修改时间
-atime 文件的最后访问时间
-ctime 文件最后改变时间
xargs
xargs -n2 <文件
用来分组
[root@GYJ ~]# xargs -n2 <1
1 2
3 4
5 6
7 8
9 10
[root@GYJ ~]# xargs -n3 <1
1 2 3
4 5 6
7 8 9
10
[root@GYJ ~]# xargs -n4 <1
1 2 3 4
5 6 7 8
9 10
[root@GYJ ~]# xargs -n5 <1
1 2 3 4 5
6 7 8 9 10
[root@GYJ ~]# xargs -n6 <1
1 2 3 4 5 6
7 8 9 10
[root@GYJ ~]# cat 1
1 2 3 4 5 6 7 8 9 10
[root@GYJ ~]#
tar
打包压缩命令
tar zcvf 文件压缩完的文件位置 要压缩的文件
[root@GYJ ~]# tar zcvf /root/1.tar.gz 1
1
[root@GYJ ~]# ls
1 1.tar.gz anaconda-ks.cfg
z 通过gzip工具进行压缩
c creat 创建压缩包
v verbose 显示过程
f 指定压缩包(放在最后)
j bzip bzip2
通过tar 打包,gzip进行压缩
tar zcvf 压缩包
cf
压缩
[root@GYJ ~]# tar zcvf 1.tar.gz 1
1
[root@GYJ ~]# ls
1 1.tar.gz anaconda-ks.cfg
[root@GYJ ~]# tar cf 1.tar2.gz 1
[root@GYJ ~]# ls
1 1.tar2.gz 1.tar.gz anaconda-ks.cfg
[root@GYJ ~]#
tar ztf 压缩包
tf
查看压缩包内容
[root@GYJ ~]# ls
1 1.tar2.gz 1.tar.gz anaconda-ks.cfg
[root@GYJ ~]# tar ztf 1.tar.gz
1
[root@GYJ ~]# tar tf 1.tar.gz
1
[root@GYJ ~]#
tar zxf 压缩包
xf
解压压缩包内容
(默认解压到当前目录)
[root@GYJ ~]# tar zxf 1.tar.gz
[root@GYJ ~]# ls
1 1.tar2.gz 1.tar.gz anaconda-ks.cfg
[root@GYJ ~]#
tar zxf 压缩包 -C 指定目录
解压指定目录
[root@GYJ ~]# mkdir 2
[root@GYJ ~]# ls
1 1.tar2.gz 1.tar.gz 2 anaconda-ks.cfg
[root@GYJ ~]# tar zxf 1.tar.gz -C 2
[root@GYJ ~]# ls 2
1
[root@GYJ ~]#