文章目录
- linux文件操作
- 学习目标
- 文件命名规则
- 文件管理命令
- 什么时候用-p创建
- rmdir删除空目录
- touch命令
- rm删除命令
- 虚拟机的快照
- 关于rm命令的学习
- ln命令
- alias命令(别名命令)
- cp拷贝命令
- 关于cp拷贝文件夹的坑
- 移动、剪切、重命名(mv命令)
- 这里也有关于文件夹是否存在的坑
- 压缩、解压缩
- tar命令
- 压缩文件名的规范
- tar的打包用法
- tar的压缩用法
- 如果压缩文件名字呗改了,还能用吗?
- zip压缩
- unzip(解压缩)
- vim快速上手
- 学习vim的使用流程
- vim的使用
- vim的使用流程
- 图解vim使用流程
- 了解网站部署
- cat命令
- tac命令
- ls和sl
- more和less命令
- head和tail命令
- tail -f (重点)
- wc命令
- du命令
- find找文件
- grep
- 管道符
- 利用grep和管道符,来查看系统用户信息
- 管道符常见用法
- 管道符,结合find命令搜索信息
- 需求
- xargs
- xargs实现批量备份
- xargs实现批量重命名
- 全系统中搜索,包含某数据的文件名
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创建
[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一次性创建多个文件,注意,要保证,路径中的文件夹是存在的,否则报错
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 显示文件类型
关于花括号用法 {} 结合touch命令
1.创建多个连续的文件,有规律的文件 1 2 3 4 5
[root@fjh001 快乐风男]# touch 玩家{1..100}.log
rm删除命令
虚拟机的快照
为了防止你删库的
- vmware提供了快照功能
- 游戏存档,1
- 游戏存档,2
- 游戏存档,3
- 游戏进行中
- linux系统
- 系统快照1,系统刚初始化好
- 系统快照2,安装了数据库(回到这个系统的快照,回到这个状态)
- 系统快照3,升级数据库(假如在这报错了,数据库挂了,升级软件,系统中有很多相关的软件版本也都升级)
添加快照
关于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删除文件
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.你可以自己去定义这样的,好用的别名
cp拷贝命令
1.拷贝文件,且改名
[root@fjh001 快乐风男]# cp /opt/lol/中单/快乐风男/很菜的亚索.txt /home/突然很强的亚索.txt
2.仅仅拷贝单个文件,保持源文件名
[root@fjh001 快乐风男]# cp ./很菜的亚索.txt /
3.拷贝文件夹,以及递归拷贝操作
cp -r 源文件夹路径 目标文件夹路径
关于cp拷贝文件夹的坑
1.在/home下,是没有这个 英雄联盟文件夹的
- 演示,在/home下以及存在,同名的文件夹了,是啥样?
移动、剪切、重命名(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.移动文件夹,且改名字
这里也有关于文件夹是否存在的坑
压缩、解压缩
打包,默认是没有压缩功能,不节省磁盘空间
打包+压缩,将一堆零散的文件,打包到一起,之后再压缩,节省磁盘空间。
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仅仅压缩多个文件的用法
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的流程
查看该文件内容
[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使用流程
底线命令模式,的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,检测程序的日志变化(程序代码,追加新内容到文件中的)
结合tail和上午安装的nginx练习日志查看
1.用tail 检测nginx的访问日志
[root@localhost opt]# tail -f /var/log/nginx/access.log
2.用浏览器,访问nginx的页面即可,不断刷新,不断出现新的日志
tail -F
能够对文件进行刷新读取,即使该文件不存在,也可以检测
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也得装图形化)
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)==。
利用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的进程
检查端口
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
统计系统用户数量
/etc/passwd
cat /etc/passwd | wc -l
管道符,结合find命令搜索信息
1.找出系统中所有的txt文件,然后再过滤出,其中包含了apple信息的txt是哪些
1.
find / -name '*.txt' # 这个命令找出的,每一个txt文件的名字吧,并且就是,一堆,一行一行的文本而已
2.我要判断出,这些文件,哪一个是包含了apple字符串内容的
一个个的去grep这些文件才行!!!
1.解读1
2.解读2
需求
1.找出系统上所有的txt文本
2.判断哪些文件中是包含了apple文本行的
grep -l 显示匹配到数据的的文件名
这道题,需要用到grep+管道符+xargs理解。
xargs
作用是,简单的说 就是把其他命令的给它的数据,传递给它后面的命令作为参数
先抛出需求
语法如下
命令1 | xargs 选项
选项
-i 用 {} 代替传递的数据
xargs实现批量备份
xargs实现批量重命名
全系统中搜索,包含某数据的文件名
[root@localhost tmp]# find / -type f -name '*.txt' | xargs -i grep -l 'xiake' {}
/var/log/nginx/mima.txt