管道符

| 拼接命令

| 可以将两个命令连接到一起

  1. head -10 messages | tail -6
  1. 先找到前10行的内容
  1. 从这10行内容中找到这10行内容的后六行

image.png
hello.txt

  1. [root@VM-0-14-centos tmp]# cat hello.txt
  2. 01
  3. 02
  4. 03
  5. 04
  6. 05
  7. 06
  8. 07
  9. 08
  10. 09
  11. 10

查看 hello.txt 文件中 第6行-第8行内容

  1. [root@VM-0-14-centos tmp]# head -8 hello.txt | tail -3
  2. 06
  3. 07
  4. 08

>重定向

将命令行打印出来的结果 保存到指定的新文件中。
image.png
如果要保存的文件已经存在,会将原来的内容覆盖掉。

>> 追加文件

追加文件不会覆盖原来的数据,会从文件后面继续添加内容
image.png

cat -n 显示行号

  1. cat -n /var/log/messages

相对路径和绝对路径

绝对路径

绝对路径 是从根目录 / 一层一层有层级关系一直到具体的文件路径,比如下面路径都是绝对路径

  1. /var/log/messages
  2. /tmp
  3. /root/
  4. /home/xiaoming/01/02

相对路径

相对路径主要当前所在路径的参考查找路径的一种方式。
比如 分别再/tmp 目录下创建路径

  1. /tmp/fanmao1/01/02
  2. /tmp/fanmao2/01/02

当我在 /tmp 目录下的时候
fanmao1 目录相对我现在在的路径:所在的目录下,进入fanmao1目录

  1. cd fanmao1

当我在fanmao1 目录下的时候, 如果我现在要进入到fanmao2 目录下

  1. 先返回到 tmp 目录下
  2. 再进入 fanmao2 目录下

相对路径中

  • ../ 表示返回上一级
  • ./ 表示当前目录 (使用相对路径时,默认为当前目录 可以加./, 也可以不加)
  1. 在 /tmp 目录下 创建文件夹

    1. /tmp/fanmao1/01/02
    2. /tmp/fanmao2/01/02
    1. cd /tmp
    2. mkdir -p fanmao1/01/02
    3. mkdir -p fanmao2/01/02
  2. 当前所在目录

image.png

  1. 使用相对路径 进入到 fanmao1 目录下

image.png
image.png

  1. 现在我在 fanmao1 目录下,如果使用相对路径的方式,进入 /tmp 目录下

image.png


  1. /tmp/fanmao1/01/02
  2. /tmp/fanmao2/01/02

练习

  1. 进入到 /tmp/fanmao1/01/02 目录下
  2. 使用相对路径切换到 /tmp/fanmao1/01 目录
  3. 使用相对路径切换到 /tmp/fanmao1 目录
  4. 使用相对路径切换到 /tmp目录
  5. 使用相对路径切换到 /tmp/fanmao2 目录
  6. 请问你现在在什么地方?

image.png
假设你现在在 /tmp/fanmao1/01/02 目录下, 使用相对路径的方式进入到 /tmp/fanmao2 目录下
image.png

vi 命令详解

使用 vi [filename]进入一般命令模式

  1. [root@VM-0-14-centos fanmao]# vi welcome.txt

image.png

按下 i 进入编辑模式

在一般命令模式下,只要按下 i,o,a等字符就可以进入编辑模式了,在编辑模式下,你可以看到左下角状态栏中会出现【INSERT】的字样,表示编辑模式。

image.png

按下【ESC】回到一般命令模式

image.png

进入命令模式,文件保存并退出vi环境

image.png

一般命令模式下支持的功能键

:set nu 显示行号
:set nonu 取消行号
移动光标
h或者左箭头(⬅) 光标向左移动一个光标
j或者下箭头(⬇) 光标向下移动一个光标
k或者向上箭头(⬆) 光标向上移动一个光标
l或者右箭头(➡) 光标向右移动一个光标
n n表示数字,比如20,按下数字之后按space空格键,表示向右移动20个字符
0或者功能键【Home】 移动到这一行的最前面字符处
$或者功能键【End】 移动到这一行的最后面字符处
G 移动到这个文件的最后一行
nG n为数字,移动到这个文件的第n行,例如20G移动到这个文件的第20行
gg 移动到第1行
n n为数字,向后移动n行。比如现在光标在 第20行处,输入20 并按下回车。 定位第40行(往后移动了20行)
查找与替换
/word 向光标之下查找word的单词
?word 向光标之上查找word的单词
:n1,n2s/word1/word2/c n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2,替换之前会提示用户是否确认
:n1,n2s/word1/word2/g n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2
:1,$s/word1/word2/g 从第1行到最后一行,找word1,替换为word2
文件保存
:q! 退出不保存
:wq 保存并退出
:w [filename] 文件另存为

练习

  1. 清空 /tmp 目录,并在 /tmp 目录下创建 fanmao 目录
  2. 进入/tmp/fanmao目录
  3. 将/etc/man_db.conf 文件复制到当前/tmp/fanmao目录下
  4. 使用vi命令打开 当前目录下的man_db.conf文件
  5. 在vi中设置一下行号
  6. 移动到43行,向右移动59个字符,请问你看到的小括号内的是哪个文字?
  7. 移动到第一行,并且向下查找一下【gzip】这个字符串,请问它在第几行?
  8. 接下来,我要将29行到41行之间的【小写man】改为【大写的MAN】,并且一个一个确定是否需要修改,如何执行命令?如果在确定的过程中一直按【y】,结果会在最后一行出现改变了几个man?
  9. 修改完成之后,突然反悔了,要全部恢复,有哪些方法?
  10. 将这个文件另存为man.test.config文件
  1. 1. rm -rf /tmp/*
  2. mkdir /tmp/fanmao
  3. 2. cd /tmp/fanmao
  4. 3. [root@VM-0-14-centos fanmao]# pwd
  5. /tmp/fanmao
  6. [root@VM-0-14-centos fanmao]# cp /etc/man_db.conf ./
  7. [root@VM-0-14-centos fanmao]# ls
  8. man_db.conf
  9. 4. vi man_db.conf
  10. 5. :set nu
  11. 6. 43G
  12. 59 空格
  13. 7. gg /gzip
  14. 8. :29,41s/man/MAN/c
  15. 9. :q! 或者 :29,41s/MAN/man/g
  16. 10. :w man.test.config

除了vi 命令可以编辑文本之外,还有一个vim(vi的升级版)命令也可以修改文件。使用方式一样,vim更加强大。

文件解压缩

在Linux中常见的文件压缩格式为 .tar.gz 将文件压缩之后便于文件的传输

tar 文件归档

  1. 在 /tmp 目录下 创建多个文件

    1. touch 01.txt 02.txt 03.txt
  2. 将01.txt, 02.txt, 03.txt 文件归档到 00.tar 文件中

image.png

  • -cf 表示创建归档文件
  • 00.tar 创建归档文件名
  • *.txt 所有的以 .txt 结尾文件

将当前目录下所有txt 文件 归档到 00.tar文件中。

  1. 删除 01.txt 02.txt 03.txt

image.png

  1. 将01.tar 归档文件中释放出来

image.png

文件压缩

image.png

  1. tar -zcvf fanmao.tar.gz 01.txt 02.txt 03.txt

将 01.txt 02.txt 03.txt 压缩到 fanmao.tar.gz 文件
image.png

  • -zcvf 表示压缩文件
  • fanmao.tar.gz 表示压缩包的名字
  • 01.txt 02.txt 03.txt 表示要压缩的文件

解压tar.gz 文件
image.png

  • -zxvf 表示解压
  • fanmao.tar.gz 被解压的文件

  1. 进入 /tmp 目录下
  2. /etc/man_db.conf /var/log/messages 这两个文件压缩为 taofei.tar.gz
  3. 解压 taofei.tar.gz

image.png

文件的上传和下载

可以Windows上的文件上传到服务器上,也可以从服务器将服务器上的文件下载到Windows上。

文件下载- sz

将 /tmp/taofei.tar.gz 下载到Windows桌面上。

  1. sz /tmp/taofei.tar.gz

image.png

上传文件 - rz

可以将Windows上的文件上传至服务器上。

  1. 在Windows 桌面上创建 一个 hello.txt 并在hello.txt 中输入文本

    1. 你好!
    2. 好的。
  2. 将hello.txt 文件压缩为hello.zip

image.png

  1. 将hello.zip 上传到服务器上

    1. rz

    image.png

  2. 在服务器上解压 hello.zip 文件

    1. unzip hello.zip

    image.png


作业

  1. 清空 /tmp 目录
  2. 将 /var/log/messages 文件中的第503-548行内容提取出来保存到 /tmp/msg.log 文件
  3. 将/etc/man_db.conf 文件中所有内容追加到 /tmp/msg.log 文件
  4. 统计 /tmp/msg.log 文件中共有多少行 多少个单词
  5. 使用 vim 打开 msg.log 文件
  6. 将文件中的 所有的man 修改为 woman
  7. 文件另存为 msg.back.log

  1. 将 /tmp目录下的 msg.log 文件,msg.back.log 文件压缩为 msg.tar.gz
  2. 查看 msg.tar.gz 的文件大小
  3. 将 msg.tar.gz 文件下载到Windows 桌面上。

课外扩展

ls 一些其他的用法
https://www.bilibili.com/video/BV1i54y1V7KC?p=3

vi命令
https://www.bilibili.com/video/BV1i54y1V7KC?p=1

Linux搭建MySQL数据库
https://www.bilibili.com/video/BV1i54y1V7KC?p=4

Centos 搭建禅道
https://www.bilibili.com/video/BV1s54y1H7wf/