Linux入门1

一、操作系统概述

目标

  • 了解 操作系统 的作用

1 操作系统(Operation System, OS)

操作系统作为接口的示意图:
在这里插入图片描述

没有安装操作系统的计算机, 通常被称为 裸机

  • 如果想在 裸机 上运行自己所编写的程序, 就必须用机器语言书写程序
  • 如果计算机上安装了操作系统, 就可以在操作系统上安装支持的高级语言环境,用于高级语言开发

2 不同应用利于的主流操作系统

  • 桌面操作系统
  • 服务器操作系统
  • 嵌入式操作系统
  • 移动设备操作系统

2.1 桌面操作系统

  • Window 系列
    • 用户群体大
  • macOS
    • 细节处理的更好, 没有windows软件丰富, 价格高
  • Linux
    • 应用软件少

2.2 服务器操作系统

  • Linux
    • 安全、稳定、免费
    • 占有率高
  • Windows Server
    • 付费
    • 占有率低
      * [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JFZLjgD5-1625731112326)(assets/1558234034446.png)]

2.3 嵌入式操作系统

  • Linux

2.4 移动设备操作系统

  • IOS
  • Android (基于Linux)
  • 华为鸿蒙(基于linux)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NUL17js1-1625731112328)(assets/1560477460567.png)] .

2 发展史

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KyXkBEya-1625731112332)(assets/1558319402471.png)].

  • linux 创始人: 林纳斯 托瓦兹
  • linux 诞生于: 1991年 作者上大学期间
  • 诞生原因:
    • 因为创始人 经常需要浏览新闻和处理邮件, 为了方便 读写 和 下载, 所以开发了 文件系统, 当时 21岁.
    • linux是开源免费
    • 后来经过全世界网友的支持, 现在能够兼容多种硬件

3 内核

  • 内核(kernel) 是系统的心脏, 是运行程序和管理磁盘和打印机等硬件设备的核心程序.
  • Linux内核版本
    • 稳定版
      • 具有工业级强度, 可以广泛的应用和部署.
    • 开发版
      • 由于要试验各种解决方案, 所以变化很快
  • 内核源码网址: http:www.kernet.ort
    • 所有来自全世界的对linux源码的修改最终都会汇总到这个网站, 由 Linus 领导的开源社区对其进行甄别和修改, 最终决定是否进入到 LInux主线内核源码中

4 发行版

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-36gkyZMm-1625731112339)(assets/1558235184585.png)]

  • redhat:目前,全球最大的linux发行厂商,功能全面、稳定。
    • RedhatIBM 收购!
  • ubuntu:目前,是linux桌面操作系统做的最好的。
  • centos:免费版的redhat,centos 基于 redhat 发行版基础之上,再重新编译发布的版本。
    • 目前 centos 已经被 Redhat 公司收购,但是依然免费

二、系统安装

目标

  • 1: 使用 VM 虚拟机 模拟 电脑硬件
  • 2: 在虚拟的 电脑上 安装 centOS 操作系统( linux 发行版)
  • 3: 为了让别人能够访问操作, 配置 网络环境
  • 4: 使用远程客户端 CRTWinSCP 操作 linux操作系统
  • 5: 防止操作系统 意外损坏, 及时备份(快照)

1 VM虚拟机

1.1 概述

  • 虚拟机 (Virtual Machine) 指通过 软件模拟 的具有完整硬件系统功能的. 运行在一个完全隔离环境中的完整计算机系统
    • 虚拟系统通过生成现有操作系统的全新虚拟镜像, 具有真实操作系统完全一样的功能.
    • 进入虚拟系统后, 所有操作都是在这个独立全新的独立的虚拟系统里面进行, 可以独立安装运行软件, 保存数据, 不会对真正的系统产生任何影响
    • 而且现有在系统与虚拟镜像之间灵活切换的一类操作系统

1.2 安装虚拟机

详情请参考 资料 的word文档!

1.3 配置网卡

目标

  • 了解桥接 和 NAT 的 联网原理
  • 配置虚拟机的网卡信息
a. 网络原理

桥接原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g5Of6drG-1625731112340)(assets/wps1.jpg)]

因为 虚拟机的linux系统的ip地址是固定的, 更换路由器后导致无法使用, 所以 不推荐使用


NAT原理

如果宿主电脑可以上网, 内部的虚拟机也可以上网就好了

NAT原理本质上就是 虚拟机实现了交换机的功能, linux系统的IP地址就不会随宿主电脑的ip地址更改而更改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MJ3kvTxv-1625731112341)(assets/wps2.jpg)]

推荐使用这种方式

b. 确保 VMnet8 已经启动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RBlaQtmb-1625731112344)(assets/1558337009634.png)]

c. 设置VMnet8的ip地址

网关: 192.168.100.1

d. 确保所有关于VMWare的服务都开启

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tQ5VDlsC-1625731112345)(../../../../../00_%E8%AF%BE%E4%BB%B6/01_linux/201905/day01_%E6%A6%82%E8%BF%B0_%E5%AE%89%E8%A3%85_%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/%E7%AC%94%E8%AE%B0/assets/wps11.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ROLGiLSg-1625731112353)(assets/1558336839933.png)]

e 配置虚拟机的网卡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YtdQrtRY-1625731112355)(assets/1558337229189.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2F7Qfqzj-1625731112356)(assets/1558337610312.png)]

  • 核查 配置子网ip和子网掩码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wa7mSW69-1625731112358)(assets/wps7.jpg)]

  • 再次确认

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHNEZ2Qo-1625731112359)(assets/wps9.jpg)]

2 centos是linux的发行版

2.1 目标

  • 在虚拟机上 安装centos系统 模拟 机房的一台服务器

2.2 路径

  • 第一步: 理解安装步骤
  • 第二步: 使用VM虚拟机 准备 硬件环境
  • 第三步: 在硬件环境 安装CentOs镜像
  • 第四步: 理解centos的文件和目录

2.4 实现

2.4.1 理解安装步骤

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5zztoH4M-1625731112360)(assets/1558240245826.png)]

2.4.2 使用VM虚拟机 准备 硬件环境
  • 请参考资料中 word 文档
2.4.3 在硬件环境 安装CentOs镜像
  • 请参考资料中 word 文档
2.4.4 配置网卡信息
目标
  • 能够让 宿主机新装的centOS 相互通信
第一步: 了解 网卡 和ip地址的概念
  • 网卡是一个专门负责网络通讯的硬件设备

  • ip地址是设置在网卡上的地址信息

  • 我们可以把 电脑 比作 手机, 网卡 相当于 手机卡槽, ip地址 相当于 手机号

* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kSCR4Mqx-1625731112362)(assets/1558344879693.png)]

  • IP地址

    • 每台联网的电脑上都有IP地址, 是保证电脑之间正常通讯的重要设置

      注意: 每台电脑的IP地址不能相同, 否则 会出现IP地址冲突, 并且没有办法正常通讯

第二步: 查看网卡信息
  • ifconfig 和 ping
序号命令对应英文作用
01ifconfigconfiguration
a newwork interface
查看/配置计算机当前的网卡信息
02ping ip地址ping检测到目标ip地址 的连接是否正常
03service network restart重启网卡服务
第三步: 通过 setup 命令设置网卡信息
# 开始设置网卡信息
setup

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

重启网卡服务

在这里插入图片描述

2.4.5 理解centos的文件和目录

在这里插入图片描述

  • windows 系统 可以拥有多个盘符, 如 C盘D盘E盘
  • Linux 没有盘符 这个概念, 只有一个根目录 /, 所有文件都在它下面
  • Linux主要目录 速查表
    在这里插入图片描述
  • /lsdt: found系统修复用的

  • /bin: 二进制命令所在的目录

  • /boot : 系统引导程序所需要的文件目录,引导系统开机

  • /dev :设备软件目录,磁盘,光驱,

  • /etc : 系统配置,启动程序
  • /home:普通用户的家目录,目录默认数据存放目录
  • /lib: 启动系统和运行命令所需的共享库文件和内核模块存放

  • /mnt:临时挂载储存设备的挂载点,u盘插入光驱无法使用,需要挂载然后使用

  • /opt:额外的应用软件包

  • /proc:操作系统运行时,进程信息和内核信息存放在这里

  • /root:Linux超级权限用户root的家目录
  • /sbin:和管理系统相关的命令,【超级管理员用】
  • /tmp:临时文件目录,这个目录被当作回收站使用

  • /usr:用户或系统软件应用程序目录

  • /var:存放系统日志的目录

  • 注意:一般不要 操作 非自己创建的目录和文件,否则可能导致服务器崩溃。

4 远程连接工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uv5ZlqiQ-1625731112381)(assets/1558345029327.png)]

4.1 secureCRT软件

  • secureCRT是Windows上 登录 服务器主机的软件
  • 主要是 通过命令行操作服务器
a.安装
  • 双击 下一步 就可以了
b.配置连接 linux系统

在这里插入图片描述在这里插入图片描述

c. 修改主题和字体大小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F618AfNn-1625731112388)(assets/1558255508796.png)] .

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JSmiDQwW-1625731112389)(assets/1558255614919.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNokJbUV-1625731112390)(assets/1558255659233.png)]

d. 常用快捷键
tab键:命令或者路径提示及补全;

ctrl+c:放弃当前输入,终止当前任务或程序;

ctrl+l:清屏;

ctrl+shift+c:复制;

ctrl+shift+v:粘贴;

alt+b :打开connect窗口 了解

alt+1/2/3/4/5… :切换会话窗口 了解

4.2 winSCP

  • 它的主要功能就是在本地远程计算机间 进行 文件 上传和下载
  • 使用 鼠标拖拽 即可完成

5 快照(备份)

5.1 目标

  • 快照就是 备份系统, 防止意外损坏, 降低损失

5.2 备份系统

a. 右键目标centos系统 -> 快照 -> 快照管理器

b. 拍摄快照
在这里插入图片描述

5.3 恢复到快照状态

a. 右键目标centos系统 -> 快照 -> 恢复到指定快照即可

三、命令概述

1.学习Linux终端命令的原因

  • Linux刚面世时并没有图形界面, 所有的操作全靠命令完成, 如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
  • 在职场中,大量的 服务器维护工作 都是在 远程 通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qwTVBX8-1625731112393)(day01.assets/1564458663410.png)]
  • 在职场中, 作为后端程序员, 必须要或多或少的掌握一些Linux常用的终端命令
    • Linux发行版本的命令大概有200多个, 但是常用的命令只有10多个而已

学习终端命令的技巧:

  • 不需要死记硬背, 对于常用命令, 用的多了, 自然就记住了。
  • 不要尝试一次学会所有的命令, 有些命令是非常不常用的,临时遇到, 临时百度就可以

2.Linux终端命令格式

目标

  • 了解终端命令格式
  • 常用Linux命令体验
  • 知道如何查阅终端命令帮助信息

2.1 终端命令格式

command [-options] [parameter]

说明:

  • command : 命令名, 相应功能的英文单词或单词的缩写
  • [-options] : 选项, 可用来对命令进行控制, 也可以省略
  • parameter : 传给命令的参数, 可以是 零个、一个 或者 多个
  • 常用Linux命令的基本使用
序号命令对应英文作用
01lslist查看当前目录下的内容
02pwdprint working derectory查看当前所在文件夹
03cd [目录名]change directory切换文件夹
04touch [文件名]touch如果文件不存在, 新建文件
05mkdir [目录名]make directory创建目录
06rm [文件名]remove删除指定的文件名
07clearclear清屏

2.2 查阅命令帮助信息

因为一个命令有很多可选项, 死记硬背肯定不行, 所以需要借助手册查阅.

2.2.1 --help 帮助信息
command --help

说明:

  • 显示 command 命令的帮助信息

缺点: 虽然可以查询命令的帮助信息, 但是没有提供 翻页、搜索功能.

2.2.2 man 手册
man command

说明:

  • 查询command命令的使用手册

    manmanual 的缩写, 是Linux提供的一个手册, 包含了绝大部分的命令、函数的详细使用说明.

使用 man 时的操作键:

操作键功能
空格键显示手册的下一屏
Enter键一次滚动首页也得一行
b(back)回滚一屏
f(forward)前滚一屏
q (quit)退出
/word搜索word字符串
n(next)搜索下一个
N搜索上一个

提醒:

  • 现阶段只需要 知道 通过以下两种方式可以查询命令的帮助信息
  • 先学习 常用命令常用参数 的使用即可, 工作中如果遇到问题可以借助 网络搜索

四、文件和目录常用命令

目标

  • 查看目录内容
    • ls
  • 切换目录
    • cd
  • 创建和删除操作
    • touch
    • rm
    • mkdir
  • 拷贝和移动文件
    • cp
    • mv
  • 查看文件内容
    • cat
    • less
    • grep
  • 其他
    • echo
    • 重定向 >>>
    • 管道 |

1.查看目录内容

1.1 终端使用技巧

1> 自动补全
  • 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab
  • 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
2> 曾经使用过的命令
  • 使用 / 光标键可以在曾经使用过的命令之间来回切换
  • 如果想要退出选择, 并且不想执行当前选中的命令, 可以按 ctrl + c

1.2 ls命令说明

  • ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一
  • 因为需要编辑服务器上的文件, 所以需要先确认指定目录下 是否存在

linux 下文件和目录的特点

  • linux文件 或者 目录 名称最长可以 256 个字符
  • . 开头的文件为隐藏文件, 需要用 -a 参数才能显示
  • . 代表当前目录
  • .. 代表上一级目录

演练目标:

1 创建文件 01.txt 
2 创建隐藏文件 02.txt
3 罗列隐藏文件和非隐藏文件
[root@node01 export]# touch 01.txt
[root@node01 export]# touch .02.txt
[root@node01 export]# ls
01.txt
[root@node01 export]# ls -a
.  ..  01.txt  .02.txt

1.3 ls常用选项

如果 只使用ls命令 就只能看到当前目录下 非隐藏 文件。

如果想增强功能,就需要学习更多的选项

选项英文含义
-aall显示指定目录下所有子目录与文件, 包含隐藏文件
-l以列表方式显示文件的详细信息
-hhuman-readable配合 -l 以人性化的方式显示文件大小

演练目标:

1 切换到 /usr/tmp 清空内容 
2 创建隐藏文件 非隐藏文件 目录
3 查看当前目录内容 (缺点: 隐藏文件看不到)
4 查看当前目录所有内容 (既包含隐藏, 也包含非隐藏)
5 查看目录内容的详细信息(查看文件类型、权限、大小等 缺点:文件大小没有单位)
6 简化合并 查看目录内容的详细信息
[root@node01 tmp]# cd /usr/tmp && rm -rf *
[root@node01 tmp]# ll
total 0
[root@node01 tmp]# touch 01.txt .02.txt
[root@node01 tmp]# ls 
01.txt
[root@node01 tmp]# ls -a
.  ..  01.txt  .02.txt
[root@node01 tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 10 21:04 01.txt
[root@node01 tmp]# ll -a
total 8
drwxrwxrwt.  2 root root 4096 Jul 10 21:04 .
drwxr-xr-x. 20 root root 4096 Jul 10 19:10 ..
-rw-r--r--.  1 root root    0 Jul 10 21:04 01.txt
-rw-r--r--.  1 root root    0 Jul 10 21:04 .02.txt

计算机中文件大小的表示方式(科普)

单温英文含义
字节B(byte)在计算机中作为一个数字单元,一般为8位二进制数
K(Kibibyte)1KB = 1024 B, 千字节( 1024 = 2的10次方)
M(Mebibyte)1MB = 1024 KB, 百万字节
千兆G(Gigabytee)1GB = 1024 MB, 十亿字节, 千兆字节
T(Terabyte)1 TB = 1024 GB, 万亿字节, 太字节
P(Petabyte)1 PB = 1024 PB, 百万亿字节, 拍字节

1.4 ls 和通配符的使用

准备工作

# 切换到临时目录(先使用, 稍候讲解)
cd /usr/tmp

# 清空目录内容(先使用, 稍候讲解)
rm -rf *

# 创建文件
touch a23.txt 11.txt 111.txt 112.txt 123.txt 223.txt 323.txt 423.txt 523.txt

# 查看目录内容
ls
通配符含义
*代表 任意个数 的字符
?代表任意一个字符, 且只能是一个

需求1:

1 查看以 1 开头的文件或目录
2 查看以 3.txt 结尾的 文件或目录
3 查看含有3的文件列表
4 查看第二个字符是2的文件
[root@node01 tmp]# ls 1*
111.txt  112.txt  11.txt  123.txt
[root@node01 tmp]# ls *3.txt
123.txt  223.txt  323.txt  423.txt  523.txt  a23.txt
[root@node01 tmp]# ls *3*
123.txt  223.txt  323.txt  423.txt  523.txt  a23.txt
[root@node01 tmp]# ls ?2*
123.txt  223.txt  323.txt  423.txt  523.txt  a23.txt
通配符含义
[abc]匹配a、b、c中任意一个
[a-f]匹配从a到f范围内的任意一个字符

需求2:

1 查看 第一个字符是 1到5, 以23.txt结尾 的 目录或文件名
[root@node01 tmp]# ls [1-5]*23.txt
123.txt  223.txt  323.txt  423.txt  523.txt

2.切换目录

2.1 cd

  • cd 是英文单词 change directory 的缩写, 其功能为 更改当前的工作目录, 也是用户最常用的命令之一

    注意: linux的所有 目录文件名 都是大小写敏感的

命令含义
cd 目录切换到指定目录下
cd …切换到上级目录
cd -可以在最近的两次目录之间切换
cd ~切换到家目录(root用户家目录是 /root, 其他用户的家目录是 /home/用户名)

需求:

1 查看当前所在目录
2 切换到 /usr/local
3 切换到 上一级目录 /usr
4 后退到上一次访问的目录中
[root@node01 tmp]# pwd
/usr/tmp
[root@node01 tmp]# cd /usr/local
[root@node01 local]# pwd
/usr/local
[root@node01 local]# cd ../
[root@node01 usr]# pwd
/usr
[root@node01 usr]# cd -
/usr/local

2.2 相对路径和绝对路径

在这里插入图片描述

2.2.1 目标 : 通过 路径 找到 目标
2.2.2 如何分步骤实现:

​ 第一步: 使用相对路径定位目标

​ 第二步: 使用绝对路径定位目标

2.2.3 第一步: 使用相对路径定位目标
  1. 特征: 相对路径 输入路径时, 最前面不是以 “/” 开始的, 表示相对 当前目录 所在的位置
  2. 缺点: 参照工作目录 发生变化 相对路径也要发生变化
    在这里插入图片描述
需求1: 当前工作目录是 /usr, 使用相对路径 切换到 /usr/tmp 目录下 

需求2: 当前工作目录是 /root, 使用相对路径 切换到 /usr/tmp 目录下 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhpXZyZ6-1625731112397)(day01.assets/1564385473674.png)]

[root@node01 tmp]# cd /usr
[root@node01 usr]# pwd
/usr
[root@node01 usr]# cd ./tmp
[root@node01 tmp]# pwd
/usr/tmp
[root@node01 tmp]# cd ~
[root@node01 ~]# pwd
/root
[root@node01 ~]# cd ../usr/tmp
[root@node01 tmp]# pwd
/usr/tmp
2.2.4 第二步: 使用绝对路径定位目标
  1. 特征: 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置
  2. 优点: 定位准确, 不会因为 工作目录变化 而变化
需求1: 当前工作目录是 /usr, 使用绝对路径 切换到 /usr/tmp 目录下 

需求2: 当前工作目录是 /root, 使用绝对路径 切换到 /usr/tmp 目录下 
[root@node01 ~]# cd /usr
[root@node01 usr]# cd /usr/tmp
[root@node01 tmp]# pwd
/usr/tmp
[root@node01 tmp]# cd /root
[root@node01 ~]# pwd
/root
[root@node01 ~]# cd /usr/tmp
[root@node01 tmp]# pwd
/usr/tmp
2.2.5 小总结
  • 相对路径 在输入路径时, 最前面不是以 / 开始的 , 表示相对 当前目录 所在的目录位置
  • 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置

3.创建和删除操作

3.1 touch

3.1.1 目标
  • 通过 touch 命令 创建文件
3.1.2 路径
  • 第一步: 创建一个空白文件
  • 第二步: 修改文件的末次修改日期
3.1.3 实现
3.1.3.1 第一步: 创建一个空白文件
touch 不存在的文件
3.1.3.2 第二步: 修改文件的末次访问时间
touch 存在的文件
3.1.4 小结

通过 touch 文件名 创建文件 和 修改文件的末次访问时间

3.2 mkdir

3.2.1 目标:
  • 通过 mkdir 命令 创建目录
3.2.2 路径:
  • 第一步: 创建 没有层级关系的目录
  • 第二步: 创建 有层级关系的目录
3.2.3 实现

yum -y install tree

3.2.3.1 第一步: 创建 没有层级关系的目录
mkdir 目录名
3.2.3.2 第二步: 创建 有层级关系 的目录
mkdir -p 目录1/目录2/目录3
  • 创建一个新的目录
选项英文含义
-pparent可以递归创建目录
# 创建压缩包目录
mkdir -p /export/softwares
mkdir -p /export/servers
mkdir -p /export/data
3.2.4 小结

通过 mkdir -p 目录名 命令 创建目录

注意: 新建目录的名称 不能与当前目录中 已有的目录或文件 同名

3.3 rm

3.3.1 目标

通过 rm -rf 文件/目录 命令实现删除 文件和目录的功能, rm 对应的英文是 remove 含义: 删除

3.3.2 路径
  • 第一步: 删除文件 (有提示)
  • 第二步: 删除文件 (取消提示)
  • 第三步: 删除目录
  • 第四步: rm 结合 通配符
3.3.3 实现
  • 准备工作
cd /usr/tmp

rm -rf *

touch 1.txt 2.txt 3.txt 4.txt 5.txt

mkdir -p aaa/bbb/ccc

mkdir -p x1
3.3.3.1 第一步: 删除文件 (有提示)
rm 文件
[root@node01 tmp]# ll
total 8
-rw-r--r--. 1 root root    0 Jul 10 21:20 1.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 2.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 3.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 4.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 5.txt
drwxr-xr-x. 3 root root 4096 Jul 10 21:20 aaa
drwxr-xr-x. 2 root root 4096 Jul 10 21:20 x1
[root@node01 tmp]# rm 1.txt
rm: remove regular empty file `1.txt'? y
[root@node01 tmp]# ll
total 8
-rw-r--r--. 1 root root    0 Jul 10 21:20 2.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 3.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 4.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 5.txt
drwxr-xr-x. 3 root root 4096 Jul 10 21:20 aaa
drwxr-xr-x. 2 root root 4096 Jul 10 21:20 x1
3.3.3.2 第二步: 删除文件 (取消提示)
rm -f 文件
参数英文含义
-fforce (强制)强制删除,忽略不存在的文件, 无需提示
[root@node01 tmp]# ll
total 8
-rw-r--r--. 1 root root    0 Jul 10 21:20 3.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 4.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 5.txt
drwxr-xr-x. 3 root root 4096 Jul 10 21:20 aaa
drwxr-xr-x. 2 root root 4096 Jul 10 21:20 x1
3.3.3.3 第三步: 删除有内容的目录
rm -rf 目录
参数英文含义
-rrecursive (递归)递归地删除目录下的内容, 删除文件夹 时必须加此参数
[root@node01 tmp]# rm aaa/
rm: cannot remove `aaa/': Is a directory
[root@node01 tmp]# rm -r aaa/
rm: descend into directory `aaa'? y
rm: descend into directory `aaa/bbb'? y
rm: remove directory `aaa/bbb/ccc'? y
rm: remove directory `aaa/bbb'? y
rm: remove directory `aaa'? y
[root@node01 tmp]# ll
total 4
-rw-r--r--. 1 root root    0 Jul 10 21:20 3.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 4.txt
-rw-r--r--. 1 root root    0 Jul 10 21:20 5.txt
drwxr-xr-x. 2 root root 4096 Jul 10 21:20 x1
3.3.3.4 第四步: rm 结合 通配符 * ? [abc][a-z]
rm -rf *.txt
3.3.4 小结
  • 通过 rm -rf 文件/目录 完成删除 文件或目录的功能.
  • 注意: 使用 rm 命令要小心, 因为文件删除后不能恢复

4.拷贝和移动文件

序号命令对应英文作用
01tree [目录名]tree以树状图 列出目录中的内容
02cp 源文件 目标文件copy复制文件或者目录
03mv 源文件 目标文件move移动文件或目录 或者 重命名

4.1 tree (扩展)

4.2.1 目标
  • 通过 tree 命令可以以树状图列出文件目录结构.
4.2.2 路径
  • 第一步: 以树形结构显示目录中的文件和目录
  • 第二步: 只显示 当前目录中的目录
  • 第三步: 显示指定的两层
4.2.3 实现

准备工作

# 创建目录
mkdir -p /export/aaa/bbb/ccc

# 创建文件
touch /export/aaa/01.txt /export/aaa/02.txt
touch /export/aaa/bbb/03.txt /export/aaa/bbb/04.txt
touch /export/aaa/bbb/ccc/05.txt /export/aaa/bbb/ccc/06.txt

默认没有安装 tree 组件, 需要联网时安装:

# 安装 tree组件
yum -y install tree

# 卸载 tree组件
yum -y remove tree
4.2.3.1 第一步: 以树形结构显示目录中的文件和目录
tree [目录]
  • 如果指定目录, 就显示指定目录的内容
  • 如果不指定目录,就显示当前目录的内容
4.2.3.2 第二步: 只显示 当前目录中的目录
tree -d [目录]
选项英文含义
-dderictory (目录)只显示目录, 不显示文件
4.2.3.3 第三步: 显示指定的两层
tree -L n [目录]
选项英文含义
-Llevel (层级)显示几层目录
4.2.4 小结
  • 通过 tree 目录 命令可以以树状图列出文件目录结构.
[root@node01 ~]# tree /export
/export
├── 01.txt
└── aaa
    ├── 01.txt
    ├── 02.txt
    └── bbb
        ├── 03.txt
        ├── 04.txt
        └── ccc
            ├── 05.txt
            └── 06.txt

3 directories, 7 files
[root@node01 ~]# tree -d
.

0 directories
[root@node01 ~]# tree -d /export
/export
└── aaa
    └── bbb
        └── ccc

3 directories
[root@node01 ~]# tree -L 2 /export
/export
├── 01.txt
└── aaa
    ├── 01.txt
    ├── 02.txt
    └── bbb

2 directories, 3 files

4.2 cp

4.2.1 目标
  • 通过 cp 实现复制将指定的 文件 或 目录 复制到 两一个 文件 或 目录中
4.2.2 路径
  • 第一步: 备份指定文件
  • 第二步: 将文件复制到目录中
  • 第三步: 将文件复制到另一个文件中, 实现覆盖效果
  • 第四步: 复制目录 到指定 目录中
4.2.3 实现
4.2.3.1 第一步: 备份指定文件
cp  文件1  备份文件名
[root@node01 export]# cp 01.txt 01.txt_bak
[root@node01 export]# ll
total 4
-rw-r--r--. 1 root root    0 Jul 10 21:02 01.txt
-rw-r--r--. 1 root root    0 Jul 10 22:45 01.txt_bak
drwxr-xr-x. 3 root root 4096 Jul 10 21:24 aaa
4.2.3.2 第二步: 将文件复制到目录中
cp 文件1 目录/
[root@node01 export]# mkdir -p x1
[root@node01 export]# tree
.
├── 01.txt
├── 01.txt_bak
├── aaa
│   ├── 01.txt
│   ├── 02.txt
│   └── bbb
│       ├── 03.txt
│       ├── 04.txt
│       └── ccc
│           ├── 05.txt
│           └── 06.txt
└── x1

4 directories, 8 files
[root@node01 export]# cp 01.txt ./x1/01.txt_bak2
[root@node01 export]# tree
.
├── 01.txt
├── 01.txt_bak
├── aaa
│   ├── 01.txt
│   ├── 02.txt
│   └── bbb
│       ├── 03.txt
│       ├── 04.txt
│       └── ccc
│           ├── 05.txt
│           └── 06.txt
└── x1
    └── 01.txt_bak2
4.2.3.3 第三步: 将文件复制到另一个文件中, 实现覆盖效果
cp 文件1 文件2(存在的)
[root@node01 export]# cp /etc/profile ./01.txt
cp: overwrite `./01.txt'? y
[root@node01 export]# ll
total 12
-rw-r--r--. 1 root root 1841 Jul 10 22:47 01.txt
-rw-r--r--. 1 root root    0 Jul 10 22:45 01.txt_bak
drwxr-xr-x. 3 root root 4096 Jul 10 21:24 aaa
drwxr-xr-x. 2 root root 4096 Jul 10 22:45 x1
4.2.3.4 第四步: 复制目录 到指定 目录中
cp -r 目录1/ 目录2/
命令英文作用
-rrecursive (递归)递归复制目标目录的内容
[root@node01 export]# tree
.
├── 01.txt
├── 01.txt_bak
├── aaa
│   ├── 01.txt
│   ├── 02.txt
│   └── bbb
│       ├── 03.txt
│       ├── 04.txt
│       └── ccc
│           ├── 05.txt
│           └── 06.txt
└── x1
    └── 01.txt_bak2

4 directories, 9 files
[root@node01 export]# cp aaa/ x1/
cp: omitting directory `aaa/'
[root@node01 export]# cp -r aaa/ x1/
[root@node01 export]# tree
.
├── 01.txt
├── 01.txt_bak
├── aaa
│   ├── 01.txt
│   ├── 02.txt
│   └── bbb
│       ├── 03.txt
│       ├── 04.txt
│       └── ccc
│           ├── 05.txt
│           └── 06.txt
└── x1
    ├── 01.txt_bak2
    └── aaa
        ├── 01.txt
        ├── 02.txt
        └── bbb
            ├── 03.txt
            ├── 04.txt
            └── ccc
                ├── 05.txt
                └── 06.txt

7 directories, 15 files
4.2.4 小结
  • cp命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录

4.3 mv (move)

4.3.1 目标
  • 通过mv 命令可以用来 移动 文件 或 目录, 也可以给 文件或目录重命名
4.3.2 路径
  • 第一步: 将文件 移动 另一个目录中
  • 第二步: 重命名
  • 第三步: 将目录移动到 另一个目录中
4.3.3 实现
4.3.3.1 第一步: 将文件 移动 另一个目录中
mv 文件 目录/
[root@node01 export]# mv 01.txt_bak x1/
[root@node01 export]# tree
.
├── 0001.txt
├── aaa
│   ├── 01.txt
│   ├── 02.txt
│   └── bbb
│       ├── 03.txt
│       ├── 04.txt
│       └── ccc
│           ├── 05.txt
│           └── 06.txt
└── x1
    └── 01.txt_bak
4.3.3.2 第二步: 重命名
mv 旧文件名 新文件名
[root@node01 export]# ll
total 12
-rw-r--r--. 1 root root 1841 Jul 10 22:47 01.txt
-rw-r--r--. 1 root root    0 Jul 10 22:45 01.txt_bak
drwxr-xr-x. 3 root root 4096 Jul 10 21:24 aaa
drwxr-xr-x. 2 root root 4096 Jul 10 22:48 x1
[root@node01 export]# mv 01.txt 0001.txt
[root@node01 export]# ll
total 12
-rw-r--r--. 1 root root 1841 Jul 10 22:47 0001.txt
-rw-r--r--. 1 root root    0 Jul 10 22:45 01.txt_bak
drwxr-xr-x. 3 root root 4096 Jul 10 21:24 aaa
drwxr-xr-x. 2 root root 4096 Jul 10 22:48 x1
4.3.3.3 第三步: 将目录移动 到 另一个目录中
mv 被移动目录 目标目录
[root@node01 export]# mv -r aaa/ x1/
mv: invalid option -- 'r'
Try `mv --help' for more information.
[root@node01 export]# mv aaa/ x1/   
[root@node01 export]# tree
.
├── 0001.txt
└── x1
    ├── 01.txt_bak
    └── aaa
        ├── 01.txt
        ├── 02.txt
        └── bbb
            ├── 03.txt
            ├── 04.txt
            └── ccc
                ├── 05.txt
                └── 06.txt
4.3.4 小结
  • mv 可以用来 移动 文件 或 目录, 也可以给 文件或目录重命名

5.查看文件内容

序号命令对应英文作用
01cat 文件名concatenate查看小文件内容
02less -N 文件名less分频 显示大文件内容
03head -n 文件名查看文件的前一部分
04tail -n 文件名查看文件的最后部分
05grep 关键字 文件名grep根据关键词, 搜索文本文件内容

准备工作

# 清空指定目录内容
cd /export/ 
rm -rf *

# 复制 /etc/passwd 文件 到 /export/ 目录中
cp /etc/passwd /export/

# 复制 /etc/profile 文件 到 /export/ 目录中
cp /etc/profile /export/

# 罗列目录中内容
tree /export

5.1 cat

5.1.1 目标

通过 cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件

5.1.2 路径
  • 第一步: 显示文件内容
  • 第二步: 显示文件内容(显示行号 包含空行)
  • 第三步: 显示文件内容(显示行号 排除空行)
5.1.3 实现
5.1.3.1 第一步: 显示文件内容(不显示行号)
cat 文件名
5.1.3.2 第二步: 显示文件内容(显示行号 包含空行)
cat -n 文件名
参数英文含义
-nnumber显示行号
  • 缺点: 空行也显示行号
5.1.3.3 第三步: 显示文件内容(显示行号 排除空行)
cat -b 文件名
参数英文含义
-bnumber-nonblank非空行 显示行号
  • nl 文件名 也可以实现 非空行显示行号的效果
命令英文含义
nl 文件number lines of files查看文件内容非空行显示行号
5.1.4 小结
  • 通过 cat 文件名 查看 小文件内容
  • 准备工作
# >> 重定向这个命令, 为了课程需要 我们先用, 后面我们会讲

# 将文件 /etc/profile 的内容 追加到 /export/01.txt目录中
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt
cat /etc/profile >> /export/01.txt

5.2 less

5.2.1 目标
  • 通过 less [参数] 文件名 命令可以用于分屏显示文件内容, 每次只显示一页内容
  • less 命令适合查看 内容较多 的文本文件
5.2.2 路径
  • 第一步 : 分屏显示文件内容
  • 第二步 : 根据关键词搜索内容
5.2.3 实现
5.2.3.1 第一步 : 分屏显示文件内容
命令作用
less -N 文件名分屏展示文件内容, 适合 大文件
参数英文含义
-Nnumber显示文件内容 且 显示行号

使用 less 的操作键:

操作键功能
空格键显示手册页的下一屏幕
Enter 键一次滚动手册页的一行
b回滚一屏
f向前一屏
q退出
/word搜索word字符串
5.2.3.2 第二步: 根据关键词 搜索
# 根据关键词搜索
/word
操作键功能
n向下找
N向上找
5.2.4 小结
  • less 命令适合查看 内容较多 的文本文件

  • 准备工作

# 准备一个26个字母的文件, 使用 WINscp客户端 上传到 /export/ 目录下

5.3 head

5.3.1 目标
  • 通过 head 命令查看文档的前几行内容
5.3.2 路径
  • 第一步: 查看文件的前5行内容
5.3.3 实现
5.3.3.1 第一步:查看文件的前5行内容
head -n 数字 文件
参数英文含义
-nnumber表示显示前几行内容
5.3.4 小结
  • 通过 head 命令查看文档的前几行内容

5.4 tail

5.4.1 目标
  • 需求: 查看文档(日志)的后几行内容
5.4.2 路径
  • 第一步: 查看文档的最后10行内容
  • 第二步: 动态显示文档的最后内容,一般用来查看日志
  • 第三步: 动态显示文档的最后10行内容
5.4.3 实现
  • 第一步: 查看文档的最后10行内容
tail -10 文件
  • 第二步: 动态显示文档的最后内容,一般用来查看日志
tail -f 文件名
  • 第三步: 动态显示文档的最后100行内容
tail -100f 文件名
5.4.4 小结
  • 通过 tail -10f 文件 命令 查看文档(日志)的后几行内容

5.5 grep(重点重点重点)

5.5.1 目标
  • 通过 grep 命令 搜索存在 关键字 的行
5.5.2 路径
  • 第一步: 搜索 存在关键字 的行
  • 第二步: 搜索 存在关键字 的行 且 显示行号
  • 第三步: 忽略大小写 搜索 存在关键字 的行
  • 第四步: 搜索 不存在关键字 的行
  • 第五步: 搜索 以关键字开始 的行 或 以关键字结尾 的行
5.5.3 实现
5.5.3.1 第一步: 搜索 存在关键字 的行
grep 关键字 文件名
5.5.3.2 第二步: 搜索 存在关键字 的行 且 显示行号
grep -n 关键字 文件名
选项英文含义
-nnumber显示匹配行和行号
5.5.3.3 第三步: 忽略大小写 搜索 存在关键字 的行
grep -i 关键字 文件名
选项英文含义
-iignore-case忽略大小写
5.5.3.4 搜索 不存在关键字 的行
grep -v 关键字 文件名
选项英文含义
-vinvert-match显示 不包含关键字 的所有行
5.5.3.5 第五步: 搜索 以关键字开始 的行 或 以关键字结尾 的行
grep 正则 文件名
参数含义
^a行首,搜索以a开头的行
ke$行尾,搜索以ke结束的行

在这里插入图片描述

5.3.4 小结
  • 通过 grep 命令 搜索存在 关键字 的行

6 其他

6.1 管道 | (入门)

在这里插入图片描述

6.1.1 目标
  • 通过 命令1 | 命令2 可以将命令1的结果 通过 命令2 作进一步的处理
6.1.2 路径
  • 第一步 : 过滤 /etc/ 目录下 以 pro 开头的文件
  • 第二步 : 搜索 存在关键字 的行数
6.1.3 实现
第一步 : 过滤 /etc/ 目录下 以 pro 开头的文件
ls /etc/ | grep ^pro
第二步 : 搜索存在关键字的行数
ls /etc | grep ^pro |  wc -l
英文作用
命令: wc [参数] [文件]打印文件的行数, 单词数, 字节数
参数: -l line 行显示 行数
6.1.4 小结
  • 通过 命令1 | 命令2 可以将命令1的结果 通过 命令2 作进一步的处理

6.2 echo 文字内容

  • echo string 将字符串输出到控制台 , 通常回和 重定向 联合使用
  • 重定向 >(覆盖) 和 >> (追加)
    在这里插入图片描述
echo hello

# 如果字符串有空格, 为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"
6.2.1 目标
  • 默认情况下 命令的结果 输出到 控制台
  • 通过 重定向 可以将结果 输出到文件
6.2.2 路径
  • 第一步: 将 命令的成功结果 覆盖 指定文件内容
  • 第二步: 将 命令的成功结果 追加 指定文件的后面
6.2.3 实现
  • 第一步: 将命令的成功结果 覆盖 指定文件内容
echo 2222 > 01.txt
命令作用
结果 > 文件名> 表示输出, 会覆盖文件的原有内容
  • 第二步: 将命令的成功结果 追加 指定文件的后面
echo 3333333 >> 01.txt
命令作用
命令 >> 文件名>> 表示追加, 会将内容追加到已有文件的末尾
  • 第三步: 将 命令的失败结果 追加 指定文件的后面
cat 不存在的目录  &>>  error.log
命令作用
命令 &>> 文件&>> 表示不区分错误类型 都放到 日志中

在这里插入图片描述

6.2.4 小结
  • 通过 命令 > 文件命令的成功结果 覆盖 指定文件内容
  • 通过 命令 >> 文件命令的成功结果 追加 指定文件的后面
  • 通过 命令 &>> 文件命令的失败结果 追加 指定文件的后面

6.4 && 和 ||

在这里插入图片描述

6.4.1 目标
  • 如果 创建 目录 成功, 就提示 创建成功
  • 如果 创建 目录 失败, 就提示 创建失败
6.4.2 实现
第一步: 如果 创建 目录 成功, 就提示 创建成功
命令作用
命令1 && 命令2如果 命令1执行成功了, 才执行 命令2
mkdir -p 正确目录 && echo "提示创建目录成功"

1 启动tomcat

2 查看tomcat日志

启动tomcat && 查看tomcat日志

第二步: 如果 创建 目录 失败, 就提示 创建失败
命令作用
命令1 || 命令2如果 命令1 执行失败了, 才执行 命令2
mkdir 错误目录 || echo "提示创建目录失败"
(cd a1/b1/c1 || mkdir -p a1/b1/c1) && cd a1/b1/d1
6.4.3 小结:
  • 通过 命令1 && 命令2 实现 如果 命令1 执行成功, 就执行 命令2的效果
  • 通过 命令1 || 命令2 实现 如果 命令1 执行失败, 就执行 命令2的效果

准备工作

# 清空/export目录中内容
cd /export && rm -rf *

# 1 创建目录
mkdir -p /export/aaa/bbb/ccc/ddd/eee

# 2 创建文件
touch /export/aaa/bbb/ccc/ddd/eee/01.txt /export/aaa/bbb/ccc/ddd/eee/02.txt

# 3 切换到 /export/aaa/bbb/ccc/ddd/eee/ 目录下 且 查看内容
# 3.1 cd /export/aaa/bbb/ccc/ddd/eee/ && ll
# 3.2 软链接(快捷方式)   cd 软链接 && ll

6.5 软链接(类似与 快捷方式)

  • 在linux中 文件名内容 是两个文件, 分开的
    在这里插入图片描述
  • 创建软链接的原理, 如下
    在这里插入图片描述
6.5.1 目标
  • 因为 某些文件和目录 的 路径很深, 所以 需要增加 软链接(快捷方式)
6.5.2 实现

语法如下:

命令英文作用
ln -s 目标文件绝对路径 快捷方式路径link给目标文件增加一个软链接, 通俗讲就是快捷方式
6.5.3 小结
  • 通过 ln -s 源文件的绝对路径 快捷方式路径目标文件 增加 快捷方式
  • 注意: 必须 增加 -s , 否则 就变成了 硬链接(了解), 原理如下
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值