linux文件管理

文件管理

Windows和Linux组织文件区别

操作系统方式
Windows:以多根的方式组织文件 C:\ D:\ E:\
Linux:以单根的方式组织文件 /

在这里插入图片描述

目录用处
bin普通用户命令目录,如/bin/ls,RHEL7淘汰
sbin管理员命令目录,只有超级管理员可以执行 ,如/sbin/service,RHEL7淘汰
dev设备文件,如/dev/sda , /dev/sr0 光驱设备, /dev/null 。注意,该目录下的文件没有办法直接使用,必须先挂载
rootroot用户的HOME,超级管理员登录后会自动切换到该目录
home普通用户家目录,用户登录后会自动切换到该目录
proc虚拟的文件系统,反应出来的是内核,进程信息或实时状态
sys虚拟的文件系统,类同proc,主要保存于内存相关的信息
usr系统文件,相当于C:\Windows /usr/local 软件安装的目录,相当于C:\Program Files /usr/bin 普通用户使用的应用程序 /usr/sbin 管理员使用的应用程序 /usr/lib 库文件Glibc /usr/lib64 库文件Glibc
boot存放系统启动相关的文件,例如kernel,grub(引导转载程序)
etc各个软件的配置文件
lib库文件Glibc ,RHEL7淘汰
lib64库文件Glibc,RHEL7淘汰
tmp临时文件(所有用户都可以访问和写入,进程产生的临时文件)
var存档的是一些变化文件,比如数据库,日志,邮件,网站文件…
media挂载目录,早期Linux挂载目录,用于挂载光盘以及软盘媒体设备
mnt挂载目录,手工挂载设备的挂载点,用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
opt第三方软件目录,这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中,但也有人习惯把软件放到 /usr/local/ 目录中。
run正在运行的软件的程序目录

Linux下文件命名规则

①理论上除了字符“/”之外,所有的字符都可以使用,但是,在目录名或文件名中,不建议使用特殊字符

② linux严格区分大小写

③如果必须对文件名进行分割,建议使用"_"

④目录名或文件名的长度不能超过 255 个字符

⑤在Linux系统中,文件扩展名的用途为了使运维人员更好的区分不同的文件类型。

文件名称一定要见名知意,可以使用英文单词

文件定位 路径

绝对路径:从/开始的路径

相对路径:从当前路径开始

[root@server1 alice]# cd - # 返回上次目录
[root@server1 ~]# cd ~  # 直接回家

文件管理:增删改查

创建

mkdir创建目录

mkdir = make directory

  • 用法
# mkdir dir1  #当前目录下创建目录dir1

# mkdir /home/dir2 /tmp/dir3 #不同路径下同时创建多个目录

# mkdir /home/{dir4,dir5}  #同一路径下同时创建多个目录

# mkdir -v /home/{dir6,dir7} # 显示操作的消息

# mkdir -pv /home/dir8/111/22 # 创建目录和其所有父层目录

# mkdir -pv /home/{abc/{dir1,111},efg}

选项说明:
-p:递归创建
-v:显示创建过程
  • 常见报错
[root@server1 ~]# mkdir /usr/local/nginx/conf
mkdir: 无法创建目录"/usr/local/nginx/conf": 没有那个文件或目录
  • 解决方案:如果我们想同时创建多级目录,必须使用-p选项,其会从左向右一级一级创建目录。
# mkdir -p /usr/local/nginx/conf
touch创建文件
  • 用法
# touch file1  # 无则创建,有则修改时间

# touch file2 file3

# touch /home/file4

# touch file{a..d}

# touch file{e,f}

删除

rmdir删除空目录

rmdir = remove directory

  • 用法
# rmdir dir1  #当前目录下删除空目录dir1

# rmdir /home/dir2 /tmp/dir3 #不同路径下同时删除多个空目录

# rmdir /home/{dir4,dir5}  #同一路径下同时删除多个空目录

# rmdir -v /home/{dir6,dir7} # 显示操作的消息

# rmdir -pv /home/dir8/111/22 # 删除目录和其所有父层目录(常常失败,因为父级目录非空)

选项说明:
-p:递归创建
-v:显示创建过程
rm -rf删除
  • 用法
# rm -rf file1  #删除文件file1

# rm -rf dir1 #删除目录dir1

# rm -rf file{a..d} #删除文件filea,fileb,filec,filed

# rm -rf *.cpp #删除以.cpp结尾的文件

# rm -rf file* #删除以file开头的文件

选项说明:
-r :针对文件夹,代表递归删除,先把目录下的所有文件删除,然后在删除文件夹
-f :强制删除,不提示
*  :表示所有

cp复制

cp = copy复制

  • 用法
# cp -v file01.txt /home/dir01/ #本目录下的file01.txt复制到/home/dir01/
# cp readme.txt /tmp/readme.txt.bak #复制后重命名
# cp -r /home/ /tmp/ 把home目录连通其内部的文件统一复制到/tmp目录下
选项说明:
-v:显示操作过程
-r:递归复制,主要针对文件夹

mv剪切(移动)

mv = move

  • 用法:
# mv file1 /home/dir3  # 将file1移动到/home/dir3
# mv file2 /home/dir3/file20 # 将file2移动到/home/dir3,并且改名 file20
# mv file3 file30  # 将file3改名为file30

查看文件时间

时间戳:1970年1月1日0点0分0秒到现在的秒数
[root@server1 ~]# ll /etc/hostname
-rw-r--r--. 1 root root 8 3月  17 15:31 /etc/hostname
[root@server1 ~]# ll /etc/hostname --full-time#详细时间
-rw-r--r--. 1 root root 8 2021-03-17 15:31:36.593948071 +0800 /etc/hostname

Linux文件有三种时间状态:
[root@server1 ~]# stat /etc/hostname
  文件:"/etc/hostname"
  大小:8         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17859762    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:hostname_etc_t:s0
最近访问:2021-07-11 11:46:14.265882764 +0800  atime查看内容
最近更改:2021-03-17 15:31:36.593948071 +0800  mtime修改内容
最近改动:2021-03-17 15:31:36.593948071 +0800  ctime文件属性,比如权限
创建时间:-

查看文件内容

cat:正序输出文件的内容
  • 用法:
#cat file1

#cat -n file1

#cat file1 file2 > file3 #将file1,file2合并到file3中

选项说明:
-n:显示行号
tac:倒序输出文件的内容
  • 用法:
# tac file1
head:查看一个文件的前n 行,默认显示前10 行
  • 用法:
# head -2 /etc/passwd     #查看前两行
tail:查看一个文件的后n 行,默认显示后10 行
  • 用法:
# tail -1 /etc/passwd     #查看最后一行
# tail -f /var/log/secure   # 动态查看文件尾部
more:分屏显示文件内容(了解)
  • 用法:
#more 文件名
交互操作作用
回车向下移动一行
d向下移动半页
空格向下移动一页
b向上移动一页,后期引入功能,早期more只能前进不能后退
q退出

more打开文件时会把文件的全部内容加载到内存中,如果文件较大,可能会出现卡顿情况。

less:分屏显示文件内容
  • 用法:
# less 文件名

#less -N 文件名

选项说明:
-N:显示行号

less加载文件,是一点一点的进行加载的。相较more,读取大文件时,效率比较高。

另外:more阅读完后,会将阅读内容显示在终端,而less不会

交互操作作用
回车向下移动一行
d向下移动半页
空格向下移动一页
b向上移动一页
上下方向键向上与向下移动,less命令特有功能键
/ 字符串搜索
q退出

查看文件类型

ls -l
ls -l 文件名 //看第一个字符 
- 普通文件(文本文档,二进制文件,压缩文件,电影,图片。。。) 
d 目录文件(蓝色) 
b 块设备文件(块设备)存储设备硬盘,U盘 /dev/sda,/dev/sda1 
c 字符设备文件(字符设备)打印机,终端 /dev/tty1,/dev/zero 
s 套接字文件
p 管道文件 
l 链接文件(淡蓝色)

[root@server1 ~]# ll -d /etc/hosts /bin/ls /home /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
-rwxr-xr-x.  1 root root 117608 8月  20 2019 /bin/ls
srw-rw-rw-.  1 root root      0 7月  12 11:45 /dev/log
brw-rw----.  1 root disk   8, 0 7月  12 11:45 /dev/sda
crw--w----.  1 root tty    4, 1 7月  12 11:45 /dev/tty1
lrwxrwxrwx.  1 root root     22 3月  16 17:49 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--.  1 root root    158 7月  11 23:42 /etc/hosts
drwxr-xr-x. 20 root root    263 7月  11 20:35 /home
prw-------.  1 root root      0 7月  12 11:45 /run/dmeventd-client
file
[root@server1 ~]# file /dev/sda
/dev/sda: block special
[root@server1 ~]# file /dev/tty1
/dev/tty1: character special
root@server1 ~]# file /etc/hosts
/etc/hosts: ASCII text
[root@server1 ~]# file /bin/ls
/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]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped
stat
#stat 文件名   #显示文件类型
[root@server1 ~]# stat /etc/hostname
  文件:"/etc/hostname"
  大小:8         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17859762    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:hostname_etc_t:s0
最近访问:2021-07-11 11:46:14.265882764 +0800  atime查看内容
最近更改:2021-03-17 15:31:36.593948071 +0800  mtime修改内容
最近改动:2021-03-17 15:31:36.593948071 +0800  ctime文件属性,比如权限
创建时间:-

压缩与解压

tar

打包
  • 默认情况下,Linux一次只能压缩一个文件,无法压缩多个文件或文件夹。所以需要提前对多个文件或文件夹进行打包,然后压缩。

  • 用法:

# tar -cvf abc.tar a.txt b.txt c.txt #把a.txt、b.txt、c.txt文件打包到abc.tar文件中

# tar -tf abc.tar #查看tar包中的文件信息

# tar -cvf wechat.tar wechat #把wechat文件夹进行打包wechat.tar
选项说明:
-c :打包
-f :filename,打包后的文件名
-v :显示打包的进度
-t :查看打包的文件内容
压缩
  • 用法:
# tar [选项]  压缩后的压缩包名称  要压缩的文件或文件夹
选项说明:
cf :对文件或文件夹进行打包
-v  :显示压缩进度
-z	:使用gzip压缩工具把打包后的文件压缩为.gz
-j  :使用bzip2压缩工具把打包后的文件压缩为.bz2
-J	:使用xz压缩工具把打包后的文件压缩为.xz

压缩速度:gzip > bzip2 > xz
压缩率:gzip < bzip2 < xz

# tar -zcf abc.tar.gz a.txt b.txt c.txt #把a.txt、b.txt、c.txt文件打包并压缩为abc.tar.gz

# tar -zcf wechat.tar.gz wechat #把wechat文件夹压缩为wechat.tar.gz格式的压缩包 
解压
  • 用法:
# tar [选项]  压缩后的压缩包名称  要压缩的文件或文件夹
选项说明:
xf :对文件或文件夹进行解包
其他同压缩

# tar -zxf abc.tar.gz #把abc.tar.gz解压

zip&unzip

zip压缩
  • 用法:
# zip abc.zip a.txt b.txt c.txt
# zip -r wechat.zip wechat

选项说明:
-r :递归压缩,主要针对的是文件夹

zip格式在Windows和Linux中可以通用

unzip解压缩

基本语法:

# unzip 压缩包名称		-->     解压到当前目录
# unzip 压缩包名称 -d 指定路径		-->   解压到指定路径下

解压

  • 用法:
# tar [选项]  压缩后的压缩包名称  要压缩的文件或文件夹
选项说明:
xf :对文件或文件夹进行解包
其他同压缩

# tar -zxf abc.tar.gz #把abc.tar.gz解压

zip&unzip

zip压缩
  • 用法:
# zip abc.zip a.txt b.txt c.txt
# zip -r wechat.zip wechat

选项说明:
-r :递归压缩,主要针对的是文件夹

zip格式在Windows和Linux中可以通用

unzip解压缩

基本语法:

# unzip 压缩包名称		-->     解压到当前目录
# unzip 压缩包名称 -d 指定路径		-->   解压到指定路径下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值