阿里云ECS轻量服务器全面配置手册:从环境部署到SSH免密登录与ARM交叉编译环境搭建

学习课程

7天玩转云服务器_学习资源库_阿里云培训中心-阿里云 (aliyun.com)

Emc文档(help.aliyun.com)

阿里云ECS轻量服务器配置:

  1. 选择合适的实例规格:根据您的需求选择CPU、内存、公网带宽和系统盘1
  2. 设置安全组:确保安全组规则允许访问您需要的端口,如SSH(默认端口22)。
  3. 连接到您的ECS实例:使用SSH客户端连接到您的ECS服务器。
  4. 配置网络:如果需要,设置固定的公网IP地址和DNS配置。
  5. 安装必要的软件:如Web服务器、数据库等。

环境配置

部署Apache服务

主要用于以下目的:

简而言之,Apache服务是一种Web服务器软件,广泛用于托管网站,提供网页内容给用户浏览,同时也支持各种高级Web服务功能,如虚拟主机、安全连接、以及各种模块扩展等。它是互联网上最流行的Web服务器之一,适用于小型到大型的网站部署。如果您需要更多帮助或有关Apache服务的详细信息,我可以提供进一步的指导。

在Ubuntu系统中,您可以使用 apt 包管理器来部署Apache服务。以下是部署Apache服务的步骤:

  1. 更新软件包列表

    sudo apt update
    

    这将确保您的软件包列表是最新的。

  2. 安装Apache

    sudo apt install apache2
    

    这将安装Apache及其所有必需的依赖项。

  3. 调整防火墙设置(如果需要): 如果您的服务器有防火墙(如UFW),您需要允许外部访问Apache的默认Web端口。

    sudo ufw allow 'Apache'
    

    这将允许端口80上的流量,即HTTP流量。

  4. 检查Apache服务状态: 您可以使用以下命令来检查Apache服务是否已经启动并运行。

    sudo systemctl status apache2
    

    如果服务正在运行,您应该会看到 active (running) 状态。

  5. 访问Apache默认页面: 在浏览器中输入您服务器的IP地址,您应该能够看到Apache的默认欢迎页面,这表明Apache已经成功安装并运行。

  6. 管理Apache服务: 您可以使用以下命令来启动、停止、重启Apache服务。

    sudo systemctl start apache2   # 启动Apache服务
    sudo systemctl stop apache2    # 停止Apache服务
    sudo systemctl restart apache2 # 重启Apache服务
    

以上步骤将帮助您在Ubuntu系统中部署Apache服务。如果您需要进一步的帮助或有关Apache服务的详细信息,我可以提供进一步的指导123。祝您部署顺利!

使用VSCode配置SSH免密码登录

在Linux Ubuntu环境中,使用VSCode配置SSH免密码登录的步骤如下:

  1. 安装Remote - SSH扩展: 打开VSCode,进入扩展市场搜索并安装“Remote - SSH”扩展。

  2. 生成SSH密钥对: 在您的Ubuntu系统中打开终端,使用ssh-keygen命令生成密钥对。按回车确认默认的文件保存位置,如果不想设置密码,直接再次按回车留空。

    ssh-keygen
    

    image-20240614223335977

  3. 将公钥添加到服务器: 输入密码远程连接VSCode,将客户端生成的公钥(默认位置~/.ssh/id_rsa.pub)内容添加到服务器的~/.ssh/authorized_keys文件中。如果该文件不存在,您可以手动创建它。

image-20240614231213510

  • 可以通过命令行操作将公钥添加到服务器

    • 本地客户端
    cat ~/.ssh/id_rsa.pub
    **等下需要将客户端的公钥内容复制到剪贴板**
    
    • 远程服务端
    cat > ~/.ssh/id_rsa.pub
    **将本地客户端的公钥内容复制到剪贴板**
    **粘贴**
    ctrl+D
    
  • 可以通过手动添加将公钥添加到服务器

  • 添加完id_rsa.pub公钥文件后,在远程服务器终端输入

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
  • 配置完成
  1. 配置VSCode的SSH连接: 在VSCode中,点击左下角的绿色按钮(或按F1键),选择“Remote-SSH: Connect to Host…”。输入您的远程服务器的用户名和主机名(例如,username@remote_host),然后按回车键。

  2. 连接到服务器: 如果一切配置正确,VSCode将通过SSH连接到您的远程服务器,而不需要输入密码。

创建非root用户

用户与用户组管理

出于安全考虑,建议创建一个非root用户进行远程连接。

创建新用户名为username

sudo adduser username

设置用户username密码

sudo passwd username

添加sudo权限

sudo usermod -aG sudo username

切换到新用户帐户

su - username

注:如果直接用adduser添加用户的话,可能出现没有home下的文件夹,以及shell无法自动补全的情况。出现此问题只要修改/etc/passwd下的/bin/sh为/bin/bash即可

安装交叉编译环境arm

ARM交叉编译工具的安装位置取决于个人偏好和系统管理策略。一般来说,如果是系统管理员或者需要为多个用户提供交叉编译工具,那么安装到根目录(例如/usr/local/)是比较常见的做法。这样可以确保所有用户都能访问到这些工具。

源代码托管网站/官网下载地址


最好用的交叉编译环境安装指南 -->ubantu22.4(前提)

CrossCompilerLinux4SAM < TWiki <小节

作为系统管理员,在 Ubuntu 22.04 上安装交叉编译链 gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabi.tar.xz 供所有用户使用,可以按照以下步骤进行操作:

下载并解压交叉编译工具链

  1. 下载交叉编译工具链

    如果您已经下载了 gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabi.tar.xz 文件,请将其移动到 /tmp 目录下。如果尚未下载,请先下载:

    wget -P /tmp https://releases.linaro.org/components/toolchain/binaries/5.4-2017.01/arm-linux-gnueabi/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabi.tar.xz
    
  2. 解压工具链

    将下载好的工具链解压到 /usr/local 目录:

    sudo tar -xJvf /tmp/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabi.tar.xz -C /usr/local/
    
  3. 重命名解压后的目录

    为了简化路径管理,可以将解压后的目录重命名为更易记的名称:

    sudo mv /usr/local/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabi /usr/local/arm-toolchain
    

配置环境变量

  1. 设置系统范围的环境变量

    编辑 /etc/profile 文件,将工具链的 bin 目录添加到 PATH 环境变量中:

    sudo nano /etc/profile
    

    在文件末尾添加以下行:

    export PATH=$PATH:/usr/local/arm-toolchain/bin
    
  2. 应用更改

    保存并关闭 nano 编辑器,然后加载新的环境变量设置:

    source /etc/profile
    

验证安装和自动补全

  1. 验证工具链安装

    使用以下命令验证交叉编译工具链是否已正确安装:

    arm-linux-gnueabi-gcc --version
    
  2. 启用自动补全

    确保 Bash 自动补全功能已启用。通常,自动补全功能默认是启用的,但您可以通过编辑 ~/.bashrc 文件来确保它已启用:

    nano ~/.bashrc
    

    确保以下行未被注释掉:

    if [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
    fi
    

    然后重新加载 ~/.bashrc 文件:

    source ~/.bashrc
    

测试交叉编译

  1. 创建测试文件

    创建一个简单的 C 源文件 test.c

    #include <stdio.h>
    
    int main() {
        printf("Hello, ARM!\n");
        return 0;
    }
    

    保存为 test.c

  2. 编译测试程序

    使用 ARM 交叉编译器编译测试程序:

    arm-linux-gnueabi-gcc -o test test.c
    
  3. 验证编译

    确认生成的 test 可执行文件是针对 ARM 架构的:

    file test
    

    输出应类似于:

    test: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, not stripped
    

这样,您就可以为多个用户安装并配置 ARM 交叉编译工具链。

配置创建用户的环境变量

为了确保新创建的用户 san 能够运行刚刚安装的 ARM 交叉编译工具链,您需要确认以下几点:

  1. 环境变量设置
    确保用户 san 的环境变量正确配置,以便能够找到交叉编译工具链。

  2. 权限
    确保 san 用户对交叉编译工具链目录具有适当的权限。

具体步骤如下:

  1. 确保环境变量设置正确
    确认在 /etc/profile 文件中添加的路径已经生效。如果 san 用户登录时没有加载 /etc/profile,则需要在 ~/.bashrc 中添加路径设置。

    验证 /etc/profile 文件中已有配置:

    cat /etc/profile
    

    确保其中有以下行:

    export PATH=$PATH:/usr/local/arm-toolchain/bin
    

    如果已经存在,则不需要再在用户的 ~/.bashrc 中重复设置。如果不存在,请将其添加到用户的 ~/.bashrc 文件中。

    编辑 ~/.bashrc 文件:

    sudo nano /home/san/.bashrc
    

    在文件末尾添加:

    export PATH=$PATH:/usr/local/arm-toolchain/bin
    

    保存并退出,然后重新加载 ~/.bashrc

    source /home/san/.bashrc
    
  2. 验证配置
    切换到 san 用户,并验证环境变量和交叉编译工具链是否可用。

    切换用户:

    su - san
    

    验证环境变量:

    echo $PATH
    

    确认输出包含 /usr/local/arm-toolchain/bin

    验证交叉编译工具链:

    arm-linux-gnueabi-gcc --version
    

    以上命令应输出交叉编译器的版本信息。

  3. 权限检查
    确保 san 用户对 /usr/local/arm-toolchain 目录及其内容具有读取和执行权限。默认情况下,这些权限应该是正确的。

    检查权限:

    ls -ld /usr/local/arm-toolchain
    

    输出应该类似于:

    drwxr-xr-x 5 root root 4096 Jun 15 12:34 /usr/local/arm-toolchain
    

    如果权限不正确,可以调整权限:

    sudo chmod -R 755 /usr/local/arm-toolchain
    

经过上述配置,用户 san 应该能够正常使用 ARM 交叉编译工具链。如果有其他用户需要使用该工具链,只需确保这些用户的环境变量配置正确即可。

打开新终端交叉编译补全失效

如果根用户和其他用户在关闭终端后都不能进行命令自动补全,可能是环境变量或shell配置文件中的更改未正确生效。我们可以通过以下步骤来检查和解决这个问题。

检查和修复步骤:

  1. 检查 /etc/profile 文件
    确保您在 /etc/profile 文件中正确添加了工具链的路径。

    打开并检查 /etc/profile

    sudo nano /etc/profile
    

    确保末尾有:

    export PATH=$PATH:/usr/local/arm-toolchain/bin
    

    保存并退出。

  2. 检查 /etc/bash.bashrc 文件
    一些系统可能会使用 /etc/bash.bashrc 来全局配置自动补全。

    打开并检查 /etc/bash.bashrc

    sudo nano /etc/bash.bashrc
    

    确保末尾有:

    if [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
    fi
    

    保存并退出。

  3. 检查根用户的 ~/.bashrc 文件
    确保根用户的 ~/.bashrc 文件也正确配置了自动补全和路径。

    打开并检查 ~/.bashrc

    nano /root/.bashrc
    

    确保末尾有:

    # Enable bash completion
    if [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
    fi
    
    export PATH=$PATH:/usr/local/arm-toolchain/bin
    

    保存并退出。

  4. 应用更改
    确保重新加载所有更改。

    对于当前用户:

    source /etc/profile
    source /etc/bash.bashrc
    source ~/.bashrc
    
  5. 重启终端
    关闭当前终端并重新打开一个新的终端窗口,然后测试自动补全。

  6. 检查 bash-completion
    确保安装了 bash-completion 包。如果未安装,可以安装它。

    安装 bash-completion

    sudo apt-get install bash-completion
    

    重新加载配置文件:

    source /etc/profile
    source /etc/bash.bashrc
    source ~/.bashrc
    
  7. 验证自动补全
    打开新终端并测试命令自动补全。

    arm-linux-gnueabi-gcc --version
    

通过上述步骤,可以确保环境变量和自动补全配置正确生效。如果自动补全仍然不起作用,建议检查是否有其他配置文件或shell脚本覆盖了这些设置,并进行相应调整。

/etc/profile~/.bashrc

/etc/profile~/.bashrc 是两个常用的 shell 配置文件,它们在配置环境变量和 shell 行为方面有不同的作用和作用范围。

/etc/profile

  • 作用范围: 系统全局配置,适用于所有用户。
  • 执行时机: 当用户登录时,/etc/profile 会被读取一次。它适用于登录 shell(login shell),即用户通过终端或远程登录时。
  • 适用 Shell: 主要用于 Bourne shell 和其衍生的 shell,如 Bash。
  • 位置: /etc/profile 是一个全局文件,位于根目录下的 etc 文件夹中。

示例: 设置系统全局环境变量。

# /etc/profile
export PATH=$PATH:/usr/local/bin

~/.bashrc

  • 作用范围: 用户级别配置,适用于特定用户。
  • 执行时机: 每当一个新的交互式 shell 会话启动时(非登录 shell,如在一个已经登录的会话中打开一个新的终端窗口),~/.bashrc 会被读取。
  • 适用 Shell: 主要用于 Bash。
  • 位置: ~/.bashrc 位于用户主目录下,是用户特定的配置文件。

示例: 设置用户级别环境变量和别名。

# ~/.bashrc
export PATH=$PATH:/home/user/bin
alias ll='ls -la'

区别总结

  • 配置范围: /etc/profile 是全局配置,适用于所有用户,而 ~/.bashrc 是用户级别配置,只适用于特定用户。
  • 执行时机: /etc/profile 在用户登录时执行,而 ~/.bashrc 在启动新的交互式 shell 会话时执行。
  • 优先级和覆盖: 用户级别的配置文件(如 ~/.bashrc)可以覆盖全局配置文件(如 /etc/profile)的设置。

实际应用

  1. 全局配置: 如果你希望所有用户都能使用某个环境变量或配置,可以将其添加到 /etc/profile
  2. 用户特定配置: 如果你只希望自己或某个特定用户能使用某个环境变量或配置,可以将其添加到 ~/.bashrc

示例操作

设置全局环境变量

sudo nano /etc/profile
# 在文件末尾添加
export PATH=$PATH:/usr/local/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi/bin

设置用户级别环境变量

nano ~/.bashrc
# 在文件末尾添加
export PATH=$PATH:/home/user/bin

通过理解 /etc/profile~/.bashrc 的区别和作用范围,可以更好地管理和配置系统和用户的环境变量和 shell 行为。

阿里云磁盘重置完更换操作系统,出现ssh连接不上报错得到问题

ssh-keygen -R "远程服务器ip地址"

清除关于远程服务器的公钥信息

①报错信息里面就有提示解决方法,就是告诉你要重置公钥。

②在用户/.ssh/ 目录下就只有authorized_keys文件,没有known_hosts文件。

③authorized_keys记录了其他主机用于连接本机服务器的公钥,如果主机A的公钥在本机的authorized_keys文件中,则主机A可免密登陆本机服务器。

④known_hosts记录了本机访问过的主机的公钥。下次访问对应主机时,OpenSSH会核对公钥,不同则发出警告,避免受到DNS Hijack之类的攻击

安装远程桌面服务(可选):

如果您需要图形界面,可以安装VNC或xRDP等远程桌面服务

vscode插件(可选)

C/C++
C/C++ Extension Pack
Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
CMake
CMake Tools
markdownlint
Prettier - Code formatter
VS Code Counter
C/C++ Themes

常见的bash 命令

cat 列出指定文件的内容
chmod 为指定文件或目录修改系统安全权限
cp 将指定文件复制到另一个位置
file 查看指定文件的文件类型
find 对文件进行递归查找
free 查看系统上可用的和已用的内存
head 显示指定文件内容的开头部分
help 显示bash内建命令的帮助页面
ln 创建针对指定文件的符号链接或硬链接
ls 列出目录内容
man 显示指定命令或话题的手册页
mkdir 在当前目录下创建指定目录
more 列出指定文件的内容,在每屏数据后暂停下来
mount 显示虚拟文件系统上挂载的磁盘设备或将磁盘设备挂载到虚拟文件系统上
mv 移动或重命名文件
passwd 修改某个系统用户账户的密码
pwd 显示当前目录
rm 删除指定文件
rmdir 删除指定目录
sudo 以root用户账户身份运行应用
tail 显示指定文件内容的末尾部分
tar 将数据和目录归档到单个文件中
touch 新建一个空文件,或更新一个已有文件的时间戳
uptime 显示系统已经运行了多久
vi 调用vim文本编辑器
which 查找可执行文件的位置
who 显示当前系统中的登录用户
history 查看历史操作命令
source 让脚本立即生效 root全局变量位置:/etc/profile
ping 测试网络状态
scp # 传输文件  
	# 接收文件 scp -P <端口号> -r           <远程用户名>@<域名或IP>:<远程路径> <当前路径>
	# 发送文件 scp -P <端口号> -r <当前路径> <远程用户名>@<域名或IP>:<远程路径> 
alias 给命令取别名
ifconfig 网络配置
sudo hostname 新主机名   更改主机名

Linux常用命令知识点总结- [舟清颺]

GitHub - lvgl/lvgl at release/v8.3

posted @   sanjiudemiao  阅读(120)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示