芒果爱吃胡萝卜 - ctrl
type: channel
link: http://blog.mangolovecarrot.net/tag/ctrl/
items: ubuntu18.04桌面版开机进入命令行模式
items: 树莓派搭建 DNS 服务器
items: screen命令怎么重新连接上状态为attached的session

ubuntu18.04桌面版开机进入命令行模式
type: item
date: 2021-04-27T01:14:49+08:00
description: 我们大部分个人的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 服务器
type: item
date: 2021-04-21T03:13:00+08:00
description: 自建 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 ech…

screen命令怎么重新连接上状态为attached的session
type: item
date: 2020-11-27T02:09:55+08:00
description: 问题使用 screen 过程中可能会遇到提示状态为 attached，然后就怎么也连不上，也无法恢复这个 screen。比如本来连接上的终端窗口没有Ctrl+A+D退出screen就关闭了，比如终端PC突然断网失去连接了，再次脸上终端后就会出现这种情况。解决只需要一行命令即可：screen -D -r ＜session-id>也就是在 -r 前面加个 -D，先踢掉之前登陆的用户，然后就可以正常登陆了。