所有文章

记一次Linux系统目录优化(bind目录)

先说一下背景,目前用的主机是一台8代的厚版Intel NUC,装了一块M.2的SSD和一块SATA的机械盘,系统是Deepin 20,当时安装系统时考虑将SSD作为系统盘,机械盘作为数据盘,Deepin安装时有一个选项可以傻瓜分配空间(那个选项忘记叫啥了,其实是个坑,后面慢慢说),一键将SSD分区为系统盘和交换空间,机械盘作为数据盘。 但实际使用起来会发现系统经常会在打开网页、启动微信时出现卡顿, ...

Shell定时执行命令脚本

分享一个自己写的简单shell定时执行命令的脚本: #!/bin/bash target_time=$(date -d "2022-08-26 11:28:00" +%s) while true do now=$(date +%s) if [ $now -gt $target_time ]; then echo "$(date -d @$now)" # Do what u want to do h ...

Ubuntu 22.04下使用ssh报错Permission denied (publickey)解决方法(之一)

直接说结论,Ubuntu 22.04的默认openssh版本为8.9版本,如果本机私钥使用RSA算法生成,ssh会无法验证私钥,解决方案: #使用ed25519算法生成私钥 ssh-keygen -t ed25519 排查方法,ssh登录时加上-v,会输出详细的debug信息,如果使用RSA算法生成私钥,可以在debug信息中看到如下信息: 原因: RSA算法存在一定安全隐患,因此在OpenSSH ...

ssh远程使用vim无法复制文本的解决方案

当我们使用ssh远程访问时,使用vim查看文本时,使用鼠标选中文本后,右键菜单中可能会没有复制选项,使用ctrl+shift+c及ctrl+c均无法复制选中文本。 解决方案为: 使用vim访问文本后,输入:进入命令模式,再输入set mouse=c,回车,这时候再选中文本右键菜单就有复制选项了,复制快捷键也可以正常工作。 ...

Linux Shell获取文件读写状态

下面做个测试: 首先创建一个不断写入被写入的文件,使用dd命令从/dev/random不断读取1个字节并写入testfile_writing,后台运行: sudo dd if=/dev/random of=testfile_writing bs=1 & 然后创建一个空文件作为对比: touch testfile_no_writing 查看对文件进行读写操作的方法有两个: #方法1 lsof ...

奇技淫巧 | 还有root删不掉的文件?

众所周知,root用户是最高权限的用户,那么为什么有的文件root也删不掉呢? 可以看到上图中的文件夹,权限是777,不属于任何用户和用户组,但是无论使用普通用户还是sudo还是root都无法对它进行删除操作。 这里需要介绍一下chattr和lsattr命令: chattr是比chmod更加强大的权限管理工具,而lsattr是查看文件/文件夹属性(attribute)的命令,还是刚才这个案例: 可 ...

ssh建立socks代理

假设这样一个场景: 一台工控机有两张网卡,一张网卡IP地址为192.168.1.1,另一张网卡IP地址为192.168.2.1,两个网段互相不通。 如果想让一台192.168.1.x网段的笔记本通过工控机访问到192.168.2.x网段的服务,可以通过建立socks代理的方式实现,利用ssh建立socks代理,只需要一步,在笔记本上执行: ssh -fND 127.0.0.1:9999 ryan@ ...

Linux loop设备简介

引用自wikipedia:/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))在类Unix系统中是一种伪设备,这种设备使得文件可以如同块设备一般被访问。在使用之前,循环设备必须与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用。因此,如果文件中包含一个完整的文件系统,那么这个文件就能如同磁盘设备一 ...

Shell脚本异常处理

首先我们来做一个简单试验: 创建一个test.sh脚本,内容如下 #!/bin/bash rm ./abc touch ./abc 给test.sh脚本运行权限 ,执行脚本(执行路径下无abc文件),可以看到终端提示rm失败,但是还是创建了abc文件: 将test.sh修改为如下: #!/bin/bash -e #此处加上-e选项 rm ./abc touch ./abc 执行后可以看到终端提示r ...

自动记录系统时间的小工具

一个自动记录系统时间的工具小脚本,将脚本后台运行,每秒钟输出当前时间到文件中, 当系统异常退出时,可以通过文件中记录的时间来判断系统退出的时间: #!/bin/bash seq=0 echo "Start!" > ~/date_record.txt while true do echo $seq >> ~/date_record.txt date >> ~/date_ ...