linux基础day08


符号链接(symbolic link)文件,软链接(soft link)

快捷方式:
ln -s
rm

4.字符(character)/块(block)设备文件
以c开头的就是字符设备,猫等串口设备
以b开头的就是块设备 硬盘、光驱等都属于块设备
mknod

5.套接口(socket)文件
以s开头
.sock文件也是一类特殊的文件,这类文件通常用在网络之间,进行数据连接,如:我们可以启动一个程序来监听客户端的请求,客户端可以通过套接字来进行数据通信。
用于进程之间通信的文件。

[root@oldboyedu ~]# which cp
alias cp='cp -i'
    /usr/bin/cp
[root@oldboyedu ~]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls
[root@oldboyedu ~]# which ip
/usr/sbin/ip

重点:
PATH 变量作用
命令行执行命令会从PATH 对应的路径中查找命令,
PATH 对应的路径中没有这个命令就会报command not found

[root@oldboyedu ~]# ff
-bash: ff: command not found
[root@oldboyedu ~]# cd /usr/local/sbin
[root@oldboyedu /usr/local/sbin]# vim ff
[root@oldboyedu /usr/local/sbin]# cat ff
echo $1
[root@oldboyedu /usr/local/sbin]# chmod +x ff

[root@oldboyedu ~]# fff
-bash: fff: command not found
[root@oldboyedu ~]# ff

[root@oldboyedu ~]# ff oldboy
oldboy
[root@oldboyedu ~]# ff oldgirl
oldgirl
[root@oldboyedu ~]# echo oldgirl
oldgirl
[root@oldboyedu ~]# which ff
/usr/local/sbin/ff

whereis:显示命令、源码、说明文档等的路径
locate:[root@oldboyedu ~]# whereis -b cp
cp: /usr/bin/cp


locate:快速定位文件路径
locate查找文件路径,是从数据库A(/var/lib/mlocate/mlocate.db)里查询
更新A数据库用updatedb命令
C7默认没安装,不要学了
yum provides locate #《==查看命令对应的软件包
yum install mlocate -y
[root@oldboyedu ~]# locate cp
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
[root@oldboyedu ~]# updatedb
[root@oldboyedu ~]# locate cp
/boot/grub2/i386-pc/acpi.mod
/boot/grub2/i386-pc/cpio.mod


8.3.6 find:查找目录下的文件 *****
查找原理:磁盘遍历,速度慢。

[root@oldboyedu ~]# find ~      -name    "oldboy.txt"
                         路径  名字参数  具体文件
/root/oldboy.txt

练习:从根下查找ifcfg-eth0网卡文件
[root@oldboyedu ~]# find / -name "ifcfg-eth0"
/etc/sysconfig/network-scripts/ifcfg-eth0

模糊查找 *表示所有
[root@oldboyedu ~]# find / -name "*y*"

按文件类型查找-type
[root@oldboyedu ~]# find / -type f -name "oldboy*"
       -type c
              File is of type c:

              b      block (buffered) special

              c      character (unbuffered) special

              d      directory

              p      named pipe (FIFO)

              f      regular file

              l      symbolic link; this is never true if the -L option or the -follow 
              
find / -type d -name "oldboy*"
这里的类型和名字是取交集,两条件都满足。默认是交集,相当于有个-a
如果取并集即或者用-o分割查找的项
find / -type d -o -name "oldboy*"

了解:
-a and 并且
-o or  或者
!      取反

[root@oldboyedu /data]# touch oldboy{1..10}.txt
[root@oldboyedu /data]# ls
oldboy10.txt  oldboy2.txt  oldboy4.txt  oldboy6.txt  oldboy8.txt
oldboy1.txt   oldboy3.txt  oldboy5.txt  oldboy7.txt  oldboy9.txt
[root@oldboyedu /data]# find /data -type f
/data/oldboy1.txt
/data/oldboy2.txt
/data/oldboy3.txt
/data/oldboy4.txt
/data/oldboy5.txt
/data/oldboy6.txt
/data/oldboy7.txt
/data/oldboy8.txt
/data/oldboy9.txt
/data/oldboy10.txt
[root@oldboyedu /data]# find /data ! -type f
/data
[root@oldboyedu /data]# mkdir {a..d}
[root@oldboyedu /data]# find /data ! -type f
/data
/data/a
/data/b
/data/c
/data/d

转义:
普通国家公民
A当了省长
\省长 返回来代表普通国家公民

已知;代表oldboy
\; 又仅代表自身,即分号。


xargs分组
[root@oldboyedu /data]# echo {1..10} >test.txt
[root@oldboyedu /data]# cat test.txt
1 2 3 4 5 6 7 8 9 10
[root@oldboyedu /data]# xargs -n 3 test.txt 
[root@oldboyedu /data]# echo "Oldgirl" >>test.txt 
[root@oldboyedu /data]# echo "Oldboedu" >>test.txt 
[root@oldboyedu /data]# echo "Oldboyedu" >>test.txt 
[root@oldboyedu /data]# cat test.txt
Oldboy
Oldgirl
Oldboedu
Oldboyedu
[root@oldboyedu /data]# cat test.txt|grep "boy"
Oldboy
Oldboyedu
[root@oldboyedu /data]# grep "boy" test.txt 
Oldboy
Oldboyedu


[root@oldboyedu /data]# find /data -type f|xargs rm -f
[root@oldboyedu /data]# ll
total 0
drwxr-xr-x. 2 root root 6 Mar 14 10:40 a
drwxr-xr-x. 2 root root 6 Mar 14 10:40 b
drwxr-xr-x. 2 root root 6 Mar 14 10:40 c
drwxr-xr-x. 2 root root 6 Mar 14 10:40 d
[root@oldboyedu /data]# touch oldboy{1..5}.txt
[root@oldboyedu /data]# ls
a  b  c  d  oldboy1.txt  oldboy2.txt  oldboy3.txt  oldboy4.txt  oldboy5.txt
[root@oldboyedu /data]# find /data -type f -exec rm -f {} \;
[root@oldboyedu /data]# ls
a  b  c  d


find /data -type f -exec rm -f {} \;
相当于 
rm -f oldboy1.txt
rm -f oldboy2.txt
rm -f oldboy3.txt
效率低。

find /data -type f|xargs rm -f
只是一条命令
rm -f oldboy1.txt oldboy2.txt oldboy3.txt
效率高

find /data -type f|rm -f 
相当于:
find /data -type f
rm -f


[root@oldboyedu /data]# date -s "2020/10/1 00:00:00"
Thu Oct  1 00:00:00 CST 2020
[root@oldboyedu /data]# date
Thu Oct  1 00:00:03 CST 2020
[root@oldboyedu /data]# clock -w

[root@oldboyedu /data]# date +%F
2020-10-01
[root@oldboyedu /data]# date +%Y   #year年
2020
[root@oldboyedu /data]# date +%y   #year年
20
[root@oldboyedu /data]# date +%m   #month 月
10
[root@oldboyedu /data]# date +%d   #day日
01
[root@oldboyedu /data]# date +%H   #hour时
00
[root@oldboyedu /data]# date +%M   #minute分
02 
[root@oldboyedu /data]# date +%S   #second秒
46

[root@oldboyedu /data]# date +%Y-%m-%d
2020-10-01
[root@oldboyedu /data]# date +%F
2020-10-01
[root@oldboyedu /data]# date +%H:%M:%S
00:04:29
[root@oldboyedu /data]# date
Thu Oct  1 00:04:38 CST 2020

[root@oldboyedu /data]# date +%F -d "-1day"
2020-09-30
[root@oldboyedu /data]# date +%F -d "+1day"
2020-10-02
[root@oldboyedu /data]# date +%F -d "+1month"
2020-11-01
[root@oldboyedu /data]# date +%F -d "+1Y"
date: invalid date ‘+1Y’
[root@oldboyedu /data]# date +%F -d "+1year"
2021-10-01

- 过去
+ 未来

[root@oldboyedu /data]# date +"%Y-%m-%d %H:%M:%S"
2020-10-01 00:09:36
[root@oldboyedu /data]# date +"%F %T"
2020-10-01 00:09:39

打包 压缩
打包 筐 放文件 压缩体积降低
文件压缩,大小会降低。

tar *****
打包:
语法:
tar 参数  筐(压缩包)  苹果(被打包的文件)
打包集合参数zcvf:v可以不加
压缩包名字:data.tar.gz  #tar表示打包,gz表示gzip格式压缩。
例子:
[root@oldboyedu ~]# mkdir /data
[root@oldboyedu ~]# cd /data
[root@oldboyedu /data]# touch {1..5}.txt
[root@oldboyedu /data]# ls
1.txt  2.txt  3.txt  4.txt  5.txt
[root@oldboyedu /data]# cd ..
[root@oldboyedu /]# tar zcvf /opt/data.tar.gz ./data
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
查看压缩包里的内容:-t
[root@oldboyedu /]# tar tf /opt/data.tar.gz 
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt

解压:
[root@oldboyedu /opt]# tar zxvf data.tar.gz 
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
[root@oldboyedu /opt]# ls
data  data.tar.gz
[root@oldboyedu /opt]# ls data
1.txt  2.txt  3.txt  4.txt  5.txt
[root@oldboyedu /opt]# tar xf data.tar.gz 

[root@oldboyedu /opt]# tar xf data.tar.gz -C /tmp/
[root@oldboyedu /opt]# ls /tmp/data
1.txt  2.txt  3.txt  4.txt  5.txt

你可能感兴趣的:(linux基础day08)