Linux 操作系统
1. Linux操作系统认知
1.1 操作系统
1) 定义
操作系统(Operation System简称OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。
2) 操作系统功能
- 管理好硬件设备(CPU、内存、磁盘、外设),为用户提供调用方法
- 是其它软件运行的基础,管理各种其它的软件和程序的运行
- 对系统中文件进行管理
- 充当人机交互界面
3) 操作系统分类
- 桌面操作系统:Windows ,MacOS为主,图形界面良好用户群体大
- 服务器操作系统:Linux,Unix为主,安全,稳定,占有量大。windows占有率比较低
- 移动操作系统:针对手机、平板电脑,主要包Android、IOS、鸿蒙
- 嵌入式操作系统:Linux为主,主要用于小型智能设备,如机器人、智能家电、无人机等
1.2 Linux系统介绍
1)Linux 诞生
1991 年 林纳斯(Linus) 就读于赫尔辛基大学期间,对 Unix 产生浓厚兴趣,林纳斯经常要用他的终端仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时他年仅 21 岁。Linus利用C做工具,编写了 Linux 内核,后来经过全世界的网友的帮助,最终成为优秀的操作系统。
2)Linux系统特点
- 开源、免费
- 支持多种硬件平台
- 多用户、多任务系统
- 具有非常强大的网络功能
3)Linux 应用领域
-
Linux 服务器 : 目前是服务器系统中最广泛一种。
高性能服务器是Linux主要应用领域 -
桌面应用:新版本的Linux系统特别在桌面应用方面进行了改进,达到相当的水平。
-
移动操作系统:著名的移动操作系统Android就是使用Linux内核。
-
嵌入式系统:由于开放源代码,Linux系统在嵌入式设备领域有很广阔的市场,广泛应用于智能家电、无人机、机器人、微型智能设备。
4)Linux系统构成
-
内核: Linux操作系统的核心代码,是Linux系统的心脏,提供了系统的核心功能,用来与硬件交互。Linux内核官网 : http://www.kernel.org。
-
文件系统:通常指称管理磁盘数据的系统,可将数据以目录或文件的型式存储。每个文件系统都有自己的特殊格式与功能
-
命令解释器:它使得用户能够与操作系统进行交互,负责接收用户命令,然后调用操作系统功能。
-
应用软件:包含桌面系统和基础的软件操作工具等。
5)Linux发行版本
严格的来讲,Linux 只是一个系统内核,即计算机软件与硬件通讯之间的平台。一些组织或厂家将 Linux 内核与GNU软件(系统软件和工具)整合起来,并提供一些安装界面和系统设定与管理工具,这样就构成了一个发型套件,目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
作为Linux发行版中的后起之秀,Ubuntu Linux在短短几年时间里便迅速成长为从Linux初学者到资深专家都十分青睐的发行版。由于Ubuntu Linux是开放源代码的自由软件,用户可以登录Ubuntu Linux的官方网址免费下载该软件的安装包。
Ubuntu官网:https://ubuntu.com/
1.3 文件系统
1)定义
文件系统是计算机操作系统的重要的组成部分,用于组织和管理计算机存储设备上的大量文件。
2)文件系统结构
- windows文件系统,分不同盘符
- Linux的文件组织中没有盘符。将根(/)作为整个文件系统的唯一起点,其它所有目录都是该目录的子目录。
3)目录与文件
- 文件:文件中存储的是数据,包括文本文件,压缩包,音频、视频等
- 目录:即文件夹,目录下存储的是其它子目录或文件
- 示例:列出用户主目录下的所有文件及子目录
cd ~
ls -l
4)系统目录功能
- /bin目录:该目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary----二进制的简称),多是系统中重要的系统文件
- /sbin目录:该目录类似/bin,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用
- /etc目录:该目录存放着各种系统配置文件,其中包括了用户信息文件/etc/ passwd,系统初始化文件/etc/rc等。linux正是因为这些文件才得以正常地运行
- /lib目录:该目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间
- /dev目录:该目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其它文件一样
- /usr目录:该目录主要存放用户安装的程序,该目录通常很大
- /var目录:该目录包含系统一般运行时要改变的数据(例如日志),通常这些数据所在的目录的大小是要经常变化或扩充的
- /home目录:普通用户的默认目录,在该目录下,每个用户拥有一个以用户名命名的文件夹
5)绝对路径和相对路径
-
绝对路径:指文件在文件系统中以根目录为起始点的准确位置描述。例如“/usr/bin/gnect”就是绝对路径。最要的标志就是以 ‘/’ 作为路径描述的开头
-
相对路径:指相对于用户当前位置为起始点,对一个文件位置的逐层描述。例如,用户处在usr目录中时,只需要“games/gnect”就可确定这个文件。在相对路径描述时 . 表示当前目录, … 表示上一级目录
2. Linux常用命令
Linux支持丰富的命令操作,用以完成大部分重要功能,Linux下命令行操作比图形界面操作更为方便。作为软件工程师,我们将来所写的代码都需要在服务器上运行,掌握基本的Linux 操作命令有助于我们将来对项目的部署和控制工作。
从这一刻起,忘掉图形界面,忘掉鼠标!
2.1 终端与命令行
- 终端 : 使用命令对Linux系统进行操作的窗口
- 命令行:书写Linux命令的提示行
- 打开关闭终端快捷键
- 打开 :通过ctrl+alt +t,shift+ctrl+n 都可以快速打开一个终端
- 关闭 :Ctrl+d或者在命令行输入exit
- 终端字体大小控制
- 放大:ctrl 和 + 键 (不要忘了+号要使用shift)
- 缩小:ctrl 和 - 键
- 终端使用技巧
- 按向上箭头,调出上一次执行命令
- 键入少量字符,按tab键,自动对命令进行补齐
- 输入history,查看以往执行过的所有命令
- 清空屏幕 : ctrl + l 或clear命令
2.2 Linux常用命令
2.2.1 命令行概述
- 命令格式
command [-options] [parameter]
说明:
command:命令名称,一般为英文单词或单词的缩写
[-options]:命令选项,辅助命令进行功能细化,也可以省略
parameter:传给命令的参数,可以是0个或多个,控制命令执行细节
- 帮助命令:man command
man ls
注:查阅 command
命令的使用手册,按q退出
2.2.2 文件及目录操作
文件操作是Linux最基本的操作,在日常使用中使用频率最高,需要熟练掌握。文件操作主要有目录操作、单文件操作、文件压缩解压、文件权限管理等。
1)目录操作
-
查看当前目录:pwd(print work directory简写)
pwd
-
显示目录内容:ls
作用:ls命令用来查看目录内有哪些文件及子目录
参数:ls -l 以长格式显示(long)
ls -a 显示所有(包含隐藏)all
ls -t 按照文件最后修改时间排序
示例:查看当前目录内容
ls
执行结果:
示例:查看当前目录详细内容
ls -l
执行结果:
说明:执行结果从左至右每列的含义分别是文件权限、连接数或子目录数(含义暂先忽略)、文件拥有者、文件拥有者所在组、文件大小、最后修改时间、文件名称
-
切换目录:cd
作用:用于从一个目录切换到另一个目录
参数:cd 目录名称
示例:切换到主目录
cd /home/tarena
特别说明:Linux中,有几个特殊目录,如下表所示
符号 说明 含义 . 英文点号 当前目录 … 两个英文点号 上级目录 ~ 英文波浪线 用户主目录 - 英文横线 上一次所在目录 -
创建目录:mkdir
作用:mkdir(make director的简写)用来创建一个空目录
参数: -p 如果父目录不存在,同时创建父目录(级联创建)
示例:在当前目录下创建study目录
mkdir study ls
说明:第1行命令,执行创建study目录;第2行命令,查看当前目录内容(如果创建成功,可以看到study目录)。执行结果:
示例:创建目录,如果被创建目录的上级目录不存在,则自动创建
mkdir -p /tmp/demo/test
说明:该示例中,在mkdir后面加了-p选项,会自动创建test的上级目录demo
执行结果:
2)文件操作
-
创建空文件:touch
格式:touch 文件1 文件2 文件3
示例:创建三个空文件
cd ~/study/ touch test1.txt test2.txt
执行结果:
-
向文件写入内容: echo
格式:echo 要写入的内容 > 文件名
示例:向test.txt文件中写如字符串’abc’
echo 'abc' > test1.txt
说明:将abc字符串写入test1.txt,会覆盖原来的内容;如果不想覆盖原来的内容,使用>>
-
查看文件内容:cat
格式:cat 文件名
示例:查看test.txt文件内容
cat test1.txt
执行结果:
-
查看文件前几行:head
格式:head -n 行数 文件名
说明: -n 后跟行数,表示显示前面多少行
示例:查看test.txt前3行
head -n 3 test1.txt
执行结果:
-
查看文件最后几行:tail
格式:tail -n 行数 文件名
说明: -n 后跟行数,表示显示后面多少行
示例:查看test1.txt最后2行
tail -n 2 test1.txt
执行结果:
-
文件查找:find
格式:find 查找路径 -name 文件名|目录名
示例:在当前目录下查找所有以.txt结尾的文件
find . -name "*.txt"
说明:查找当前目录下以txt结尾的所有文件
执行结果:
-
文件复制:cp
格式:cp 原文件 新文件
示例:将text1.txt复制为new.txt
cp test1.txt new.txt
执行结果:
-
文件移动(重命名):mv
格式:mv 原文件名 新文件名
示例:将new.txt重命名为new2.txt
mv new.txt new2.txt
执行结果:
-
文件删除:rm
格式:rm [选项] 文件名|目录名
选项:-f force 的意思,强制删除(慎用!)
-i 互动模式,在删除前询问
-r 递归删除,删除包含的子目录(慎用!)
示例:删除new2.txt
rm -i new2.txt
执行结果:
3)通配符
对一类文件名称的书写进行简化,例如file1.txt、file2.txt、file3.txt……,用户不必一一输入文件名,可以使用通配符完成。
通配符 | 含义 | 实例 |
---|---|---|
星号(*) | 匹配任意长度的字符串 | 用file_*.txt,匹配file_wang.txt、file_Lee.txt、file_Liu.txt |
问号(?) | 匹配一个长度的字符 | 用flie_?.txt,匹配file_1.txt、file_2.txt、file_3.txt |
方括号([…]) | 匹配其中指定的一个字符 | 用file_[otr].txt,匹配file_o.txt、file_r.txt和file_t.txt |
方括号([ - ]) | 匹配指定的一个字符范围 | 用file_[a-z].txt,匹配file_a.txt、file_b.txt,直到file_z.txt |
4)管道
管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。
ls | grep 'hello'
ls | wc -w
2.2.3 压缩解压
Linux中常使用tar、zip命令进行打包、压缩/解压操作。
1)tar压缩工具
-
压缩打包
格式:tar -zcvf 压缩包名字.tar.gz 文件1 文件2 目录3
参数:
z 使用gzip方式压缩
c 创建包 create
v 显示操作文件的细节
f 要操作的文件名 file
示例:将所有txt文件打包压缩
tar -zcvf tmp.tar.gz test1.txt test2.txt
说明:上述命令将test1.txt, test2.txt打包成一个文件,并进行压缩,打包压缩后的文件名为tmp.tar.gz(gz后缀名表示进行了压缩,tar后缀名表示进行了打包,加后缀名是为了清晰、易于理解,而不是必须的)
执行结果:
-
解压
格式:tar -zxvf 压缩包名字.tar.gz
参数:x 解压缩
其它参数和打包压缩含义一致
示例:解压tar.gz格式压缩包
rm test1.txt test2.txt ls tar -zxvf tmp.tar.gz
说明:第1行代码,删除test1.txt和test2.txt两个文件;第2行代码,查看当前目录内容,确定文件已删除;第3行代码,对tmp.tar.gz进行解压缩
执行结果:
2)zip压缩工具
zip是另一种压缩格式的压缩和解压工具,使用zip命令压缩,unzip命令解压
-
压缩
格式:zip [命令选项] <压缩文件名称> <要压缩的文件/目录列表>
参数:-r 递归地将一个目录及其所有子目录和文件压缩到ZIP文件中
-q 在压缩文件时启用静默模式,即不显示压缩过程的详细信息
-d 从现有的ZIP文件中删除指定的文件或目录
-u 用于更新现有的ZIP文件,将新的文件或修改后的文件添加到ZIP存档中
示例:利用zip工具压缩打包
zip -r demo.zip *.txt *.py
-
解压
格式:unzip [命令选项] <压缩文件名称>
参数:-n 解压时不覆盖原有文件夹中已存在的文件
-o 解压时覆盖原有文件夹中已存在的文件
-q 不显示指令执行过程
-d 指定要解压的目录路径
-l 查看压缩包中有哪些文件,不进行解压
示例:解压zip包
unzip demo.zip
2.2.4 权限管理
Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
权限类型:权限类型一般包括读,写,执行,对应字母为 r、w、x
权限粒度:文件拥有者(创建文件的用户) 、组(创建文件用户所在的组) 、其它组
所以,一个文件的权限表示为9种状态,分别指拥有者、组、其他用户对该文件是否具有读、写、执行的权限
在rwx三个权限中,从右至左依次用值1,2,4来表示,所以拥有某个文件的读、写、执行权限也可以用三个权限值累加的方式来表示,如下表所示:
权限 | 含义 | 对应值 |
---|---|---|
rwx | 可读、可写、可执行 | 4+2+1=7 |
rw- | 可读、可写、不可执行 | 4+2=6 |
r-x | 可读、不可写、可执行 | 4+0+1=5 |
r– | 可读、不可写、不可执行 | 4+0+0=4 |
-wx | 不可读、可写、可执行 | 0+2+1=3 |
-w- | 不可读、可写、不可执行 | 0+2+0=2 |
–x | 不可读、不可写、可执行 | 0+0+1=1 |
— | 不可读、不可写、不可执行 | 0+0+0=0 |
-
修改文件权限:chmod
格式: chmod {权限值} {文件/目录名}
示例:给文件test1.txt添加可执行权限
chmod +x test1.txt
执行结果:
示例:设置test2.txt文件,拥有者有读、写、执行权限,其他用户没有访问权限
chmod 700 test1.txt
执行结果:
示例:创建test3.txt文件,设置拥有者有读、写、执行权限,其他用户有只读权限
touch test3.txt chmod 400 test3.txt
执行结果:
-
示例:取消test3.txt的可执行权限
chmod -x test3.txt
执行结果:
2.2.5 网络操作
-
查看本机网络地址:ifconfig
作用:查看本机IP地址,该地址可以理解为本机在网络上的门牌号,该编号是唯一的
示例:
ifconfig
执行结果:
说明:上图中,红色框中的部分就是本机的IP地址,IP地址可能不只一个,其中127.0.0.1特指本机地址
-
测试网络连通性:ping
格式:ping [对方主机地址]
功能:ping命令主通过网络主动向对方连续发送数据包,对方收到后,应答相同数量的数据包,本机通过对方是否应答来判断彼此是否连通
示例:
ping www.baidu.com
执行结果:
说明:通过ping命令,向www.baidu.com主机持续发送数据,并且收到了对方应答的数据包(from 220.181.38.149),其中www.baidu.com称为域名,方便用户记忆;220.181.38.149是IP地址,用于计算机之间通信,在发送数据之前,实际上对域名和IP进行了转换,通过IP地址将数据发给了对方。
2.2.6 系统管理
1)用户相关命令
-
查看当前名称:whoami
示例:
whoami
执行结果为当前登录用户名
-
添加用户:adduser
格式:adduser [新用户名称]
示例:
adduser tom
说明:添加名称为tom的用户,如果没有错误信息则添加成功。用户添加成功后,用户名会被保存到/etc/passwd文件中,可以通过如下命令进行验证:
cat /etc/passwd | grep tom
执行结果如下(说明已经在passwd文件中找到了tom用户):
tom:x:1000:1000::/home/tom:/bin/bash
-
修改用户密码:passwd
格式:passwd [待修改密码的用户名]
示例:
passwd tom
执行结果:
说明:修改过程中,需要输入两次密码,并且两次密码要相同,密码在输入过程中是不可见的。执行成功后,会打印出一行提示信息。
验证:修改密码完成后,可以使用如下命令切换到tom用户进行验证:
su - tom
提示输入密码,输入刚刚passwd命令输入的密码,如果输入正确,则切换到tom用户下。
2)权限相关命令
-
使用root用户执行命令:sudo
格式:sudo [待执行的命令]
说明:Linux系统权限控制较为严格,有时当前用户没有执行某个操作的权限,这是需要使用更高的管理员用户权限来执行,这就需要在命令前加上sudo
示例:
sudo touch /etc/tmp.txt
3)磁盘相关命令
-
查看磁盘使用率:df
格式:df [选项]
示例:查看磁盘使用率
df
执行结果:
说明:第三列、第四列、第五列、第六列分别指已用大小、可用大小、已使用百分比、磁盘挂节点,第三列、第四列磁盘大小的单位是字节(Byte),通常这个值很大,不容易阅读,我们可以在df后加一个"-h"参数让结果更加容易阅读
示例:用更容易阅读的方式查看磁盘使用率
df -h
执行结果(磁盘大小以M为单位):
4)开关机命令
- 关机:shutdown
- 重启:reboot
2.2.7 显示展示命令
命令 | 作用 |
---|---|
echo | 向终端打印内容 |
date | 显示当前时间 |
df | 显示磁盘剩余空间 |
whoami | 显示当前用户 |
history [num] | 显示历史命令记录 |
-
部分命令细节说明
-
echo : -n 表示打印完成不换行
-
df: -h 选项以Mb为单位显示,-T显示文件系统类型 ext4的为磁盘
-
history : history 默认显示500条历史记录,后面可以加具体数字表示显示多少条
-
-
输出重定向
重定向符 含义 实例 > file 将file文件重定向为输出源,新建模式 echo “hello world” > out.txt,将执行结果,写到out.txt文件中,若有同名文件将被删除 >> file 将file文件重定向为输出源,追加模式 ls /usr >> output.txt,将ls /usr的执行结果,追加到Lsoutput.txt文件已有内容后
2.3 vim文本编辑器
所有的Unix Like系统都会内建vi文本编辑器,但是目前我们使用比较多的是 vim 编辑器。vim可以看做vi的升级版,具有漂亮的语法高亮,视觉效果更好。
vim编辑器所有操作均使用键盘完成,有三种模式:浏览模式、编辑模式和指令模式。打开文件时,默认进入浏览模式;按插入键,进入编辑模式;按取消键退出编辑模式,输入冒号(:)进入指令模式;在指令模式下连续点击两下“取消”键进入编辑模式。
玩Linux的人有一种说法,通过你使用的编辑器可以判断是不是高手。网上也流传着这样一张鄙视链的图,供大家娱乐。
1)打开和退出
-
打开文件
格式:vim [文件名称]
示例:
vim test1.txt
说明:执行上述命令后,会打开test1.txt(如果不存在,则创建),进入vim编辑器界面。如果要退出,执行后面的退出指令。
-
退出
指令:输入冒号(:),进入编辑器指令模式,输入q并按回车键
示例:
说明:退出有几种写法,见下表所示:
指令 说明 q 直接退出,退出前必须保存 q! 强制退出,不管文件是否保存 wq 保存并退出 x 保存并退出,等同于wq
2)光标移动
在vim中,可以使用上下左右箭头对光标进行移动,但这样会移动右手,影响操作速度,所以vim还提供了其它几个按键对光标进行更方便的操作。
按键 | 移动方向 |
---|---|
j | 向下移动 |
k | 向上移动 |
h | 向左移动 |
l | 向右移动 |
shift + ^ | 移动到行首 |
shift + $ | 移动到行尾 |
GG | 移动到文件首部 |
shift + G | 移动到文件尾部 |
光标使用不需要记忆,使用熟练后操作非常自然、方便。
3)输入内容
要输入内容,首先需进入输入模式,再执行输入。vim提供了在不同位置输入的快捷操作:
按键 | 说明 | 插入方式 |
---|---|---|
i | 小写i | 光标位置插入 |
a | 小写a | 光标之后插入 |
o | 小写o | 光标下方插入新行 |
I | 大写i或shift+i | 行首插入 |
A | 大写a或shift+a | 行尾插入 |
4)保存内容
按键 | 说明 | 操作 |
---|---|---|
w | 小写w键 | 保存文件 |
5)删除内容
按键 | 说明 | 删除方式 |
---|---|---|
x | 小写x | 删除一个字符 |
dd | 连续按两下小写d | 删除一行 |
dw | 连续按d和w键 | 删除一个单词 |
6)复制粘贴
按键 | 说明 | 操作方式 |
---|---|---|
yy | 连续按两下小写y | 复制整行 |
y | 小写y | 复制选择的部分 |
p | 小写p | 粘贴 |
7)显示/隐藏行号
在命令模式下,可以显示或隐藏行号,命令如下表所示:
命令 | 说明 | 操作 |
---|---|---|
set nu | set number 简写 | 显示行号 |
set nonu | set no number简写 | 不显示行号 |
3. Linux服务器环境
3.1 软件安装
1)apt软件包管理工具
Linux下安装的软件包是 deb格式软件包。由于当时Linux系统中软件包存在复杂的依赖关系。因此,通常使用网络安装。在ubuntu中, apt是一个基于在线软件包管理、安装、删除、查询的工具。
作用 | 命令 |
---|---|
更新软件源 | apt update |
安装软件 | apt install |
卸载软件 | apt remove --purge |
删除缓存的软件安装包 | apt clean |
安装本地软件包 | dpkg -i |
卸载软件 | dpkg -P |
查询指定的包 | apt-cache search packagename |
查看该包依赖哪些包 | apt-cache depends packagename |
- 注意事项 : 安装软件包通常需要使用管理员权限。
- 软件包下载位置:/var/cache/apt/archives
sudo apt install sl # 安装
sudo apt remove --purge sl # 彻底卸载
示例:利用apt命令安装图形编辑器gedit
apt-cache search gedit # 搜索gedit包
sudo apt install gedit
2)离线包安装
deb包是Debian和Ubuntu等Linux发行版中常用的软件安装包格式。这种格式的文件扩展名为".deb"。Debian包是基于tar归档的,包含软件的实际安装数据(如程序数据、配置文件等),以及安装信息和控制脚本。这些控制脚本包括软件包的名称、版本、大小、维护者的信息,以及描述和依赖关系等。deb包通常可以通过双击安装,也可以使用命令行工具如dpkg安装。
# dpkg命令:deb软件包管理工具
# 安装de包
sudo dpkg -i package.deb
# 查看de包中的内容
dpkg -c package.deb
# 移除安装的deb包
dpkg -r package
示例:通过deb包方式安装xmind
第一步:下载xmind工具安装包
wget https://dl2.xmind.cn/Xmind-for-Linux-amd64bit-24.01.14361-202403131929.deb
第二步:安装
sudo dpkg -i Xmind-for-Linux-amd64bit-24.01.14361-202403131929.deb
第三步:检查安装结果
xmind
3)修改apt源
可以修改/etc/apt/sources.list文件,设置执行apt命令时使用哪个apt版本服务器(建议使用国内源)。修改源步骤:
第一步:备份源文件
cd /etc/apt
cp sources.list sources.list.bak
第二步:打开sources.list文件,替换为新的内容(例如目前使用的是清华源,要修改为阿里源)
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
第三步:保存,退出
3.2 ssh服务
ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。在数据传输方面有很多应用。之前说到,实际工作中经常需要远程访问服务器,ssh就是通用的远程访问服务器的方法。
1) 安装启动
-
安装ssh服务 : sudo apt install openssh-server
-
查看ssh服务状态 : ps -e|grep ssh
-
启动和关闭 :
sudo service ssh start/restart/stop
- 常用命令
命令 | 作用 |
---|---|
ssh 用户名@ip | 登录远程主机 |
scp 用户名@ip:文件名绝对路径 目标位置 | 远程复制文件 |
示例:ssh登录
ssh [email protected] # 登录
exit # 退出
示例:利用scp实现安全拷贝
# 注意:`:` 后面的路径写绝对路径
scp demo.py [email protected]:/home/tarena
# 把远程主目录下demo.py文件 复制到本地当前目录下
scp [email protected]:/home/tarena/demo.py .
# 加上 -r 选项可以传送文件夹
scp -r demo [email protected]:/home/tarena/
-
ssh秘钥
-
什么时候使用: 如果使用的客户端个人计算机是自己独有的计算机,经常通过ssh访问服务器,此时不想频繁输入密码,则可以使用秘钥处理。
-
使用方法
1. 在个人计算机中生产秘钥对 : ssh-keygen 执行以后会在主目录下生成一个.ssh文件夹,其中包含私钥文件id_rsa和公钥文件id_rsa.pub。 2. 在服务器主机上创建文件(云服务器当中会自动为我们创建) touch ~/.ssh/authorized_keys,将信任的计算机的id_rsa.pub文件内容追加到服务器authorized_keys文件中即可。
-