编程问题排查记录
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 指定行号