02、linux文件管理

一、Linux与Windows目录结构对比

1.1 linux和windows跟目录的区别

Linux  以单根的方式组织文件  所有目录和文件都是从/开始
Windows 是多根目录结构  C: D:盘都是目录起点

1.2 Linux各目录用途

 /bin -> usr/bin   # 普通用户使用的命令如ls、date/sbin -> usr/sbin # 管理员使用的命令/boot # 存放的启动相关的文件,例如kernel,grub(引导装载程序)/usr # 系统文件,相当于C:\Windows/lib -> usr/lib # 库文件Glibc/lib64 -> usr/lib64 # 库文件Glibc/home # 普通用户家目录/root # root用户的HOME/proc # 虚拟的文件系统,反映出来的是内核,进程信息或实时状态 cat /proc/meminfo:内存信息
​       cat /proc/cpuinfo:cpu信息
​ /var  #存放的是一些变化文件,比如数据库,日志,邮件..../tmp  #系统临时目录,系统会定时删除该目录下长时间没有访问的文件。/media # 移动设备默认的挂载点/mnt # 手工挂载设备的挂载点/opt # 早期第三方厂商的软件存放的目录./tmp # 临时存放文件,类似于回收站,超过十天自动删除

1.3 常用配置文件存放路径

/etc/sysconfig/network-script/ifcfg-*   # 网络配置文件
/etc/hostname     # 系统主机名配置文件
/etc/resolv.conf  # dns客户端配置文件
/etc/hosts   # 本地域名解析配置文件
/etc/fstab   # 系统挂载目录 开机自启动挂载列表
/etc/passwd  # 系统用户文件

1.4 绝对路径与相对路径

绝对路径: 从/开头的路径  /home  ~alice
相对路径:相对于当前目录开始
.		链接到当前目录
..		链接到上一级目录
~		当前用户家目录

# 1、绝对路径示例
touch /home/alice/file1
touch ~alice/file2

# 2、相对路径示例
touch ../file3
touch file4
touch abc/file5

1.5 文件详细属性各部分解析,通过ls -l / 命令查看

-rw-r–r--. 1 root root 0 12月 15 14:02 a.txt

-rw-r--r--. 		  权限,后面的点代表是否在selinux开启的情况下(enforcing或者permissive都属于开启)创建的文件
       1              文件和硬链接个数
       root            属主
       root            属组
        0              文件大小,单位字节
    11月 20 14:02      文件修改时间
        a.txt          文件名字

​ 权限的第一个为代表文件类型

格式          说明
-            普通文件(文本,二进制,压缩包,图片,日志等)    
d            目录文件
b            设备文件(块设备)存储设备硬盘、U盘,如:/dev/sda1, /dev/sda2
c            设备文件(字符设备)打印机,终端,如/dev/tty1, /dev/zero
s            套接字文件,进程间通信(socket)
p            管道文件
l            链接文件

查看文件类型:

file 目录
示例:
file /etc/grub.d

二、系统目录结构与作用

FHS(Filesystem Hierarchy Standard)指的是文件系统层次化标准,多数Linux版本采用这种文件组 织形式,是以树形的结构来组织文件的。

1、命令相关命令

lrwxrwxrwx. 1 root root 7 Jul 11 2019 bin -> usr/bin  # 普通用户使用的命令如 ls、date 
lrwxrwxrwx. 1 root root 8 Jul 11 2019 sbin -> usr/sbin # 管理员使用的命令 

2、启动目录

dr-xr-xr-x. 5 root root 4096 Feb 11 19:06 boot # 存放的启动相关的文件,例如 kernel,grub(引导装载程序)

3、系统文件目录

drwxr-xr-x. 13 root root 4096 Jul 11 2019 usr # 系统文件,相当于C:\Windows
lrwxrwxrwx. 1 root root 7 Jul 11 2019 lib -> usr/lib # 库文件Glibc
lrwxrwxrwx. 1 root root 9 Jul 11 2019 lib64 -> usr/lib64 # 库文件Glibc

4、用户家目录

drwxr-xr-x. 5 root root 4096 Feb 24 16:42 home # 普通用户家目录
dr-xr-x---. 11 root root 4096 Jul 8 17:03 root # root用户的HOME

5、配置文件目录

drwxr-xr-x. 79 root root 4096 Jul 8 17:04 etc # 配置文件,很重要,系统级服务配置文件
全部目录:
/etc/sysconfig/network-script/ifcfg-*  # 网络配置文件
/etc/hostname  # 系统主机名配置文件
/etc/resolv.conf  # dns客户端配置文件
/etc/hosts  # 本地域名解析配置文件
/etc/fstab  # 系统挂载目录 开机自启动挂载列表
/etc/passwd  # 系统用户文件

6、设备目录文件

drwxr-xr-x 19 root root 2960 Feb 15 17:22 dev # 设备文件,/dev/sda /dev/sr0

示例:
/dev/cdrom 和/dev/sr0  系统光盘镜像设备
/dev/null  黑洞设备,只进不出。类似于垃圾回收站
/dev/random  生成随机数的设备
/dev/zero  能源源不断地产生数据,类似于取款机,随时随地取钱
/dev/pts/0  虚拟的Bash Shell终端,提供给远程用户使用 0代表第一个终端 1代表第2个终端
以此类推
/dev/stderr  错误输出
/dev/stdin  标准输入
/dev/stdout  标准输出

7、虚拟文件系统:类似于仪表监控系统

dr-xr-xr-x 89 root root 0 Feb 15 17:22 proc # 虚拟的文件系统,反映出来的是内核,
进程信息或实时状态

反映系统当前进程的实时状态
/proc/meminfo  # 内存信息
/proc/cpuinfo  # cpu信息

8、可变的目录与临时目录

drwxr-xr-x. 19 root root 4096 Jul 11 2019 var #存放的是一些变化文件,比如数据库,日
志,邮件....

/tmp,系统临时目录(类似于公共厕所),系统会定时删除该目录下长时间没有访问的文件。
/var,存放一些变化文件,如下
        mysql:   /var/lib/mysql
        vsftpd:  /var/ftp
        mail:    /var/spool/mail
        cron:    /var/spool/cron
        log:	 /var/log 系统日志文件存放目录
                 /var/log/messages系统日志
                 /var/log/secure系统登录日志
		/var/tmp 临时文件(主要是程序产生的临时文件)

9、设备(主要指的是储存设备)挂载目录

drwxr-xr-x. 2 root root 4096 Apr 11 2018 media # 移动设备默认的挂载点
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt # 手工挂载设备的挂载点
drwxr-xr-x. 2 root root 4096 Apr 11 2018 opt # 早期第三方厂商的软件存放的目录.
drwxrwxrwt. 10 root root 4096 Jul 9 15:16 tmp # 临时存放文件,类似于回收站,超过十天自动删除

10、其他的一些重要目录

drwx------. 2 root root 16384 Jul 11 2019 lost+found # 孤儿文件 
这个目录是使用标准的ext2/ext3档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将 一些遗失的片段放置到这个目录下。这个目录通常会在分割槽的最顶层存在, 例如你加装一颗硬盘于/disk 中,那在这个系统下就会自动产生一个这样的目录『/disk/lost+found 
lost+found这个目录一般情况下是空的,当系统非法关机后,如果你丢失了一些文件,在这里能找回来用来 存放fsck过程中部分修复的文件的 
lost+found:几乎每个被格式化过的Linux分区都会有,意外后找回的文件一般在这里面。 这个目录是储存发生意外后丢失的文件的。只有root用户才能打开 

drwxrwxr-x 6 root root 4096 Feb 23 19:24 application 
drwxr-xr-x 25 root root 660 Jul 8 17:00 run # 存放程序运行后所产生的pid文件 
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv # 物理设备产生的一些文件 
dr-xr-xr-x 13 root root 0 Feb 16 01:22 sys # 硬件设备的驱动程序信息

三、常用的文件管理命令

  • base shell对文件进行管理
1、创建
2、复制
3、删除
4、移动
5、查看
6、编辑
7、压缩
8、权限操作
9、查找

1、基本命令

#1、查看当前所在的目录
[root@localhost ~]# pwd
/root

#2、切换目录
cd 绝对路径 如:cd /home/alice cd ~alice
cd 相对路径 如:cd home/alice cd ..
cd - # 返回上次目录
cd # 直接回家,等同于cd ~
cd . #保持当前目录不变
cd .. #切换到当前目录的上一级目录

# 3、浏览
ls # 默认浏览当目录
ls -l 目录 # 浏览目录下的子目录子文件名的详细信息
ls -al 目录 # 浏览的结果中包含隐藏文件
ls -dl 目录 # 查看目录
示例:
[root@handsome ~]# ll /aaa/bb.txt
-rw-r--r--. 1 root root 692 Nov 20 15:57 /aaa/bb.txt

2、tree命令(目录树的格式查看文件)

要先安装tree命令,执行yum install tree -y
 tree -a 目录    # 显示所有文件,包括隐藏文件
 tree -d 目录    # 只显示子目录
 tree -L 1 目录  # -L 遍历目录的最大层数,-L后应该是大于0的正整数
 tree -F 目录    # -F 在条目后加上文件类型的指示符号,例如会在显示出的目录后面加上左斜杠/

了解一下tree命令的其他选项

-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目
录予以排除在寻找范围外。

3、touch命令用法(创建文件)

touch file1.txt  		   // 无则创建,有则修改时间
touch /home/file10.txt     // 在home目录下创建file10.txt文件
touch file{1..20}          // 在当前目录创建file1,file2直到名称为file20的文件 # ..表示从1到20
touch {T,t}est.txt         // 等价touch Test.txt test.txt

# 修改文件时间 
创建文件我们可以通过touch命令来创建,同样的,我们也可以使用touch命令来修改文件时间。touch 的相关参数如下:
-a : 仅修改access time
-c  :仅修改时间,而不建立文件
-d  :后面可以接日期,也可以使用 --date="日期或时间" 
-m :仅修改mtime 
-t  :后面可以接时间,格式为 [YYMMDDhhmm]

# 同时变更文件的修改时间和访问时间
[root@handsome aaa]# touch -d "2020-11-11 11:11:11" bb.txt
[root@handsome aaa]# stat bb.txt
  File: ‘bb.txt’
  Size: 692             Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 34557506    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-11-11 11:11:11.000000000 +0800
Modify: 2020-11-11 11:11:11.000000000 +0800
Change: 2020-11-20 23:00:31.016267361 +0800
 Birth: -
 
# 只变更文件的修改时间
[root@handsome aaa]# touch -m -d "2020-11-11 11:11:11" bb.txt

# 只变更文件的访问时间
[root@handsome aaa]# touch -a -d "2020-11-11 11:11:11" bb.txt

4、mkdir命令(创建目录)

 mkdir dir1			 在当前路径创建名称为dir1的目录
 mkdir /home/dir2 /home/dir3    同时在/home目录下创建名称为dir2,dir3的目录
 mkdir /home/{dir4,dir5}        同时在/home目录下创建名称为dir4,dir5的目录
 mkdir -p /home/dir8/111/222    该路径下不存在的目录统一进行创建

5、stat命令(可以查看文件时间)

Linux文件有三种时间,用stat查看 
	例如:stat anaconda-ks.cfg

访问时间:atime,(Access)查看内容,如:用cat查看文件的最近时间
修改时间:mtime,(Modify)修改内容
改变时间:ctime,(Change)修改内容,修改权限等属性,凡是有改动都会变

6、文件内容查看命令(cat、less、more、tail、head)

cat /etc/hosts  查看hosts文件内容并显示在当前终端
more /etc/passwd  使用more命令之后,每次在屏幕上显示一屏(一页)的文件内容,并且在屏幕的尾部将会出现“—More--(n%)”的信息,					其中,n%是已经显示文件内容的百分比。按空格下一页,按b上一页,more +40 a.txt从第40行开始查看
tail -100f /var/log/messages  100f参数有表示动态查看/var/log/messages文件最后一百行内容,常用于查看服务日志
head /etc/passwd     查看/etc/passwd文件前10行内容,head默认查看文件前10行,没有f参数
head -2 /etc/passwd   查看/etc/passwd文件前2行内容

四、文本编辑

1、vi与vim区别与扩展用法

vi不显示高亮颜色语法
vim显示高亮颜色语法。
其他功能没有什么区别。
默认vi是已经安装的 , vim需要通过yum install vim -y 安装

2、vi编辑器的操作模式

命令行模式:在编辑模式下按下ESC键返回命令行模式。
vi的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等。
	  ##编辑/插入模式:输入a、i、o之一
在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vi编辑器解释为输入的正文。使用ESC键返回命令行模式。
	  a:进入插入模式并在光标之后进行添加。
	  i:进入插入模式并在光标之前进行插入。
	  o:进入插入模式并在当前(光标所在)行之下开启新的一行。
	  ##扩展/末行模式:输入冒号:
在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。

3、在vi编辑器中光标的移动

$	光标移动到当前行的几位
0	光标移动到当前行的行首
G	光标移动到文末
gg	光标移动到文首
nG	n为数字,输入数字+G表示移动到第n行
H	光标移动到当前屏幕第一行行首
M 	光标移动到当前屏幕中间行行首
L 	光标移动到当前屏幕末行行首

4、vi编辑器中复制删除操作

dd	删除光标所在的行
ndd	其中n为数字,键入数字+dd表示删除当前行开始的n行
yy	复制光标所在的行
nyy	其中n为数字,复制光标所在位置开始的共n行
p 	将已复制的内容粘贴到光标下一行
P	将已复制的内容粘贴到光标上一行
u 	在未退出当前vi编辑器的前提下,恢复上一次的操作

5、末行模式下的操作(编辑模式下按esc键)

:w	保存当前内容
:q	退出当前编辑
:w!	强制保存
:q!	强制退出

6、设置环境(临时设置)

:set nu		显示行号
:set ic		不区分大小写
:set nonu	取消行号
:set noic	取消不区分大小写设置

7、echo命令(将输出内容添加到文本中)

echo "123" > 1.txt	# 将文本内容123覆盖到1.txt文档中,该方式会删除文本中原内容
echo "456" >> 1.txt # 将文本内容456追加方式添加到1.txt文档中,该方式不会删除原文档内容

五、文件管理之打包压缩

1、tar命令(打包压缩格式为tar.gz)

命令用法:
    打包压缩:(tar -czvf 生成文件名tar.gz格式 需要打包的目录或文件)
        tar -czvf 1.tar.gz 1/	 #将当前目录下名称为1的目录打包为1.tar.gz文件
    解压:(tar -xvf 要解压的文件)
        tar -xvf 1.tar.gz		将1.tar.gz压缩包解压到当前目录
        tar -xvf 1.tar.gz -C /usr/	将1.tar.gz解压到/usr/目录下

2、zip、unzip命令(压缩格式为.zip文件)

zip、unzip软件包需要安装,安装命令为 yum install zip unzip -y	
命令用法:
	打包压缩:zip -r 生成文件名.zip格式  需要打包的文件或目录
		zip -r 1.zip 1/	   将当前目录下名称为1的目录递归压缩为1.zip压缩包
	解压:unzip zip文件
        unzip 1.zip	  将1.zip压缩包解压到当前目录下
        unzip 1.zip -d /usr/	将1.zip压缩包解压到/usr/目录下

六、扩展命令,查看系统状态以及服务状态

1、netstat命令

(如果版本没有netstat,先安装:yum install net-tools -y)

netstat  查看当前系统所有启动服务占用的端口信息
netstat -tulnp |grep sshd    查看sshd服务占用端口信息

2、ps命令

ps axu   查看当前系统所有启动服务的进程信息
ps axu|grep sshd   查看sshd服务的进程信息

3、df命令

df   查看服务器磁盘信息(默认以字节单位显示)
df -Th   查看服务器磁盘信息(以MB单位显示)

4、free命令

free  查看服务器内存使用信息(默认以字节单位显示)
free -m  查看服务器内存信息(以MB单位显示)

5、lsof命令(需要安装)

lsof   查看当前系统所有文件占用信息
lsof -i:22  查看当前22端口sshd服务的占用信息  (lsof -i 需要root用户的权限来执行)

6、top命令

top  查看当前系统CPU、内存信息以及占用率等信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值