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工具包等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SDWebImage源码解析---疑难问题解答

SDWebImage的简单流程图&#xff1a; 上图大致流程是对的&#xff0c;有几个没写到的地方&#xff1a; 首先判断url的类型是不是URL类型或string类型&#xff0c;判断url是否为nil占位图更早一些&#xff0c;在url判断后&#xff0c;就行显示占位图加载沙盒中对应的图片后&…

Premiere Pro 2024:赋予创意翅膀,让你的视频飞翔 mac/win版

Premiere Pro 2024&#xff0c;作为Adobe旗下的旗舰视频编辑软件&#xff0c;自推出以来&#xff0c;一直在视频制作领域占据着重要的地位。随着技术的不断进步和创新&#xff0c;Premiere Pro 2024为用户带来了前所未有的编辑体验&#xff0c;重新定义了视频制作的标准。 Pre…

数字逻辑分析仪初体验

为啥会用到这玩意儿&#xff0c;要从一个荒诞的需求开始。想在市面上找一款特别低空飞行的监控&#xff0c;而且不想它一直开着监控&#xff0c;最好是我在外面远程指挥它起飞&#xff0c;飞去厨房&#xff0c;飞去洗手间&#xff0c;甚至飞去阳台&#xff0c;查看水龙头情况啊…

Nuxt 项目的创建

中文文档&#xff1a;https://nuxt.com.cn/docs/getting-started/installation#%E6%96%B0%E9%A1%B9%E7%9B%AE Nuxt 项目创建的先决条件&#xff1a; Node.js 版本 18.0.0 及以上文本编辑器&#xff1a;VS Code Volar 插件 或 Webstorm 执行如下命令&#xff0c;创建 Nuxt 项目…

【Canvas技法】用椭圆绘制经纬线

【图示】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>用椭圆绘制经纬线</title><style type"text/css"…

相对论中关于光速不变理解的补充

近几个月在物理直播间聊爱因斯坦相对论&#xff0c;发现好多人在理解爱因斯坦相对论关于基本假设&#xff0c;普遍认为光速是不变的&#xff0c;质能方程 中光速的光速不变的&#xff0c;在这里我对这个假设需要做一个补充&#xff0c;他是基于质能方程将光速C 在真是光速变化曲…

Allavsoft for Mac v3.27.0.8852注册激活版 优秀的视频下载工具

Allavsoft for Mac是一款功能强大的多媒体下载和转换工具&#xff0c;支持从各种在线视频网站和流媒体服务下载视频、音频和图片。它具备批量下载和转换功能&#xff0c;可将文件转换为多种格式&#xff0c;以适应不同设备的播放需求。此外&#xff0c;Allavsoft还提供视频编辑…

最新版两款不同版SEO超级外链工具PHP源码

可根据个人感觉喜好自行任意选择不同版本使用&#xff08;版V1或版V2&#xff09; 请将zip文件全部解压缩即可访问&#xff01; 源码全部开源&#xff0c;支持上传二级目录访问 #已更新增加大量高质量外链&#xff08;若需要增加修改其他外链请打开txt文件&#xff09; #修…

贪心算法|53.最大子序和

力扣题目链接 class Solution { public:int maxSubArray(vector<int>& nums) {int result INT32_MIN;int count 0;for (int i 0; i < nums.size(); i) {count nums[i];if (count > result) {result count;}if (count < 0) count 0;}return result;} …

SpringBoot+ECharts+Html 字符云/词云案例详解

1. 技术点 SpringBoot、MyBatis、thymeleaf、MySQL、ECharts 等 2. 准备条件 在mysql中创建数据库echartsdb&#xff0c;数据库中创建表t_comment表&#xff0c;表中设置两个字段word与count&#xff0c;添加表中的数据。如&#xff1a;附件中的 echartsdb.sql 3. SpringBoot…

CAD Plant3D 2024 下载地址及安装教程

CAD Plant3D是一款专业的三维工厂设计软件&#xff0c;用于在工业设备和管道设计领域进行建模和绘图。它是Autodesk公司旗下的AutoCAD系列产品之一&#xff0c;专门针对工艺、石油、化工、电力等行业的设计和工程项目。 CAD Plant3D提供了一套丰富的工具和功能&#xff0c;帮助…

水泥5G智能制造工厂数字孪生可视化平台,推进水泥行业数字化转型

水泥5G智能制造工厂数字孪生可视化平台&#xff0c;推进水泥行业数字化转型。水泥5G智能制造工厂数字孪生可视化平台&#xff0c;是水泥行业数字化转型的关键推手。数字孪生平台运用先进的信息技术和数字化手段&#xff0c;实现水泥生产过程的数字化模拟、可视化监控和智能化管…

常见的线程安全类

线程安全&#xff01;线程安全&#xff01;&#xff01;线程安全&#xff01;&#xff01;&#xff01; 鼠鼠我最近被线程安全这个词弄得好烦啊&#xff0c;那既然如此就来写一篇常见的线程安全类防止以后鼠鼠我的大脑又宕机了忘记了....... 这里我们讨论的线程安全的是指&am…

DVWA-File Inclusion通关教程-完结

DVWA-File Inclusion通关教程-完结 文章目录 DVWA-File Inclusion通关教程-完结页面功能LowMediumHighImpossible 页面功能 点击页面上提供的三个页面&#xff0c;单击这些文件就会显示其执行内容&#xff0c;同时发现提交是由GET方式进行&#xff0c;使用page参数传参。 …

华为CCE部署RabbitMQ中间件操作文档

1、创建有状态&#xff08;StatefulSet&#xff09;部署 中间件一般为有状态部署&#xff0c;有状态部署与无状态部署区别参考文档&#xff1a;K8S有无状态部署-CSDN博客 1.1、基本信息 注意&#xff1a; 应用名称命名规则&#xff1a;&#xff08;命名规则最好统一&#xff…

【linux】ubuntu ib网卡驱动如何适配

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

STL —— list

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C专栏 本篇文章主要讲解 list模拟实现的相关内容 &#xff11;. list简介 列表&#xff08;list&#xff09;是C标准模板库&#xff08;STL&#xff09;中的一个容器&#xff0c;它是一个双向链表数据结构&#xff0c…

Linux从入门到精通 --- 2.基本命令入门

文章目录 第二章&#xff1a;2.1 Linux的目录结构2.1.1 路径描述方式 2.2 Linux命令入门2.2.1 Linux命令基础格式2.2.2 ls命令2.2.3 ls命令的参数和选项2.2.4 ls命令选项的组合使用 2.3 目录切换相关命令2.3.1 cd切换工作目录2.3.2 pwd查看当前工作目录2.4 相对路径、绝对路径和…

记录Linux系统中vim同时开多个窗口编辑文件

在使用Linux进行文本编辑的时候&#xff0c;通常使用vim编辑器编辑文件&#xff0c;当然啦&#xff0c;vim也可以创建文件&#xff0c;如果只是一个一个创建&#xff0c;只需要vim创建即可&#xff0c;但是如何一次性打开多个窗口编辑呢&#xff1f; 目录 1、目标&#xff1a;…

PHP数据类型

华子目录 数据类型PHP的八种数据类型基本数据类型&#xff0c;4类复合数据类型&#xff0c;2类特殊数据类型&#xff0c;2类 类型转换在PHP中有两种类型转换方式其他类型转bool类型其他类型转数值类型实例 类型判断获取和设定变量类型获取gettype(变量名)设置settype(变量名,类…