文件管理

一 文件管理

1.1 系统目录结构

# Windows: 以多根的方式组织文件 C: D:
# Linux:以单根的方式组织文件 /

##### 1.存放命令相关的目录
/bin, 普通用户使用的命令 /bin/ls, /bin/date
/sbin,管理员使用的命令 /sbin/service,poweroff,useradd…

只要看到bin路径,就应该意识到放的是可执行文件
# which 命令名
# whereis 命令名  更全


####2 存放用户相关数据的家目录,比如:windows不同的用户登陆系统显示的桌面背景不一样

/home,普通用户的家目录, 默认为/home/lqz

环境变量的东西不要删,删掉试一下

/root,超级管理员root的家目录, 普通用户无权操作

#####3.系统文件目录
/usr,相当于C:Windows
/usr/local,软件安装的目录,相当于C:Program
/usr/bin/,普通用户使用的应用程序(重要)
/usr/sbin,管理员使用的应用程序(重要)
/usr/lib,库文件Glibc 32bit
/usr/lib64,库文件Glibc 64bit

# 补充:动态链接库文件
	-win上能看到  xx.dll
    -linux上能看到  xx.so
    -c,c++编写过后,编译后会产生两种东西
    	-可执行文件
        -动态链接库问题


###4 启动目录
/boot 存放的系统启动相关的文件,例如:kernel,grub(引导装载程序)
linux内核+GUN软件

#### 5.配置文件目录
/etc,极其重要,后续所有服务的配置都在这个目录中
/etc/sysconfig/network-script/ifcfg-,网络配置文件
/etc/hostname,系统主机名配置文件,主机名很重要,有些特殊服务要依赖主机名,没有主机名会报错起不来;修改了要重启:reboot
/etc/resolv.conf,dns客户端配置文件,域名解析服务器,一般我们不配置,因为网卡的配置好了,会覆盖掉它,网卡的优先级高
/etc/hosts,本地域名解析配置文件,域名解析,先找自己的hosts,再去域名解析

/etc/motd :登录后显示的信息

#### 6 可变的目录与临时目录
/var,存放一些变化文件,比如/var/log/下的日志文件,登陆日志
/var/tmp,进程产生的临时文件
/tmp,系统临时目录(类似于公共厕所),谁都可以使用
# 1 查看登陆日志
cat /var/log/secure #查看登陆时间
# 2 进程产生的临时文件(360清理垃圾,就是会清理)

##### 7.设备目录文件
/dev,存放设备文件,比如硬盘,硬盘分区,光驱,等等
/dev/sd 硬盘设备
/dev/null,黑洞设备,只进不出。类似于垃圾回收站
/dev/random,生成随机数的设备
/dev/zero,能远远不断的产生数据,类似于取款机,随时随地取钱


###8.虚拟的文件系统(如对应的进程停止则/proc下对应目录则会被删除)
/proc,反映系统当前进程的实时状态 :process
PS:类似于小汽车的仪表板,能够看到汽车是否有故障,或者是否缺油了

ls /proc # 可以看到很多id号,pid号,进程号,唯一
ls 进程id号的文件夹
如果进程被关闭,id号的文件夹就没了
id号每次启动都不唯一,只有一个进程唯一,systemd 是进程号1的进程,所有进程都是基于它派生出来的

###### 9其他
#1 media:提供设备的挂载点,媒体文件
# linux 新增了盘符,需要手动挂载
# 把光盘里的数据,挂载到media目录
mount  /dev/cdrom /media/

# 2 mnt:提供设备的挂载点(同上)

# 3 opt:第三方工具,第三方软件默认安装的(mysql...)

# run :下有pid,log结尾的文件
ls /run
cat sshd.pid  # 进程运行的pid号,放在文件中
ps aux |grep sshd

# .lock文件的作用,锁机制
# 假设现在执行
yum install tree
# 再开一个窗口执行相同命令
yum install tree
'''
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: yum
    Memory :  71 M RSS (470 MB VSZ)
    Started: Tue Aug 18 00:26:31 2020 - 00:24 ago
    State  : Sleeping, pid: 6191
'''
cat /run/yum.pid

二 文件路径定位

# /bin, /sbin, /lib, /lib64都以软链接的形式链接到/usr/目录下
/bin –> /usr/bin
/sbin –> /usr/sbin
lib -> usr/lib
lib64 -> usr/lib64


# 路径非常重要,名字一样,单不一定是一个文件

# 相对路径: 相对于当前文件,目录的路径
# 绝对路径:从根路径下开始找
	win:c d
    linxu  /
    
    
# .  和  ..
	. 表示当前路径
    .. 表示上一层
	
# 以后看到 . .. 都是用相对,看到 / 都是绝对
	./  相对
    ../ 相对
    
    
#  cd操作
# cd      #切换目录,例: cd /etc
# cd -    #切换回上一次所在的目录
# cd ~    #切换回当前用户的家目录,注意:root和普通用户是否有所不同吗?
# cd .    #代表当前目录,一般在拷贝、移动等情况下使用 cp /etc/hostname ./
# cd ..   #切换回当前目录的上级目录

三 系统文件管理:创建/复制/移动/删除

3.1 文件创建

# touch file     #无则创建,有则修改时间

# rm -rf fil*  把fil开头的全删除

3.2 创建目录

# 目录创建命令mkdir

# 选项:-v 显示详细信息  -p 递归创建目录
# mkdir dir1
# mkdir /home/od/dir1 /home/od/dir2
# mkdir -v /home/od/{dir3,dir4} 
# mkdir -pv /home/od/dir5/dir6
# mkdir -pv /home/{od/{diu,but},boy}

3.3 以树状显示目录结构命令tree

yum install -y tree

tree 路径目录
oo
└── aa
    └── bb

3.4 cp 复制

#选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性

# cp file /tmp/file_copy
# cp name /tmp/name         #不修改名称
# cp file /tmp/             #不修改名称
# cp -p file /tmp/file_p    #-p保持原文件或目录的属性
# cp -r  /etc/ /tmp/        #复制目录需要使用-r参数, 递归复制
# cp -rv /etc/hosts /etc/hostname /tmp  #拷贝多个文件至一个目录
# cp -rv /etc/{hosts,hosts.bak}
# cp -rv /etc/hosts{,-org}

3.5 mv移动

# mv file file1             #原地移动算改名
# mv file1 /tmp/            #移动文件至tmp目录
# mv /tmp/file1 ./          #移动tmp目录的文件至当前目录
# mv dir/ /tmp/             #移动目录至/tmp目录下

# touch file{1..3}
# mv file1 file2 file3 /opt/    #移动多个文件或至同一个目录

# mkdir dir{1..3}
# mv dir1/ dir2/ dir3/ /opt     #移动多个目录至同一个目录

3.6 rm删除

#选项:-r: 递归 -f: 强制删除 -v: 详细过程
# rm  file.txt      #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
# rm -f file.txt    #删除文件, 不提醒


# rm -r dir/        #递归删除目录,会提示
# rm -rf dir/       #强制删除目录,不提醒(慎用)


#1.rm删除示例
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -f /home/dir10/  //不包括隐藏文件 
# ls /home/dir10/ -a
. .. .file4


#2.rm删除示例2
# touch file{1..10}
# touch {1..10}.pdf
# rm -rf file 
# rm -rf .pdf

四 系统文件管理

4.1 查看文件内容(cat less more head tail grep )

cat,tac

#------cat
# cp /etc/passwd ./pass
# cat pass      #正常查看文件方式
# cat -n pass   #-n显示文件有多少行
# cat -A pass   #查看文件的特殊符号,比如文件中存在tab键
# tac pass 

cat >> 文件名 <<EOF
内容
EOF

less more

#------less、more ,查看一部分文件内容,less可以上下翻,more只能向下翻
# less /etc/services    #使用光标上下翻动,空格进行翻页,q退出
# more /etc/services    #使用回车上下翻动,空格进行翻页,q退出(有百分比)
#------head
# head pass     #查看头部内容,默认前十行
# head -n5 pass #查看头部5行,使用-n指定
# ps aux | head -5 # 只看头部5个进程
# ls -al | head -3 # 查看ls结果的头三个

tail

#------tail
# tail pass  # 查看文件尾部,默认10行
# tail -20 /var/log/secure  # 查看文件尾部20行
# tail -f /var/log/messages #-f动态查看文件尾部的变化
# tailf /var/log/messages   #查看文件尾部的变化
# ps aux | tail -2



# tail -f 文件夹,会夯在这,看文件变化
# 别的进程,会文件进行操作
 	echo "lqz nb" >> lqz.txt
    程序在往日志文件里写日志



grep

# /etc/passwd   存放用户的文件

#------grep过滤文件内容
# grep "^root" pass     #匹配以root开头的行
# grep "bash$" pass     #匹配以bash结尾的行
# grep -i "ftp" pass    #忽略大小写匹配
# grep  -Ei "sync$|ftp" pass    #匹配文件中包含sync结尾或ftp字符串

4.2 文件管理之:联网下载文件(wget、curl)、文件上传与下载(rz、sz)

# wget
yum install wget -y
#选项: -O: 指定下载地址
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# curl
#选项: -o: 指定下载地址
# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#
rzsz上传下载文件

# yum install lrzsz -y  #不安装软件则无法执行该命令

# rz             #只能上传文件文件上传(不能大于4g)
# sz /path/file  #只能下载文件,文件夹不行

4.3 文件管理之:文件或命令查找(locate、which、whereis、find)

# 命令查找
whereis  命令名
which  命令名

# 找文件
find / -name lqz.txt # 从根路径下开始找 名字叫lqz.txt的文件

4.4 文件管理之:字符处理命令(wc)

# wc统计行号
#选项:-l显示文件行数 -c显示文件字节 -w显示文件单词

# wc -l /etc/fstab      #统计/etc/fstab文件有多少行
# wc -l /etc/services   #统计/etc/services 文件行号
# ls |wc -l 
#cat /etc/fstab | wc -l  #统计/etc/fstab文件有多少行

五 系统文件属性

#-rw-r--r--. 1 root root 35 7月  27 10:33 lqz.txt

# -rw-r--r--. # 第一个- 表示文件类型(一会讲),后面的rwx,表示权限,后面会说
# 1           # 硬链接次数
# root        #文件属于哪个用户
# root        # 文件属于哪个组
# 87811      #文件大小
# 7月  27 10:33 :最新修改的时间与日期
# a.jpeg      ⑨:文件或目录名称


ll -d /etc/hosts /tmp /bin/ls  /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
# 文件类型:
-   #普通文件(文本, 二进制, 压缩, 图片, 日志等) 
d   #目录文件
b   #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c   #设备文件(字符设备),终端 /dev/tty1, /dev/zero
s   #套接字文件, 进程间通信(socket)
p   #管道文件
l   #链接文件

六 系统链接文件:软连接,硬链接

# 文件分 
	文件名   inode信息:文件类型,大小,位置,时间    文件真正存储位置block
    
    
# 软连接--->复制一份inode信息(win的快捷方式)
	软链接文件会将inode指向源文件的block,当我们访问这个软链接文件时,其实访问的是源文件本身。那么当我们对一个文件创建多个软链接,其实就是多个inode指向同一个block。当我们删除软链接文件时,其实只是删除了一个inode指向,并不会对源文件源文件造成影响,但如果删除的是源文件则会造成所有软链接文件失效
# 硬连接--->只是复制了一份文件名
	若一个inode号对应多个文件名,硬链接就是同一个文件使用了多个别名,共用一个inode
    
    
###### 软连接实战
#文件软链接示例
touch /root/file
ln -s /root/file /tmp/file_bak
ll /tmp/file_bak  //root下file链接到/tmp下并重命名为file_bak
  

#目录软链接示例
mkdir /soft/nginx1.1 -p
ln -s /soft/nginx1.1/ /soft/nginx
ll /soft/nginx   //查看链接指向


# redis源码安装  redis.7.11---->做个软连接 redis--->
redis.7.11 /bin
redis.6.11 /bin
redis 指向7.11--->redis/bin/xx
#软链接使用场景
1.软件升级
2.企业代码发布 
3.不方便目录移动


###### 硬连接实战
#文件硬链接示例
ln  /root/file /tmp/file_hard
ll /tmp/file_hard

#PS:目录不能创建硬链接,硬链接文件可以用rm命令删除

七 vim使用(使用频率非常高)

vi和vim是Linux下的一个文本编辑工具
最小化安装只有vi
vim,需要额外安装,比vi更强大一些

# 安装
yum install vim -y

# vim 操作文件,有三种模式:普通模式,编辑模式,命令模式
	-vim 文件名刚进来---->普通模式-->只能复制,粘贴,翻页,剪切
    -进入到编辑模式(按esc退回到普通模式):从普通模式进入:i,a,o,I,A,O-->就可以写内容了
    -命令模式:之鞥呢从普通模式进入
    	-搜索,设置行号。。。
        
        
        
        
# 普通模式 下操作
#1.命令光标跳转
G       #光标跳转至末端
gg      #光标跳转至顶端
Ngg     #光标跳转至当前文件内的N行
$       #光标跳转至当前光标所在行的尾部
^或者0     #光标跳转至当前光标所在行的首部

#2.文件内容较多
ctrl+f  #往下翻页(行比较多)
ctrl+b  #往上翻页


#3.复制与粘贴
yy      #复制当前光标所在的行
5yy     #复制当前光标以及光标向下4行
 
p(小写)   #粘贴至当前光标下一行   
P(大写)   #粘贴至当前光标上一行


#4.删除、剪贴、撤销  
dd      #删除当前光标所在的行   
4dd     #删除当前光标所在的行以及往下的3行
dG      #删除当前光标以后的所有行
D       #删除当前光标及光标以后的内容  
x       #删除当前光标标记往后的字符
X       #删除当前光标标记往前的字符
dd & p  #剪贴、先删除dd(number dd),后粘贴p
u       #撤销上一次的操作


#5.替换
r       #替换当前光标标记的单个字符
R       #进入REPLACE模式, 连续替换,ESC结束




########### 从普通模式进入编辑模式
i   #进入编辑模式,光标不做任何操作
a   #进入编辑模式,将当前光标往后一位
o   #进入编辑模式,并在当前光标下添加一行空白内容


I   #进入编辑模式,并且光标会跳转至本行的头部
A   #进入编辑模式,将光标移动至本行的尾部
O   #进入编辑模式,并在当前光标上添加一行空白内容



#### 命令模式,主要用于搜索, 保存, 退出文件。
#1.文件保存与退出
:q      退出当前文档(文档必须保存才能退出)
:q!     强制退出文档不会修改当前内容
:wq     先保存,在退出
:wq!    强制保存并退出

:number 跳转至对应的行号
:set nu 显示行号
:set nonu 不显示行号

#2.文件内容查找
/string #需要搜索的内容(查找)
n       #按搜索到的内容依次往下进行查找
N       #按搜索到的内容依次往上进行查找


#3.文件内容替换
:1,5s#sbin#test#g   #替换1-5行中包含sbin的内容为test
:1,5s#sbin#test#   #只替换1-5行中第一个包含sbin的内容为test
:%s#sbin#test#g     #替换整个文本文件中包含sbin的替换为test
:%s#sbin#test#gc    #替换内容时时提示是否需要替换

posted @ 2023-08-08 21:57  星空看海  阅读(8)  评论(0编辑  收藏  举报