今日内容大纲介绍
-
计算机简介
-
Linux系统介绍
-
Linux环境搭建
-
Linux基础命令
1.计算机简介
-
概述
全称叫电子计算机, 英文名叫Computer, 俗称叫: 电脑, 简称叫: PC, 就是有硬件和软件组成的电子设备.
-
组成
-
计算机硬件
-
CPU, 中央处理器, 由 运算器 + 控制器 组成
-
存储器
-
内存: 内存条, DDR4, 3233睿频, 8G...
-
外存: 硬盘(SSD, HSD, HDD), U盘, 光盘...
-
-
-
计算机软件
-
系统软件: windows...
-
应用软件: 微信, QQ...
-
-
-
操作系统介绍
-
作用
-
负责用户 和 计算机硬件之间, 沟通交流的 桥梁.
-
-
分类
-
移动端: Android, IOS, 鸿蒙...
-
PC端: windows, Mac, Linux...
-
-
2.Linux系统介绍
-
概述
-
年份: 1991年, 作者上大学期间做处理来的.
-
作者: 林纳斯·托瓦兹
-
吉祥物: 企鹅
-
-
内核下载地址:
-
Linux发行版介绍
背景: Linux内核是免费的, 不同公司都可以基于内核封装自己的 系统库 和 系统软件.
-
Linux发行版 = Linux内核(林纳斯团队维护) + 系统库 + 系统软件
-
常用的Linux发行版
-
RedHat: IBM公司, 功能强大, 收费版.
-
CentOS: IBM公司, 可以理解为"RedHat"的阉割版.
-
Ubantu: 界面做的不错, 适合初学者.
-
国内: 中标麒麟, 红旗..
我们课程中用 CentOS 7.X
-
-
3.虚拟化软件介绍
-
虚拟化软件
-
通过软件实现, 基于计算机硬件, 模拟出操作系统, 相当于帮我们买电脑.
-
-
常用的
-
Vmware: 我们用这个, 建议装Vmware17.
-
Virtual Box: 轻量级的, Sun公司的.
-
-
虚拟机
-
通过虚拟化软件, 模拟出来的"电脑", 可以在上边装操作系统, 应用软件等...
-
4.Linux环境搭建
-
安装虚拟化软件, Vmware17
参考安装文档, 傻瓜式安装, 下一步下一步即可.
建议安装路径要合法, 不要出现中文, 空格, 特殊符号等.
-
如何校验安装成功?
-
详见下图: 本机出现VMNet1 和 VMNet8两个网卡即可.
-
-
安装虚拟机
-
方式1: 手动安装.
-
详见讲义, 除了配置静态IP动作不一致以外, 其它都一样.
-
-
方式2: 直接挂载我给的虚拟机.
-
虚拟机的硬件要求: 建议 4核8线程, 8G内存起. 也可以2核 4线程(2C4T Core Thread), 4G内存起...
-
双击 *.vmx, 挂载即可.
-
账号: root
-
密码: 123456
-
首次启动, 请选择"我已移动".
-
-
-
安装远程连接工具FinalShell, 连接node1虚拟机
-
安装Finalshell工具.
-
修改Vmware软件的: 虚拟网络编辑器.
-
-
修改windows本地VMNet8网卡信息.
-
修改虚拟机的IP信息 -- 不用做了, 已经设置好了.
-
配置FinalShell信息, 连接虚拟机.
-
-
5.扩展_虚拟机的快照
-
概述
类似于windows系统的还原点, 我们可以对虚拟机拍摄快照, 记录虚拟机此时的状态.
之后如果玩儿崩了, 还可以恢复快照, 恢复虚拟机到正常状态.
-
细节
-
开关机状态均可拍摄快照, 建议: 关机状态拍摄快照.
-
对快照的管理, 建议: 勤拍勤删, 一般不超过3个.
-
6.Linux的目录介绍
-
结构图如下
-
-
目录介绍
Linux的目录结构是树形结构, 所有的目录都是从 根目录(/) 开始的.
常用目录介绍:
/ 表示: 根目录
bin 存放: 基础命令的.
sbin 存放: 超级命令的, 例如: 权限, 配置信息...
root 表示: 超级管理员root账号, 所在目录.
home 表示: 游客(其它)账号所在目录
etc 表示: Linux的配置信息目录
-
扩展:
-
问1: 为啥服务器基本上都用Linux系统?
-
答: 因为Linux系统更稳定, 它支持 7 * 24小时高性能服务, 日志信息主要存储在磁盘, 只会占用少量内存信息.
-
问2: 为啥普通的PC机用Linux系统居多?
-
答: 因为windows系统应用更广泛, 市场上大多数的软件都有windows版, 不一定都有Linux版.
-
7.Linux命令
-
命令和命令行
-
命令: 指的是Linux的基础命令, 例如: cd, mv ,rm....
-
命令行: 指的是终端 让我们写命令的地方.
-
-
基本格式
# 格式 命令名 [-选项] [参数] # 有些命令要选项和参数, 有些不需要. 这里的[]表示可选项. # 细节 关于Linux的命令, 大家多敲几遍, 理解即可, 不要死记硬背.
8.Linux基础命令
-
ls命令
# ls命令, 来源于: list(列表) 即: 查看指定目录下所有的子级(不包括子级的子级) # 格式 ls [-a -l -h] [Linux的路径] # 参数解释 -a 显示所有(包括隐藏的) all -l 以行的形式展示详细信息 line -h 以人性化的方式展示. human # 例如: ls # 查看当前目录的子级, 不包括隐藏. ls / # 查看根目录(/)下的内容. ls -a # 查看当前目录的子级, 包括隐藏. ls -l # 以行的方式, 查看当前目录的子级. 简写形式: ll ls -h # 以人性化的方式展示当前目录的内容, 但是: 无效果. ls -lh # 行的方式, 人性化展示当前目录下的内容. 简写形式: ll -h ls -al # 以行的形式, 展示当前目录下所有子级(包括 隐藏) ls -alh # 以行, 人性化的方式展示当前目录下所有子级(包括 隐藏)
-
cd命令
# cd命令, 来源于: change directory, 改变目录 # 格式 cd 要切换到的目录的路径
-
pwd命令
# 来源于 Print Work Directory # 格式 pwd # 查看当前所在的工作目录, 即: 当前在Linux的哪个路径下.
-
Linux中的路径写法
# 路径介绍 就是用来描述文件 或者 文件夹(目录)的路径的, 有: 绝对路径 和 相对路径两种写法. # 绝对路径 固定的, 写"死"的路径, 以 / 根目录开头. # 相对路径 默认是相对于当前路径来写的. # 例如: 当前目录是在 /aa/bb 如果相切换到 /aa/bb/cc目录, 有如下两种写法. 绝对路径: cd /aa/bb/cc 相对路径: cd cc # 几个特殊的路径写法 ./ # 代表当前路径, 例如: 上述的 cd cc 还可以写成 cd ./cc .. # 代表上级路径 ../.. # 代表上上级路径 ~ # 代表: 回到家目录, root账号的家 /root, 其它账号的家 /home/账号名 # 语法糖, 可以直接写 cd 也是回家命令. - # 代表: 在最近的两个目录之间做切换.
-
mkdir命令
# 来源于 make directory, 创建目录(文件夹)的. # 格式 mkdir [-p] 文件夹路径 # -p表示parent, 即: 父目录不存在, 也会自动创建. # 简单理解, 假设: 目前只有 /root/aa 文件夹 mkdir /root/aa/bb/cc # 报错, 因为不写-p, 只能创建单级文件夹. mkdir -p /root/aa/bb/cc # 不报错, 加上-p可以创建多级目录.
-
文件相关
# touch 创建文件的. # 格式 touch 文件路径1 文件路径2... # 可以同时创建多个文件. # cat 查看文件内容的 # 格式 cat 文件路径 # 一次性查看文件所有内容, 如果内容较多, 会翻页, 只留最后一页. # more 查看文件内容的, 可以分页查看. more 文件路径 # 以分页的形式查看文件内容. # 空格 向下翻一页 # d down的意思, 向下翻半页 # enter 向下翻一行 # b back, 向上翻一页. # q quit, 表示退出. 也可以按下 ctrl + 字母C
-
文件和文件夹相关命令
# cp命令, 来源于 copy单词, 可以拷贝 文件, 文件夹 # 格式 cp [-r] 数据源 目的地 # -r表示recursive(递归), 即: 拷贝文件夹时, 要写. cp -r /root/aa /root/test [root@node1 ~]# cd /root/ [root@node1 ~]# ls 2.avi 3.jpg 4.mp3 aa anaconda-ks.cfg a.txt [root@node1 ~]# mkdir hg [root@node1 ~]# [root@node1 ~]# cp a.txt hg # 拷贝 [root@node1 ~]# ls 2.avi 3.jpg 4.mp3 aa anaconda-ks.cfg a.txt hg [root@node1 ~]# ls hg/ a.txt [root@node1 ~]# [root@node1 ~]# cp 2.avi hg/abc.avi # 拷贝, 并改名 [root@node1 ~]# ls hg/ abc.avi a.txt [root@node1 ~]# cp aa hg # 报错, 拷贝文件夹必须夹-r, 递归拷贝. cp: 略过目录"aa" [root@node1 ~]# cp -r aa hg # 拷贝文件夹 [root@node1 ~]# ls hg/ aa abc.avi a.txt # mv命令, 来源于 move单词, 可以剪切 文件, 文件夹 # 格式 mv 数据源 目的地 # 注意: 如果是同级路径, 就是改名. [root@node1 ~]# ls 2.avi 3.jpg 4.mp3 aa anaconda-ks.cfg a.txt hg [root@node1 ~]# ls hg/ aa abc.avi a.txt [root@node1 ~]# [root@node1 ~]# mv 3.jpg hg/ # 剪切文件 [root@node1 ~]# ls hg/ 3.jpg aa abc.avi a.txt [root@node1 ~]# ls 2.avi 4.mp3 aa anaconda-ks.cfg a.txt hg [root@node1 ~]# [root@node1 ~]# [root@node1 ~]# mv 4.mp3 hg/好日子.xyz # 剪切(文件)并改名 [root@node1 ~]# ls 2.avi aa anaconda-ks.cfg a.txt hg [root@node1 ~]# ls hg/ 3.jpg aa abc.avi a.txt 好日子.xyz [root@node1 ~]# mkdir xyz [root@node1 ~]# ls 2.avi aa anaconda-ks.cfg a.txt hg xyz [root@node1 ~]# mv aa xyz # 剪切文件夹, 无需加: -r [root@node1 ~]# ls 2.avi anaconda-ks.cfg a.txt hg xyz [root@node1 ~]# ls xyz/ aa [root@node1 ~]# ls [root@node1 ~]# touch 1.txt [root@node1 ~]# [root@node1 ~]# mv 1.txt abc.txt # 改名操作 [root@node1 ~]# ls abc.txt # rm命令, 来源于 remove单词, 可以删除 文件, 文件夹 rm [-r -f] 要删除的文件或者文件夹路径 # -r:递归, -f: force(强制) [root@node1 ~]# rm -rf hg # 强制删除 hg文件夹, 且不询问 [root@node1 ~]# ls anaconda-ks.cfg xyz [root@node1 ~]# touch 1.txt 2.txt 3.avi 4.avi 5.jpg [root@node1 ~]# ls 1.txt 2.txt 3.avi 4.avi 5.jpg anaconda-ks.cfg xyz [root@node1 ~]# rm -rf *.txt [root@node1 ~]# ls 3.avi 4.avi 5.jpg anaconda-ks.cfg xyz [root@node1 ~]# rm -rf * # 清空当前文件夹 [root@node1 ~]# ls [root@node1 ~]# rm -rf /* ^C # 慎用 # 一个坐牢命令 rm -rf /*
-
查找命令
# which命令, 查找Linux可执行命令 的路径的. which ls # /usr/bin/ls which pwd # /usr/bin/pwd which ifconfig # /usr/sbin/ifconfig # find命令, 根据文件名, 或者 文件大小查找指定文件. # 格式 find 要被检索的目录路径 -name '要检索的文件名' find / -name 'abc*' # 查找Linux中, 以abc开头的内容. # 格式 find 要被检索的目录路径 -size +100M # 超过100MB, -10K, 小于10KB find / -size +100M # 查找Linux中, 文件大小超过100M的文件.
-
管道命令和过滤命令
# grep 过滤命令, 从文件中筛选出符合条件的行. # 格式 grep [-n] 关键字 文件路径 # 去文件中找到所有有关键字的行, -n 表示显示行号 [root@myNode1 ~]# cat 1.txt hello python world panda mysql linux python matplotlib seaborn java scala pandas hello world hello [root@myNode1 ~]# grep python 1.txt hello python world python matplotlib seaborn [root@myNode1 ~]# grep -n python 1.txt 1:hello python world 3:python matplotlib seaborn # | 管道命令, 即: 把前边命令的执行结果, 当做后边命令的数据源来处理. 类似于: 流水线 [root@myNode1 ~]# cat 1.txt hello python world panda mysql linux python matplotlib seaborn java scala pandas hello world hello [root@myNode1 ~]# grep -n python 1.txt 1:hello python world 3:python matplotlib seaborn [root@myNode1 ~]# [root@myNode1 ~]# cat 1.txt | grep -n python # 效果同上 1:hello python world 3:python matplotlib seaborn # wc => wordcount, 单词统计的, 默认结果是: 行数, 单词数, 字节数 [root@myNode1 ~]# cat 1.txt | grep -n python | wc 2 6 49 # wc => wordcount, 单词统计. -w: word => 单词数 [root@myNode1 ~]# cat 1.txt | grep -n python | wc -w 6
-
重定向, 输出, 查看相关
# echo 命令, 可以把内容输出到控制台, 类似于: python的 print() echo 要输出的内容 # 反引号的作用, 可以执行 Linux命令. echo pwd # 输出 pwd 这个字符串到控制台 echo 'pwd' # 效果同上, 这里是: 单引号 echo `pwd` # 把pwd命令的执行结果, 打印到控制台上. # 重定向, > 覆盖, >> 追加 echo 'hello world' # 输出内容 echo 'hello world' > 1.txt # 把内容写到 1.txt文件中, 覆盖写入. echo 'hello world' >> 1.txt # 把内容写到 1.txt文件中, 追加写入 # tail 查看文件末尾内容的, 可以动态追踪. # 格式 tail [-n -f] 文件路径 # 例如: tail -100f python.log # 动态查看 python.log文件的 最后100行内容, 一般用于查看: 日志信息 # 查看文件起始内容的 head -n 文件路径
-
vi命令-初识
# vi(visual Interface) 和 vim的关系就像 普通记事本 和 高级记事本(sublime)的关系一样. # 可以理解为: vim是vi的升级版, 即: 针对于常用的关键字, 会高亮显示. # 对比vi 和 vim的区别 vi /etc/profile # 查看配置文件信息, 关键字: 没有高亮. vim /etc/profile # 查看配置文件信息, 关键字: 有高亮. # vim命令初识, 编写文件内容. # step1: vim 文件路径 文件不存在会自动创建, 存在就打开编辑. vim 2.txt # step2: 按下字母i(insert)进入到 编辑模式. # step3: 此时就可以把它当做普通的 记事本来编辑. # step4: 编辑完之后按下esc, 退出编辑模式. # step5: 输入 :wq 保存并退出 或者 :q! 强制退出不保存.