编程问题排查记录

Linux

1.创建ubuntu虚拟机后使用su命令出现认证失败

原因:最开始root用户没有设置密码
解决方法:使用 sudo passwd 命令更改密码(首次输入密码不能使用登录密码)

2.linux虚拟机用户名和主机名不一致

原因:使用 vmware 创建虚拟机时设置个性化 linux 全名
解决方法:使用命令 sudo vim /etc/passwd 将两处内容修改一致
lifthong❌1000:1000:lifthong,,,:/home/liftong:/bin/bash
附:修改注主机名 sudo vim /etc/hostname

3.VScode连接Linux出现:Host key verification failed.过程试图写入的管道不存在

原因:之前使用过 remote SSH 连接Linux,然后用重新设置了一个新的Linux地址,导致C:\Users${用户名}.ssh目录下的known_hosts发生了冲突
解决方法:删除known_hosts文件即可

4.运行程序出现version `GLIBC_2.34‘ not found

原因:程序依赖了更高版本的库文件(例在高版本ubuntu编写的c文件,在低版本运行)
解决方法:添加一个高级版本系统的源,升级libc6

//更新源
sudo vi /etc/apt/sources.list
deb http://th.archive.ubuntu.com/ubuntu jammy main    #添加该行到文件
sudo apt update
//升级libc6
sudo apt install libc6

5.虚拟机没网,没有ens33网卡,重启网络服务出现Failed to stop network-manager.service: Unit network-manager.service not loaded.

解决方案:
1.删除NetworkManager缓存文件

service NetworkManager stop
 
rm /var/lib/NetworkManager/NetworkManager.state
 
service NetworkManager start

2.修改/etc/NetworkManager/NetworkManager.conf

sudo vim /etc/NetworkManager/NetworkManager.conf 

将managed=false修改为managed=true
3.重启网络服务

systemctl list-unit-files | grep network
sudo systemctl restart systemd-networkd.service

右上角出现网络标志

6.安装VMware tools之后从windows复制文件到ubuntu发现没有成功

解决方案:
先卸载ubuntu中的vmware tools工具

sudo apt purge open-vm-tools-desktop

卸载完成后,先关闭虚拟机,然后再重新启动,在开始启动还没有进入系统时,重新安装vmware tools选项
注:确认虚拟机CD没有使用iso,卸载时提示的自动安装软件也要卸载

7.远程使用图形化界面时出错:MoTTY X11 proxy: Unsupported authorisation protocol

普通用户报错,root用户不报错的解决方法:
cp /root/.Xauthority /home/xxx/
普通用户不报错,root用户报错的解决方法:
cp /home/xxx/.Xauthority /root/
xxx为用户名

8.使用root用户登录linux显示access denied

分析原因:一般linux系统是默认禁止远程登录root用户
解决办法:需要修改 /etc/ssh/sshd_config 配置,允许登录
1.编辑配置文件

vi /etc/ssh/sshd_config

2.文件中找到PermitRootLogin

#PermitRootLogin without-password

将#去掉,without-password改为yes

PermitRootLogin yes

3.退出并保存,重启ssh

service sshd restart

9.域名无法解析

使用

sudo vim /etc/resolv.conf

在文件中添加

nameserver xxx.xxx.xx.x #网关

如果使用后再次无法解析域名,查看发现写入的域名消失可以修改 /etc/systemd/resolved.conf 文件,在其中添加dns信息,如DNS=8.8.8.8 114.114.114.114保存退出。
依次执行如下命令:

sudo systemctl restart systemd-resolved
sudo systemctl enable systemd-resolved
sudo mv /etc/resolv.conf  /etc/resolv.conf.bak
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

10.sudo: 无法解析主机:ubuntu: 名称或服务未知

原因:/etc/hosts 文件中缺少该主机名
要解决此问题,请编辑此文件并添加新行并使用主机名设置环回地址。您可以使用 Vim 在命令行中编辑文件。

127.0.0.1 <hostname>

11.清除终端的命令历史记录

windows

Remove-Item (Get-PSReadlineOption).HistorySavePath

linux

# 1.删除部分历史记录
vim ~/.bash_history 
# 滚动光标到指定行,敲dd删除行命令即可删除只能行内容记录,然后:wd 退出即可
  
# 2.删除全部记录
echo > ~/.bash_history # 删除当前用户的所有记录

echo > /root/.bash_history #删除root用户的所有的历史记录

# 3.删除当前Shell的历史记录
history -c

# 4.删除不希望其他人看到的命令并保存文件退出
history -r 

# 5.删除指定行的历史记录
history -d 指定行号