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"…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...