Linux下如何切换到root用户
默认安装完成之后并不知道 root 用户的密码,那么如何应用 root 权限呢?
- sudo 命令
Linux sudo 命令以系统管理者的身份执行命令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
使用权限:在 /etc/sudoers
中有出现的使用者。
- sudo -i|-s
debian@debian:~$ sudo -i
通过这种方法输入当前管理员用户的密码就可以进到 root 用户。
- 如果想一直使用 root 权限,要通过 su 切换到 root 用户
那我们首先要重设置 root 用户的密码:
debian@debian:~$ sudo passwd root
这样就可以设置 root 用户的密码了。
- 之后就可以自由的切换到 root 用户了
debian@debian:~$ su - root
输入 root 用户的密码即可。
输入 exit
,则回到用户权限。
Debian修改vim的Tab为4个空格
演示环境
debian@debian:~$ cat /etc/debian_version
7.11
操作步骤
- 编辑
vim /etc/vim/vimrc
- 在文件最后添加以下内容
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set nu
说明:
- tabstop:一个 tab 显示多少个空格的长度,vim 默认为 8。
- softtabstop:编辑模式的时候按退格键的时候退回缩进的长度。
- shiftwidth:每一级缩进的长度,一般设置成跟 softtabstop 一样。
- expandtab:缩进用空格来表示。
- noexpandtab:缩进用制表符表示。
- nu:默认显示行号。
注:expandtab / noexpandtab 二选一。
Xshell终端主机名和用户名显示颜色
问题描述:第一次使用 Xshell 终端远程 Linux 服务器,发现 Xshell 终端主机名和用户名不显示颜色,很不方便,命令行数据一多就找不到终端主机名和用户名了,如下图所示
输入命令 ls
之后变色了,但是变色的仅仅只是文件夹部分,命令行开始的 debian@debian:~$
部分还是白色的,和其它部分一样,颜色还是不显眼。
解决方法:
- 打开家目录下的
.bashrc
文件:vim .bashrc
- 找到上图中被框起来的部分:
#force_color_prompt=yes
,把此行注释手动去掉。 - 按
Esc
键,输入:wq
保存退出。 - 加载
.bashrc
文件:source ~/.bashrc
如此就可以看到效果了,如下图所示
Linux切换到root用户后没有颜色
我用的是 Debian 系统,非 root 模式下命令行是有配色的,但是切换到 root 模式后就变成纯白色了,如下图所示
实际上颜色文件是保存在 ~/.bashrc
里的,而 ~/.bashrc
里面的 PS 变量是只作用在当前用户的终端的,切换到 root 之后就需要给 root 重新设置 PS 变量,默认的 /root/.bashrc
是空的。
我们看下非 root 下的 ~/.bashrc
文件:cat ~/.bashrc
然后切换到 root 模式,再看一下:cat root/.bashrc
,很明显为空。
把我们需要的 PS 设置复制到 /root/.bashrc
,就可以修改颜色了。
sudo cp ~/.bashrc /root/.bashrc
Debian SSH登录慢的解决办法
在通过 SSH 登录无外网连接的 Debian 系统时,提示输入密码前会有一个延时。Google了一下,通常的答案是关闭 GSSAPI 认证。打开 /etc/ssh/ssh_config
,修改
GSSAPIAuthentication no
但是为什么会这样呢?想到有外网连接时正常,怀疑是 DNS 解析造成的影响,通过抓包验证了这个推断。原来在登录时,SSH 服务端会对客户端的 IP 做反向解析,此时连接不到 DNS 就出现了延时。解决办法是,打开 /etc/ssh/sshd_config
,修改(如果没有就新增一行)
UseDNS no
解决Debian 10中的“xxx is not in the sudoers file”
在用 sudo
命令时提示 “xxx is not in the sudoers file. This incident will be reported.”。其中 xxx 是你的用户名,也就是你的用户名没有权限使用 sudo
,我们只要修改一下 /etc/sudoers
文件就行了。下面是修改方法:
- 进入超级用户模式。也就是输入
su -
,系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。 - 添加文件的写权限。也就是输入命令
chmod u+w /etc/sudoers
。 - 编辑
/etc/sudoers
文件。也就是输入命令vi /etc/sudoers
,输入i
进入编辑模式,找到这一行root ALL=(ALL:ALL) ALL
,并在其下面添加xxx ALL=(ALL:ALL) ALL
(这里的 xxx 是你的用户名),然后保存(先按一下Esc
键,然后输入:wq
)退出。 - 撤销文件的写权限。也就是输入命令
chmod u-w /etc/sudoers
。
在Debian 10上安装GCC编译器
GNU 编译器集合(GCC)是一个开源的编译器和库集合,支持 C、C++、Objective-C、Fortran、Ada、Go 等编程语言。Linux 内核,GNU 实用程序和许多其它项目都是使用 GCC 编译的。
本教程解释了如何在 Debian 10 Buster 上安装 GCC 编译器,相同的说明适用于 Debian 9 和任何基于 Debian 的发行版。
默认的 Debian 存储库包含一个元数据包 build-essential
,其中包含 GCC 编译器以及编译软件所需的其它库和实用程序。按照以下步骤安装 GCC Compiler:
- 更新包列表
sudo apt update
- 安装
build-essential
软件包
sudo apt install build-essential
您可能还希望安装包含有关使用 GNU/Linux 进行开发的文档的手册页
sudo apt-get install manpages-dev
- 确认 GCC 编译器已成功安装
gcc --version
Debian 10 存储库中可用的默认 GCC 版本是 8.3.0,如下图所示
gcc (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
至此,您已在 Debian 计算机上成功安装了 GCC。
解决Debian 10中的“No manual entry for gcc”
当安装完 build-essential
软件包后,gcc-8
安装成功了,但是 man pages
却不可用
$ man gcc
No manual entry for gcc
See 'man 7 undocumented' for help when manual pages are not available.
并且,man pages
并不是由 gcc-8
(或 gcc-7
)提供的
$ dpkg -L gcc-8 | grep -i man
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/x86_64-linux-gnu-gcc-ar-8.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gcc-nm-8.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gcc-ranlib-8.1.gz
/usr/share/man/man1/gcc-ar-8.1.gz
/usr/share/man/man1/gcc-nm-8.1.gz
/usr/share/man/man1/gcc-ranlib-8.1.gz
解决办法:
Debian 10 的默认编译器是 GCC 8,但是 GCC 8 对应的文档没有打包在 Debian 10 的发布版本中,而是在 backports
下的 gcc-doc
包中。为了能够安装 gcc-doc
,你需要启用 backports
,使用如下命令安装
$ echo deb http://deb.debian.org/debian buster-backports main contrib non-free | sudo tee /etc/apt/sources.list.d/buster-backports.list
$ sudo apt update
$ sudo apt install -t buster-backports gcc-doc
然后,你就可以查看 gcc
的 man pages
了。