使用Debian时遇到的问题

目前在学习Debian,然后发现一路都是坑,与之前接触的Ubuntu在使用上还是有点差别的。Debian更加原生,也更加稳定,坑也更多。为了防止后来者继续踩坑,特意写了此文用于记录总结初学者在学习过程中遇到的各种问题。

切换系统语言环境

在Debian系统中,若是设置了中文环境后,在终端进行操作时,将会遇到中文错误提示等信息显示为乱码的问题。这时候,部分朋友选择了重新安装系统。然而,其实并不用重新安装,只要进行语言的切换就可以了。

命令行执行:

$ sudo dpkg-reconfigure locales

将打开一个选择语言的窗口,在此窗口中选择英文环境的字符集项,此例中选择en_US.utf-8,即按空格选中复选框,将中文环境的包 (zh_CN.utf-8) ,将复选框去掉选择后敲回车,确定安装即可。

可使用以下命令查看是否安装成功:

$ locale -a

系统将输出如下内容:

1
2
3
4
C
C.UTF-8
POSIX
en_US.UTF-8

然后输入$ reboot 重启系统即可。

若是担心英文环境下操作不方便也可切换为繁体中文(zh_HK.utf-8)

gedit找不到命令

直接重装下gedit即可。

打开终端,输入代码:

sudo apt-get remove gedit

回车后输入:

sudo apt-get install gedit

中文输入法不可用

系统刚刚装好后随即安装了fcitx-googlepinyin输入法,发现输入法各种ctrl+space或者ctrl+shift一通乱按就是什么也看不到,几经折腾发现是因为根本就没有Ui控件…

还需要安装输入法前端所需要的ui动态库

打开终端,输入:

1
apt-get install fcitx-ui-classic && apt-get install fcitx-ui-light

安装完成后打开fcitx的配置工具,根据需要删除掉不需要的输入法。

然后reboot 重启系统,就可以看到按下快捷键后输入法弹出来了。然而这里又有一个坑,因为 输入法默认字号是零 ,记得在Appearance页签内重新设置字号。

更新163源

终端输入:

1
gedit /etc/apt/sources.list

复制以下内容保存即可

deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib

直接保存即可

然后运行下面的命令用于更新配置

apt-get update

切换系统用户

更新源的时候可能会遇到无法保存的问题,是因为这个权限不够,这时候有两个办法。

这里先说第一个办法,切换系统用户到root后再执行上述命令。

1
su root

然后会让你输入root用户密码,此处密码无输入效果。输入后按回车即可。

然后就可以看到看到系统用户已经成功改为root最高权限用户了。

以此类推,切换回原来用户只需要再执行一遍su username 指令后输入该用户对应的密码即可。

另外,sudo su 指令同样可以切换用户。但是可能会报下面的错误

sudo指令报错

上面说的另一个办法就是在语句前加sudo 用临时权限执行。

初次使用这个指令可能会报错:

当前用户不在sudoers文件(/etc/sudoers)里面,直接使用sudo命令是不允许的,会被系统记录并向root反馈

处理这个问题很简单,但应该先理解其原理再操作。
首先要明白root的密码一般用户是不应改知道的,但一般用户有时可能要用到root的一些权限。
这里就有了一个 /etc/sudoers 文件,用来保存一些用户,使这些用户可以通过sudo命令来暂时获取root的权限。这些用户使用sudo时输入的密码是当前用户密码,而不是root密码。还可一在sudoers文件里限制一般用户的权限,这样就有了安全保证。

那么我们就来解决这个问题:

  1. 切换到root用户

    $ su root

  2. 查看/etc/sudoers权限

    $ ls -all /etc/sudoers

  3. 更改权限为777

    $ chmod 777 /etc/sudoers

  4. 编辑/etc/sudoers

    $ vi /etc/sudoers

    这个命令的意思是使用vi编辑器打开文件。

  5. 添加当前用户

    可以看到打开的文件内容为:

    root ALL=(ALL:ALL) ALL

    在后面追加一行

    vick ALL=(ALL:ALL) ALL

    vi中刚进去是命令模式 按 i 或者 insert 进入编辑模式,编辑完了之后按ctrl+c或者esc退出编辑模式。之后输入命令 :wq ,保存离开。

  6. 把/etc/sudoers权限改回原来数据

    $ chmod 690 /etc/sudoers

这里也可以不查看及修改权限,直接用root用户打开并修改文件后,使用:wq! 指令强制保存并离开。不过最好重新打开看下有没有保存成功