文章目录
- [1 Linux介绍](#1 Linux介绍)
-
- [1.1 Linux的前世今生](#1.1 Linux的前世今生)
- [1.2 Linux的发⾏版本](#1.2 Linux的发⾏版本)
- [1.3 Linux操作系统的组成](#1.3 Linux操作系统的组成)
- [1.4 Linux的文件系统](#1.4 Linux的文件系统)
-
- [1.4.1 Linux操作系统中的文件类型](#1.4.1 Linux操作系统中的文件类型)
- [1.4.2 Linux操作系统的组织结构](#1.4.2 Linux操作系统的组织结构)
- [2 Linux安装](#2 Linux安装)
-
- [2.1 虚拟机](#2.1 虚拟机)
-
- [2.1.1 软硬件要求](#2.1.1 软硬件要求)
- [2.1.2 安装步骤](#2.1.2 安装步骤)
- [2.1.3 设置静态IP](#2.1.3 设置静态IP)
- [3 Linux Shell命令](#3 Linux Shell命令)
-
- [3.1 绝对路径与相对路径](#3.1 绝对路径与相对路径)
- [3.2 实用高频命令](#3.2 实用高频命令)
- [3.3 Linux⽂件与⽬录管理](#3.3 Linux⽂件与⽬录管理)
-
- [3.3.1 目录文件](#3.3.1 目录文件)
- [3.3.2 普通文件](#3.3.2 普通文件)
- [3.3.3 文本编辑](#3.3.3 文本编辑)
- [3.4 用户管理](#3.4 用户管理)
-
- [3.4.1 添加用户](#3.4.1 添加用户)
- [3.4.2 删除用户](#3.4.2 删除用户)
- [3.5 用户组管理](#3.5 用户组管理)
- [3.6 文件权限管理](#3.6 文件权限管理)
-
- [3.6.1 权限及命令](#3.6.1 权限及命令)
- [3.7 进程管理](#3.7 进程管理)
-
- [3.7.1 查看进程](#3.7.1 查看进程)
- [3.7.2 终止进程](#3.7.2 终止进程)
- [3.7.3 服务管理](#3.7.3 服务管理)
- [3.8 网络管理](#3.8 网络管理)
-
- [3.8.1 查看网络设置](#3.8.1 查看网络设置)
- [3.8.2 查看网络端口占用](#3.8.2 查看网络端口占用)
- [3.8.3 测试网络是否正常](#3.8.3 测试网络是否正常)
- [4 Linux 远程软件的安装](#4 Linux 远程软件的安装)
-
- [4.1 远程连接软件](#4.1 远程连接软件)
- [4.2 远程文件传输](#4.2 远程文件传输)
- [5 附录](#5 附录)
-
- [5.1 Linux命令思维导图(横版)](#5.1 Linux命令思维导图(横版))
- [5.2 Linux命令思维导图(竖版)](#5.2 Linux命令思维导图(竖版))
1 Linux介绍
1.1 Linux的前世今生
- Linux操作系统,被称之为类Unix操作系统
- Linux 内核最初只是由芬兰⼈林纳斯·托瓦兹(Linus Torvalds)在赫尔⾟基⼤学上学时出于个⼈爱好⽽编写的
- Linux 是⼀套免费使⽤和⾃由传播的类 Unix 操作系统,是一个支持多⽤户、多任务、⽀持多线程和多 CPU 的操作系统
- Linux 继承了 Unix 以⽹络为核⼼的设计思想
1.2 Linux的发⾏版本
⽬前市⾯上较知名的发⾏版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
1.3 Linux操作系统的组成
UNIX或者Linux系统⼤致可以分为以下⼏个部分
-
硬件交互的操作系统内核
-
中间层是shell层
-
最外层是应⽤层
内核层: 内核层是 UNIX/Linux 系统的核⼼和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源 (硬件资源和软件资源),有效地组织进程的运⾏,从⽽扩展硬件的功能,提⾼资源的利⽤效率,为⽤户提供⽅便、⾼效、安全、可靠的应⽤环境。
Shell层: Shell 层是与⽤户直接交互的界⾯。⽤户可以在提示符下输⼊命令⾏,由 Shell 解释执⾏并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利⽤系统提供的丰富命令可以快捷⽽简便地完成许多⼯作。
1.4 Linux的文件系统
1.4.1 Linux操作系统中的文件类型
在linux中,⼀切皆为⽂件。⽂件分为下⾯的⼀些类型
- 普通文件 -
- 目录文件 d
- 链接文件 l
- 设备文件 b/c
- 管道文件 p
1.4.2 Linux操作系统的组织结构
Linux⽂件系统⽬录结构和熟知的windows系统有较⼤区别,没有各种盘符的概念。根⽬录只有⼀个/,采⽤层级式的树状⽬录结构。
/
:根⽬录,所有的⽬录、⽂件、设备都在/之下,/就是Linux⽂件系统的组织者,也是最上级的领导者。/bin
:bin 就是⼆进制(binary)英⽂缩写。在⼀般的系统当中,都可以在这个⽬录下找到linux常⽤的命令。系统所需要的那些命令位于此⽬录。/boot
:Linux的内核及引导系统程序所需要的⽂件⽬录。/dev
:dev 是设备(device)的英⽂缩写。这个⽬录对所有的⽤户都⼗分重要。因为在这个⽬录中包含了所有linux系统中使⽤的外部设备。但是这⾥并不是放的外部设备的驱动程序。这⼀点和常⽤的windows,dos操作系统不⼀样。它实际上是⼀个访问这些外部设备的端⼝。可以⾮常⽅便地去访问这些外部设备,和访问⼀个⽂件、⼀个⽬录没有任何区别。/home
:如果建⽴⼀个⽤户,⽤户名是"xx",那么在/home⽬录下就有⼀个对应的/home/xx路径,⽤来存放⽤户的主⽬录。/lib
:lib是库(library)英⽂缩写。这个⽬录是⽤来存放系统动态连接共享库的。⼏乎所有的应⽤程序都会⽤到这个⽬录下的共享库。因此,千万不要轻易对这个⽬录进⾏什么操作,⼀旦发⽣问题,系统就不能⼯作了。/proc
:存储的是当前内核运⾏状态的⼀系列特殊⽂件,⽤户可以通过这些⽂件查看有关系统硬件及当前正在运⾏进程的信息,甚⾄可以通过更改其中某些⽂件来改变内核的运⾏状态。此外还有/srv /sys三个⽬录,内核相关⽬录,不要动。/root
:Linux超级权限⽤户root的家⽬录。/sbin
:这个⽬录是⽤来存放系统管理员的系统管理程序。⼤多是涉及系统管理的命令的存放,是超级权限⽤户root的可执⾏命令存放地,普通⽤户⽆权限执⾏这个⽬录下的命令,sbin中包含的都是root权限才能执⾏的。/usr
:这是linux系统中占⽤硬盘空间最⼤的⽬录。⽤户的很多应⽤程序和⽂件都存放在这个⽬录下。 Unix software resource usr。类似windows系统的program files/usr/local
:这⾥主要存放那些⼿动安装的软件,即不是通过或apt-get安装的软件。它和/usr⽬录具有相类似的⽬录结构。/usr/share
:系统共⽤的东⻄存放地,⽐如 /usr/share/fonts 是字体⽬录,/usr/share/doc和/usr/share/man帮助⽂件。/etc
:管理所有的配置⽂件的⽬录,⽐如安装mysql的配置⽂件my.conf/mnt
:可供系统管理员使⽤,⼿动挂载⼀些临时设备媒体设备的⽬录。/media
:是⾃动挂载的⽬录。当把U盘插⼊到系统中,会⾃动挂载到该⽬录下。⽐如插⼊⼀个U盘,会⾃动到/media⽬录中挂载。/opt
:额外安装软件存放的⽬录。⽐如mysql的安装包就可以放在该⽬录。var
: 存放应用程序在运行的过程中,可能会产生的一些临时文件的目录。比如有:日志文件,pid文件
2 Linux安装
2.1 虚拟机
虚拟机要求:
- 磁盘空间:50G
- 内存:4G
- 网络模式:NAT
2.1.1 软硬件要求
- 软件: 推荐使⽤VMware,服务器上有相关安装包,安装
- 镜像: 推荐使⽤ubuntu 18.04
- 因为是在宿主机上运⾏虚拟化软件安装ubuntu,所以对宿主机的配置有⼀定的要求。最起码I5CPU 双核,内存8G及以上。
2.1.2 安装步骤
- 安装VMWare
- 打开VMWare,创建新的虚拟机
- 可以设置虚拟机的配置,内存,CPU,网络以及操作系统镜像等,其中我们将网络连接模式,我们使用NAT模式(默认就是这种模式)
- 启动虚拟机(启动安装过程可能需要等待)
java
// 如果安装好虚拟机之后,右上角没有网络的图标,那么可以执行以下操作,重启一下网卡
// 1. 停止网卡
sudo systemctl stop NetworkManager
// 2. 删除网卡缓存数据
sudo rm -rf /var/lib/NetworkManager/NetworkManager.state
// 3. 重启网卡
sudo systemctl restart NetworkManager
2.1.3 设置静态IP
说明,NAT模式默认情况下是DHCP模式,是自动获取IP的,导致每次虚拟机开启之后获取的IP可能会变化,假如项目中后续连接的是虚拟机上面的MySQL,那么MySQL的HOST地址可能会经常改变,这就需要我们经常去改项目中的MySQL的连接地址,比较麻烦。所以需要改为静态IP,也就是每次开机之后IP不会变
- 首先查看虚拟机本地的IP地址,执行命令
shell
# 查看本地IP地址
ifconfig
# 如果提示没有找到这个命令,那么首先需要安装工具
sudo apt install net-tools
-
查看网关地址
编辑 ⇒ 虚拟网络编辑器 ⇒ VMnet8 ⇒ NAT设置
-
设置静态IP
设置 ⇒ Network ⇒ 点击齿轮
设置为下图所示
重启虚拟机,查看IP地址是否变化,如果未变,那么设置成功。
3 Linux Shell命令
3.1 绝对路径与相对路径
绝对路径: 路径的写法,由根⽬录 / 写起,例如: /usr/share/doc 这个⽬录。
相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd .../man或cd man
3.2 实用高频命令
- pwd :显示当前⽬录路径
- ls: list directory contents,显示当前⽂件夹下的⽬录或⽂件
shell
常⽤选项:
-a 显示所有的⽂件夹和⽂件,包括隐藏⽂件
-l 以详细的形式显示
- cd : 进⼊⼀个路径或者⽬录,绝对路径或者相对路径都可以
shell
⽤法: cd [路径],⽐如 cd ~(代表进⼊家⽬录)
cd . 进入当前⽬录
cd .. 进⼊上⼀级⽬录
cd /home 进⼊根目录下的home⽬录
3.3 Linux⽂件与⽬录管理
3.3.1 目录文件
-
mkdir: 创建新目录
shellmkdir 目录的相对路径或绝对路径
-
rmdir: 删除空目录
shellrmdir 目标目录的相对路径或绝对路径
-
rm: 移除⽂件或⽬录
shell-f :就是 force 的意思,忽略不存在的⽂件,不会出现警告信息; -i :互动模式,在删除前会询问使⽤者是否动作 -r :递归删除啊!最常⽤在⽬录的删除了!这是⾮常危险的选项!!!
-
cp: 复制文件或目录
shellcp [-adfilprsu] 来源档(source) ⽬标档(destination) -a:相当於 -pdr 的意思,⾄於 pdr 请参考下列说明;(常⽤) -d:若来源档为连结档的属性(link file),则复制连结档属性⽽⾮⽂件本身 -p:连同⽂件的属性⼀起复制过去,⽽⾮使⽤默认属性(备份常⽤) -r:递归持续复制,⽤於⽬录的复制⾏为;(常⽤)
-
mv: 移动⽂件与⽬录,或修改⽂件与⽬录的名称
shellmv [-fiu] source destination -f :force 强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖; -i :若⽬标⽂件 (destination) 已经存在时,就会询问是否覆盖! -u :若⽬标⽂件已经存在,且 source ⽐较新,才会覆盖 (update)
我们可以使⽤
man [命令]
来查看各个命令的使⽤⽂档,如 :man cp
。
3.3.2 普通文件
-
创建文件
shelltouch: 目标文件的相对路径或绝对路径
-
查看文件内容
-
cat命令: 以只读的⽅式打开⼀个⽂件。可以加 -n 表示带上⾏号(适合查看⽂件内容⽐较少的)
-
more命令:和cat功能类似,不过是以分⻚的形式⼀⻚⼀⻚显示数据
shellmore [选项] 目标文件 选项: +n: 从笫n⾏开始显示 -c: 从顶部清屏,然后显示 分页查看命令: 空格: 向后翻一页 b: 键就会往回(back)⼀⻚显示
-
less: 也⽤来分⻚显示数据,但是功能⽐more强⼤。并不会⼀次性将全部⽂件读取才显示,⽽是根据显示
的需要加载对应的数据。
shellless [选项] 目标文件 选项: -f :强迫打开特殊⽂件,例如外围设备代号、⽬录和⼆进制⽂件 -m :显示类似more命令的百分⽐ -N :显示每⾏的⾏号 分页查看命令: f 向后翻⼀⻚ d 向后翻半⻚ h 显示帮助界⾯ q 退出less 命令 u 向前滚动半⻚ y 向前滚动⼀⾏
-
head: 查看⼀个文件,取开头的⼀部分内容
shellhead -n 目标文件,表示查看目标文件的前n行内容,比如 head -5 a.txt
-
tail:查看⼀个⽂件的尾部内容
shelltail -n 目标文件,查看⽂件的最后n行内容,比如 tail -5 a.txt tail -f filename,尾部持续不断地输出内容。Control + c退出 例如:tail -5f filename
-
-
重定向和追加
-
echo: 输出内容到控制台。
shellecho $PATH 输出Linux的环境变量到控制台
-
>命令:输出重定向(会将原来的内容覆盖)
shellecho hello > a.txt 将字符串hello, 写入a.txt文件 ls -l > a.txt 将目录信息,写入a.txt文件 cat a.txt > b.txt(⽂件可以存在,可以不存在) 将a.txt文件内容写入b.txt文件中
-
>>命令:追加(不会覆盖原⽂件的内容,追加到底部)
echo hello >> a.txt 将字符串hello, 追加 写入到a.txt文件 ls -l >> a.txt 将目录信息,追加 写入a.txt文件 cat a.txt >> b.txt(⽂件可以存在,可以不存在) 将a.txt文件内容写入b.txt文件中
-
-
压缩与解压缩
tar是⽤来建⽴,还原备份⽂件的⼯具程序,它可以加⼊,解开备份⽂件内的⽂件。
shell
tar
-c:产⽣.tar⽂件
-v:显示详细信息
-z:打包同时压缩
-f:指定压缩后的⽂件名
-x:解压.tar⽂件
压缩: tar -zcvf combine.tar.gz 1.txt
解压: tar -zxvf combine.tar.gz -C java/
-C 表示解压到指定⽬录
如果需要解压和压缩为 .zip 格式的⽂件,那么需要安装zip和unzip命令
shell
# 安装
sudo apt install zip
# 压缩
zip [-r] cskaoyan.zip cskaoyan
# 解压
unzip cskaoyan.zip
3.3.3 文本编辑
Ubuntu默认没有安装vim,需要先安装vim⼯具。
shell
sudo apt install vim
vim有三种模式:命令模式(Command mode)、插⼊模式(Insert mode)、末⾏模式(Last Linemode)。
-
命令模式
shelll通过指令 vim filename 进⼊命令模式。除此之外,还有⼀些其他的参数,⽐如: -R: 把指定的⽂件以只读的⽅式放⼊vim编辑器中 +: 打开⽂件,并把光标置于最后⼀⾏的⾸部 +n: 打开⽂件,并把光标置于第n⾏的⾸部 命令模式快捷键: 删除: x: 删除光标所在位置的字符 dd: 少出光标所在⾏ ndd: 删除当前⾏后n⾏⽂本(包括此⾏) dG: 删除光标所在⾏⼀直到⽂件末尾的所有内容 D: 删除光标位置到⾏尾的所有内容 删除的内容此时并没有被真正删除,⽽是在剪切版中,按下 p 键,可以将删除的内容粘贴回来。 光标移动: w: 光标移动⾄下⼀个单词⾸ e: 光标移动⾄下⼀个单词尾 b: 光标移动⾄上⼀个单词⾸ gg: 光标移动到⽂件开头 G: 光标移动⾄⽂件末尾 nG: 光标移动到第n⾏,n为数字 0或^:光标移动⾄当前⾏的⾏⾸ $: 光标移动⾄当前⾏的⾏尾
-
插入模式
shell在命令模式下,通过按下i、I、a、A、o、O这6个字⺟进⼊插⼊模式,不同的字⺟代表不同的进⼊⽅式。 i: 在当前光标位置前⾯插⼊随后输⼊的⽂本,光标后的⽂本相应向右移动 I: 在光标所在⾏的⾏首插⼊随后输⼊的⽂本 o: 在光标所在⾏下⾯插⼊新的⼀⾏,然后光标停在空⾏⾸,等待输⼊⽂本 O: 在光标所在⾏上⾯插⼊新的⼀⾏,然后光标停在空⾏⾸,等待输⼊⽂本 a: 在当前光标位置后⾯插⼊随后输⼊的⽂本,光标后的⽂本相应向右移动 A: 在光标所在⾏的⾏尾插⼊随后输⼊的⽂本
按下ESC键离开插⼊模式,进⼊命令模式
-
末行模式
shell在命令模式下,按下: 键进⼊末⾏模式。 在该模式下,可以使⽤⼀系列的指令,完成保存、离开vim编辑器等功能。 :wq 保存并退出vim编辑器 :wq! 保存并强制退出vim编辑器 :q 不保存退出 :q! 不保存强制退出 :w 保存不退出 :w! 强制保存不退出 :w filename 另存到filename⽂件 ZZ 直接退出
三种模式之间的关系
3.4 用户管理
Linux系统是⼀个多⽤户、多任务的操作系统。多⽤户是指在linux操作系统中可以创建多个⽤户,⽽这些多⽤户⼜可以同时执⾏各⾃不同的任务,⽽互不影响
在Linux系统中,会存在着以下⼏个概念:
- 用户名: 每个用户在操作系统中,都具有唯一用户名
- ⽤户所属的组:多个用户可以属于同一个用户组。
- ⽤户的家⽬录:在/home目录下,与该用户的用户名一致的目录。
3.4.1 添加用户
- sudo useradd [选项] ⽤户名
shell
sudo useradd test
注意这种⽅式创建出来的没有家⽬录,我们创建的时候需要带参数
sudo useradd -m test: -m 表示在 /home⽬录下创建⼀个家⽬录
sudo useradd -m -s /bin/bash test: 表示指定shell版本是我们熟悉的bash
- 设置用户密码
shell
sudo passwd [⽤户名]
- 切换用户
shell
su [⽤户名]
3.4.2 删除用户
shell
sudo userdel [⽤户名]
-r: 不仅会删除该⽤户,还会删除该⽤户对应的家⽬录
3.5 用户组管理
-
添加组
sudo groupadd [groupname]
shell
创建⽤户的时候加⼊组: useradd -m -s /bin/bash -g [groupname] [username]
- 查看⽤户及组信息
shell
id ⽤户名
- 修改用户所属组
shell
usermod -g [groupname] [username]
3.6 文件权限管理
3.6.1 权限及命令
shell
ls -l
total 40
#⽂件信息 ⽂件数 ⽤户 组名 ⼤⼩ ⽉份 ⽇期 时间 ⽂件名
drwxr-xr-x 2 cskaoyan cskaoyan 4096 Aug 2 23:52 cskaoyan
prw-r--r-- 1 cskaoyan cskaoyan 0 Aug 2 23:43 fifo_file
-rw-r--r-- 1 cskaoyan cskaoyan 26825 Aug 3 00:25 main.txt
-rw-r--r-- 1 cskaoyan cskaoyan 33 Aug 3 00:37 test.txt
drwxr-xr-x 3 cskaoyan cskaoyan 4096 Aug 3 01:27 xxx
前10位字符的说明:
- 第1位:-表示是⼀个普通的⽂件;d表示是⼀个⽬录;
- rwx:分别代表Read、Write、Execute即读、写、执⾏权限,这个顺序不会变,如果没有权限的话就⽤-代替
- 第2-4位:表示⽂件所有者的对于文件所具有的权限
- 第5-7位:表示和文件所有者同组的其他用户对文件所具有的权限
- 第8-10位:⽂件其他组⽤户拥有的权限
我们可以使用chmod命令,手动修改文件权限
- 第一种方式
shell
chmod u=rwx,g=rw,o=r filename
u:所有者 g:所有组 o:其他组,a代表全部,没有就用空格替代
- 第二种方式
shell
r=4,w=2,x=1 rwx = 4 + 2 + 1 = 7
chmod 751 等价于 u=rwx,g=rx,o=x
3.7 进程管理
3.7.1 查看进程
shell
# 查看Linux 当前主机运行的基本信息(类似于Windows中任务管理器)
top
# 查看内存
free -m
# 查看磁盘
df -h
Linux系统中查看进程使⽤情况的命令是ps命令,但是ps命令一般都不会单独使用
shell
常⻅选项:
-e:显示所有进程
-f:全格式
a:显示终端上的所有进程
u:以⽤户的格式来显示进程信息
x:显示后台运⾏的进程
⼀般常⽤格式为ps -ef或者ps aux两种。显示的信息⼤体⼀致,略有区别。
shell
UID:⽤户ID
PID:进程ID
PPID:⽗进程ID
C:CPU⽤于计算执⾏优先级的因⼦。数值越⼤,表明进程是CPU密集型运算,执⾏优先级会降低;数值越
⼩,表明进程是I/O密集型运算,执⾏优先级会提⾼
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:完整的启动进程所⽤的命令和参数
shell
USER:⽤户名称
PID:程号
%CPU:进程占⽤CPU的百分⽐
%MEM:进程占⽤物理内存的百分⽐
VSZ:进程占⽤的虚拟内存⼤⼩(单位:KB)
RSS:进程占⽤的物理内存⼤⼩(单位:KB)
TT:终端名称(缩写),若为?,则代表此进程与终端⽆关,因为它们是由系统启动的
STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有⽐普通优先级更低的
优先级,R-正在运⾏,D-短期等待,Z-僵死进程,T-被跟踪或者被停⽌等
STARTED:进程的启动时间
TIME:CPU时间,即进程使⽤CPU的总时间
COMMAND:启动进程所⽤的命令和参数,如果过⻓会被截断显示
ps -ef 与 ps aux的区别:
- 如果想查看进程的⽗进程ID和完整的CMD命令,可以使⽤ef
- 如果想查看进程的CPU占⽤率和内存占⽤率,可以使⽤aux
如果还想进一步筛选想要查询的目标进程信息,可以使用管道命令
shell
#搜索匹配进程
ps -ef | grep [搜索内容]
3.7.2 终止进程
kill [选项] 进程号
shell
选项:
-9:操作系统从内核级别强制杀死⼀个进程
-15:可以理解为操作系统发送⼀个通知告诉应⽤主动关闭
3.7.3 服务管理
服务本质上来说也是⼀个进程,只不过是在后台运⾏。监听着某⼀端⼝,等待该端⼝的请求到来,⽐如ssh服务监听着22端⼝,mysql服务监听着3306端⼝;
systemctl start/stop/restart/status/reload 服务名称
shell
#⽐如关闭ssh服务
systemctl stop sshd
3.8 网络管理
3.8.1 查看网络设置
shell
ifconfig
3.8.2 查看网络端口占用
- netstat
shell
-a:显示全部
-n:以数字的形式显示
-p:显示该连接被哪个应⽤程序占⽤PID
eg:
netstat -anp | grep 3306
- lsof -i: 端⼝号
3.8.3 测试网络是否正常
shell
ping [⽬的ip或者域名]
4 Linux 远程软件的安装
4.1 远程连接软件
安装软件,使得我们可以通过ssh协议远程连接Linux服务器。
什么是ssh协议?
SSH 为 Secure Shell 的缩写,由 IETF 的⽹络⼯作⼩bai组(Network Working Group)所制定;SSH为建⽴在应⽤层和传输层基础之上的安全协议。SSH 是⽬前较可靠,专为远程登录会话和其他⽹络服务提供安全性的协议
如何使⽤ssh协议远程连接服务器?
- ⾸先需要在⽬标服务器上安装ssh服务(Ubuntu 16 默认⾃带了这个服务)
shell
#查看ssh服务是否启动
ps -aux|grep sshd
#如果出现sshd进程则表示已经启动,如果没有出现那么执⾏下⾯的命令
#更新apt源
sudo apt update
#安装ssh
sudo apt install openssh-server
#安装完之后再次查看sshd是否已经启动,如果没有启动的话执⾏以下命令启动
sudo service ssh restart
# 注意,如果是刚装的新的虚拟机执行sudo apt update命令报错,执行如下命令之后在执行update命令即可
sudo apt-get install --reinstall libappstream4
- 在⽬标服务器上安装ssh服务之后需要在本机也安装ssh客户端的软件,可以安装的ssh协议客户端软件有很多,例如xshell、SecrueCRT、iterm2、MobaXterm等等
4.2 远程文件传输
需要使用ftp软件实现,本地主机和远程服务器主机的文件传输。
FTP(File Transfer Protocol,⽂件传输协议) 是 TCP/IP 协议组中的协议之⼀。FTP协议包括两个组成部分,其⼀为FTP服务器,其⼆为FTP客户端。其中FTP服务器⽤来存储⽂件,⽤户可以使⽤FTP客户端,通过FTP协议访问位于FTP服务器上的资源
如何使⽤?安装 winscp , filezila 或者是 transmit 软件即可。