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.rhkb.cn/news/299259.html

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

相关文章

Java栈和队列的实现

目录 一.栈(Stack) 1.1栈的概念 1.2栈的实现及模拟 二.队列(Queue) 2.1队列的概念 2.2队列的实现及模拟 2.3循环队列 2.4双端队列&#xff08;Deque&#xff09; 一.栈(Stack) 1.1栈的概念 栈:一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作…

element-ui result 组件源码分享

今日简单分享 result 组件的源码实现&#xff0c;主要从以下三个方面&#xff1a; 1、result 组件页面结构 2、result 组件属性 3、result 组件 slot 一、result 组件页面结构 二、result 组件属性 2.1 title 属性&#xff0c;标题&#xff0c;类型 string&#xff0c;无默…

11-1(2)-CSS 背景+CSS 精灵图

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 一、CSS 背景1 背景颜色2 背景色半透明3 背景图片4 背景平铺5 背景图片位置6 …

linux操作系统安装及命令初识,上岸蚂蚁金服

310 包&#xff09; desktop 1800个包左右 内容必须大于 768M 系统设置 分区设置 挂载点 /boot / swap 交换分区–占用磁盘容量 网络配置 网卡配置 设置为ON 主机名配置 Begin installation 设置 root 用户密码 命令初识 命令 选项 参数&#xff1a; 命令选项参数…

JavaEE 初阶篇-生产者与消费者模型(线程通信)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 生产者与消费者模型概述 2.0 在生产者与消费者模型中涉及的关键概念 2.1 缓冲区 2.2 生产者 2.3 消费者 2.4 同步机制 2.5 线程间通信 3.0 实现生产者与消费者模…

iOS开发进阶(十三):脚手架创建iOS项目

文章目录 一、前言二、xcode-select 命令三、拓展阅读 一、前言 项目初期&#xff0c;需要搭建项目基本框架&#xff0c;为此离不开辅助工具&#xff0c;即脚手架。当然&#xff0c;IDE也可以实现新建空白项目&#xff0c;但是其新建后的项目结构可能不符合预期设计&#xff0…

AWS-EKS 给其他IAM赋予集群管理权限

AWS EKS 设计了权限管理系统&#xff0c;A用户创建的集群 B用户是看不到并且不能管理和使用kubectl的&#xff0c;所以我们需要共同管理集群时就需要操场共享集群访问给其他IAM用户。 两种方式添加集群控制权限&#xff08;前提&#xff1a;使用有管理权限的用户操作&#xff…

顺序表相关习题

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

Java笔试题总结

HashSet子类依靠()方法区分重复元素。 A toString(),equals() B clone(),equals() C hashCode(),equals() D getClass(),clone() 答案:C 解析: 先调用对象的hashcode方法将对象映射为数组下标,再通过equals来判断元素内容是否相同 以下程序执行的结果是&#xff1a; class X{…

【项目实战经验】DataKit迁移MySQL到openGauss(上)

前言 本文将分享DataKit迁移MySQL到openGauss的项目实战&#xff0c;供广大openGauss爱好者参考。 1. 下载操作系统 https://www.openeuler.org/zh/download https://support.huawei.com/enterprise/zh/doc/EDOC1100332931/1a643956 https://support.huawei.com/enterprise…

CSS基础选择器 小案例复习(画三个小盒子)

&#xff08;大家好&#xff0c;前面我们学习了基础的选择器&#xff0c;俗话说&#xff1a;温故而知新。所以今天我们将通过小案例来复习前面学过的小知识点。另&#xff0c;十分感谢大家对我文章的支持❤️&#xff09; 通过这个案例复习两个地方&#xff1a; 类选择器的使用…

基于ZooKeeper的Kafka分布式集群搭建与集群启动停止Shell脚本

下载Kafka压缩包 下方是Kafka官网下载地址&#xff0c;本文使用Kafka 3.0.0在虚拟机环境中搭建分布式集群。 Apache Kafka Downloads link 虽然在Kafka 2.8.0之后可以使用KRaft模式搭建高可用的集群以提高数据处理效率&#xff0c;但是目前还有许多企业依然使用ZooKeeper搭建K…

uni-app如何实现高性能

这篇文章主要讲解uni-app如何实现高性能的问题&#xff1f; 什么是uni-app&#xff1f; 简单说一下什么是uni-app&#xff0c;uni-app是继承自vue.js&#xff0c;对vue做了轻度定制&#xff0c;并且实现了完整的组件化开发&#xff0c;并且支持多端发布的一种架构&#xff0c…

申请SSL证书

有很多方法可以确保您的网站安全。添加SSL证书可针对恶意攻击提供额外且关键的保护层。 即使网站不接受交易&#xff0c;您仍然需要保护用户的登录详细信息、地址和其他个人信息。 没有SSL证书的网站使用HTTP&#xff08;一种基于文本的协议&#xff09;&#xff0c;这意味着…

红队攻防之PowerShell基础免杀(二)

Get busy living or get busy dying 什么是图片免杀&#xff1f; 答&#xff1a;一般情况下&#xff0c;某些 AV 对图像未执行检测处理。这种情况下&#xff0c;它们可以仅使用有效负载数据来生成新图像&#xff0c;或将有效负载嵌入到现有图像的最低有效字节中&#xff0c;使…

泰坦尼克号幸存者数据分析

泰坦尼克号幸存者数据分析 1、泰坦尼克号数据集2、数据集加载与概览3、泰坦尼克号幸存者数据分析4、哪些人可能成为幸存者&#xff1f; 1、泰坦尼克号数据集 泰坦尼克号的沉没是世界上最严重的海难事故之一&#xff0c;造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮…

linux基础8:文件系统

linux基础8&#xff1a;文件系统 1.物理存储->逻辑存储&#xff1a;1.从磁盘到分区&#xff1a;1.基本物理结构2.物理存储结构3.逻辑结构4.操作系统的Io需求&#xff1a;5.分区操作and分组操作&#xff1a; 2.文件系统结构&#xff1a;1.基本结构&#xff1a;2.分组区块&…

【cpp】快速排序优化

标题&#xff1a;【cpp】快速排序 水墨不写bug 正文开始&#xff1a; 快速排序的局限性&#xff1a; 虽然快速排序是一种高效的排序算法&#xff0c;但也存在一些局限性&#xff1a; 最坏情况下的时间复杂度&#xff1a;如果选择的基准元素不合适&#xff0c;或者数组中存在大…

插入代码---四

文章目录 在空白节插入代码构造恶意代码计算函数相对地址修改入口地址返回原地址 扩大节新增节 对与一个程序我们需要在里面添加自己的功能&#xff0c;让程序增加一些我们的函数&#xff0c;那么我们就需要了解PE文件结构&#xff0c;然后对其进行修改&#xff0c;这里我们将基…

位运算-191. 位1的个数- 136. 只出现一次的数字

位1的个数 已解答 简单 相关标签 相关企业 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中 设置位 的个数&#xff08;也被称为汉明重量&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 11 输…