当前位置: 首页 > article >正文

关于 openeuler 22.03-LTS-SP4 scp 失败问题的记录

文章目录

    • @[toc]
    • 背景
    • 原因
    • 解决
      • 方法一
      • 方法二

背景

  • 使用 openeuler 22.03-LTS-SP4 发行版 scp 文件到远程机器不报错,但是远程机器接收不到文件
  • 使用 openeuler 22.03-LTS-SP4 发行版从远程机器 scp 文件到本地,报错 protocol error: unexpected <newline>

原因

openeuler 22.03-LTS-SP4 发行版在登录的时候会显示系统的一些相关信息,这个脚本是 /etc/profile.d/system-info.sh,因为这里面的 echo 输出的信息影响了 scp

解决

方法一

最简单粗暴的方法就是不要这个登入信息了

mv /etc/profile.d/system-info.sh{,.bak}

方法二

还是希望这个登入信息存在,甚至自己还 diy 了,那可以修改机器的 .bashrc 文件,增加下面的内容

[[ $- != *i* ]] && return
  • 以下信息来自 ChatGPT
  • $- 是一个特殊的 shell 变量,表示当前 shell 的标志位。它包含当前 shell 的状态信息,表明 shell 是以何种模式运行的。
    • i:表示交互式 shell。
    • s:表明 shell 是通过脚本启动的。
    • h:启用命令历史功能(history)。
    • m:启用作业控制功能(job control)。
    • B:启用花括号扩展(brace expansion)。
    • H:启用哈希表缓存命令路径(hashall)。
  • 在非交互式的 shell(例如通过 scpssh 执行命令时),$- 中不会包含 i,而在你直接打开终端时,$- 中通常会包含 i
  • 通过 echo $- 可以在终端中看到 himBHs
  • 因为交互式 shell 的 $- 中会包含 i,所以,上面的内容就是判断当前 shell 是否是非交互式的,如果是非交互式的,就会不执行 .bashrc 文件的内容(前提是这段内容写在 .bashrc 的最前面,或者说,带有 echo 命令的前面)

http://www.kler.cn/a/305432.html

相关文章:

  • MySql结合element-plus pagination的分页查询
  • MyBatis CRUD快速入门
  • 网页版五子棋——对战模块(服务器端开发②)
  • Objection
  • 10款PDF合并工具的使用体验与推荐!!!
  • scrapy爬取中信证券销售金融产品信息
  • c++基础入门二
  • 【RabbitMQ 项目】服务端:数据管理模块之消息队列管理
  • 速盾:高防服务器租用需要注意什么事项
  • FPGA开发:模块 × 实例化
  • postgres_fdw访问存储在外部 PostgreSQL 服务器中的数据
  • 无线麦克风哪款好用,手机领夹麦克风哪个牌子好,麦克风推荐
  • 软件开发详解:同城O2O系统源码的架构设计与外卖跑腿APP的开发要点
  • 在Linux中安装FFmpeg
  • Brave编译指南2024 Windows篇:拉取Brave源码(六)
  • bin | hex
  • OpenCV class1-C#+winfrom显示控件并内存管理
  • 计算机网络 ---- 计算机网络的体系结构【计算机网络的分层结构】
  • uni-app开发安卓应用
  • 150+个流行的Instagram标签(及如何找到并正确使用它们)
  • 半导体芯闻--20240913
  • Ubuntu 22.04 LTS 上安装 Docker
  • 混合整数规划及其MATLAB实现
  • Arcgis api 4.x 专题图制作之分级色彩,采用自然间断法;(使用simple-statistics JS数学统计库生成自然间断点)
  • npm切换淘宝最新镜像
  • 玩转springboot之为什么springboot可以直接执行