MAC终端输入换行问题

问题描述

当在Mac终端首行输入命令行过长时,会把第一行前面的信息覆盖,直到将第一行填满才会自动换行,如下图:
在这里插入图片描述
在这里插入图片描述

问题分析

找了好久才发现是之前配置终端格式的时候造成的,Mac原生的终端界面是这种:
在这里插入图片描述
在这里插入图片描述
可以看到是支持换行的,只是后来为了美观,在配置文件.bash_profile里设置了一下就无法换行了。

解决方法

解决方法有两种:

  1. 通过换行符,可以不用还原配置文件,但是以后使用比较麻烦,每次需要输入长命令时都需要先输入\
  2. 重新配置 .bash_profile ,从根源解决问题,这样既能保证美观,又能换行。这个也是正确的配置方式(推荐)

解决方法详情

1.通过换行符 \ 解决

[superfarr@14:22:39]~$ 所在行输入过长信息时,首先 打上换行符 \,这样命令就会跳到下一行输入,如下图,先输入 \,然后光标跳到下一行,在 > 后面输入命令
在这里插入图片描述
2.重新配置 .bash_profile

.bash_profile是个隐藏文件,可使用快捷键 ⌘⇧.(Command + Shift + .) 来快速(在 Finder 中)显示和隐藏隐藏文件。

Mac下的.bash_profile 文件的路径是 /Users/YourMacUserName/.bash_profile (如果该文件已经创建过的话)。如果找不到就全局搜索。

找到该文件后,用Mac自带的编辑器打开,然后修改。修改之前最好先弄懂语句的含义,不了解含义的话,很容易改错,导致无休止的麻烦。

在bash中,所有在PS1中的非打印字符都必须用\[\]将其包起来,否则在计算提示符长度时也会将其计算在内,导致其无法正确地换行,也就出现了回到行首的情况。

相关的命令及其示意参考下文,其实只要弄懂基本的命令,就知道问题出在哪了。

参考: https://www.cnblogs.com/menlsh/archive/2012/08/27/2659101.html

telnet 编辑换行问题可能是由于同操作系统或终端换行符导致的。在大多数情况下,换行符是由回车符(CR)和换行符(LF)组成的。同的操作系统使用同的换行符表示方式,例如: - Windows 使用回车符(CR)和换行符(LF)表示换行,即"\r\n"。 - Unix/Linux 使用换行符(LF)表示换行,即"\n"。 - Mac 使用回车符(CR)表示换行,即"\r"。 因此,当你在 telnet 会话中输入换行时,服务器可能会根据同的操作系统和终端解释换行符。如果你的服务器回发的数据与原来客户端自己输入的数据之间换行,可能是因为服务器没有正确解释换行符。 为了解决这个问题,你可以尝试以下方法: 1. 在客户端发送数据时,确保使用正确的换行符。例如,在 Windows 中,你可以使用"\r\n"作为换行符。 2. 在服务器端接收到客户端发送的数据后,检查换行符的类型,并根据需要进行处理。你可以使用字符串的 replace() 方法将同类型的换行符替换为统一的换行符。 下面是一个示例代码,演示了如何在 telnet 会话中处理换行符: ```python import telnetlib def handle_newline(data): # 检查换行符类型 if "\r\n" in data: # 将"\r\n"替换为"\n" data = data.replace("\r\n", "\n") elif "\r" in data: # 将"\r"替换为"\n" data = data.replace("\r", "\n") return data # 创建 telnet 连接 tn = telnetlib.Telnet("hostname", port) # 发送数据并接收回复 tn.write(b"Hello\r\n") data = tn.read_until(b"\n") # 处理换行符 data = handle_newline(data.decode()) # 打印回复数据 print(data) # 关闭连接 tn.close() ``` 请注意,上述代码中的 "hostname" 和 port 需要替换为你实际的 telnet 服务器地址和端口号。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值