微信改版了,现在看到我们全凭缘分,为了不错过【全栈工程师修炼指南】重要内容及福利,大家记得按照上方步骤设置「接收文章推送」哦~
文章目录:
0x00 前言简述
描述:前一章,作者实践了当前主流的三大类服务器操作系统(FreeBSD、Rocky、Windows Server)的安装和初始化配置,让各位看友可以快速上手以及搭建后续运维学习使用环境,想必大家也已经参照作者推荐的 Rocky Linux 9 安装配置教程搭建部署好了学习环境。
如何学习 Linux 运维?
在进行本章学习前,请思考作为初学者如何学习 Linux 运维呢? 以作者个人的经验为例,实践是学习 Linux 的最佳方案,多读书建立兴趣与成就感很重要、另外与志同道合的朋友相互交流回答问题参与团队活动也是增加热情的方式!
除此,在学习之前还需要想一想如下几个问题。
-
0.学习的原动力?
-
成就感、兴趣
-
-
1.首先需要知道你学习Linux目的是什么?
-
毕设 实验 工作 娱乐 考证
-
-
2.其次是个人环境使用还是企业环境以及开发环境使用?
-
知道使用Linux侧重点方便选择发型版本
-
企业环境 : 着重于网络服务器、关键任务应用(金融数据库、大型网管、以及高性能运算等任务)
-
个人环境 : 着重于桌面计算机、手持系统(PDA/手机)、嵌入式设备
-
-
3.然后是从命令行模式进行学习(推荐),还是从桌面的GUI发行版进行学习?
-
初学者建议从基础命令行开始操作,本身选择两则是差不多的在GUI你也可以用命令行操作方便初学者学习实践,一句话能用命令行操作的绝不用界面化操作。
-
-
4.Linux distribution 发型版本的选择?
-
Linux 爱好者 Debian 系
-
娱乐、开发 Ubuntu-desktop
-
企业服务器 Redhat SuSE CentOS Ubuntu-server Rocky OpenBSD FreeBSD
-
-
5.内核版本的选择?
-
建议选择稳定版本Stale即内核主次版本为偶数
-
然后,作者也简单总结了一下 Linux 学习流程,大致如下:
-
1.计算机概论与硬件相关知识学习(作者,专栏《#运维从业必学》已发布)
-
2.Linux 安装与基础命令学习 (作者,会抽取运维中常用的Linux进行实战讲解)
-
3.Linux 操作系统基础技能
-
4.Linux 文本编辑器以及程序编译器的使用
-
5.Shell 语法学习与Shell脚本编程实践
-
6.Linux 软件管理以及操作系统管理
-
7.网络基础概念以及网络Socket学习
-
8.Linux 内核学习与实践
-
9.学习笔记整理(定期归类与整理),在浏览关于Linux技术好文章随时浏览并收藏;
-
10.参与回答别人提交的问题,协助他同时让自己也加深理解;
如何提交自己Linux操作学习所遇问题?
答: 在提交问题前一定要清楚自己想要询问什么,表达不能模糊不清。在提交问题的同时应该加上你当前Linux发行版 + 内核版本 + 软件信息 + 异常错误信息;
回到正题,从此章节中开始,我们将展开针对 Linux 运维相关知识的学习实践,此篇文章将主要介绍 Linux 远程连接配置和登录,及 Linux 终端基本配置命令操作实践; 作者结合自身日常工作实践,花费大量时间精力进行总结归纳,遂将此专栏《#运维工程师从业必学》设置为 9.9 元,希望能帮助到各位志同道合的初学运维朋友,也希望各位看友也能多多支持作者,更新更多运维文章。
原文链接: https://mp.weixin.qq.com/s/Yt9dXb5cZQh1_PZB3BAYKQ
温馨提示:作者最近开通的知识星球,全栈系列从门到实践教程将会逐步同步到星球内,加入星球将获得作者在安全、运维、开发中的所有学习实践笔记,和问题答疑以及远程技术支持,希望大家多多支持!
0x01 远程连接配置登录
描述: 通常Linux 系统安装完毕后,是已经启动安全外壳协议(Secure Shell,简称SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。
说到这里,工欲善其事必先利其器,在企业运维中运维人员会用那些 ssh 客户端工具,这里对常用的几款 ssh 工具(MobaXterm
、XShell
、Putty
)进行简单介绍。
连接工具
MobaXterm
描述:MobaXterm 是远程计算的终极工具箱,在 Windows 应用程序中,它提供了大量的功能,这些功能是为程序员、网站管理员、IT管理员以及几乎所有需要以更简单的方式处理远程工作的用户量身定制的,目前有 Home Edition
、Professional Edition
两种发行方法,其中前者可以免费使用,但是存在于一些资源的限制,不过基础功能是已经够用了, 作者推荐大家使用。
MobaXterm 功能:
-
MobaXterm 选项卡式终端允许运行所需的 Unix 命令,例如
ls、cd、grep、awk、tail、cut、sed、wget、rsync、telnet、ssh、rlogin、rsh
等 Unix 命令工具 -
MobaXterm 允许您启动远程会话,可以创建
SSH、Telnet、Rlogin、RDP、VNC、XDMCP、FTP、SFTP
或串行(Serial
) 会话,并且支持图形化 SFTP 浏览器,便于运维管理人员直接从本机上传文件到远程服务器。 -
MobaXterm 支持终端中的语法高亮显示,宏支持以及使用密码来保护保存在此工具上的服务器认证密码。
-
MobaXterm 支持会话中使用 X11 服务器(
SSH、TELNET 或 RLOGIN/RSH 会话
)、X 服务器(基于 X.org 的嵌入式
),本地 Windows PC 上显示您的远程应用程序。 -
MobaXterm 支持SSH 网关(又名“跳转主机”)、SSH 隧道(端口转发),在 ssh、telnet、RDP、VNC 会话中,可以设置 SSH 网关连接防火墙后面的某些服务器。
weiyigeek.top-MobaXterm工具界面图
官网: https://mobaxterm.mobatek.net
XShell
描述:XShell 7 是一款功能强大且易于使用的终端仿真软件,它主要用于远程连接和管理远程服务器、设备或虚拟机,适用于系统管理员、开发人员和网络工程师的优秀工具,能够帮助他们高效地管理和操作远程主机和设备,目前商业版本,以及家庭和学校用户的免费许可证。
XShell 功能:
-
多标签界面:XShell 7 提供了多标签界面,可以同时管理多个远程连接,便于用户在不同主机之间进行切换和操作。
-
会话管理:用户可以保存并管理多个会话,方便快速连接到常用的主机或设备。
-
多种协议:XShell 7 支持多种协议,包括 SSH、TELNET、RLOGIN 和 SFTP,使用户可以灵活地连接到各种类型的远程主机。
-
强大的脚本支持:XShell 7 支持使用脚本自动化任务,用户可以编写脚本来执行批量操作或自定义功能。
-
安全性:XShell 7 提供了多种安全功能,如公钥/私钥认证、加密传输等,确保数据在传输过程中的安全性。
weiyigeek.top-XShell 7工具界面图
官网:https://www.xshell.com/zh/xshell/
Putty
描述:Putty 是一个开源的免费的 SSH 和 Telnet 以及串行(Serial)阜连线客户端程序,用于远程连接和管理计算机系统,它是最常用的远程控制软件之一,特别适用于在 Windows 操作系统上进行远程服务器管理,
Putty 功能:
-
支持多种协议:Putty 支持 SSH、Telnet、Rlogin、Raw 等多种远程连接协议,使用户能够连接到各种类型的远程主机。
-
轻量级:Putty 是一个小巧的程序,下载和安装非常快速,并且不需要大量的系统资源,适合在各种计算机上运行。
-
功能全面:尽管 Putty 的界面相对简单,但它提供了丰富的功能,包括会话管理、公钥/私钥认证、端口转发等,满足了大部分基本的远程连接需求。
-
免费开源:Putty 是免费开源软件,用户可以自由获取、使用和修改它,同时也能在许可下重新发布。
-
跨平台:虽然最初是为 Windows 设计的,但由于其开源特性,后来也有其他操作系统的版本,比如 Linux 和 macOS。
weiyigeek.top-Putty 界面图片图
官网地址:https://www.putty.be/
除了上述远程连接工具外,其实还有许多其他ssh工具,此处就不在一一累述了,毕竟工具用得得手就行。
连接登录
此时,我们只需要在完成网络配置后,便可使用 ssh 终端工具进行连接使用,但是值得注意的是,出于安全的考虑 root 用户默认是不能通过 ssh 远程登录的,若需使用 root 登录需要在 sshd (守护进程) 配置文件启用 root 登录:
例如,使用 vi 命令编辑 /etc/ssh/sshd_config
配置文件,且修改对应字段参数如下,之后(按键 Ese、输入 :wq
)保存文件即可。
# 服务默认监听端口
Port 22
# 启用允许 root 使用密码登录(主要)
PermitRootLogin yes
之后,执行 systemctl restart sshd
重启sshd服务,然后使用 ifconfig
或者 ip addr
命令查看到主机 IP 地址。
weiyigeek.top-图
最后使用 MobaXterm ssh 客户端工具连接,输入主机地址以及缺省的ssh端口进行连接到服务器。
weiyigeek.top-使用 MobaXterm ssh 客户端工具连接服务器图
输入 root 账户密码便可登录到服务器, 温馨提示线上通常情况不会启用 root 远程登录,此处为了便于大家学习作者便使用高权限用户为例进行讲解,以实例命令进行讲解。
交互接口
描述:在用户登录到服务器启动终端后,操作系统会在终端设备中附加一个交互式应用程序,它可以是 GUI 可视化操作界面,也可以是 CLI 命令行接口界面,不过通常情况下作为Linux运维人员,常常会在 CLI 模式下进行服务器主机的管理配置,所以后续讲解主要已 CLI 模式为例。
-
GUI(
Graphic Use Interface X Protocol
) :例如,Gnome (以 C 编写的图形库 GTK)、KDE (C++ 编写的图形库)、XFCE(轻量级的桌面) -
CLI(
Command Line Interface
):Shell 程序
在《服务器操作系统基本篇章》中我们讲解过,Shell 是 Kernel 的壳,是 Linux 系统的用户界面,为用户与内核提供交互的桥梁,它接收用户输入的命令并将其送入到内核中进行执行。
实际上 Shell 也被称为 Linux 的命令解释器,它是一种高级程序设计语言(解释型),提供了变量、函数、条件判断、循环等基础编程语言的功能,并且由于 Shell 本身是个程序,所以它可以被任何用户自己开发的各种 Shell 所替代。
在 Linux 中,常见的 Shell 包括以下几种:
-
Bourne Shell(sh):
-
Bourne Shell 是 Unix 系统中最早的 Shell,通常位于
/bin/sh
,大多数 Unix、Linux 发行版都有。 -
它提供了基本的命令解释和控制结构,是其他 Shell 的基础。
Bourne-Again Shell(bash):
-
Bourne-Again Shell 是 Bourne Shell 的增强版本 (
兼容
),也是大多数 Linux 发行版默认的 Shell。 -
它兼容 Bourne Shell,并添加了许多新特性,如命令历史记录、自动补全等。
C Shell(csh):
-
C Shell 是类似于 C 语言语法风格的 Shell,提供了 C 风格的控制结构和语法。
-
它具有与 Bourne Shell 不同的语法和特性,适合习惯 C 风格语法的用户使用。
Korn Shell(ksh):
-
Korn Shell 结合了 C Shell 和 Bourne Shell 的优点,提供了丰富的功能和灵活的语法,是 IBM AIX 默认的 Shell。
-
它是商业 Unix 系统中常见的 Shell 类型,也有免费开源的版本可供使用。
Z Shell(zsh):
-
Z Shell 是一个功能强大的 Shell,提供了丰富的命令补全、主题定制等功能,是苹果 MacOS 默认的 Shell。
-
它在用户友好性和功能性上有很多改进,逐渐成为一些用户的首选 Shell。
除了这些常见的 Shell 类型外,还有其他一些少见的 Shell 类型,例如 tcsh
、dash
,每种 Shell 都有其特定的语法和功能特性,用户可以根据自己的需求和偏好来选择合适的 Shell 类型。
weiyigeek.top-Linux-Shell发布时间节点图
实例,显示当前使用的Shell以及切换为其他Shell。
# 显示当前终端 Shell
$ echo $SHELL
/bin/bash
# 显示当前系统可用 Shell
$ cat /etc/shells
# 或者
$ chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
# 切换当前用户终端登录 Shell (临时 & 永久)
$ /bin/sh
sh-5.1# whoami
root
$ chsh -s /bin/sh
Changing shell for root.
Shell changed.
$ exit
weiyigeek.top-显示及切换Shell图
温馨提示:切换默认 Shell 后,需要退出当前会话并重新登录才能使更改生效,重新登录后,你将会看到默认 Shell 已经切换为你所指定的 Shell。
终端类型
描述:在 Linux 中终端是一种字符型设备,所以他有多种终端类型,下来跟随作者来简单了解一下几种常见的终端类型。
-
控制台终端(Console Terminal):
/dev/console
指通过物理主机或虚拟机本地登录主机方式的控制台终端是和操作系统交互的设备,系统将一些信息直接输出到控制台上。 -
虚拟终端(Virtual Terminal):
/dev/tty[1~64]
或者/dev/tty[1~64]
(Teletypewriters
,原指的是电传打字机)是 Linux 提供的一种文本界面,可以通过组合键Ctrl + Alt + F1
到F6
在不同的虚拟终端之间切换,每个虚拟终端都可以独立登录用户,方便在一个物理终端上同时运行多个命令行会话。 -
串口终端(Serial Terminal):
/dev/ttyS*
或者/dev/tts/*
是通过串口(COM 端口)与计算机或设备连接的终端,通常用于嵌入式系统、物联网设备等,串口终端可以通过串口通信协议(如 RS-232)进行数据交换和控制。 -
远程终端(Remote Terminal):
/dev/pts/*
别称伪终端(Pseudo Terminal
),远程终端是通过网络连接到远程主机上的终端,可以使用 SSH(Secure Shell)等协议进行远程登录和操作,通过远程终端,用户可以在本地计算机上操作远程服务器,进行文件传输、远程管理等操作。 -
图形终端(Graphical Terminal):StartX,XWindows 是指在图形界面下打开的终端仿真器,如 GNOME Terminal、Konsole 等,图形终端提供了更丰富的用户界面和功能,支持图形化的操作和多标签页功能。
实例,使用 who
命令或 tty
命令查看当前所在终端。