linux文件操作

linux文件操作

学习目标

1、了解文件命名规则和工作中的建议命名规则

2、会创建和删除目录mkdir/rmdir

3、会创建和删除文件touch/rm

4、了解复制cp和移动mv的区别会使用tar命令进行压缩和解压缩,(剪切, 复制)网络中文件的传输,打包传输是最好的

1.两个硬盘之间,拷贝大量的数据  10GB
2.传输速率,是有很大幅度,上升,下降 ,  300M/s   17K/s (零散文件太多了)
3. 稳定保持在,你的硬盘设备,最大速率,(打包,压缩,散的文件,整合到一起,再去传输)

数据在服务器之间传输,导致文件丢失,(网络中传输,压缩传输也是必须的)

5、掌握VIM的保存退出wq和不保存强制退出q!掌握VIM的快捷键yy,dd,gg,G,u

修改某程序的配置文件,改参数
给你个文本,如何大量替换,批量替换文本内容

6、会使用tail命令查看文件 7、会使用find命令按文件名称查找文件

文件命名规则

touch  '文件名,写在引号里'

touch my_website.html

touch yuchao_all_html.tgz



1.文件,文件夹,名字,做好见名知意
2.需要分割的时候,用下划线

3. 同一个目录下,文件名唯一


[root@fjh001 ~]# touch Yuanlai0224
[root@fjh001 ~]# ll
total 0
-rw-r--r-- 1 root root 0 Mar  7 18:28 yuanlai0224
-rw-r--r-- 1 root root 0 Mar  7 18:28 Yuanlai0224
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# mkdir yuanlai0224 
mkdir: cannot create directory ‘yuanlai0224’: File exists
[root@fjh001 ~]# 
[root@fjh001 ~]# # linux的文件夹,文件名,不得重复 
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# mkdir Yuanlai0224 
mkdir: cannot create directory ‘Yuanlai0224’: File exists
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# # linux一切皆文件 
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# mkdir  yuanlai_dir
[root@fjh001 ~]# 
[root@fjh001 ~]# ll
total 0
-rw-r--r-- 1 root root 0 Mar  7 18:28 yuanlai0224
-rw-r--r-- 1 root root 0 Mar  7 18:28 Yuanlai0224
drwxr-xr-x 2 root root 6 Mar  7 18:29 yuanlai_dir
[root@fjh001 ~]# 
[root@fjh001 ~]# 

文件管理命令

在日常工作中,我们经常需要对Linux的文件或目录进行操作,常见操作包括

新建

touch 创建文件
mkdir 创建文件夹
vi ,vim 也可以创建文件

echo 结合 重定向符号(>)  才能创建文件 
	echo "男儿当自强"  > /opt/man.txt 

删除

remove  删除
简写
rm

更改

修改文件内容的命令很多

vim 

查看

cat 读取文件内容

复制

copy 拷贝,缩写的命令,就是 cp

移动

move 缩写
	mv 
	
剪切
重命名

mkdir用法

1.用法一:mkdir 不加参数,路径(需要包含目录名称)

[root@fjh001 ~]# mkdir  day07_dir
[root@fjh001 ~]# ls
day07_dir  start.exe  yuanlai0224  Yuanlai0224  yuanlai_dir


2.递归创建写法
[root@fjh001 ~]# mkdir  /opt/0224/linux/chaochao  
mkdir: cannot create directory ‘/opt/0224/linux/chaochao’: No such file or directory
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# mkdir -p /opt/0224/linux/chaochao
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# tree /opt
/opt
├── 0224
│   └── linux
│       └── chaochao
├── day07_dir
├── happy
└── hello

5 directories, 1 file


3.同时创建多个文件夹,且注意绝对,相对路径
当前目录的 王者

/opt下的lol

/ 根目录下的 dnf

上一级目录的 cs文件夹

先判断你在哪
pwd


再去创建文件,文件夹
[root@fjh001 ~]# mkdir   ./王者  /opt/lol/top/瑞雯    /dnf  ../cs  





什么时候用-p创建

image-20220307104344563

[root@fjh001 opt]# 
[root@fjh001 opt]# mkdir  -p    ./王者  /opt/lol/top/瑞雯    /dnf/狂战士     ../cs     
[root@fjh001 opt]# 
[root@fjh001 opt]# 

rmdir删除空目录

目录里面,没有任何文件

语法是
rmdir  文件夹的路径

且必须要要求,你要删除的文件夹,里面没数据,方可删除,否则提示,该文件夹不为空

[root@fjh001 opt]# mkdir -p   /opt/0224/男生/程志伟/好朋友/哈嘿
[root@fjh001 opt]# 
[root@fjh001 opt]# 

比如这个命令,一定是报错的
比如这个命令,一定是报错的
比如这个命令,一定是报错的
[root@fjh001 opt]# rmdir  /opt/0224/男生/程志伟

需要递归删除



touch命令

1. 当文件不存在,执行touch 是创建该文本文件

touch  hello.txt


2. 当文件,文件夹(名字)已经存在后,touch命令是修改它的时间戳

touch /opt/


3.touch一次性创建多个文件,注意,要保证,路径中的文件夹是存在的,否则报错

image-20220307105304799

touch 一次性创建多个文件

1.在某个目录,创建多个 同级的文件

2.学习shell的花括号用法 ,一次性在同级目录,创建多个文件
分别适用于touch、mkdir
[root@fjh001 ~]# 
[root@fjh001 ~]# touch /opt/王者/坦克/{老夫子,廉颇,吕布,妲己}
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# tree -N /opt/
/opt/
└── 王者
    └── 坦克
        ├── 吕布
        ├── 妲己
        ├── 廉颇
        └── 老夫子

2 directories, 4 files
[root@fjh001 ~]# 
[root@fjh001 ~]# mkdir   -p   /opt/lol/中单/{快乐风男,儿童劫,提款机}
[root@fjh001 ~]# 
[root@fjh001 ~]# 



3.使用tree命令,查看文件目录结构
需要安装后使用 1.机器可以上外网 2.用命令安装 yum install  tree -y   # 自动下载安装tree这个软件(命令)

4.使用tree查看目录结构,且显示中文,且显示该文件的类型
tree -NF      # -N 是显示中文 -F 显示文件类型


image-20220307110054356

关于花括号用法 {} 结合touch命令

1.创建多个连续的文件,有规律的文件   1 2 3 4 5 
[root@fjh001 快乐风男]# touch 玩家{1..100}.log


rm删除命令

虚拟机的快照

为了防止你删库的

  • vmware提供了快照功能
    • 游戏存档,1
    • 游戏存档,2
    • 游戏存档,3
    • 游戏进行中
  • linux系统
    • 系统快照1,系统刚初始化好
    • 系统快照2,安装了数据库(回到这个系统的快照,回到这个状态)
    • 系统快照3,升级数据库(假如在这报错了,数据库挂了,升级软件,系统中有很多相关的软件版本也都升级)

image-20220307111935132

添加快照

image-20220307112037669

关于rm命令的学习

权限最大化

root + rm(参数)

rm 命令和其他一样

rm (remove移除)

语法是
rm   可选参数  可选对象



-r :递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有子目录和文件

-f :强制删除,不提示任何信息。操作前一定要慎重!!!不小心你就删库跑路(放心,跑不掉的)

-i  :删除前需要确认



(别慌,孰能生巧,学习期间,你的虚拟机你随便删,前提是你做好快照!!删腻了,你上班就不会出错了)


1.rm命令不带参数,只删除1个文件
[root@fjh001 快乐风男]# rm   玩家100.log 
rm: remove regular empty file ‘玩家100.log’? yes

2. rm命令删除多个文件
[root@fjh001 快乐风男]# rm  ./玩家10.log   /opt/lol/中单/快乐风男/玩家20.log 
rm: remove regular empty file ‘./玩家10.log’? yes
rm: remove regular empty file ‘/opt/lol/中单/快乐风男/玩家20.log’? yes
[root@fjh001 快乐风男]# 



3. 当你想强制删除文件,不要去提示了怎么办?
-f 强制删除
[root@fjh001 快乐风男]# ls
玩家11.log  玩家17.log  玩家23.log  玩家29.log  玩家40.log  玩家46.log  玩家51.log  玩家57.log  玩家62.log  玩家68.log  玩家73.log  玩家79.log  玩家84.log  玩家8.log   玩家95.log
玩家12.log  玩家18.log  玩家24.log  玩家36.log  玩家41.log  玩家47.log  玩家52.log  玩家58.log  玩家63.log  玩家69.log  玩家74.log  玩家7.log   玩家85.log  玩家90.log  玩家96.log
玩家13.log  玩家19.log  玩家25.log  玩家37.log  玩家42.log  玩家48.log  玩家53.log  玩家59.log  玩家64.log  玩家6.log   玩家75.log  玩家80.log  玩家86.log  玩家91.log  玩家97.log
玩家14.log  玩家1.log   玩家26.log  玩家38.log  玩家43.log  玩家49.log  玩家54.log  玩家5.log   玩家65.log  玩家70.log  玩家76.log  玩家81.log  玩家87.log  玩家92.log  玩家98.log
玩家15.log  玩家21.log  玩家27.log  玩家39.log  玩家44.log  玩家4.log   玩家55.log  玩家60.log  玩家66.log  玩家71.log  玩家77.log  玩家82.log  玩家88.log  玩家93.log  玩家99.log
玩家16.log  玩家22.log  玩家28.log  玩家3.log   玩家45.log  玩家50.log  玩家56.log  玩家61.log  玩家67.log  玩家72.log  玩家78.log  玩家83.log  玩家89.log  玩家94.log  玩家9.log
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -f 玩家11.log 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -f 玩家12.log 
[root@fjh001 快乐风男]# rm -f 玩家13.log 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -f 玩家{1..100}.log
[root@fjh001 快乐风男]# ls
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -f 玩家1.log
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -f 玩家2.log
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -f 玩家3.log
[root@fjh001 快乐风男]# 

4. 关于rm的文件夹删除,需要-r参数使用
[root@fjh001 快乐风男]# rm 亚索
rm: cannot remove ‘亚索’: Is a directory
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -r   亚索
rm: descend into directory ‘亚索’? y
rm: descend into directory ‘亚索/武器’? y
rm: remove directory ‘亚索/武器/武士刀’? y
rm: remove directory ‘亚索/武器’? y
rm: remove directory ‘亚索’? y
[root@fjh001 快乐风男]# ls
[root@fjh001 快乐风男]# 


5.递归,强制删除文件夹
[root@fjh001 快乐风男]# mkdir -p 儿童劫/小学生/空三个大
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# tree -N
.
└── 儿童劫
    └── 小学生
        └── 空三个大

3 directories, 0 files
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# rm -r  -f  ./儿童劫
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# ls


6.危险命令,注意rm命令后面,到底跟着的路径是什么,错一个字符,就删错了,没有回头路

7.确保虚拟机快照备份完毕

8.人生第一次,删除linux所有资料(注意,此操作,不要在你的虚机以外任何地方执行,比如你的同桌的linux)










关于rm删除文件

image-20220307113012219

ln命令

ln是link的意思,表示创建一个快捷方式,如同你windows的图标快捷方式

alias命令(别名命令)

昵称,别名的意思

于超,超弟,哈嘿,小于

alias在系统中是怎么用的呢?

1.查看系统的默认别名,alias
[root@fjh001 快乐风男]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@fjh001 快乐风男]# 


2.修改关于rm的 别名
你可以自由修改rm的别名,如修改语法
[root@fjh001 快乐风男]# alias  rm='rm -i'
[root@fjh001 快乐风男]# 


3.你可以自己去定义这样的,好用的别名



image-20220307114538409


image-20220307115131891

cp拷贝命令

1.拷贝文件,且改名
[root@fjh001 快乐风男]# cp  /opt/lol/中单/快乐风男/很菜的亚索.txt    /home/突然很强的亚索.txt


2.仅仅拷贝单个文件,保持源文件名
[root@fjh001 快乐风男]# cp ./很菜的亚索.txt  /   


3.拷贝文件夹,以及递归拷贝操作
cp -r 源文件夹路径   目标文件夹路径

关于cp拷贝文件夹的坑

1.在/home下,是没有这个 英雄联盟文件夹的

image-20220307115958523

  1. 演示,在/home下以及存在,同名的文件夹了,是啥样?

image-20220307120338359

移动、剪切、重命名(mv命令)

1.从A目录,移动到B目录,移动单个文件
[root@fjh001 快乐风男]# mv  ./蔡文姬.txt /opt/lol/中单
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# pwd
/opt/lol/中单/快乐风男
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# ls
很菜的亚索.txt  摇.txt
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# ls /opt/lol/中单/
儿童劫  快乐风男  提款机  蔡文姬.txt


2.mv结合相对路径去移动
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# mv  ../蔡文姬.txt   /opt
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# tree -N /opt/
/opt/
├── lol
│   └── 中单
│       ├── 儿童劫
│       ├── 快乐风男
│       │   ├── 很菜的亚索.txt
│       │   └── 摇.txt
│       └── 提款机
├── 王者
│   └── 坦克
│       ├── 吕布
│       ├── 妲己
│       ├── 廉颇
│       └── 老夫子
└── 蔡文姬.txt



3. 文件的重命名,在当前目录,重命名
[root@fjh001 快乐风男]# mv 很菜的亚索.txt   努力学习怎么放大招的亚索.txt 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# ls
努力学习怎么放大招的亚索.txt  摇.txt


4.移动文件目录,且重命名
[root@fjh001 快乐风男]# mv  ./努力学习怎么放大招的亚索.txt /opt/垃圾压缩.txt
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# 
[root@fjh001 快乐风男]# tree -N /opt/
/opt/
├── lol
│   └── 中单
│       ├── 儿童劫
│       ├── 快乐风男
│       │   └── 摇.txt
│       └── 提款机
├── 垃圾压缩.txt
├── 王者
│   └── 坦克
│       ├── 吕布
│       ├── 妲己
│       ├── 廉颇
│       └── 老夫子
└── 蔡文姬.txt

7 directories, 7 files



5.移动文件夹(剪切)
[root@fjh001 opt]# # 移动 /opt/lol 到根目录去
[root@fjh001 opt]# 
[root@fjh001 opt]# 
[root@fjh001 opt]# mv  /opt/lol/  /


6.移动文件夹,且改名字



这里也有关于文件夹是否存在的坑

image-20220307121828756

压缩、解压缩

打包,默认是没有压缩功能,不节省磁盘空间

打包+压缩,将一堆零散的文件,打包到一起,之后再压缩,节省磁盘空间。

tar命令

官网.tgz

all_databases.tgz

打包
命令:tar

作用:将多个文件打包成一个文件

语法:tar 选项 打包之后的文件名    要打包的文件或目录1 要打包的文件或目录2  要打包的文件或目录3 

常见参数:
用不同的参数,有不同的作用
tar实现,到底是打包,还是压缩,或者是解压缩,就看给的参数是什么.


 -c,create 创建的意思 ,打包

​ -v,显示打包文件过程

​ -f,指定打包的文件名,此参数是必须加的,且必须在最后一位

​ -u,update缩写,更新原打包文件中的文件(了解)

​ -t,查看打包的文件内容(了解)  (不解压,看看里面有什么)

-x  解包,解压缩  (将一个单个的压缩文件,解压其中内容)

-z  压缩操作,是tar命令,去调用gzip命令的过程,压缩的参数

提示:

tar命令打包的文件,通常称为tar包,如 yuchao-all.tar文件
提问:

​ 这个.tar是个谁看的?是给centos看的,还是给运维哈嘿看的?

实践

压缩文件名的规范

用tar命令压缩的文件,一般后缀如

*.tar   仅仅是打包了

*.tar.gz  打包+压缩

*.tgz    打包+压缩


tar的打包用法

1.准备一堆 比较大的文件,以及文件夹

打包多个文件

先生成四个测试的数据文件
[root@fjh001 0224_day07]# echo 机器人{1..500000}号 >> robot.txt
[root@fjh001 0224_day07]# echo 机器人{1..500000}号 >> robot.txt
[root@fjh001 0224_day07]# echo 机器人{1..500000}号 >> robot.txt
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll -h
total 66M
-rw-r--r-- 1 root root 36M Mar  7 22:30 robot.txt
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# echo 机器人{1..900000}号 >> robot.txt
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll -h
total 66M
-rw-r--r-- 1 root root 53M Mar  7 22:30 robot.txt
[root@fjh001 0224_day07]# cp robot.txt robot.txt1 
[root@fjh001 0224_day07]# cp robot.txt robot.txt2
[root@fjh001 0224_day07]# cp robot.txt robot.txt3
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll -h
total 209M
-rw-r--r-- 1 root root 53M Mar  7 22:30 robot.txt
-rw-r--r-- 1 root root 53M Mar  7 22:31 robot.txt1
-rw-r--r-- 1 root root 53M Mar  7 22:31 robot.txt2
-rw-r--r-- 1 root root 53M Mar  7 22:31 robot.txt3
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 


2.将这个四个文件,打包到一起 (打包,整合到一起)
[root@fjh001 0224_day07]# # tar  参数  打包文件名   你要打包的内容
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# tar -cvf all_robots.tar  robot.txt robot.txt1 robot.txt2 robot.txt3  
robot.txt
robot.txt1
robot.txt2
robot.txt3
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll -h
total 417M
-rw-r--r-- 1 root root 209M Mar  7 22:34 all_robots.tar
-rw-r--r-- 1 root root  53M Mar  7 22:30 robot.txt
-rw-r--r-- 1 root root  53M Mar  7 22:31 robot.txt1
-rw-r--r-- 1 root root  53M Mar  7 22:31 robot.txt2
-rw-r--r-- 1 root root  53M Mar  7 22:31 robot.txt3


3.查看打包文件中的内容
[root@fjh001 0224_day07]# tar -tf  all_robots.tar 
robot.txt
robot.txt1
robot.txt2
robot.txt3


4.解包,拆包,拆开打包文件(拆快递)
[root@fjh001 0224_day07]# tar -xvf all_robots.tar 
robot.txt
robot.txt1
robot.txt2
robot.txt3
[root@fjh001 0224_day07]# ll
total 426144
-rw-r--r-- 1 root root 218183680 Mar  7 22:34 all_robots.tar
-rw-r--r-- 1 root root  54544475 Mar  7 22:30 robot.txt
-rw-r--r-- 1 root root  54544475 Mar  7 22:31 robot.txt1
-rw-r--r-- 1 root root  54544475 Mar  7 22:31 robot.txt2
-rw-r--r-- 1 root root  54544475 Mar  7 22:31 robot.txt3


5.更新,加入一个文件到打包文件中
[root@fjh001 0224_day07]# tar -uf all_robots.tar test1.log 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll -h
total 365M
-rw-r--r-- 1 root root 287M Mar  7 22:39 all_robots.tar
-rw-r--r-- 1 root root  78M Mar  7 22:38 test1.log



tar的压缩用法

1.打包且压缩

打包,不压缩的时候,是287M
[root@fjh001 0224_day07]# ll -h
total 573M
-rw-r--r-- 1 root root 287M Mar  7 22:39 all_robots.tar
-rw-r--r-- 1 root root  53M Mar  7 22:30 robot.txt
-rw-r--r-- 1 root root  53M Mar  7 22:31 robot.txt1
-rw-r--r-- 1 root root  53M Mar  7 22:31 robot.txt2
-rw-r--r-- 1 root root  53M Mar  7 22:31 robot.txt3
-rw-r--r-- 1 root root  78M Mar  7 22:38 test1.log


2.打包且压缩的用法
[root@fjh001 0224_day07]# tar -czvf all_files.tar.gz   ./*   
./robot.txt
./robot.txt1
./robot.txt2
./robot.txt3
./test1.log
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll -h
total 324M
-rw-r--r-- 1 root root 38M Mar  7 22:42 all_files.tar.gz
-rw-r--r-- 1 root root 53M Mar  7 22:30 robot.txt
-rw-r--r-- 1 root root 53M Mar  7 22:31 robot.txt1
-rw-r--r-- 1 root root 53M Mar  7 22:31 robot.txt2
-rw-r--r-- 1 root root 53M Mar  7 22:31 robot.txt3
-rw-r--r-- 1 root root 78M Mar  7 22:38 test1.log


3.除了-z的压缩参数,还有哪些   windows下的 .zip  .rar  .7z 

-z,压缩为.gz格式 ,记住用这个就好了,主流的80%人都用这个
	你拿到一个 all_files.tar.gz ,这个如何解压?
	tar  -zxvf  all_files.tar.gz

-j,压缩为.bz2格式   
	all_files.tar.bz2   ,如何解压?
    tar -xjvf all_files.tar.bz2 
	
	

-J,压缩为.xz格式
	

-c,create 创建的意思

-x,解压缩

-v,显示打包文件过程

-f,file指定打包的文件名,此参数是必须加的。

-u,update缩写,更新原打包文件中的文件(了解)

-t,查看打包的文件内容(了解)



如果压缩文件名字呗改了,还能用吗?

能用

你能在互联网上下载的各类软件,基本都是如下俩格式

  • mysql.tar.gz
  • nginx.tgz
1.linux文件名,不重要,具体文件内容,由其属性决定

[root@fjh001 0224_day07]# mv all_files.tar.gz all_files
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll
total 38780
-rw-r--r-- 1 root root 39709097 Mar  7 22:42 all_files
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll -h
total 38M
-rw-r--r-- 1 root root 38M Mar  7 22:42 all_files
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# vim all_files 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# ll
total 38780
-rw-r--r-- 1 root root 39709097 Mar  7 22:42 all_files
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# tar -zxvf all_files 
./robot.txt
./robot.txt1
./robot.txt2
./robot.txt3
./test1.log
[root@fjh001 0224_day07]# ll
total 331716
-rw-r--r-- 1 root root 39709097 Mar  7 22:42 all_files
-rw-r--r-- 1 root root 54544475 Mar  7 22:30 robot.txt
-rw-r--r-- 1 root root 54544475 Mar  7 22:31 robot.txt1
-rw-r--r-- 1 root root 54544475 Mar  7 22:31 robot.txt2
-rw-r--r-- 1 root root 54544475 Mar  7 22:31 robot.txt3
-rw-r--r-- 1 root root 81777792 Mar  7 22:38 test1.log
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# mv all_files all_files.tgz
[root@fjh001 0224_day07]# ll
total 331716
-rw-r--r-- 1 root root 39709097 Mar  7 22:42 all_files.tgz
-rw-r--r-- 1 root root 54544475 Mar  7 22:30 robot.txt
-rw-r--r-- 1 root root 54544475 Mar  7 22:31 robot.txt1
-rw-r--r-- 1 root root 54544475 Mar  7 22:31 robot.txt2
-rw-r--r-- 1 root root 54544475 Mar  7 22:31 robot.txt3
-rw-r--r-- 1 root root 81777792 Mar  7 22:38 test1.log
[root@fjh001 0224_day07]# 
[root@fjh001 0224_day07]# 

zip压缩

zip压缩目录,需要添加-r参数

zip仅仅压缩多个文件的用法

image-20220307151358483

zip压缩文件,和文件夹

[root@fjh001 0224_day07]# zip -r  all_files.zip  robot/ test1.log 
  adding: robot/ (stored 0%)
  adding: robot/robot.txt (deflated 87%)
  adding: robot/robot.txt1 (deflated 87%)
  adding: robot/robot.txt2 (deflated 87%)
  adding: robot/robot.txt3 (deflated 87%)
  adding: test1.log (deflated 87%)
[root@fjh001 0224_day07]# 

unzip(解压缩)

官网源码.zip

unzip 官网源码.zip -d 指定解压缩到哪

1.该命令,可能需要安装,用如下命令
[root@fjh001 0224_day07]# yum install unzip -y


2.解压缩,并且指定解压到一个地方 -d 
[root@fjh001 ~]# unzip /all_files.zip -d /0224_day07/
Archive:  /all_files.zip
   creating: /0224_day07/robot/
  inflating: /0224_day07/robot/robot.txt  
  inflating: /0224_day07/robot/robot.txt1  
  inflating: /0224_day07/robot/robot.txt2  
  inflating: /0224_day07/robot/robot.txt3  
  inflating: /0224_day07/test1.log   
[root@fjh001 ~]# 
[root@fjh001 ~]# 



vim快速上手

1.所有你可见到的linux机器,都会默认有vi编辑器,但是它不好用,就好比windows的记事本。

2.你可以选择更强大的编辑器 ,叫vim,需要额外安装

yum install vim -y

学习vim的使用流程

1.安装vim
yum install vim -y

2.学习它的几个模式,运转流程

图解vim的流程

image-20220307153213889

查看该文件内容
[root@fjh001 ~]# vim gushi.txt
[root@fjh001 ~]# 
[root@fjh001 ~]# 
[root@fjh001 ~]# cat gushi.txt 
古诗
清明时节雨纷纷
路上行人欲断魂
借问美女何处有
路人遥指三里屯


vim 测试数据


  I have a dog. My dog name is DuDu. DuDu is 9 years. DuDu is fat. It wears a white coat. DuDu has two big eyes and two small ears. It has one short mouth. My dog is smart. I like my dog. Do you like DuDu?
  
  我有一只狗。我的狗的名字叫嘟嘟。嘟嘟9岁。嘟嘟胖。它穿着一件白色外套。嘟嘟有两个大眼睛和两个小耳朵。它有一个短嘴。我的狗是聪明的。我喜欢我的狗。你喜欢吗?

vim的使用

1.安装vim

yum install vim -y 

vim的使用流程

基本上 vi/vim 共分为三种模式,分别是:

  • 命令模式(Command mode)
    • 最长用的,按下字母,a,i,o(a 在光标前开始编辑,i是在光标处,开始编辑,o是在光标下一行开始编辑)
    • 当你使用vim 标记某个文件时,第一步就进入了命令模式。
    • 你此时可以按下键盘的几个快捷键,进入不同的指令模式。
    • 可以移动光标位置,输入快捷键指令,对文件进行编辑,如插入字符,复制,粘贴,删除等操作
  • 输入模式(Insert mode)
    • 可以对文件内容进行编辑。
    • 退出编辑模式(按下esc键,回到了命令模式)
  • 末行模式(Last line mode)底线模式
    • 从命令模式下 ,输入冒号,即进入了底线命令模式。
    • 进行一些特殊操作,如文本信息的查找,替换,保存,退出等;

还有一种特殊的可视化模式(多行操作模式),用于批量的列选操作。

图解vim使用流程

image-20220308102922965

底线命令模式,的w模式,就是写入文件内容,以及创建文件的作用。

了解网站部署

1.nginx小试牛刀

yum install  nginx -y 

系统默认是没有这个nginx安装包的。


2.简单了解,给你的机器,配置一个软件仓库(360软件大师,点点点,下载各种工具,它的软件,还携带了一堆广告)

配置阿里云的软件仓库
https://developer.aliyun.com/mirror/

这里配置下载2个软件仓库 (centos和redhat系统的关系)

# wget -O 指定文件存放到哪里   资源的下载链接

# 直接下载Centos-7.repo这个文件,到当前目录
wget https://mirrors.aliyun.com/repo/Centos-7.repo

# 不但下载资源,且指定到某一个路径下
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo



3.既然机器有了软件仓库,即可下载各种应用了

[root@localhost opt]# yum install nginx -y


4. 就可以启动该应用
[root@localhost opt]# systemctl start nginx 


5.程序运行了,如何判断他运行?
windows 
	任务管理器 
		查看进程,就是一个个运行中的软件,在消耗系统的资源
		
linux
	任务管理器
		查看进程
			查看nginx这个程序的进程	
			
				执行ps命令 

命令是 ,仅仅查看这个机器上的 nginx进程信息,是否存在
ps -ef |grep nginx 
			
	

6. 一个网站的运行,默认端口是 http的80端口
用你的客户端,浏览器去访问, 
10.96.0.134:80即可


7.注意关闭服务器的防火墙
执行命令
[root@localhost opt]# iptables -F


8.停止这个网站服务,思路是?
停用80端口,也就是,停止这个软件的运行
[root@localhost opt]# systemctl stop nginx

再次重新运行,命令是
systemctl restart nginx


8.可以修改该软件的配置了,比如网站首页的内容

完成1分钟,做一个dnf官网

下载该网址的首页html文件
wget https://dnf.qq.com/main.shtml

移动,拷贝该文件,到你的nginx网站目录下, 它会自动识别

移动 /opt/main.shtml  到/usr/share/nginx/html/ 目录下,且重命名为index.html

[root@localhost opt]# mv /opt/main.shtml /usr/share/nginx/html/index.html
mv: overwrite ‘/usr/share/nginx/html/index.html’? y


9.当你修改了网站的前端页面,无须重启,网站自动更新
http://10.96.0.134/





完成练习效果,访问你的linux机器地址,看到一个有内容的网址即可。

课程里是dnf官网,自行更换其他html文件。

cat命令

1.cat 适合读取小文件,不能读取大文件,一次性将文件内容全部读取到内存中,且输出到屏幕上

查看nginx软件的配置文件(前提是你安装了该软件,linux默认安装的软件,配置文件会自动写到/etc目录下)

[root@localhost opt]# cat /etc/nginx/nginx.conf

查看系统的用户信息有哪些
[root@localhost opt]# cat /etc/passwd


2.cat 添加一个功能参数  -n 显示行号
[root@localhost opt]# cat -n  /etc/passwd

3. cat不适合读取大文件,显示也不友好
比如 cat  /var/log/messages


4. 还可以连续读取多个文件,并且显示三文件一共有多少行
[root@localhost opt]# cat -n  doupo.txt   hehe.txt   hello_python.txt

5. 结合重定向符号使用

>   重定向覆盖输出符  ,数据从左边,覆盖写入到右边 
<   重定向覆盖输入符,数据从右边,覆盖写入到左边
>>  重定向追加输出符, ,数据从左边,追加写入到右边 
<<  重定向覆盖输入符,数据从右边,追加写入到左边

cat  doupo.txt   hehe.txt   hello_python.txt  > ./three_files.txt 


6.
[root@localhost opt]# echo 春晓 > 春晓.txt
[root@localhost opt]# echo 春眠不觉晓 > 春晓.txt
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# echo 春晓 > 春晓.txt
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# echo 春眠不觉晓 >> 春晓.txt
[root@localhost opt]# echo 处处蚊子咬>> 春晓.txt
[root@localhost opt]# echo 越来讽喻诗>> 春晓.txt
[root@localhost opt]# 
[root@localhost opt]# echo 滑落至多为>> 春晓.txt
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# cat 春晓.txt 
春晓
春眠不觉晓
处处蚊子咬
越来讽喻诗
滑落至多为



7.使用cat命令来实现,很简单

cat 和重定向符号,结合使用

>   重定向覆盖输出符  ,数据从左边,覆盖写入到右边 
<   重定向覆盖输入符,数据从右边,覆盖写入到左边
>>  重定向追加输出符, ,数据从左边,追加写入到右边 
<<  重定向覆盖输入符,数据从右边,追加写入到左边


写法如下,一般用于写入多行数据

cat >> 古诗2.txt <<EOF
你的数据在这里写。。。
EOF

EOF是一个关键字,end of file  ,文件的结束

[root@localhost opt]# cat  >>古诗2.txt <<EOF
> 嗯嗯嗯
> 呃呃呃,曲项向天歌
> 白毛浮绿水
> 红掌拨清波
> EOF
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# cat 古诗2.txt 
嗯嗯嗯
呃呃呃,曲项向天歌
白毛浮绿水
红掌拨清波



8. cat证明文件存在空行的办法
-b  只会对有内容的行,显示其行号,空行不显示
-E  在linux文件中,每一行的结束,默认会添加一个你看不到的,特殊符号 '$'  ,表示是该行的结尾

可以利用-b参数,完成对有内容的行,进行编号的作用
[root@localhost opt]# cat -b doupo.txt 

比如你去查看文件的字符数量有多少






















tac命令

将文件从后,向前,倒着查看

[root@localhost opt]# cat  -n hehe.txt 
     1	yuchao
     2	yejingyang
     3	chenliangliang
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# tac hehe.txt 
chenliangliang
yejingyang
yuchao

ls和sl

ls 查看文件夹下内容

安装这个sl命令
yum install sl -y

sl是一个小火车命令

more和less命令

more和cat都是一次性读取所有内容到内存,不适合读取大文件,占资源

less命令是显示多少文本,消耗多少内存,省资源。

空格,翻篇

回车 下一行

head和tail命令

tail -f (重点)

head 脑袋

查看文件的默认前10行
[root@localhost opt]# head  doupo.txt 



head -5  文件   # 查看文件的前5行




tail 命令
查看文件的后默认10行
tail -5  文件  #表示查看文件的后5行


tail有一个重点命令,叫做实时刷新文件内容

-f  跟踪文件内容变化,但是需要文件正常退出后,可见,最常用的也就是小写的f,检测程序的日志变化(程序代码,追加新内容到文件中的)










image-20220309115831522

结合tail和上午安装的nginx练习日志查看

1.用tail 检测nginx的访问日志
[root@localhost opt]# tail -f  /var/log/nginx/access.log 


2.用浏览器,访问nginx的页面即可,不断刷新,不断出现新的日志



tail -F

能够对文件进行刷新读取,即使该文件不存在,也可以检测


image-20220309120423136

wc命令

统计文件的行

  • vim(set nu)
  • cat -n
  • wc -l
1.wc命令,统计文件内有多少行,有一个回车,是一个空行
[root@localhost opt]# wc -l doupo.txt 
32 doupo.txt
[root@localhost opt]# ll


2. wc -w 统计文件内的单词数

[root@localhost opt]# wc -w hehe.txt 
9 hehe.txt
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# vim hehe.txt 
[root@localhost opt]# 
[root@localhost opt]# cat  hehe.txt 
yu chao    王秉诚  王仁刚    赵阳阳 
yejingyang
chenliangliang

李 文杰   刘永飞 张鑫  
[root@localhost opt]# 
[root@localhost opt]# wc -w hehe.txt 
11 hehe.txt



du命令

统计文件大小的命令

  • ls -lh
du命令
作用:查看文件或目录(会递归显示子目录)占用磁盘空间大小

语法:du [参数选项] 文件名或目录名

常见参数:

-s :summaries,只显示汇总的大小,统计文件夹的大小

[root@localhost opt]# du -s .
105072KB	.




-h:表示以高可读性的形式进行显示,如果不写-h,默认以KB的形式显示文件大小

linux的文件系统,对文件最小管理单位是4kb算起。

[root@localhost opt]# du -h *
4.0K	doupo.txt
4.0K	hehe.txt
4.0K	hello_python.txt
4.0K	index.txt
4.0K	three_files.txt
26M	xixi
26M	xixi1
26M	xixi2
26M	xixi3
4.0K	古诗2.txt
4.0K	呵呵.txt
4.0K	春晓.txt
4.0K	蔡旭困.txt


2.显示文件夹的大小
[root@localhost /]# du -h /opt
103M	/opt


3.发现机器磁盘空间不够了,你领导让你看看日志目录是不是太大了
du -sh  /var/log

4.查看nginx软件的日志目录,容量是多少

[root@localhost log]# du -sh /var/log/nginx
32K	/var/log/nginx



find找文件

windows下的强大搜索工具

everything工具

linux的工具是谁?—find命令。

find是递归查找

学习一个命令,先学语法

find   从哪找   -name  "你要找什么"

# 从机器上,找到doupo.txt文本

find  /  -name 'doupo.txt'

[root@localhost ~]# find  /  -name 'doupo.txt'
/opt/doupo.txt
[root@localhost ~]# 
[root@localhost ~]# 

缩小搜索范围,从/opt开始找
[root@localhost ~]# 


[root@localhost ~]# find  /opt  -name 'doupo.txt'
/opt/doupo.txt




如果文件名是写死的,找不到,那就是这个/opt目录下没有该文件
[root@localhost ~]# find  /opt  -name 'doupo.txt1'
[root@localhost ~]# 
[root@localhost ~]# 

最大范围,全系统搜索
[root@localhost ~]# find  /  -name 'doupo.txt1'



# 找到机器上所有的 doupo.txt

[root@localhost ~]# # 找出机器上所有的 doupo.txt
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# find  /  -name 'doupo.txt'
/etc/doupo.txt
/tmp/doupo.txt
/usr/local/doupo.txt
/home/doupo.txt
/opt/doupo.txt
[root@localhost ~]# 



# 模糊查找,找出/var下所有的log文件  nginx.log  mysql.log   yuchao.log    *.log 
[root@localhost ~]# # 模糊查找,找出/var下所有的log文件
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# find /var  -name '*.log'


# 找出机器上,所有的png图片
[root@localhost ~]# find / -name '*.png'




# -type  f   找到文本类型的数据 
# -type  d    找到文件夹类型的数据


# 找出机器上所有的 doupo.txt 【文件,文本文件,可以被cat的文件】
# 严格注意命令的语法细节!!
# 严格注意命令的语法细节!!
# 严格注意命令的语法细节!!

find /    -type f     -name   'doupo.txt' 









我想查看linux上的图片,如何看

图片路径是,/usr/share/nginx/html/nginx-logo.png

有哪些思路
1.windows (linux把该图片,发到win上,lrzsz工具,xftp)

2.linux上装图像编辑器(你的linux也得装图形化)






image-20220309123725281

grep

grep是对数据进行过滤查找关键字

源数据可以是

  • 文件内容 grep hello /opt/hello.txt,找出存在hello的那一行
  • 命令的执行结果 ,这个需要结合管道符使用,cat /etc/passwd | grep 'root'
测试数据

I teach linux.

I like python.

My qq is 877348180.

My name is chaoge.

Our school website is http://yuchaoit.cn。

Where is my girl friend.

Who is your boy friend.
My phone number is 15233334444.

1.找出存在My字符的行

linux是区分大小写的,注意

-n 参数,显示存在该关键字的行号

grep -n 'root' /etc/passwd

-i grep忽略大小写

grep -i 'root' /etc/passwd ,无论大小写,找出/etc/passwd文件中,包含的root信息

grep '关键字'  文件名


[root@localhost opt]# grep 'My' testgrep.txt 
My qq is 877348180.
My name is chaoge.
My phone number is 15233334444.
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# 



[root@localhost opt]# grep -n  'My' testgrep.txt 
5:My qq is 877348180.
7:My name is chaoge.
14:My phone number is 15233334444.

找出小写的my的行

[root@localhost opt]# grep -n  'my' testgrep.txt 
11:Where is my girl friend.
[root@localhost opt]# 

比如,搜索系统的一些日志文件,找出关于root相关的信息

[root@localhost opt]# grep -n  'root'  /var/log/messages 

[root@localhost opt]# grep -n  'root'  /var/log/secure

grep不仅能从文件里搜索关键字,只要是文本数据,就可以进行搜索过滤

grep作用是,从文件中(而非文件夹)匹配出存在该关键字的那一行信息。

[root@localhost opt]# grep 'apple' ./*
./t1.txt:apple1
./t2.txt:apple2
./t3.txt:apple3
grep: ./北京: Is a directory


[root@localhost opt]# grep 'aoligei'  古诗2.txt 
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# grep 'aoligei'  t1.txt 
aoligei
[root@localhost opt]# 
[root@localhost opt]# grep -n  'aoligei'  t1.txt 
7:aoligei

greo的忽略大小写参数 -i 结合-n显示行号

[root@localhost opt]# grep -n -i 'apple' t1.txt t2.txt t3.txt   
t1.txt:1:apple1
t1.txt:2:apple1
t1.txt:3:apple1
t1.txt:4:apple1
t1.txt:8:Apple1
t1.txt:9:apple1
t1.txt:10:Apple1
t2.txt:1:apple2
t3.txt:1:apple3



利用grep找出nginx软件,配置文件中,定义的网站监听端口号

[root@localhost opt]# grep -n -i 'listen'  /etc/nginx/nginx.conf
39:        listen       80;

管道符

管道符,和grep结合的是最多的

管道符,在linux中的表达符号是 

|     (快捷键shift + \)



管道符得标准定义

管道是一种通信机制,通常用于进程间的通信。

它表现出来的形式将==前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)==。

image-20220310105056770

利用grep和管道符,来查看系统用户信息

1.找出chaoge用户的信息
/etc/passwd 是系统的用户信息存放文件
在这个文件中,是用户通过命令创建的用户,id号是从1000开始的,比如
useradd yejinyang01
添加完之后,就会在这个文件中生成一行信息


关于查找用户是否存在的命令
# grep 'yejingyang' /etc/passwd
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# # 如何查看linux是否存在某用户,如yejingyang
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# id yejingyang
id: yejingyang: no such user

通过grep找到用户,表示该用户存在
[root@localhost opt]# id yejinyang
uid=1001(yejinyang) gid=1001(yejinyang) groups=1001(yejinyang)
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# grep 'yejinyang'  /etc/passwd
yejinyang:x:1001:1001::/home/yejinyang:/bin/bash


管道符

命令1  | 命令2 

命令1,拿到用户文件信息   |  交给grep再去过滤

[root@localhost opt]# cat /etc/passwd |  grep 'yejinyang'
yejinyang:x:1001:1001::/home/yejinyang:/bin/bash
[root@localhost opt]# 
[root@localhost opt]# grep 'yejinyang' /etc/passwd


管道符常见用法

检查进程

1.查看系统进程信息的命令

ps  -ef  # -e 显示所有的进程信息  -f 格式化显示出进程的id号,等其他信息

2.上述命令,找到了一堆进程,如何过滤出我们要的信息呢?

学习如何,正确使用 grep 和管道符,去过滤机器上某个进程,判断某个进程是否存在

1.找出vim的进程

2.找出nginx的进程

image-20220310112801881


image-20220310112912086


image-20220310113141656


image-20220310113259065

检查端口

1.需要学习,检查系统端口的命令,这个命令,和ps -ef  一样,是查看系统某资源信息
netstat -tunlp   # 这个组合参数,是查看系统上,所有的端口信息

2. 过滤出,机器上,和ssh远程连接的端口信息,提示程序名叫ssdh,或者端口号是22

结合查看端口的命令+ 管道符+ grep,实现,高效的过滤

netstat -tunlp   | grep  'nginx'




统计文件数量

# 1.统计系统中/var/log目录下有多少个log文件
1.先找出/var/log下所有的log文件,find是递归搜索,找出所有的log后缀文件,不放过一个
find /var/log -name '*.log' | wc -l

image-20220310114327968

统计系统用户数量

/etc/passwd 

cat /etc/passwd |  wc -l

管道符,结合find命令搜索信息

1.找出系统中所有的txt文件,然后再过滤出,其中包含了apple信息的txt是哪些


1.
find / -name '*.txt'  # 这个命令找出的,每一个txt文件的名字吧,并且就是,一堆,一行一行的文本而已

2.我要判断出,这些文件,哪一个是包含了apple字符串内容的
一个个的去grep这些文件才行!!!



1.解读1

image-20220310114949867

2.解读2

image-20220310115229936

需求

1.找出系统上所有的txt文本

2.判断哪些文件中是包含了apple文本行的

grep -l 显示匹配到数据的的文件名

这道题,需要用到grep+管道符+xargs理解。

xargs

作用是,简单的说 就是把其他命令的给它的数据,传递给它后面的命令作为参数

先抛出需求

image-20220310115629153

语法如下

命令1 | xargs 选项

选项

-i 用 {} 代替传递的数据



xargs实现批量备份

image-20220310120133214

xargs实现批量重命名

image-20220310120737860

全系统中搜索,包含某数据的文件名

[root@localhost tmp]# find /  -type f  -name '*.txt' | xargs  -i grep -l 'xiake' {}
/var/log/nginx/mima.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

歌颂平凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值