今日经历
血的教训
今天凌晨,服务器突然显示没有lighthouse文件夹路径。退出后就再也登不上去了。
重启、关机什么都不行,等了好一会儿也不行,于是便关闭电脑先睡觉了。
早上一起来就是登录,发现同样的问题,担心是中病毒了,但是有没有中病毒的特征。
而且,它显示“一键自动登录未安装”,我感到有些蹊跷,会不会是系统文件损坏了?
后来尝试各种登录方式,在VNC登录里发现了问题:
grub rescue损坏
网上一搜,全是教你如何重装系统的,看来只能重装了。还好没有什么重要的数据。
再次踩坑
一切重头开始后,我在安装chrome-browser后,它提示我说有些无用的包可以删除,于是我便运行了:
sudo apt-get autoremove
继续安装,结果提示说“你将持有一个损坏的包”:
E: Unable to Correct Problems ‘You have Held Broken Packages'
网上一查,果然,是autoremove惹的祸。
开始补救
使用命令vi
可以打开vim编辑器
在/var/log/apt/history.log
中找到autoremove的记录,复制它们,粘贴到docx文档里面进行整排。
首先尝试将括号里面的内容都替换掉(*)
,结果它并没有如我所愿的,一个 ‘(’ 对应一个 ‘)’ 地替换。我先将逗号替换为换行符,然后开始尝试其他方法。
最终在excel表里面粘贴,然后使用'sudo apt-get install '&A1&' -y'
将命令弄好了。
我学到的vim使用方法:
- a, i, o 可以开启写入
- 写好后按Esc,接着输入:wq (文件名)
如果是vi进入的,则需要文件名;如果是vim打开已有文件,则不用。
- wq!是覆盖写入
- 如果想清除所有内容,在按Esc后输入"ggdG"
- 在命令后面加上 -y,就不用自己去输入y来同意继续了
编辑好退出后,就使用chmod +x 文件名
进行编译,接着使用./文件名
运行即可(亲测这种方式可以运行各种终端命令,但不建议这样使用,因为图中如果出错就难办)
补救失败
本以为可以补救成功,结果在安装过程中提示互相依赖,结果都安装不了。
再次重装
这次使用了vi的方式来一键安装云崽bot,结果…中途真的出错了,还是得一步一步来啊!
安装另一个机器人
之前也出过问题,jieba-fast死活安装不了,无奈尝试通过xftp来传输tar.gz文件,手动安装,结果还是不行。
不过报的错也算有进步,显示没有Python.h的库文件。
解决方法是
sudo apt-get install python-dev
sudo apt-get install python3-dev
然而却有这种错:
The following packages have unmet dependencies:
python3-dev : Depends: python3 (= 3.6.7-1~18.04) but 3.8.2-0ubuntu2 is to be installed
Depends: libpython3-dev (= 3.6.7-1~18.04) but it is not going to be installed
Depends: python3.6-dev (>= 3.6.7-1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
然后我想起来了,我好像遇到过这种问题,去/etc/apt/
里找source.list换官方源就行。
官方镜像源
deb http://cn.archive.ubuntu.com/ubuntu focal main restricted
deb http://cn.archive.ubuntu.com/ubuntu focal-updates main restricted
deb http://cn.archive.ubuntu.com/ubuntu focal universe
deb http://cn.archive.ubuntu.com/ubuntu focal-updates universe
deb http://cn.archive.ubuntu.com/ubuntu focal multiverse
deb http://cn.archive.ubuntu.com/ubuntu focal-updates multiverse
deb http://cn.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu focal-security main restricted
deb http://cn.archive.ubuntu.com/ubuntu focal-security universe
deb http://cn.archive.ubuntu.com/ubuntu focal-security multiverse
使用tar.gz文件安装python依赖包
- 谷歌搜索该安装包名称,新版的可以在这里面直接下载,旧版的可以在前面的网页中找到项目后,根据它简介中的链接到github项目,然后在release里面找。
- 使用
tar -xf
命令解压。 - 输入
python setup.py install
安装。 - 输入
pip list
查看是否安装成功。
ps:不得不说,xftp传文件巨方便
糟糕的经历——可能又要重装了
出现了sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
的问题
使用su
却su: Authentication failure
了。
终于发现原因了。。。我在给一个文件夹chmod时,不小心chmod 777 / -R
了,导致所有文件全部变成了777,于是便无法访问了。
还好,通过腾讯的自动登录,使用用户名root登录上去了
出现过的问题
sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
-----------------------------------------------------
sudo: error in /etc/sudo.conf, line 0 while loading plugin "sudoers_policy"
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins
-----------------------------------------------------
su: Authentication failure
-----------------------------------------------------
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
获取root权限后恢复远程连接的操作:
chmod 550 /root
chmod 600 /root/.ssh
chmod 755 /var/empty/sshd
chmod 400 /etc/ssh/*
service sshd restart
普通用户提升权限
sudo vim /etc/passwd
,然后找到该用户名,将它后面的数字改为0:0
重启后生效
备份权限
getfacl -pR / > ~/sys_backup.bak
其中p代表采用绝对路径,R代表递归保存/下所有文件,
~/sys_backup.bak表示将生成的系统权限文件保存到用户的sys_backup.bak文件中(后缀名一般就是bak), 路径和文件名都是可以修改的
还原权限:
setfacl --restore=文件名
今日总结
vim
- a, o, i //开启写入
- :wq //保存退出,加!就是覆盖
- ggdG //清除所有内容
文件相关
./
是当前目录,而/
是根目录
编译命令
- chmod +x 文件名 //可以编译出在终端运行命令的程序
压缩命令
- tar -cf 打包后的名字 文件夹名 -C 目标路径 //可以打包文件夹,直接放到本文件夹就可以去掉-C以及后面的内容
tar -xvf 文件名 -C 目标路径 //解压文件
权限相关
- chmod 777 文件名 -R //所有人可以读写该文件及其子文件的内容(-R是递归,不能小写)
- sudo ufw status //查看防火墙状态
- sudo ufw enable/disable //开关防火墙
python相关
- python3 -m pip config set global.index-url 源 //换源
- https://pypi.python.org/simple/ //官网依赖包网址
- https://pypi.org/project //算是官网吧,可以找project
- python -m pip install --upgrade pip //更新pip
- pip3 install -U --upgrade --timeout 10000 包名 //如果出现runtimeerror之类的