手机与Linux桌面文件共享


手机: 某米 电脑: archlinux 环境: 同一wifi下

手机共享文件到电脑

最近才发现手机可以开启ftp服务对文件进行共享,直接进入文件管理器开启就行,电脑上使用

ftp target

进行连接

注: get 下载 put 上传

电脑共享文件到手机

这里采用python搭建一个简单的web服务(python3)供手机下载文件

# 首先 cd 到要共享的目录
python -m http.server --bind 0.0.0.0

查看本机IP

ifconfig
# 或者
ip addr

重要: 请确保关闭防火墙,否则手机无法连接

sudo systemctl stop iptables

然后手机浏览器访问 ip:8000 就能下载电脑端的文件了

非同一wifi环境下 : 可以先在电脑端开启wifi热点(可以不联网),我是直接使用networkmanger进行创建的

Linux总结(草稿)


Linux发展历史

Linux是由BSD发展而来,BSD又起源于UNIX。UNIX由贝尔实验室开发, 后来开放给各大学教学使用,其中伯克利大学通过对UNIX源码的研究以及不断的改进与扩展, 推出BSD,并于BSD 4.3版本加入网络模块,极大推进UNIX的发展。但后面由于版权等原因, UNIX与BSD之间发生冲突与法律纠纷,直到1998年,在此期间,芬兰大学生Linus Torvalds 于1991年发布首个Linux版本,linux也趁UNIX与BSD纠纷之际,得到非常快速的发展

Linux的最小组成

Linux最小由内核kernel,文件层次结构FHS,系统启动器bootloader组成,其中内存调度, 进程调度等由内核管理,内核可单独运行,但需要与其它组成相配合。

语言:一般有头文件与库文件,头文件为实现,库文件为声明

Linux的安装与启动

当linux启动时,首先启动内核,内核调用init来完成引导进程,init启动时,它会在/etc/inittab内查找默认的运行级别, 然后运行/etc/rc.d/init.d中运行级别的启动脚本。

分区:一般分根分区/与swap交换分区,根分区的设置是为了备份方便

文件系统:在存储设备上组织文件的方法,负责文件的增删改查,linux上常用文件系统有ext2,ext3,ext4,xfs,btrfs等 …

celery动态添加任务


celery是一个基于Python的分布式调度系统,文档在这 ,最近有个需求,想要动态的添加任务而不用重启celery服务,找了一圈没找到什么好办法(也有可能是文档没看仔细),所以只能自己实现囉

为celery动态添加任务,首先我想到的是传递一个函数进去,让某个特定任务去执行这个传递过去的函数,就像这样

@app.task
def execute(func, *args, **kwargs):
    return func(*args, **kwargs)

很可惜,会出现这样的错误

kombu.exceptions.EncodeError: Object of type 'function' is not JSON serializable

换一种序列化方式

@app.task(serializer='pickle')
def execute(func, *args, **kwargs):
    return func(*args, **kwargs)

结果又出现一大串错误信息

ERROR/MainProcess] Pool callback raised exception: ContentDisallowed('Refusing to deserialize untrusted content of type …

我的Linux历程


Linux

是一种计算机操作系统内核,以C语言和汇编语言写成,匹配POSIX标准,以GNU通用公共许可证(GPL2)发布,最早是由林纳斯·托瓦兹开发的类UNIX系统

Linux与UNIX的区别: UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上。UNIX是商业软件,而Linux自由免费。

Linux发行版

简单的来说将Linux内核与一些系统软件,应用软件进行整合,有的发行版还包括图形界面(x11,wayland),目前所说的Linux大多代表Linux发行版

Linux历程

曾经在某论坛看到linux这个名词,立马装上虚拟机然后安装了我的第一个Linux版本--centos,并且装上了gnome桌面环境,随后开始了Linux折腾之旅, 大概是这样的 centos --> kali --> ubuntu --> fedora --> ubuntu kylin --> mint --> debian --> fedora --> archlinux ......,Linux发行版大概分为3系, debain系,包括ubuntu,mint,kali等,使用包管理器apt-get、aptitude、dpkg;centos或者说红帽系,包括众所周知的小白鼠版本fedora, 如果不是每半年要重装一次,我会一直使用它,而不是archlinux,所使用的包管理器yum,fedora已更换成dnf; 还有其它系,因为它们所占份额太小,包括archlinux …

关于网易云音乐个性推荐无法显示的问题


最近在使用网易云音乐时首页的个性推荐总是无法显示,一直在正在为你生成个性化推荐,网上也没找到什么办法,偶然间使用

┌─[jianglin]─[~]
└──╼ rm -rf .cache/netease-cloud-music/
┌─[jianglin]─[~]
└──╼ rm -rf .config/netease-cloud-music/

重新打开登陆后个性推荐就出现了,特此记录

方便的切换emacs主题


作为一个主题控,经常会切换主题,之前切换主题的方式是这样的,M-x,`load-theme`,选中,但是个人认为不够便捷,正好前几天发现了hydra这个插件,也想实践一下

获取主题列表

(setq maple-cycle-themes (mapcar 'symbol-name (custom-available-themes)))

获取当前主题索引

(cl-position (car (mapcar 'symbol-name custom-enabled-themes)) maple-cycle-themes :test 'equal)

获取下一个主题

(setq maple-current-theme-index
      (+ 1 maple-current-theme-index))
(setq maple-current-theme (nth maple-current-theme-index maple-cycle-themes))

加载主题

(load-theme (intern maple-current-theme) t)

最后得到这样的函数

(defun maple/cycle-theme (num)
  (interactive)
  (setq maple-current-theme-index
        (+ num
           (cl-position
            (car (mapcar 'symbol-name custom-enabled-themes)) maple-cycle-themes :test 'equal)))
  (when (>= maple-current-theme-index (length maple-cycle-themes))
    (setq maple-current-theme-index …

emacs笔记


Linux

emacs gui进程放置到后台

EMACS=/usr/bin/emacs
GUI=0
ARGS="$@"
ARRAY=("-nw" "--no-window-system" "--batch" "--help")

for arg in $ARGS; do
    for keyword in "${ARRAY[@]}";do
        if [ $keyword = $arg ];then
            GUI=1
            break
        fi
    done
    if [ $GUI -eq 1 ]; then
        break …

emacs实现智能注释


之前使用emacs时遇到这么一个问题

当前行存在代码折叠时,如果想要注释,必须先选中当前行,否则只能注释代码折叠块的第一行

就像这样

基础注释函数来源于 stackoverflow

(defun comment-or-uncomment-region-or-line ()
  "Comments or uncomments the region or the current line if there's no active region."
  (interactive)
  (let (beg end)
    (if (region-active-p)
        (setq beg (region-beginning) end (region-end))
      (setq beg (line-beginning-position) end (line-end-position)))
    (comment-or-uncomment-region beg end)))

在此函数的位置上进行修改,刚开始使用

(when (hs-already-hidden-p)
    (evil-visual-line))

但是一直没得到想要的效果,后来修改了一下,使用

(when (hs-already-hidden-p)
  (progn
    (end-of-visual-line)
    (evil-visual-state)
    (beginning-of-visual-line)))

意思就是如果当前位置存在代码折叠,先选中当前行,然后注释整个选中区域

因为光标被移动到首位,我对这个不太在意,如果有在意的话,可以使用 …

修改agetty启动参数自动登陆linux


环境: archlinux 参考

需求

想要Linux启动后默认以指定用户登陆,不用输入用户名,可以直接输入密码进入系统

实现

man agetty

修改以下文件

/sudo:root@localhost:/etc/systemd/system/getty.target.wants/[email protected]

自动登陆系统(用户名密码都不用输)

ExecStart=-/sbin/agetty -a username --noclear %I $TERM

自动登陆系统(仅输入密码)

ExecStart=-/sbin/agetty --skip-login --login-options "username" --noclear %I $TERM