Docker实战教程 第1章 Linux快速入门
2-1 Linux介绍
为什么要学Linux
-
三个不得不学习
-
课程需要:Docker开发最好在Linux环境下。
-
开发需要:作为一个后端程序员,是必须要掌握Linux的,这是找工作的基础门槛。
-
运维需要:在服务器端,主流的大型服务都是跑在Linux服务器上。
Linux简介
- Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
- Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSX(可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。苹果电脑也是类Unix系统。
- Linux是一个操作系统,类似Windows,可以安装软件,跑程序。
Linux发行版
Linux应用领域
今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用LAMP(Linux+Apache +MySQL+PHP)或LNMP(Linux+Nging+MySQL+PHP)组合。
Linux安装
- 本地安装:虚拟机、Windows子系统
- 服务器安装:阿里云购买服务器
2-2 目录结构
linux下一切皆文件
跟目录 /
-
ls /
查看根目录下的文件 -
树状目录结构
常用目录解释
-
/bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。
-
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
-
/dev:dev是Device(设备)的缩写,存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
-
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
-
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
-
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
-
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
-
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。·/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
-
/opt:这是给主机额外安装软件所摆放的目录,比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
-
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
-
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
-
/sbin:5就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
-
/srv:该目录存放一些服务启动之后需要提取的数据。
-
/sys:这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs.
-
/tmp:这个目录是用来存放一些临时文件的。
-
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
-
/usr/bin:系统用户使用的应用程序。
-
/usr/src:内核源代码默认的放置目录。
-
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
2-3 文件夹相关命令
cd 切换目录
cd
切换目录命令cd ..
切换上级目录, 相对目录cd ./
当前目录cd ~
回到当前的用户目录,或者直接cd
- cd 绝对路径
ls 查看文件
- 查看目录下文件
- -a参数,查看所有文件,包含隐藏文件。
- -l参数,列出文件属性和权限,没有隐藏文件
- 参数可以组合使用
pwd 查看当前用户所在目录
clear 清屏
- 清空屏幕
- ctrl+l
mkdir 创建文件夹
mkdir test1
创建test1文件夹mkdir -p test1/test2/test3
递归创建层级文件夹
rmdir 删除文件夹
rmdir test1
删除空的文件夹rmdir -p test1/test2/test3
层级删除文件夹
cp复制目录
- 将一个文件夹复制到另一个文件夹
cp a b
rm移除文件或目录
-
-f参数,强制删除
-
-r递归删除
-
-a参数,交互,询问是否删除
mv移动文件或目录
- 移动或者重命名
2-4 文件相关命令
文件相关命令(查看文件)
-
cat由第一行开始显示文件内容
-
tac从最后一行开始显示
-
nl显示的时候,顺道输出行号!
-
more一页一页的显示文件内容<空格翻页,回车往下看一行
-
less与more类似,但是比more更好的是,他可以往前翻页!上下键,使用q退出
-
head只看头几行
head -n 20 a.txt
-
tail只看尾巴几行
tail -n a.txt
-
touch
-
echo
2-5 Vim编辑器的使用
Vim编辑器的使用
- linux文本编辑器有两种:vi和vim,vim是vi的升级版
- vim有三种模式:命令模式、插入模式、底线命令模式
- 三种模式的切换:只能从命令模式进入插入模式、只能从命令模式进入底线命令模式
命令模式
- 用户进入vim,直接进入命令模式
- 在命令模式,键盘的敲击会识别为命令,而不是输入的字符。
- 输入x删除光标所在的字符,输入dd删除光标所在的一行
- 输入i进入插入模式,输入:进入底线命令模式
- shift+4光标调至行尾,shift+6或者数字0贯标调至行首
插入模式
- 进入插入模式,可以进行文本编辑
- 输入Esc退出插入模式,进入命令模式
底线命令模式
-
输入w,保存文件,输入q退出文件,输入wq保存并退出文件
-
输入q!强制退出文件
-
输入/字符,查找字符
-
输入 :set nu显示行号,输入:set nonu取消显示行号
2-6 软连接和硬链接
软链接和硬链接
1 概念
Linux链接分为两种:软链接和硬链接
-
硬链接:比如有一个文件A,给A创建一个和硬链接B,此时即便删除文件A,通过B也可以再次访问到文件中的内容。这样可以防止误删。
-
软连接:类似windows上的快捷方式,删除源文件,快捷方式也访问不了。
2 创建链接
创建一个硬链接:ln
ln a.txt b.txt #给a.txt创建一个硬链接b.txt, b.txt是一个文件
创建一个软链接:-s soft
ln -s a.txt c.txt #给a.txt创建一个软连接,c.txt, c.txt不是一个真实的文件,只是一个快捷键
3 软硬链接的区别
- 相同点:硬链接和软链接指向相同的文件,当源文件被修改时,软硬链接都即使修改更新
- 不同点:当源文件被删除时,硬链接还可以访问,软连接不能再被访问;此时再创建一个新的同名的源文件,软链接再次和源文件关联,但硬链接文件和新的同名源文件没有任何关系。
2-7 用户管理相关命令
用户管理相关命令
linux是多用户的操作系统,使用系统资源都必须拥有一个用户账号,普通账号由管理员root账号分配,然后以普通账号登录系统。
yoghurt管理相关命令分两部分:用户相关,用户组相关
用户相关
- 增加账号、删除账号、修改密码等
- 用户的增加实际上修改的是/etc/passwd文件
# 添加用户 useradd -选项 用户名
useradd -m jack #自动创建jack这个账号,用户的主目录 /home/jack# 查看用户的配置文件 cat /etc/passwd# 删除用户
userdel -r jack # 删除用户并删除用户的目录# 修改用户 usermod 修改内容 用户
usermod -d /home/111 jack # 修改用的目录,目录不存在先创建目录,检查配置文件/etc/passwd# 用户设置密码,添加账号时添加密码
useradd jack
passwd jack# 修改自己的密码
passwd# 冻结账号,一旦冻结,就无法在使用该账号登录
[root@liuxu home]# passwd -l jack
Locking password for user jack.
passwd: Success
切换用户
# 1.切换用户的命令为:su jack # 切换到jack这个用户
[root@liuxu home]# who am i
root pts/0 2021-07-24 20:04 (101.229.117.193)
[root@liuxu home]# su jack # #表示root用户
[jack@liuxu home]$ # $表示普通用户# 2.从普通用户切换到root用户,继续使用命令:sudo su
[jack@liuxu home]$ su root # 要输入root账号密码
Password:
[root@liuxu home]# # 3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令
[root@liuxu home]#
[root@liuxu home]# su jack
[jack@liuxu home]$ exit
exit
[root@liuxu home]# su jack
[jack@liuxu home]$ exit
[root@liuxu home]#
用户组相关
- 每个用户都有一个用户组,不同用户组的权限是不一样的(开发,运维,测试等)。
- 组的增加、删除和修改实际上发修改的是/etc/group文件
# 创建一个用户组 groupaddgroupadd jack # 新建组, 组id自增,cat /etc/group
groupadd -g 1100 mack #指定组id是1100# 删除用户组
groupdel jack # 删除后,配置文件中就没有这个组的信息# 修改组
groupmod -g 2200 -n mmm mack # 将mack组重命名为mmm id改为2200# 给用户分配组
useradd -G 分配用户组
2-8 文件属性
文件属性
文件属性
- Linux是多用户的操作系统,不同用户、不同用户组的对文件的操纵权限是不一样的。
- 使用命令
ls -l
或者ll
查看文件或者文件夹的属性、以及文件所属的用户和组。
-
上面列出的文件属性中,第一个字母常用的有三种:
d
表示文件夹、-
表示文件、l
表示软链接 -
后面9个字母,3个为一组
rwx
,分别是属主可读可写可执行权限、属组可读可写可执行权限、其他用户的权限。每组的三个全下位置固定,如果没有对应的操作权限,则用中划线-
标识。 -
接着是文件的属主是root,文件的属组是root
修改文件属性
# 1 修改文件属组 chgrp [-R] 属组名 文件名, -R表示递归修改文件夹内文件属组# 2 修改文件属主 chown [-R] 属主名 文件名# 3 修改文件属性 chmod [-R] xyz 文件或文件夹 chomd 777 a.txt- xyz分别设置属主、属组和其他用户的可读可写可执行权限
- x=7,表示属主就有可读可写可执行权限,7表示4+2+1, r:4, w:2, x:1- 每个组的三个权限就是三个权限对应数字的累加
- 可读可写可执行:4+2+1==7
- 可读可写: 4+2==6
- 可读可执行: 4+1 ==5
- 可执行: 1==1- chmod 777 a.txt # 表示a.txt属主、属组和其他用户都具有可读可写可执行的权限
- chmod 764 a.txt # 表示a.txt属主具有可读可写可执行,属组具有可读可写,其他用户具有可读权限
2-9 磁盘管理相关命令
磁盘管理相关命令
- 就是查看每个磁盘的使用情况
# 列出文件系统整体的使用情况 dfdf
df -h # 人性化显示# 检查磁盘空间使用量 du
du
du -a # 影藏的文件也可以查看,还可以看到子文件夹的量
du -h # 人性化显示
2-10 进程管理相关命令
进程管理相关命令
基本概念
- 1、每一个程序都有一个进程,对应一个进程id
- 2、每一个进程,都有一个父进程,是父进程创建的子进程
- 3、进程有两种运行方式:前台运行和后台运行;一般服务在后台运行,普通程序在前台运行。
查看进程
- 查看当前运行的进程信息
ps
ps -a # 显示当前终端运行的所有进程信息
ps -u # 以用户的信息显示进程
ps -x # 显示后台运行进程的参数
- 查看进程信息并过滤
ps -aux | grep mysql
- 查看父进程
ps -ef grep python
- 查看进程树
pstree
pstree -p # 显示父id
pstree -u # 显示用户组
结束进程
- 杀死进程
kill -9 进程id # 强制结束进程
2-11 安装软件
安装软件
三种方式
- 编译安装(源码安装)
- 优点: 最原始直接的安装方式,源码安装
- 缺点:但是过程繁琐,需要手动安装依赖
- rpm安装
- redhat提供的包管理平台,类似软件商店
- 优点:已经编译好的软件包,拿来直接用
- 缺点:但不是所有软件都有rpm包,且有些rpm包有依赖,需要手动安装
- yum安装(常用)
- 为了自动解决rpm的依赖关系
- 优点:简单方便,配置简单
- 缺点:需要配置yum源
配置阿里云yum源
- https://developer.aliyun.com/mirror/
# 备份:
mkdir repobak
mv *.repo repobak/# 下载CentOS-Base.repo 到路径/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo# 清除缓存
yum clean all
# 重建缓存
yum makecache
安装实战
# 编译安装 nginx./configure
make
make install# nginx安装下载示例 http://nginx.org/en/download.html# rmp安装
wget rmp包 # 使用wget命令下载一个rpm包
rpm -ivh rpm包 # rmp安装软件rmp -e 软件报名 # rmp删除软件# yum安装yum install -y 软件
yum remove 软件包yum search 软件包 # 查找# yum安装net-tools工具包等
相关文章:
Docker实战教程 第1章 Linux快速入门
2-1 Linux介绍 为什么要学Linux 三个不得不学习 课程需要:Docker开发最好在Linux环境下。 开发需要:作为一个后端程序员,是必须要掌握Linux的,这是找工作的基础门槛。 运维需要:在服务器端,主流的大型服…...
java数据结构与算法刷题-----LeetCode172. 阶乘后的零
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 数学:阶乘的10因子个数数学优化:思路转变为求5的倍数…...
掌握数据相关性新利器:基于R、Python的Copula变量相关性分析及AI大模型应用探索
在工程、水文和金融等各学科的研究中,总是会遇到很多变量,研究这些相互纠缠的变量间的相关关系是各学科的研究的重点。虽然皮尔逊相关、秩相关等相关系数提供了变量间相关关系的粗略结果,但这些系数都存在着无法克服的困难。例如,…...
Centos7环境下安装MySQL8详细教程
1、下载mysql安装包 下载哪个版本,首先需要确定一下系统的glibc版本,使用如下命令: rpm -qa | grep glibc 2、检查是否安装过mysql ps:因为以前用yum安装过,所以先用yum卸载。如果不是此方式或者没安装过则跳过…...
趣学前端 | 综合一波CSS选择器的用法
背景 最近睡前习惯翻会书,重温了《HTML5与CSS 3权威指南》。这本书,分上下两册,之前读完了上册,下册基本没翻过。为了对得起花过的每一分钱,决定拾起来近期读一读。 CSS 选择器 在CSS3中,提倡使用选择器…...
数据库 06-04 恢复
01 一.事务故障 二.系统 三.磁盘 02. 重点是稳定存储器 组成...
基于MPPT的风力机发电系统simulink建模与仿真
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1风能与风力发电机模型 4.2风力机功率特性与最大功率点 4.3 MPPT 5.完整工程文件 1.课题概述 基于MPPT的风力机发电系统simulink建模与仿真。MPPT使用S函数编写实现。基于最大功率点跟踪(…...
GD32F30x IO 复用问题
1.PE9 复用PWM 引脚 需要使能 gpio_pin_remap_config(GPIO_TIMER0_FULL_REMAP,ENABLE);...
BPMNJS 在原生HTML中的引入与使用
BPMNJS 在HTML中的引入与使用 在网上看到的大多是基于vue使用BPMN的示例或者教程,竟然没有在HTML使用的示例,有也是很简单的介绍核心库的引入和使用,并没有涉及到扩展库。于是简单看了下,真的是一波三折,坎坎坷坷。不…...
HarmonyOS 应用开发之通过数据管理服务实现数据共享静默访问
场景介绍 典型跨应用访问数据的用户场景下,数据提供方会存在多次被拉起的情况。 为了降低数据提供方拉起次数,提高访问速度,OpenHarmony提供了一种不拉起数据提供方直接访问数据库的方式,即静默数据访问。 静默数据访问通过数据…...
ubuntu强密码支持
接到新需求,欧盟需要ubuntu使用强密码,网络上找到一个包可以增加ubuntu密码增强机制,以下是调试过程。 sudo apt-get install libpam-pwquality 然后,编辑位于/etc/pam.d/目录中的common-password文件: sudo vim /et…...
C语言中文分词 Friso的使用教程
Friso是使用C语言开发的一款高性能中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP等。同时支持对UTF-8/GBK编码的切分。 官方地址:https://…...
MySQL中drop、truncate和delete的区别
✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:每天一个知识点 ✨特色专栏:…...
Deep Image Prior
自监督的开创性工作 从简单分布到复杂分布的映射,本质上是将重建限制到某一流形,在流形上通过观测图像的数据保真项作为监督。 称之为先验也是很准确,流形就是先验。 这个扰动也很关键,本质上一个平滑正则项。直观理解是各种扰动…...
leetcode148. 排序链表
方法1:插入方法进行改进 class Solution {public ListNode sortList(ListNode head) {/*想法:设置两个指针first,last分别指向当前有序子链表的头和尾节点;并遍历链表,当遍历到的节点值大于last的值时,就将该节点插入到有序子链表…...
【深度学习环境配置】一文弄懂cuda,cudnn,NVIDIA Driver version,cudatoolkit的关系
【深度学习环境配置】一文弄懂cuda,cuDNN,NVIDIA Driver version,cudatoolkit的关系 NVIDIA Driver version(NVIDIA驱动程序)CUDAcuDNNcudatoolkit深度学习环境配置顺序 今天突然发现配置的环境有些问题,意…...
C语言中的字符与字符串:魔法般的函数探险
前言 在C语言的世界里,字符和字符串是两个不可或缺的元素,它们像是魔法般的存在,让文字与代码交织出无限可能。而在这个世界里,有一批特殊的函数,它们如同探险家,引领我们深入字符与字符串的秘境࿰…...
【JAVASE】带你了解面向对象三大特性之一(继承)
✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 1.继承 1.1 为什么需要继承 Java 中使用类对现实世界中实体来…...
Git 如何去使用
目录 1. Git暂存区的使用 1.1. 暂存区的作用 1.2. 暂存区覆盖工作区(注意:完全确认覆盖时使用) 1.3. 暂存区移除文件 1.4. 练习 2. Git回退版本 2.1. 概念 2.2. 查看提交历史 2.3. 回退命令 2.4. 注意 3. Git删除文件 3.1. 需求 …...
C语言 | Leetcode C语言题解之第12题整数转罗马数字
题目: 题解: const char* thousands[] {"", "M", "MM", "MMM"}; const char* hundreds[] {"", "C", "CC", "CCC", "CD", "D", "DC"…...
【软件工程】测试规格
1. 引言 1.1简介 本次的测试用例是基于核心代码基本开发完毕,在第一代系统基本正常运行后编写的,主要目的是为了后续开发与维护的便利性。 该文档主要受众为该系统后续开发人员,并且在阅读此文档前最后先阅读本系统的需求文档、概要设计文…...
Nginx中间件服务:负载均衡(调度算法)
文章目录 引言I 原理1.1 后端服务器在负载均衡调度中的状态1.2 调度算法II upstreamd的应用2.1 加权负载均衡的服务器列表2.2 AB测试中使用upstream切分流量2.3 基于URL的HASH2.4 IP_HASHsee also引言 作用 转发功能:按照一定的调度算法(轮询、权重)将客户端发来的请求转发…...
dm8数据迁移工具DTS
dm8数据迁移工具DTS DTS工具介绍 DM数据迁移工具提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件的功能。DM数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作。 DM数据迁移工具支持: ◆ 主流大型数据库Oracle、SQLServer、MyS…...
【QT教程】QML与C++的交互
主页 软件开发 QT6 QML高级编程补天云火鸟自动化创作平台您能够创建大约3000 个短视频一天可以轻松创建多达 100 个视频 QML与C的交互 使用AI技术辅助生成 【QT免费公开课】您可以到这里观看大量的QT视频课程 【QT付费视频课程】QT QML C 高级扩展开发 目录 1 QML与C的交互…...
idea maven 打包 内存溢出 报 GC overhead limit exceeded -> [Help 1]
idea 使用maven打包 报GC overhead limit exceeded -> [Help 1] 解决方法: 打开settings -> 点开如同所示 将 vm Options 参数 设为 -Xmx8g...
wordpress全站开发指南-面向开发者及深度用户(全中文实操)--创建新主题
前言 你可以在wordpress里面下载使用人家打包好的主题,但可能不是很好用,接下来就自己做一个自己的主题。你需要先找到xampp文件夹–htdocs–wordpress(我给更名为wplocal)–wp-content–themes 进入该文件夹之后你可以看到你之前下载导入的所有主题文件…...
docker从入门到熟悉
一、什么是docker? Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的快速交付…...
国家开放大学《消费者权益保护法》形考任务答案
答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 消费者田女士买回一盒饼干价格20元,准备给小孩吃…...
element-ui card 组件源码分享
今日简单分享 card 组件源码,主要从以下两个方面: 一、card 组件页面结构 二、card 组件属性 2.1 header 属性,设置 header,也可以通过 slot#header 传入 DOM,类型 string,无默认值。 组件使用部分&#…...
MPLS基本转发过程,隧道特性、对TTL的处理、BGP路由黑洞
MPLS基本转发过程,隧道特性 标签操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作。 倒数第二跳弹出特性PHP(Penultimate Hop Popp…...
网页设计尺寸厘米/深圳有实力的seo公司
因为组播中的组地址是虚拟的,所以不可能如同单播那样,直接从数据源一端路由到特定的目的地址。组播应用程序将数据包发送给一组希望接收数据的接收者(组播地址),而不是仅仅传送给一个接收者(单播地址&#…...
有什么做外贸的好网站/下载百度免费
--动态分区属性:设置true表示开启动态分区功能(默认为false) hive.exec.dynamic.partition true --动态分区属性:设置为nonstrict表示允许所有分区都是动态的(默认为strict) --设置为strict,…...
农村社区网站建设/软文营销的概念
计算loss是会把所有loss层的loss相加。 从验证集误差是和测试集误差的角度分析 其实你这个问题就是个伪命题,如果我们刻意的去在训练集上拟合模型,使其准确率达到很高的高度,或者说尽量在验证集合上表现的好,都是相悖的。 因…...
哪些网站可以进行域名注册/新网站怎么做推广
这是信任的考验——靠人品代收货款致“跑路”频现并引发社会问题,有没有根治的法儿?如何让物流企业专注物流业务而不再盯着代收货款起歪主意?物流企业因挪用货款而跑路的“顽疾”,长期以来困扰着物流界,现在࿰…...
杭州手机建设网站/下载地图导航手机版免流量费用
问题链接:HDU1106 排序。 问题简述:参见上述链接。 问题分析:这个程序的逻辑并不十分复杂,主要是字符串处理和数字字符串转整数的问题。 程序说明:程序中,使用C语言的库函数strtok来切割字符串,…...
网站做好了 后期怎么做/网站seo关键词
在创建枚举类时,编译器会默认给你继承Enum类。然而Enum类并没有values方法。通过反射可以了解到values是由编译器添加的public class Reflection {public static Setanalyze(Class> enumClazz) {System.out.println("分析" enumClazz "类"…...