ubuntu下终端打不开的排查思路和解决方法

问题现象描述:ubuntu开机后系统桌面显示正常,其他图形化的app也都能打开无异常,唯独只有terminal终端打不开,无论是鼠标点击终端软件,还是ctrl+alt+t,还是alt+F2后输入gnome-terminal后按回车,这三种方式都无法打开

看到网上有不少博客说是因为python安装版本不对导致的,有的说是因为系统区域和语言设置不当

我知道我是因为语言或者地区设置问题,但是照着网上教程,在ubuntu系统设置界面里更改了系统的语言,输入法,地区,时区设置,最后都没能解决我的问题

解决思路:

第一步:目前由于gnome-terminal(也就是ubuntu系统的默认终端)打不开,需要找一个方法临时进入该系统的终端界面,才能继续后面的操作

方法一:在ubuntu系统界面下,使用alt+f(3-6)任意一个都行,打开一个虚拟tty终端,输入用户名和密码登陆进去

方法二:使用远程连接方式(ssh或者telnet或者VNC)都可以,前提是你已经安装了这些服务并且知道ubuntu的ip

方法三:alt+f(3-6)进入到tty虚拟终端后,在终端下载一个终端工具sudo apt-get install xterm

然后用xterm命令启动该终端工具,就会打开一个xterm类型的终端

第二步:重装gnome-terminal终端工具,如果重装后也不能解决,则按照第三步继续排查

sudo apt update
sudo apt install --reinstall gnome-terminal

第三步:通过终端系统异常日志来分析

journalctl -xe | grep gnome-terminal

journalctl -xe | grep Xorg

在我的异常日志中有这样几句话:

gnome-terminal-server[29724]: Locale not supported.
systemd[1837]: gnome-terminal-server.service: Main process exited, code=exited, status=9/n/a
systemd[1837]: gnome-terminal-server.service: Failed with result 'exit-code'.

红色字体描述的locale not supported,这表明在启动 gnome-terminal 时,gnome-terminal-server 由于地区设置问题而退出。这里的 Locale not supported 错误通常是由于系统的区域设置(如语言或编码)不正确或缺失,导致终端程序无法启动。

然后执行locale命令,看到以下内容:

注意看这里有几行显示 Cannot set XXX to default locale: No such file or directory,具体来说是因为LC_CTYPE="zh_CN.UTF-8"LC_COLLATE="zh_CN.UTF-8" 设置了中文区域,但并没有正确生成 zh_CN.UTF-8 这个语言环境

4,确定为区域和语言设置的原因导致,接下来修复它们

sudo dpkg-reconfigure locales

上面这条命令会打开一个界面,让你选择需要的语言环境。你要确保选中并生成 zh_CN.UTF-8 en_US.UTF-8 ,选中之后,保存并退出

然后运行以下命令,手动生成并应用语言环境

sudo locale-gen zh_CN.UTF-8
sudo locale-gen en_US.UTF-8
再次执行locale命令,如果此时没有类似Cannot set XXX to default locale这种报错,那么你应该就可以正常打开终端了,如下图所示

如果上面方法还是不行,就重启下ububntu再试,或者把

export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
export LC_ALL=zh_CN.UTF-8

这三句话加到~/.bashrc文件里,然后source ~/.bashrc,再试一下能不能打开

安装完Ubuntu作为双系统后,Windows时间Ubuntu时间可能会出现同步问题,这通常是因为Linux没有自动设置BIOS的RTC(Real Time Clock)时钟同步功能。当你从Windows启动时,它的硬件时钟可能没有更新到最新的网络时间。 解决这个问题的步骤如下: 1. **手动调整Windows时间**:确保你的Windows系统时间是准确的,可以连接到互联网手动校准。 2. **启用Ubuntu的RTC同步**:在Ubuntu下打开终端,输入以下命令: ``` sudo timedatectl set-ntp true ``` 这会开启Network Time Protocol (NTP)服务,让系统自动从网络同步时间。 3. **配置Ubuntu开机同步**:编辑 `/etc/default/rcS` 文件,将 `UTC=true` 设为 `UTC=false`,然后重启系统,让Ubuntu在启动时同步一次时间。 4. **设置启动后自动同步**:你可以创建一个脚本,在Ubuntu启动时运行`sudo ntpdate time.nist.gov` 来同步时钟。为此,新建一个名为 `sync_time.sh` 的文件,内容如下: ```bash #!/bin/bash ntpdate time.nist.gov ``` 然后赋予执行权限: ``` chmod +x sync_time.sh ``` 将此脚本添加至`cron`定时任务,比如每天开机时自动运行。 5. **检查并修复引导过程**:确保你的GRUB(GRand Unified Bootloader)引导菜单设置正确,Ubuntu应该在启动时尝试同步时间。 如果以上步骤完成后问题依然存在,可能是BIOS设置的问题,需要进入BIOS中手动设置RTC为网络同步,并保存设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值