文件类型:
扩展名:.avi .txt .log .sh
Windows:系统根据不同的扩展名,区分不同类型的文件
Linux:扩展名是给我们看的。方便人类区分不同类型的文件
常见的扩展名:
.txt 文本文件
.log 日志文件
.conf .cfg 配置文件
.sh .bash 脚本文件(命令大礼包)
常见的文件类型:
‘-’ file 普通文件
1.二进制文件(命令)
2.文本文件(test)
3.数据文件(data) 压缩包
d diectory 目录(文件夹)
l softlink 软连接(快捷方式)
b block 设备(块)文件
c character 字符设备(不断的向外发出或接受字符)
[root@oldboyedu59 oldboy]# ls -l /bin/ls /oldboy/alex.txt
-rwxr-xr-x. 1 root root 117680 Oct 31 03:16 /bin/ls
-rw-r--r-- 1 root root 0 Mar 29 09:03 /oldboy/alex.txt
如何区分文件类型(如何查看)
[root@oldboy59 ~]# file /bin/ls /tmp/oldboy.txt
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped
/tmp/oldboy.txt: ASCII text
l softlink 软连接/符号链接(快捷方式)
创建软连接
[root@oldboy59 ~]# touch /oldboy/oldboy.txt
[root@oldboy59 ~]# ln -s /oldboy/oldboy.txt /oldboy/oldboy.txt.soft
[root@oldboy59 ~]# cd /oldboy
[root@oldboy59 oldboy]# ll
total 4
drwxr-xr-x 3 root root 19 Mar 28 11:50 alex
-rw-r--r-- 1 root root 0 Mar 29 09:05 alex.txt
drwxr-xr-x 3 root root 18 Mar 28 20:12 lidao
-rw-r--r-- 1 root root 16 Apr 9 15:23 oldboy.txt
-rw-r--r-- 1 root root 0 Mar 28 12:38 oldboy.txt.bak
lrwxrwxrwx 1 root root 18 Apr 9 15:23 oldboy.txt.soft -> /oldboy/oldboy.txt
b block 设备(块)文件 光盘 硬盘
[root@oldboyedu59 oldboy]# ls -l /dev/cdrom /dev/sr0 /dev/sda
lrwxrwxrwx 1 root root 3 Apr 3 14:39 /dev/cdrom -> sr0
brw-rw---- 1 root disk 8, 0 Apr 3 14:39 /dev/sda
brw-rw---- 1 root cdrom 11, 0 Apr 3 14:39 /dev/sr0
c character 字符设备(不断的向外发出或接受字符)
/dev/urandom 随机字符生成器(生成随机密码)
/dev/null 黑洞(不断接受信息)
/dev/zero 白洞(不断发出信息 无法查看)
tr -d 删除 (不删除空格)-c 取反 -cd删除除xxx之外的内容(删除空格)
[root@oldboy59 oldboy]# echo {a..z} {0..10} > /oldboy/oldboy.txt
[root@oldboy59 oldboy]# tr -d 'a-z' </oldboy/oldboy.txt
0 1 2 3 4 5 6 7 8 9 10
[root@oldboy59 oldboy]# tr -cd 'a-z' </oldboy/oldboy.txt
abcdefghijklmnopqrstuvwxyz[root@oldboy59 oldboy]#
查询相关命令
[root@oldboyedu59 ~]# \which sed awk grep
/usr/bin/sed
/usr/bin/awk
/usr/bin/grep
which:显示命令的全路径
whereis:显示命令及其相关文件全路径
yum故障集合:
No package locate available.
Error: Nothing to do
没有叫做locate的软件包
如何查询命令属于哪个软件包
[root@oldboy59 oldboy]# yum provides locate
mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
Repo : base
Matched from:
Filename : /usr/bin/locate
软件包-多个命令
光盘安装
[root@oldboyedu59 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboyedu59 ~]# ls /mnt/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@oldboyedu59 ~]# rpm -ivh /mnt/Packages/mlocate-0.26-8.el7.x86_64.rpm
Preparing... ################################# [100%]
package mlocate-0.26-8.el7.x86_64 is already installed
[root@oldboyedu59 ~]# rpm -qa mlocate
mlocate-0.26-8.el7.x86_64
查找find
[root@oldboy59 ~]# find /oldboy -type f -name 'oldboy.txt'
/oldboy/alex/lidao/oldboy.txt
/oldboy/lidao/alex/oldboy.txt
/oldboy/oldboy.txt
-maxdepth放在其他参数前面,最大深度的意思
[root@oldboy59 ~]# find / -maxdepth 1 -type d
/
/boot
/dev
/proc
/run
/sys
/etc
/root
/var
/tmp
/usr
/home
/media
/mnt
/opt
/srv
/old
/oldboy
/data
/sunyuyang
/a
/b
/c
/11
/22
通过find命令找出ip命令的位置
[root@oldboyedu59 ~]# find /oldboy -type f -name "*.txt"
/oldboy/alex/lidao/oldboy.txt
/oldboy/alex.txt
/oldboy/oldboy.txt
[root@oldboyedu59 ~]# find / -type d -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
warning 警告
-maxdepth 这个参数要放在其他参数之前。
find -iname参数 (不区分大小写)
[root@oldboyedu59 ~]# find /oldboy/alex/ -type f -name "oldboy*.txt"
/oldboy/alex/lidao/oldboy.txt
/oldboy/alex/oldboy01.txt
/oldboy/alex/oldboy02.txt
/oldboy/alex/oldboy03.txt
/oldboy/alex/oldboy04.txt
/oldboy/alex/oldboy05.txt
[root@oldboyedu59 ~]# find /oldboy/alex/ -type f -iname "oldboy*.txt"
/oldboy/alex/lidao/oldboy.txt
/oldboy/alex/oldboy01.txt
/oldboy/alex/oldboy02.txt
/oldboy/alex/oldboy03.txt
/oldboy/alex/oldboy04.txt
/oldboy/alex/oldboy05.txt
/oldboy/alex/OLDboy01.txt
/oldboy/alex/OLDboy02.txt
/oldboy/alex/OLDboy03.txt
/oldboy/alex/OLDboy04.txt
/oldboy/alex/OLDboy05.txt
xargs 分组
[root@oldboy59 ~]# echo {1..10} >/oldboy/asd.txt
[root@oldboy59 ~]# cat /oldboy/asd.txt
1 2 3 4 5 6 7 8 9 10
[root@oldboy59 ~]# xargs -n2 </oldboy/asd.txt
1 2
3 4
5 6
7 8
9 10
tar:打包压缩命令
文本文件 (配置)备份
Windows:压缩(winrar 好压 2345压缩)
Linux:打包压缩
tar
创建压缩包
/etc 目录 压缩完成放在/tmp/etc.tar.gz(通过tar打包,gzip进行压缩)
z 通过gzip工具进行压缩
c create 创建包
v verbose 显示过程
f 指定压缩包(放在最后)
tar zcvf /tmp/etc.tar.gz /etc/
tar zcf /tmp/etc.tar.gz /etc/
查看压缩包的内容
tar ztf /tmp/etc.tar.gz
t list 查看压缩包内容
解压(默认解压到当前目录)
tar zxf /tmp/etc.tar.gz
-C表示解压到指定目录
[root@oldboyedu59 tmp]# tar xf /tmp/etc.tar.gz -C /opt/
[root@oldboyedu59 tmp]# ls -l /opt
total 12
drwxr-xr-x 79 root root 8192 Apr 9 16:35 etc
【巨坑】tar让你迷茫的提示: Removing leading `/' from member names
出现的背景
使用tar创建压缩包的时候 被压缩的文件或目录使用了绝对路径 会有这个提示
[root@oldboyedu59 tmp]# tar zcf /tmp/etc.tar.gz /etc/
tar: Removing leading `/' from member names
提示含义
tar: Removing leading `/' from member names
从压缩包中删除每个文件最开头的/
把压缩包中的 绝对路径---->相对路径
所以tar命令解压到的时候默认会解压到当前目录
为何tar命令这么做?
假设压缩包中存放的是绝对路径
/tmp/etc.tar.gz
/etc/hosts
/etc/services
解压的时候 也会按照绝对路径解压 会把源文件覆盖。
系统替我们预防故障,通过把绝对路径--->相对路径。
温馨提示:
不要加上-P (创建压缩包的时候强制使用绝对路径)
不想要这个提示?
先进入这个目录,然后再压缩
[root@oldboyedu59 tmp]# cd /
root@oldboyedu59 /]# tar zcf /tmp/etc.tar.gz etc/
网友评论