我们大部分个人的linux系统计算机都是使用图形界面模式的操作，有些时候我们也可以在纯命令行模式下进行操作，这里给大家介绍一个在开机启动的时候进入命令行的两种方法。系统启动后，在BIOS引导界面按“ESC”键进入选择菜单，选择第一个“Ubuntu”，按“e”键进入编辑模式。在出现的编辑项里，可以看到GRUB解析给内核的参数。我们在该行末尾给出引导运行级别，3（多用户模式，纯文本）。然后按CTRL+X或F10引导系统，启动之后就是命令行模式了。这种方法只是一次临时性的，并不是永久性的，在下一次系统重启后，如果不做修改的话，还是会进入图形界面模式。如果要每次开机都进入到命令行模式的话，需要在/etc/default/grub里面配置。/etc/default/grub 将GRUB_CMDLINE_LINUX_DEFAULT一行中改为"quiet splash 3"。保存退出后，使用update-grub命令来基于这些更改重新生成/boot下的GRUB2配置文件。update-grub 重启即可每次都进入命令行模式了。[scode type="blue"]关于Linux系统的引导运行级别，一般默认的是5（多用户图形界面），就是我们常用的那种。设置为1启动单用户模式，会进入root shell。[/scode][scode type="yellow"]我们在图形界面系统启动后，按CTRL+ALT+F1也可以切换到命令行模式，但这种情况下，图形界面GUI是在后台运行着的，按CTRL+ALT+F7会切换回来。我们直接在引导时启动，按CTRL+ALT+F7不会切换到图形界面的。[/scode][scode type="green"]另外，如果系统是安装在笔记本上，当合上盖子后一般会强制休眠，如果想合上盖子不休眠的话参见下面的文章设置即可[/scode][post cid="254" /]
自建 DNS 服务器，可以规避运营商的 DNS 劫持，还可以一定程度上加速网络访问。除此之外，在自定一些配置之后，能实现广告拦截及其他的一些功能。在这里我们通过在树莓派使用 dnsmasq 搭建这样一个 DNS 服务器。安装 dnsmasqsudo apt-get install dnsmasq配置 dnsmasq首先备份一下原配置文件，命令行如下：sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak接着编辑配置文件，命令行如下：sudo vi /etc/dnsmasq.conf这里，我们首先按下 esc 进入命令模式，然后使用快捷键 yddG 清空文件，之后使用 i 进入插入模式，ctrl+v 粘贴如下配置内容，粘贴完成后按下 esc，最后使用 :wq 保存文件：resolv-file=/etc/my_dns.conf strict-order cache-size=10000 listen-address=127.0.0.1,192.168.0.100 #address可以多行，每行一条dns规则 address=/blog.mangolovecarrot.net/192.168.0.222 address=/mangopi.cn/192.168.0.222其余各项解释：resolve-file：定义 dnsmasq 的上游DNS服务器，默认是 /etc/resolv.conf。但是 resolv.conf 在每次树莓派重启后就会被系统重置，因此我们手动指定 resolve-file 文件（后面会编辑该文件）strict-order：表示严格按照 resolv-file 文件中的顺序从上到下进行DNS解析listen-address：定义 dnsmasq 监听的地址，默认是监控本机的所有网卡上。为使局域网其他设备得以使用需要加上树莓派的局域网 ipcache-size：缓存条数address：自定义域名解析的 ip 地址，以 pi.com 这个域名为例。也可以在其他文件中配置，配置文件放在 /etc/dnsmasq.d/ 中即可。例如可以在 /etc/dnsmasq.d/ 下新建文件test.conf，加入该规则，效果等同编辑 my_dns.conf，命令行如下：sudo nano /etc/my_dns.conf粘贴如下内容：nameserver 127.0.0.1 #以下两行设置自己路由器自动获取到当地的DNS nameserver 119.29.29.29 nameserver 182.254.116.116ctrl+o 保存，之后 回车 确认，然后 ctrl+x 退出。附注，各大 dns（推荐 DNSpod）： 114 dns： 114.114.114.114 114.114.115.115 阿里 dns： 223.5.5.5 223.6.6.6 DNSpod： 119.29.29.29 182.254.116.116 参考资料：https://www.v2ex.com/t/250719参考资料：https://www.v2ex.com/t/250719广告拦截（无需要的话可跳过）dnsmasq 会优先检测 hosts 文件，并通过其解析 ip，我们可以通过修改树莓派 hosts 文件实现拦截广告的需求和其他的一些需求。在用户目录(/home/pi)建立 hosts 文件夹，在文件夹内放置一个 hosts.sh 脚本，修改文件权限：cd ~ mkdir hosts cd hosts touch hosts.sh sudo chmod 777 hosts.sh之后编辑文件，命令行如下：nano hosts.sh粘贴如下内容：#!/bin/sh cd /home/pi/hosts/ echo "***下载 g hosts 文件***" wget --no-check-certificate https://raw.githubusercontent.com/googlehosts/hosts/master/hosts-files/hosts -O hosts_g.txt; echo "***下载 ad hosts 文件***" wget --no-check-certificate https://raw.githubusercontent.com/vokins/yhosts/master/hosts -O hosts_ad.txt; echo "***合并 hosts 文件***" cat hosts_g.txt hosts_ad.txt > hosts.txt echo "***复制 hosts 文件***" sudo cp hosts.txt /etc/hosts echo "***hosts 文件更新完成"ctrl+o 保存，之后 回车 确认，然后 ctrl+x 退出。编辑完成之后运行一下，命令行如下：sudo sh hosts.sh设置定时执行更新 hosts 脚本，命令行如下：sudo crontab -e添加如下内容至文件末行（每天三点半执行一次）：30 3 * * * sh /home/pi/hosts/hosts.sh设置完毕后重启服务，测试重启 dnsmasqsudo service dnsmasq restart查看 dnsmasq 状态sudo service dnsmasq status查看网络状态可以通过 dig 一下相关网址来测试 dns 是否生效。如果未安装 dnsutils，则通过如下命令安装：sudo apt-get install dnsutils之后可以通过如下命令行简单测试：dig mangopi.cn内网其他设备使用这台dns首先，如果条件允许可以直接在路由器配置，即配置路由器 LAN 口的 DNS 为树莓派 ip，这样便无需单独为设备配置。例如：华硕路由器（RT-AC68U），设置 内部网络-DHCP 服务器-DNS Server 1 为树莓派 ip，之后应用即可，其他设备大同小异。我的路由器的DNS是不可更改的，所以只好单独设置各设备的DNS。在设备上单独设置方法如下：手机wifi设置为静态，修改两个DNS服务器IP，主服务器填入树莓派IP，副服务器一般填写网关IP，也就是路由器IP。一般为192.168.0.1。注意顺序别反了，要优先使用树莓派的DNS服务。macOS：打开网络设置-高级-dns，配置为树莓派 ip 即可。Windows：控制面板-网络和Internet项-查看网络状态和任务-更改适配器设置-右键正在使用的本地连接-属性-双击Internet协议4（TCP/IPV4），将内容填写至相关部分即可。原文链接
问题使用 screen 过程中可能会遇到提示状态为 attached，然后就怎么也连不上，也无法恢复这个 screen。比如本来连接上的终端窗口没有Ctrl+A+D退出screen就关闭了，比如终端PC突然断网失去连接了，再次脸上终端后就会出现这种情况。解决只需要一行命令即可：screen -D -r ＜session-id>也就是在 -r 前面加个 -D，先踢掉之前登陆的用户，然后就可以正常登陆了。