first commit

This commit is contained in:
momen
2021-10-21 14:57:58 +08:00
parent ba65bf40aa
commit 8184931095
572 changed files with 3165246 additions and 305 deletions

View File

@@ -0,0 +1,3 @@
# 5.1 备份还原硬盘 MBR开机进入命令行
开机进入命令行sudo systemctl set-default multi-user
恢复开机进桌面sudo systemctl set-default graphical

View File

@@ -0,0 +1,6 @@
# 5.10 sfdisk 创建磁盘 GPT 分区
命令sfdisk /dev/sdX
其中X为你要操作的硬盘编号例如a对应/dev/sda
输入命令help可看到分区示例“,200m”表示创建第一个分区大小200MB。
继续输入创建分区命令“,8g”并回车确认可创建大小为8GB的第二个分区。
利用磁盘剩余空间创建最后一个分区时,只需输入逗号“,”并回车即可。

View File

@@ -0,0 +1,11 @@
# 5.11 修改磁盘卷标
打开分区编辑器(GParted)软件,可以在磁盘格式化时设置所有支持格式的卷标。
如果不需要格式化,则可以先从“计算机”页面卸载目标分区,然后分区右键“重命名”,或者通过“分区 - Label File System”完成卷标设定。
对于不支持GParted格式化的分区例如exfat可以通过命令行来设定
sudo exfatlabel /dev/sdc1
USB各种磁盘格式的卷标对应的修改命令如下
`# mlabel or fatlabel for fat32`
`# ntfslabel for ntfs`
`# exfatlabel for exFAT`
`# e2label for ext2/ext3/ext4`
`# btrfs for BTRFS`

View File

@@ -0,0 +1,13 @@
# 5.12 跨平台可读写文件系统 exfat 的格式化
首先,通过“分区编辑器(GParted)”右键卸载相应分区后为U盘创建GPT分区表然后创建两个fat32主分区并应用。
其次需要用sudo fdisk -l查看磁盘或者分区信息例如
Disk /dev/sdb: 28.7 GiB, 30752000000 bytes, 60062500 sectors...
Device Start End Sectors Size Type
/dev/sdb1 2048 59447295 59445248 28.4G Microsoft basic data
/dev/sdb2 59447296 60061695 614400 300M Microsoft basic data
建议把第一个分区sdb1格式化成exfat格式以便在Windows、macOS和Linux都可以支持大文件读写。建议把第二个分区sdb2分区作为EFI引导分区大小300MB即可将来做启动盘使用。
最后将第一分区sdb1格式化成exfat磁盘格式
`sudo mkfs.exfat /dev/sdb1 -n USB`
注意1sdb1中的b和1因磁盘和分区数量不同而异不要照搬实际运用时需要酌情变更。
注意2如果将整个U盘格式化为exfat格式则可以
`sudo mkfs.exfat /dev/sdb`

View File

@@ -0,0 +1,11 @@
# 5.13 修改系统运行级别
当前级别查看runlevel
0 系统停机模式系统默认运行级别不能设置为0否则不能正常启动机器关闭。
1 单用户模式root权限用于系统维护禁止远程登陆类似Windows下的安全模式。
2 多用户模式没有NFS网络支持。
3 完整的多用户文本模式有NFS登陆后进入控制台命令行模式。
4 系统未使用,保留一般不用。
5 图形化模式,登陆后进入图形界面。
6 重启模式默认运行级别不能设为6否则不能正常启动。运行init 6机器就会重启。
更改运行级别:
sudo init 3

View File

@@ -0,0 +1,47 @@
# 5.14 离线安装软件
当没有网络连接的电脑上需要安装某个软件时,可以使用下面的脚本下载该软件以及依赖包,在脱机电脑上执行:
`sudo dpkg -i *.deb`
如果上述安装命令最后报错,则需要执行:`sudo apt install -f`
如果提示缺少软件包依赖则拷贝依赖包名例如XXX在有网络的电脑上执行`apt download XXX`下载,再拷贝到脱机电脑上双击安装即可。
批量下载脚本如下:
```bash
#! /bin/bash
pkg="$*"
function getDepends()
{
ret=`apt-cache depends $1 |grep -i 依赖 |sed 's/(.*)//' |cut -d: -f2`
if [[ -z $ret ]]; then
echo "$1 No depends"
echo -n
else
# echo $ret
# apt-cache depends $1 |grep -i 依赖
# echo ''
for i in $ret
do
if [[ `echo $pkg |grep -e "$i "` ]]; then
# echo "$i already in set"
echo -n
elif [[ $i =~ '<' ]]; then
echo "Drop $i"
elif [[ "$i" != "libc6" &&
"$i" != "libcairo2" &&
!("$i" =~ "glib") &&
!("$i" =~ "gtk") &&
!("$i" =~ "font")
]]; then
# echo "Download $i ing"
pkg="$pkg $i"
getDepends $i
fi
done
fi
}
for j in $@
do
getDepends $j
done
apt download $pkg -d -y
```

View File

@@ -0,0 +1,17 @@
# 5.15 升级操作系统内核
在Linux使用过程中由于系统自带内核版本太老或者存在一定程度的硬件支持缺陷用户往往会遇到诸如无线网卡信号不佳、网络连接不稳定、硬件设备无法识别和使用等问题。
如果您遇到了这些问题,可能就需要安装使用新版本内核来进行排查。
尽管新内核有可能解决部分硬件兼容问题,但是也有很大几率导致现有的闭源驱动无法正常使用。
请只有在当涉及硬件驱动问题而走投无路的时候,才更换内核。
Linux内核和上层应用的耦合程度较低所以一般不同发行版的内核可以通用。经测试Ubuntu的内核可以直接拿来给Deepin使用
https://kernel.ubuntu.com/~kernel-ppa/mainline/
寻找你想使用的内核版本例如5.4.28
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.28/
一般只下载带"all"和"generic"字样的包,例如:
`linux-headers-5.4.28-050428_5.4.28-050428.202003250833_all.deb`
`linux-headers-5.4.28-050428-generic_5.4.28-050428.202003250833_amd64.deb`
`linux-image-unsigned-5.4.28-050428-generic_5.4.28-050428.202003250833_amd64.deb`
`linux-modules-5.4.28-050428-generic_5.4.28-050428.202003250833_amd64.deb`
单独放在一个目录中,终端下执行:
sudo dpkg -i *.deb
重启,然后选择新内核引导项即可。

View File

@@ -0,0 +1,13 @@
# 5.16 自行编译内核
一般只在需要自行调整内核编译参数时,才需要自己编译内核。这是个费时又费力的活。
1. 安装必备工具和依赖:`sudo apt install build-essential fakeroot bisonflex libssl-dev libncurses5-dev`
2. 下载内核源码https://www.kernel.org/ ,选择版本,下载后右键“解压到当前文件夹”。
3. 进入源码所在目录右键“在终端中打开”拷贝旧配置文件cp /boot/config-`uname -r`* .config
4. 基于当前系统内核配置文件生成新内核配置文件:`make olddefconfig`
5. 调整内核编译参数,除非你清楚选项的作用,否则请忽略:`make menuconfig`
6. 多核编译:`make deb-pkg -j $(echo $(nproc)-1|bc)`
7. 编译完成后会在源码的上一级目录中生成deb安装文件`sudo dpkg -i *.deb` 安装即可。
注意:
1. 如果想修改参数再重新编译建议执行”make mrproper“清理一下
2. 上述第四步不建议使用默认配置make defconfig
3. 推荐阅读https://www.jianshu.com/p/9fbdfd919fc0

View File

@@ -0,0 +1,9 @@
# 5.17 重置所有用户配置
该方法仅当出现疑难杂症无法解决时,才考虑采取的不得已的手段,可以将所有用户配置重置,但也会丢失主目录下所有的资料。请在使用该方法前,一定要备份好主目录。这时就体现了存在一个自动挂载的数据盘的重要性了。
方法是在终端执行命令:`sudo init 3`
系统重启后会进入shell登陆。比如用户名是user则主目录是/home/user。
那么先手动删除主目录:`sudo rm -rf /home/user`
再重建主目录并获取所有权:`sudo mkdir /home/usersudo chown user:user /home/user`
重启reboot就行了。
注意请务必替换上面命令的user为你当前系统正在使用的用户名。
注意:请一定要先备份好主目录的资料,否则找不回!

View File

@@ -0,0 +1,3 @@
# 5.18 终端 Ctrl+R 执行历史命令
当在终端执行一些常用命令时比较高效的做法是调用历史命令。执行快捷键Ctrl+R输入需要执行命令的一部分找到需要的命令后回车执行。
查看更多的历史命令history 「所有历史命令都保存在~/.bash_history中

View File

@@ -0,0 +1,4 @@
# 5.19 更换用户名及家目录
终端执行sudo init 3进入shell并以root账户登陆之后执行
usermod -l new_username -d /home/new_username -m old_username
groupmod -n new_username old_username

View File

@@ -0,0 +1,6 @@
# 5.2 主目录被误删除的恢复方法
例如用户名是user主目录/home/user如果不小心把/home/user删除了就会导致无法进入DDE桌面但可以进shell。
Ctrl+Alt+F2进入tty2并登陆后重新创建主目录并设置为当前用户所有
sudo mkdir /home/user
sudo chown user:user /home/user
reboot重启。

View File

@@ -0,0 +1,7 @@
# 5.20 配置命令行默认 Python 版本
不推荐可能导致某些依赖python的软件出现问题在此仅作为示例介绍update-alternatives的基本用法。
首先需要在系统中添加Python2.7、Python3.5的选项默认为Python3.5优先级20
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 10
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 20
显示update-alternatives --display python
切换sudo update-alternatives --config python

View File

@@ -0,0 +1,3 @@
# 5.21.1 禁止某软件包升级
`echo "XXX hold" | sudo dpkg --set-selections`
`apt-mark hold XXX`

View File

@@ -0,0 +1,3 @@
# 5.21.2 允许某软件包升级
`echo "XXX install" | sudo dpkg --set-selections`
`sudo apt-mark unhold XXX`

View File

@@ -0,0 +1,2 @@
# 5.21.3 修正 dpkg -i *.deb 安装后缺少依赖
`sudo apt install -f`

View File

@@ -0,0 +1,2 @@
# 5.21.4 强制清除
`sudo dpkg --purge --force-all XXX`

View File

@@ -0,0 +1,2 @@
# 5.21 软件包管理技巧

View File

@@ -0,0 +1,7 @@
# 5.22.1 通过源码编译升级软件包
1. 安装公钥:`sudo apt install debian-keyring` #开发者公钥
2. 安装依赖:`sudo apt build-dep XXX`
3. 下载源码:`apt source XXX`
4. 替换源码或修改源码
5. 重新编译cd 源码目录 && dpkg-buildpackage -rfakeroot -uc -b
6. 覆盖安装:`sudo dpkg -i *.deb`第5步执行之前可能需要先安装制作工具`sudo apt install fakeroot dh-make`

View File

@@ -0,0 +1,12 @@
# 5.22.2 基于源码编译 Shadowsocks-Qt5
1. 安装依赖
sudo apt install --no-install-recommends debhelper pkg-config qt5-qmakeqtbase5-dev libbotan1.10-dev libqrencode-dev libzbar-devlibappindicator-dev
sudo apt install debhelper pkg-config qt5-qmake qtbase5-dev
2. 编译安装https://github.com/shadowsocks/libQtShadowsocks
export PATH="/usr/lib/x86_64-linux-gnu/qt5/bin:$PATH"
dpkg-buildpackage -uc -us -b
sudo dpkg -i ../libqtshadowsocks*.deb ../shadowsocks-libqtshadowsocks*.deb
3.编译安装https://github.com/shadowsocks/shadowsocks-qt5export PATH="/usr/lib/x86_64-linux-gnu/qt5/bin:$PATH"
dpkg-buildpackage -uc -us -b
sudo dpkg -i ../shadowsocks-qt5*.deb

View File

@@ -0,0 +1,2 @@
# 5.22.1 通过源码编译升级软件包

View File

@@ -0,0 +1,7 @@
# 5.23 文件或目录权限管理
点击文件或者目录右键菜单项”属性“,可在”权限管理“中分配特定权限。也可命令设定:
chmod 755 XXX
mode的三个数字分别表示owner,group,others所具备的权限。
1x 执行2w 写4r 读
比如owner具有所有权限1+2+4=7而 group 具有读和执行权限1+4=5。
命令ls -l可查看权限。

View File

@@ -0,0 +1,7 @@
# 5.24 VirtualBox 虚拟机减肥
1.关闭虚拟机休眠功能powercfg /h off
2.关闭系统还原
3.磁盘碎片整理
4.下载sdelete执行sdelete -c -z C: D:
5.关闭虚拟机
6.VBoxManage modifyhd --compact WIN7.vdi

View File

@@ -0,0 +1,12 @@
# 5.25 安装 TeXLive 最新版
官网下载网络安装程序http://tug.org/texlive/acquire-netinstall.html
精简安装: sudo apt install perl-tk && ./install-tl gui
安装选项方案选择“small scheme”便携安装并指定路径选项默认A4纸“创建所有格式文件”选“是”其余全部选“否”。
扩展宏包: tlmgr install exam xpatch titlesec zhnumber everypage
subfigure tcolorbox environ trimspaces wrapfig draftwatermark
synctex latexindent silence letltxmacro
中文宏集: tlmgr install ctex
免费字体tlmgr install fandol
移除: tlmgr remove XXX
更新: tlmgr update --all
搜索: tlmgr search --global --file XXX

View File

@@ -0,0 +1,4 @@
# 5.26 支持多架构64 位系统安装 32 位软件
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install XXX:i386

View File

@@ -0,0 +1,7 @@
# 5.27 Backports 新版本软件安装
Deepin基于Debian 9,部分软件比较老旧但可以通过添加Debian Backports源来安装部分软件的新版本。
参考网址http://backports.debian.org/Instructions/
终端执行sudo nano /etc/apt/sources.list.d/backports.list
添加内容deb http://deb.debian.org/debian stretch-backports main
安装方法sudo apt -t stretch-backports install "package"
更新列表http://backports.debian.org/changes/stretch-backports.html

View File

@@ -0,0 +1,7 @@
# 5.28 Git 导出 Windows 行尾源码
修改.git/config添加
[core]
autocrlf = true
eol = crlf
导出:
git archive -o export.zip HEAD

View File

@@ -0,0 +1,8 @@
# 5.29 架设 TFTP 服务器
交换机、防火墙、路由器经常有网络备份配置、恢复配置的需求这需要借助TFTP完成。
安装TFTP简易服务器sudo apt install tftpd-hpa
配置sudo nano /etc/default/tftpd-hpa
TFTP_USERNAME="<用户名>"
TFTP_DIRECTORY="/home/<用户名>"
TFTP_ADDRESS="0.0.0.0:69"TFTP_OPTIONS="-l -c -s"
需要替换当前登陆的用户名,不可简单复制粘贴。

View File

@@ -0,0 +1,10 @@
# 5.3 Windows 系统时间同步
设置时区:`sudo timedatectl set-timezone Asia/Shanghai`
启用本地时间:`sudo timedatectl set-local-rtc 1 --adjust-system-clock`
把本地时间写入主板:`sudo hwclock --localtime --systohc`
网络同步:`sudo timedatectl set-ntp 1`
查询:`timedatectl status`
如果想改回UTC时间可以`sudo timedatectl set-local-rtc 0`
把UTC时间写入主板`sudo hwclock --utc --systohc`
或者:`sudo apt install ntpdate `#安装同步时间软件
`sudo ntpdate-debian` #网络时间同步

View File

@@ -0,0 +1,3 @@
# 5.30 安装字体查看器
目前Deepin系统双击字体文件默认打开“字体安装器”而无法查看字体详细信息。
建议安装字体查看器解决sudo apt install gnome-font-viewer

View File

@@ -0,0 +1,5 @@
# 5.31 nmap 端口扫描
建议:`sudo apt install nmap`
例如扫描指定UDP端口`sudo nmap -p 9902 -sU 10.35.99.100`
反馈举例:`9902/udp open|filtered unknown`
扫描TCP端口举例`sudo nmap -p 9903 -sT 10.35.99.100`

View File

@@ -0,0 +1,5 @@
# 5.32 dns 和 arp 常用命令
查询DNSnslookup deepin.org
查询ARParp 或 cat /proc/net/arp
BSD风格显示arp -a
清除arp缓存sudo ip -s -s neigh flush all

View File

@@ -0,0 +1,4 @@
# 5.33 chroot 切换后访问网络
以chroot /mnt为例执行该命令后可能会发现无法通过域名访问网络原因是DNS解析服务器不存在。
解决方法在执行chroot命令前拷贝Live的DNS解析。
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

View File

@@ -0,0 +1,6 @@
# 5.34 tty 文本模式连接 wifi
作者一本正经的胡说八道QQ1534646530
Ctrl+Alt+F2进入tty2或sudo init 3进入文本模式执行以下操作实现在终端连接wifi。
sudo NetworkManager start #确认NetworkManager服务开启
nmcli device wifi list #查看可连接的wifi列表
nmcli device wifi connect wifi-name password wifi-password #连接wifi

View File

@@ -0,0 +1,4 @@
# 5.35 调整 GPT 磁盘分区顺序
GPT磁盘由于删减合并等可能会导致分区设备数字错乱。
`sudo cfdisk /dev/sdX`选择Sort然后Write输入yes完成重新排序命名重启生效。
/dev/sdX视硬盘不同而修改可sudo fdisk -l查看。

View File

@@ -0,0 +1,5 @@
# 5.36 修改 SSH 端口号
nano /etc/ssh/ssh_config
默认端口为22,现修改成Port 1979
重启服务service sshd restart
连接ssh -p 1979 root@qpsoft.com

View File

@@ -0,0 +1,3 @@
# 5.37 利用 ssh 登陆服务器
ssh root@qpsoft.com
ssh -p 1979 root@qpsoft.com

View File

@@ -0,0 +1,5 @@
# 5.38 利用 sshfs 挂载主机文件系统
服务端sudo apt install openssh-server #服务器默认已安装
客户端sudo apt install sshfs
并加入fuse用户组adduser <用户名> fuse
挂载sshfs root@qpsoft.com:/ ~/.server卸载fusermount -u ~/.server

View File

@@ -0,0 +1,5 @@
# 5.39 scp 在服务器和本地间传送文件
scp ~/somefile.tar.xz root@qpsoft.com:
scp root@qpsoft.com:test.tar.xz .
scp -r ~/somedirectory root@qpsoft.com:
scp -P 1979 some.tar.xz root@qpsoft.com:

View File

@@ -0,0 +1,4 @@
# 5.4 删除不需要的旧内核
查询所有内核:`dpkg --get-selections |grep linux`
正在使用的内核不能删除:`uname -r`
删除不需要的内核:`sudo apt purge XXX`

View File

@@ -0,0 +1,6 @@
# 5.40 开机出现 Firmware Bug 日志
错误日志内容:`[Firmware Bug]:TSC_DEADLINE disabled due to Errata; pleaseupdate microcode to version: 0x22 (or later)`
解决办法:`sudo apt install intel-microcode 或 sudo apt install amd64-microcode`
检查安装:`dmesg |grep microcode`
问题来源:`https://stackoverflow.com/questions/48036877/debian-firmware-bug-tsc-deadline-disabled-due-to-errata`
应用这个补丁后会降低CPU性能。家用不推荐。

View File

@@ -0,0 +1,11 @@
# 5.41 ShadowSocks 代理上网
ShadowSocks软件自身配置完成后还需要打开网络代理配合VPS或者免费节点才能科学上
推荐electron-ssr
方法一:手动代理
控制中心-网络-系统代理-手动SOCKS代理“127.0.0.1”,端口“1080”。
方法二:自动代理
控制中心-网络-系统代理-自动配置URL“file:///home/<用户名>/.ss.pac”
sudo apt install python3-pip
sudo pip3 install genpac
genpac --pac-proxy "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5
127.0.0.1:1080" --output=~/.ss.pac

View File

@@ -0,0 +1,3 @@
# 5.42 不重启切换终端与桌面
不重启切换到终端sudo systemctl isolate multi-user.target
从终端切换回桌面sudo systemctl isolate graphical.target

View File

@@ -0,0 +1,3 @@
# 5.43 查询系统服务
分类查询systemctl list-units --type service --all
查询所有systemctl list-unit-files

View File

@@ -0,0 +1,4 @@
# 5.44 查询服务依赖
查询指定目标systemctl list-dependencies multi-user.target
查询当前环境systemctl list-dependencies
反向查询依赖systemctl list-dependencies multi-user.target --reverse

View File

@@ -0,0 +1,20 @@
# 5.45 创建服务延时执行命令
以下以创建一个执行1分钟后关闭错误报警蜂鸣声的服务为例用到了at定时执行需要提前安装
延时服务sudo apt install at
说明事实上延时执行是没有必要的仅以此为例用户可尝试修改ExecStart的脚本。
sudo dedit /etc/systemd/system/nobeep.service
Requires=atd.service
添加内容:
[Unit]
Description=Keep quiet when some error happens
Requires=atd.service
[Service]
Type=simple
ExecStart=/bin/bash -c "echo /sbin/rmmod pcspkr |at now + 1 minutes"
[Install]
WantedBy=multi-user.target
启用自定义服务并测试判断:
sudo systemctl enable nobeep.service
systemctl list-dependencies nobeep.service --reverse
sudo systemctl start nobeep.service
systemctl status nobeep.service

View File

@@ -0,0 +1,3 @@
# 5.5 清除已卸载软件遗留配置
dpkg --get-selections |grep deinstall | sed 's/deinstall/\lpurge/' |
sudo dpkg --set-selections; sudo dpkg -Pa

View File

@@ -0,0 +1,12 @@
# 5.6 假死后安全重启系统
Alt+SysRq+R-E-I-S-U-B按住Alt+SysRq后再按顺序按一次后面六个字母。
可实现安全重启其中SysRq就是Print Screen键。
REISUB可以按BUSY的比较级BUSIER倒写来记。
注意有Fn功能键的视配置可能需要同时按住Fn功能键。感谢bbs.deepin.org社区 @funtoo 指导:
R-从X11那里夺回键盘控制权
E-向所有进程发送SIGTERM信号
I-向所有进程发送SIGKILL信号
S-把待写入硬盘的数据同步到硬盘
U-将所有分区挂载为只读模式
B-重新启动
如果只是简单粗暴Alt+SysRq+B有可能导致数据丢失等问题。

View File

@@ -0,0 +1,8 @@
# 5.7 进程相关命令
pgrep XXX #查询进程ID
ps -ef |grep XXX #显示所有进程信息,连同命令行
ps -aux |grep XXX #列出目前所有的正在内存当中的程序
可以用 | 管道和 more 连接起来分页查看ps -aux |more
sudo netstat -tulpn |grep :21 #查询端口
pkill XXX #杀掉
killall XXX #全杀

View File

@@ -0,0 +1,4 @@
# 5.8 查看与同步 GPT 分区 UUID
查看UUID方法一blkid
查看UUID方法二ls -l /dev/disk/by-uuid
查看UUID方法三lsblk -f同步sudo nano /etc/fstab

View File

@@ -0,0 +1,4 @@
# 5.9 修改分区 UUID
sudo tune2fs -U c1b9d5a2-f162-11cf-9ece-0020afc76f16 /dev/sda5
sudo tune2fs -U random /dev/sda5
swap分区只能在LIVE环境通过mkswap -U修改。

View File

@@ -0,0 +1,2 @@
# 第五章 Deepin 系统维护与技巧