ubuntu
linux下自制护眼,久坐提醒 python小程序
python • 李魔佛 发表了文章 • 0 个评论 • 1439 次浏览 • 2023-03-09 16:23
保存为app.py
运行; python app.py
然后写到系统的crontab计划任务里面,每个40分钟执行几次,
屏幕会黑屏60s , 60可以自行设置。
挺好用的。import datetime as dt
import tkinter as tk
# Linux 护眼程序
sec = 60 # 休息时间 秒
root = tk.Tk()
root.config(bg='black')
root.wm_attributes('-topmost',1)
root.wm_attributes('-fullscreen',1)
L = tk.Label(root,font=('Consolas', 50), bg='black')
L.place(relx=0.5,rely=0.5,anchor=tk.CENTER)
# 改变的内容
msg = "{}\n 站起来 {} \n 动一动 {}\n{}"
now = dt.datetime.now()
aa = {0:'↑',1:'→',2:'↓',3:'←'}
bb = {0:'~~_↑_~~',1:'~_↑ ↑_~'}
for i in range(sec):
t = msg.format(sec-i,aa[i%4],bb[i%2],(now+dt.timedelta(seconds=i)).ctime())
c = 'Black' # 颜色可以搞随机换
root.after(i*1000,L.config,{'text':t,'fg':c})
root.after(sec*1000,root.destroy)
root.mainloop()
PS: AI生成的image还真心不错呢。 就是太吃显存了
查看全部
保存为app.py
运行; python app.py
然后写到系统的crontab计划任务里面,每个40分钟执行几次,
屏幕会黑屏60s , 60可以自行设置。
挺好用的。
import datetime as dt
import tkinter as tk
# Linux 护眼程序
sec = 60 # 休息时间 秒
root = tk.Tk()
root.config(bg='black')
root.wm_attributes('-topmost',1)
root.wm_attributes('-fullscreen',1)
L = tk.Label(root,font=('Consolas', 50), bg='black')
L.place(relx=0.5,rely=0.5,anchor=tk.CENTER)
# 改变的内容
msg = "{}\n 站起来 {} \n 动一动 {}\n{}"
now = dt.datetime.now()
aa = {0:'↑',1:'→',2:'↓',3:'←'}
bb = {0:'~~_↑_~~',1:'~_↑ ↑_~'}
for i in range(sec):
t = msg.format(sec-i,aa[i%4],bb[i%2],(now+dt.timedelta(seconds=i)).ctime())
c = 'Black' # 颜色可以搞随机换
root.after(i*1000,L.config,{'text':t,'fg':c})
root.after(sec*1000,root.destroy)
root.mainloop()
PS: AI生成的image还真心不错呢。 就是太吃显存了
ubuntu snap 下载指定版本的pycharm goland
Linux • 李魔佛 发表了文章 • 0 个评论 • 2053 次浏览 • 2022-12-17 13:24
所以只好回滚到指定的pycharm版本。
使用snap可以下载指定版本的pycharm和goland
sudo snap install pycharm-professional --channel=2021.2/stable --classic
上面的命令下载 2021.2/stable的版本的pycharm
那么怎么查看pycharm的版本?snap info pycharm-professionalname: pycharm-professional
summary: PyCharm Professional Edition
publisher: jetbrains✓
store-url: https://snapcraft.io/pycharm-professional
contact: https://www.jetbrains.com/pycharm/documentation/
license: unset
description: |
Python IDE for professional developers. Save time while PyCharm takes care of the r
on bigger things and embrace the keyboard-centric approach to get the most of PyCha
productivity features.
commands:
- pycharm-professional
snap-id: Uqpw0ZWqy6Wh4mgaWE0rxgM5tAGCwf4D
tracking: latest/stable
refresh-date: 15 days ago, at 09:57 CST
channels:
latest/stable: 2022.3 2022-12-01 (314) 779MB classic
latest/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/stable: 2022.3 2022-12-01 (314) 779MB classic
2022.3/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.2/stable: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/candidate: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/beta: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/edge: 2022.2.4 2022-11-17 (311) 764MB classic
2022.1/stable: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/candidate: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/beta: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/edge: 2022.1.4 2022-07-21 (295) 759MB classic
2021.3/stable: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/candidate: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/beta: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/edge: 2021.3.3 2022-03-17 (278) 702MB classic
2021.2/stable: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/candidate: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/beta: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/edge: 2021.2.4 2021-12-22 (268) 565MB classic
2021.1/stable: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/candidate: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/beta: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/edge: 2021.1.3 2021-06-30 (248) 530MB classic
2020.3/stable: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/candidate: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/beta: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/edge: 2020.3.5 2021-03-26 (237) 559MB classic
2020.2/stable: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/candidate: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/beta: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/edge: 2020.2.5 2020-12-02 (225) 479MB classic
2020.1/stable: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/candidate: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/beta: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/edge: 2020.1.5 2020-12-02 (224) 465MB classic
2019.3/stable: 2019.3.5 2020-05-08 (199) 473MB classic
2019.3/candidate: ↑
2019.3/beta: ↑
2019.3/edge: ↑
2019.2/stable: 2019.2.6 2020-02-10 (184) 445MB classic
2019.2/candidate: ↑
2019.2/beta: ↑
2019.2/edge: ↑
2019.1/stable: 2019.1.4 2019-07-30 (148) 394MB classic
2019.1/candidate: ↑
2019.1/beta: ↑
2019.1/edge: ↑
2018.3/stable: 2018.3.7 2019-07-10 (142) 355MB classic
2018.3/candidate: ↑
2018.3/beta: ↑
2018.3/edge: ↑
2018.2/stable: 2018.2.8 2019-04-12 (128) 313MB classic
2018.2/candidate: ↑
2018.2/beta: ↑
2018.2/edge: ↑
2018.1/stable: 2018.1.6 2018-11-15 (101) 314MB classic
2018.1/candidate: ↑
2018.1/beta: ↑
2018.1/edge: ↑
2017.3/stable: 2017.3.7 2018-11-15 (100) 344MB classic
2017.3/candidate: ↑
2017.3/beta: ↑
2017.3/edge: ↑
installed: 2022.3 (314) 779MB classic
只要在里面挑一个好一点的版本就好了。
查看全部
所以只好回滚到指定的pycharm版本。
使用snap可以下载指定版本的pycharm和goland
sudo snap install pycharm-professional --channel=2021.2/stable --classic
上面的命令下载 2021.2/stable的版本的pycharm
那么怎么查看pycharm的版本?
snap info pycharm-professional
name: pycharm-professional
summary: PyCharm Professional Edition
publisher: jetbrains✓
store-url: https://snapcraft.io/pycharm-professional
contact: https://www.jetbrains.com/pycharm/documentation/
license: unset
description: |
Python IDE for professional developers. Save time while PyCharm takes care of the r
on bigger things and embrace the keyboard-centric approach to get the most of PyCha
productivity features.
commands:
- pycharm-professional
snap-id: Uqpw0ZWqy6Wh4mgaWE0rxgM5tAGCwf4D
tracking: latest/stable
refresh-date: 15 days ago, at 09:57 CST
channels:
latest/stable: 2022.3 2022-12-01 (314) 779MB classic
latest/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/stable: 2022.3 2022-12-01 (314) 779MB classic
2022.3/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.2/stable: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/candidate: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/beta: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/edge: 2022.2.4 2022-11-17 (311) 764MB classic
2022.1/stable: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/candidate: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/beta: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/edge: 2022.1.4 2022-07-21 (295) 759MB classic
2021.3/stable: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/candidate: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/beta: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/edge: 2021.3.3 2022-03-17 (278) 702MB classic
2021.2/stable: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/candidate: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/beta: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/edge: 2021.2.4 2021-12-22 (268) 565MB classic
2021.1/stable: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/candidate: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/beta: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/edge: 2021.1.3 2021-06-30 (248) 530MB classic
2020.3/stable: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/candidate: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/beta: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/edge: 2020.3.5 2021-03-26 (237) 559MB classic
2020.2/stable: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/candidate: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/beta: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/edge: 2020.2.5 2020-12-02 (225) 479MB classic
2020.1/stable: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/candidate: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/beta: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/edge: 2020.1.5 2020-12-02 (224) 465MB classic
2019.3/stable: 2019.3.5 2020-05-08 (199) 473MB classic
2019.3/candidate: ↑
2019.3/beta: ↑
2019.3/edge: ↑
2019.2/stable: 2019.2.6 2020-02-10 (184) 445MB classic
2019.2/candidate: ↑
2019.2/beta: ↑
2019.2/edge: ↑
2019.1/stable: 2019.1.4 2019-07-30 (148) 394MB classic
2019.1/candidate: ↑
2019.1/beta: ↑
2019.1/edge: ↑
2018.3/stable: 2018.3.7 2019-07-10 (142) 355MB classic
2018.3/candidate: ↑
2018.3/beta: ↑
2018.3/edge: ↑
2018.2/stable: 2018.2.8 2019-04-12 (128) 313MB classic
2018.2/candidate: ↑
2018.2/beta: ↑
2018.2/edge: ↑
2018.1/stable: 2018.1.6 2018-11-15 (101) 314MB classic
2018.1/candidate: ↑
2018.1/beta: ↑
2018.1/edge: ↑
2017.3/stable: 2017.3.7 2018-11-15 (100) 344MB classic
2017.3/candidate: ↑
2017.3/beta: ↑
2017.3/edge: ↑
installed: 2022.3 (314) 779MB classic
只要在里面挑一个好一点的版本就好了。
macbook m1版本 兼容性问题
Linux • 马化云 发表了文章 • 0 个评论 • 1695 次浏览 • 2022-10-18 11:36
比如你有个软件依赖旧版本的postgresql,那么就没有办法在m1上搞个旧版本的postgresql了,不过新版的postgresql是支持的。
这种向前兼容性很差的问题,如果对于项目,日常高频使用软件里有旧版应用,应该会挺难受,只能早一些替代方案。
查看全部
ubuntu安装z.lua 路径跳转工具
Linux • 马化云 发表了文章 • 0 个评论 • 2034 次浏览 • 2022-10-15 17:06
正则将按顺序进行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。
性能:
性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。
支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
支持 Fish Shell,Power Shell 和 Windows cmd。
使用增强匹配算法,更准确的带你去到你想去的地方。
低占用,能够仅在当前路径改变时才更新数据库(将 $_ZL_ADD_ONCE 设成 1)。
交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
集成 fzf (可选),可以用来做可视化选择或者参数补全。
快速跳转到父目录,或者项目根目录,代替反复 “cd ../../.." 。
兼容 lua 5.1, 5.2 和 5.3 以上版本。
自包含且无额外依赖,单个 z.lua 文件完成所有工作。
安装步骤:
官网太蛋疼,没有写好。
下面是个人的安装步骤,在ubuntu20上测试的。
1. 安装lua
sudo apt install lua5.3
2. 下载z.lua脚本
git clone [url]https://github.com/skywind3000/z.lua.git[/url]
你也可以直接到文末下载。 关注公众号,回复 z.lua即可
下载后记录它的 目录:
比如:
/home/root/tool/z.lua
3. 然后配置bash shell
首先,确定你是哪个shell, 不同shell的初始化命令参数不一样:
bash:
在 .bashrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init bash)"
zsh:
在 .zshrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init zsh)"
Posix Shells:
在.profile 文件最后一行加入这一行
eval "$(lua /path/to/z.lua --init posix)"
4. 重启shell ,注销系统或者 source ~/.zshrc 激活新的shell
z.lua 要经过cd 进入不同的目录才会生效的。一开始如果输入 z 回车,是没有任何反应的。
查看缓存的目录
z -l
如果没有显示目录,要么你的配置出问题,要么还是你还没有用cd 切换足够多的目录 让lua 保存记录
关注公众号,回复 z.lua 获取 z.lua 安装包
查看全部
z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 FireFox),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。
正则将按顺序进行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。
性能:
性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。
支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
支持 Fish Shell,Power Shell 和 Windows cmd。
使用增强匹配算法,更准确的带你去到你想去的地方。
低占用,能够仅在当前路径改变时才更新数据库(将 $_ZL_ADD_ONCE 设成 1)。
交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
集成 fzf (可选),可以用来做可视化选择或者参数补全。
快速跳转到父目录,或者项目根目录,代替反复 “cd ../../.." 。
兼容 lua 5.1, 5.2 和 5.3 以上版本。
自包含且无额外依赖,单个 z.lua 文件完成所有工作。
安装步骤:
官网太蛋疼,没有写好。
下面是个人的安装步骤,在ubuntu20上测试的。
1. 安装lua
sudo apt install lua5.3
2. 下载z.lua脚本
git clone [url]https://github.com/skywind3000/z.lua.git[/url]
你也可以直接到文末下载。 关注公众号,回复 z.lua即可
下载后记录它的 目录:
比如:
/home/root/tool/z.lua
3. 然后配置bash shell
首先,确定你是哪个shell, 不同shell的初始化命令参数不一样:
bash:
在 .bashrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init bash)"
zsh:
在 .zshrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init zsh)"
Posix Shells:
在.profile 文件最后一行加入这一行
eval "$(lua /path/to/z.lua --init posix)"
4. 重启shell ,注销系统或者 source ~/.zshrc 激活新的shell
z.lua 要经过cd 进入不同的目录才会生效的。一开始如果输入 z 回车,是没有任何反应的。
查看缓存的目录
z -l
如果没有显示目录,要么你的配置出问题,要么还是你还没有用cd 切换足够多的目录 让lua 保存记录
关注公众号,回复 z.lua 获取 z.lua 安装包
ubuntu用非root用户 无法启用80端口web服务
Linux • 李魔佛 发表了文章 • 0 个评论 • 2425 次浏览 • 2022-06-05 00:19
默认情况下,1024以下的端口,只有root用户可以使用,例如想用python3启动一个在80端口上的web服务,只能切换到root用户再启动。如果想不用root用户启动,怎么办呢?
解决办法
记录一种测试了的办法:
Linux 内核从 2.6.24 版本开始就有了能力的概念,这使得普通用户也能够做只有超级用户才能完成的工作。
使用 setcap 命令让指定程序拥有绑定端口的能力,这样即使程序运行在普通用户下,也能够绑定到 1024 以下的特权端口上。
# 给指定程序设置 CAP_NET_BIND_SERVICE 能力
$ sudo setcap cap_net_bind_service=+eip /home/xda/miniconda3/bin/python3.9
注意赋给的程序目标不能是软链接
注意 conda的python一般都是软链接
比如:
/home/xda/miniconda3/bin/python
很可能是指向
/home/xda/miniconda3/bin/python3.9的
如果使用的python路径
/home/xda/miniconda3/bin/python
给
setcap cap_net_bind_service=+eip
会报错的。 查看全部
需求 conda python
默认情况下,1024以下的端口,只有root用户可以使用,例如想用python3启动一个在80端口上的web服务,只能切换到root用户再启动。如果想不用root用户启动,怎么办呢?
解决办法
记录一种测试了的办法:
Linux 内核从 2.6.24 版本开始就有了能力的概念,这使得普通用户也能够做只有超级用户才能完成的工作。
使用 setcap 命令让指定程序拥有绑定端口的能力,这样即使程序运行在普通用户下,也能够绑定到 1024 以下的特权端口上。
# 给指定程序设置 CAP_NET_BIND_SERVICE 能力
$ sudo setcap cap_net_bind_service=+eip /home/xda/miniconda3/bin/python3.9
注意赋给的程序目标不能是软链接
注意 conda的python一般都是软链接
比如:
/home/xda/miniconda3/bin/python
很可能是指向
/home/xda/miniconda3/bin/python3.9的
如果使用的python路径
/home/xda/miniconda3/bin/python
给
setcap cap_net_bind_service=+eip
会报错的。
ubuntu下最好的图形git管理工具kranken (免费版本)
Linux • 李魔佛 发表了文章 • 0 个评论 • 4326 次浏览 • 2022-05-30 19:06
不过最新的版本已经要收费了。
但是如果你用回以前的旧版本,还是可以依然免费的。[url]https://release.axocdn.com/lin ... 1.deb[/url]
[url]https://release.axocdn.com/lin ... 1.rpm[/url]
[url]https://release.axocdn.com/lin ... ar.gz[/url]
[url]https://release.axocdn.com/win ... 1.exe[/url]
如果上面链接下载不了,可以换一个源。我在本地ip下似乎下不了,跑到腾讯云上的云服务器 就可以正常下载。
反正多试几次就可以。
不要点击安装,不然出错了,也不知道是什么问题。
使用命令行安装:sudo dpkg -i gitkraken-amd64.deb
如果报错,依赖出错,那么可以这样操作:sudo apt --fix-broken install
搞定 查看全部
不过最新的版本已经要收费了。
但是如果你用回以前的旧版本,还是可以依然免费的。
[url]https://release.axocdn.com/lin ... 1.deb[/url]
[url]https://release.axocdn.com/lin ... 1.rpm[/url]
[url]https://release.axocdn.com/lin ... ar.gz[/url]
[url]https://release.axocdn.com/win ... 1.exe[/url]
如果上面链接下载不了,可以换一个源。我在本地ip下似乎下不了,跑到腾讯云上的云服务器 就可以正常下载。
反正多试几次就可以。
不要点击安装,不然出错了,也不知道是什么问题。
使用命令行安装:
sudo dpkg -i gitkraken-amd64.deb
如果报错,依赖出错,那么可以这样操作:
sudo apt --fix-broken install
搞定
ubuntu下虚拟机对比virtualbox 和 vmware
Linux • 李魔佛 发表了文章 • 0 个评论 • 2720 次浏览 • 2022-05-28 01:27
virtual box当时选择的是在snap store安装的,不过安装完成之后系统依赖不满足,需要下载系统内核开发库。kernel-headers, kernel-devel. 这个整下来,需要800MB,并且很多系统依赖库可能要被重新安装,因为对应的版本可能对不上。
看到这,想起以前基本每年一次ubuntu重装经历,心有余悸。 思考略1秒,果断关闭,卸载virtual box。选择vmware的怀抱。
vmware的安装包是bundle格式,设置x 可执行权限后,直接安装就可以了。
一路顺畅。
查看全部
Got recursion not available from 8.8.8.8
网络 • 李魔佛 发表了文章 • 0 个评论 • 2361 次浏览 • 2022-05-26 12:18
返回的报错:Got recursion not available from 8.8.8.8
返回的github的ip地址还是为127.0.0.1
只能直接修改hosts文件了 查看全部
返回的报错:
Got recursion not available from 8.8.8.8
返回的github的ip地址还是为127.0.0.1
只能直接修改hosts文件了
原来ubuntu发行的版本数字是按照年份来定的22.04 是22年4月发行的
Linux • 李魔佛 发表了文章 • 0 个评论 • 1677 次浏览 • 2022-05-26 11:30
最早用的10.04 这么看就是12年前的操作系统了。
而18.04也差不多也是4年前的操作系统了。
而当前最新的应该就是22.04 LTS 长期支持版本了。
最早用的10.04 这么看就是12年前的操作系统了。
而18.04也差不多也是4年前的操作系统了。
而当前最新的应该就是22.04 LTS 长期支持版本了。
Ubuntu20安装搜狗输入法 (自带的智能拼音太烂了)
Linux • 李魔佛 发表了文章 • 0 个评论 • 2296 次浏览 • 2022-05-20 13:49
Ubuntu20.04安装搜狗输入法步骤
1、更新源
在终端执行 sudo apt update
2、安装fcitx输入法框架
\1. 在终端输入 sudo apt install fcitx
\2. 设置fcitx为系统输入法
点击左下角菜单选择语言支持,将语言选择为fcitx(如下图二)
\3. 设置fcitx开机自启动
在终端执行sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
\4. 卸载系统ibus输入法框架
在终端执行 sudo apt purge ibus
3、安装搜狗输入法
\1. 在官网下载搜狗输入法安装包,并安装,安装命令 sudo dpkg -i 安装包名
\2. 安装输入法依赖
在终端执行
sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
4、重启电脑、调出输入法
1.重启电脑
2.查看右上角,可以看到“搜狗”字样,在输入窗口即可且出搜狗输入法。
\3. 没有“搜狗”字样,选择配置,将搜狗加入输入法列表即可
至此,搜狗输入法安装完毕 查看全部
Ubuntu20.04安装搜狗输入法步骤
1、更新源
在终端执行 sudo apt update
2、安装fcitx输入法框架
\1. 在终端输入 sudo apt install fcitx
\2. 设置fcitx为系统输入法
点击左下角菜单选择语言支持,将语言选择为fcitx(如下图二)
\3. 设置fcitx开机自启动
在终端执行sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
\4. 卸载系统ibus输入法框架
在终端执行 sudo apt purge ibus
3、安装搜狗输入法
\1. 在官网下载搜狗输入法安装包,并安装,安装命令 sudo dpkg -i 安装包名
\2. 安装输入法依赖
在终端执行
sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
4、重启电脑、调出输入法
1.重启电脑
2.查看右上角,可以看到“搜狗”字样,在输入窗口即可且出搜狗输入法。
\3. 没有“搜狗”字样,选择配置,将搜狗加入输入法列表即可
至此,搜狗输入法安装完毕
ubuntu20 设置程序/脚本开机自动启动 可视化
Linux • 马化云 发表了文章 • 0 个评论 • 3259 次浏览 • 2022-05-16 16:40
无非都是把脚本写入到/etc/rc.local 里面
不过笔者在ubuntu20下,试了他们的方法,发现都没有生效,所以就比较郁闷了。
不过也找到了一种图形界面的方法,亲测也可以使用。
1. 在终端下输入
sudo gnome-session-properties
2. 在弹出来的图形界面中,会让你输入自动启动的命令路径和名字。
这个时候,点击add,然后只需要把你的程序路径填入 command 的地址中,然后随意写一个名字(有意义即可)
查看全部
无非都是把脚本写入到/etc/rc.local 里面
不过笔者在ubuntu20下,试了他们的方法,发现都没有生效,所以就比较郁闷了。
不过也找到了一种图形界面的方法,亲测也可以使用。
1. 在终端下输入
sudo gnome-session-properties
2. 在弹出来的图形界面中,会让你输入自动启动的命令路径和名字。
这个时候,点击add,然后只需要把你的程序路径填入 command 的地址中,然后随意写一个名字(有意义即可)
ubuntu的Shotwell 图片处理,居然连图片大小调整的功能都没有
Linux • 李魔佛 发表了文章 • 0 个评论 • 1594 次浏览 • 2022-05-11 17:31
只好用用中的photogimg(号称ubuntu下的photoshop)
只好用用中的photogimg(号称ubuntu下的photoshop)
ubuntu20 pycharm goland 无法使用中文输入法ibus
Linux • 李魔佛 发表了文章 • 0 个评论 • 1958 次浏览 • 2022-02-20 15:14
ubuntu 20.04 Intelligent Pinyin 1.11.1 IntelliJ IDEA 2020.2.2(Ultimate Edition)
当全拼输入2~3个汉字时,会被强行打断,然后就无法继续输入(也无法切换中英文),并且汉字下会有下划线。
该提问来源于开源项目:libpinyin/ibus-libpinyin
1.点击菜单 "Help | Edit Custom VM options..."
2.添加 -Drecreate.x11.input.method=true 到最后一行
3.重启IDEA
查看全部
ubuntu 20.04 Intelligent Pinyin 1.11.1 IntelliJ IDEA 2020.2.2(Ultimate Edition)
当全拼输入2~3个汉字时,会被强行打断,然后就无法继续输入(也无法切换中英文),并且汉字下会有下划线。
该提问来源于开源项目:libpinyin/ibus-libpinyin
1.点击菜单 "Help | Edit Custom VM options..."
2.添加 -Drecreate.x11.input.method=true 到最后一行
3.重启IDEA
ubuntu20 不建议使用fcitx作为输入法框架
Linux • 李魔佛 发表了文章 • 0 个评论 • 1950 次浏览 • 2022-02-19 11:54
受不了了,直接用会ibus下的智能拼音,也很好用。 查看全部
受不了了,直接用会ibus下的智能拼音,也很好用。
linux下自制护眼,久坐提醒 python小程序
python • 李魔佛 发表了文章 • 0 个评论 • 1439 次浏览 • 2023-03-09 16:23
保存为app.py
运行; python app.py
然后写到系统的crontab计划任务里面,每个40分钟执行几次,
屏幕会黑屏60s , 60可以自行设置。
挺好用的。import datetime as dt
import tkinter as tk
# Linux 护眼程序
sec = 60 # 休息时间 秒
root = tk.Tk()
root.config(bg='black')
root.wm_attributes('-topmost',1)
root.wm_attributes('-fullscreen',1)
L = tk.Label(root,font=('Consolas', 50), bg='black')
L.place(relx=0.5,rely=0.5,anchor=tk.CENTER)
# 改变的内容
msg = "{}\n 站起来 {} \n 动一动 {}\n{}"
now = dt.datetime.now()
aa = {0:'↑',1:'→',2:'↓',3:'←'}
bb = {0:'~~_↑_~~',1:'~_↑ ↑_~'}
for i in range(sec):
t = msg.format(sec-i,aa[i%4],bb[i%2],(now+dt.timedelta(seconds=i)).ctime())
c = 'Black' # 颜色可以搞随机换
root.after(i*1000,L.config,{'text':t,'fg':c})
root.after(sec*1000,root.destroy)
root.mainloop()
PS: AI生成的image还真心不错呢。 就是太吃显存了
查看全部
保存为app.py
运行; python app.py
然后写到系统的crontab计划任务里面,每个40分钟执行几次,
屏幕会黑屏60s , 60可以自行设置。
挺好用的。
import datetime as dt
import tkinter as tk
# Linux 护眼程序
sec = 60 # 休息时间 秒
root = tk.Tk()
root.config(bg='black')
root.wm_attributes('-topmost',1)
root.wm_attributes('-fullscreen',1)
L = tk.Label(root,font=('Consolas', 50), bg='black')
L.place(relx=0.5,rely=0.5,anchor=tk.CENTER)
# 改变的内容
msg = "{}\n 站起来 {} \n 动一动 {}\n{}"
now = dt.datetime.now()
aa = {0:'↑',1:'→',2:'↓',3:'←'}
bb = {0:'~~_↑_~~',1:'~_↑ ↑_~'}
for i in range(sec):
t = msg.format(sec-i,aa[i%4],bb[i%2],(now+dt.timedelta(seconds=i)).ctime())
c = 'Black' # 颜色可以搞随机换
root.after(i*1000,L.config,{'text':t,'fg':c})
root.after(sec*1000,root.destroy)
root.mainloop()
PS: AI生成的image还真心不错呢。 就是太吃显存了
ubuntu snap 下载指定版本的pycharm goland
Linux • 李魔佛 发表了文章 • 0 个评论 • 2053 次浏览 • 2022-12-17 13:24
所以只好回滚到指定的pycharm版本。
使用snap可以下载指定版本的pycharm和goland
sudo snap install pycharm-professional --channel=2021.2/stable --classic
上面的命令下载 2021.2/stable的版本的pycharm
那么怎么查看pycharm的版本?snap info pycharm-professionalname: pycharm-professional
summary: PyCharm Professional Edition
publisher: jetbrains✓
store-url: https://snapcraft.io/pycharm-professional
contact: https://www.jetbrains.com/pycharm/documentation/
license: unset
description: |
Python IDE for professional developers. Save time while PyCharm takes care of the r
on bigger things and embrace the keyboard-centric approach to get the most of PyCha
productivity features.
commands:
- pycharm-professional
snap-id: Uqpw0ZWqy6Wh4mgaWE0rxgM5tAGCwf4D
tracking: latest/stable
refresh-date: 15 days ago, at 09:57 CST
channels:
latest/stable: 2022.3 2022-12-01 (314) 779MB classic
latest/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/stable: 2022.3 2022-12-01 (314) 779MB classic
2022.3/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.2/stable: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/candidate: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/beta: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/edge: 2022.2.4 2022-11-17 (311) 764MB classic
2022.1/stable: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/candidate: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/beta: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/edge: 2022.1.4 2022-07-21 (295) 759MB classic
2021.3/stable: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/candidate: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/beta: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/edge: 2021.3.3 2022-03-17 (278) 702MB classic
2021.2/stable: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/candidate: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/beta: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/edge: 2021.2.4 2021-12-22 (268) 565MB classic
2021.1/stable: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/candidate: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/beta: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/edge: 2021.1.3 2021-06-30 (248) 530MB classic
2020.3/stable: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/candidate: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/beta: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/edge: 2020.3.5 2021-03-26 (237) 559MB classic
2020.2/stable: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/candidate: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/beta: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/edge: 2020.2.5 2020-12-02 (225) 479MB classic
2020.1/stable: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/candidate: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/beta: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/edge: 2020.1.5 2020-12-02 (224) 465MB classic
2019.3/stable: 2019.3.5 2020-05-08 (199) 473MB classic
2019.3/candidate: ↑
2019.3/beta: ↑
2019.3/edge: ↑
2019.2/stable: 2019.2.6 2020-02-10 (184) 445MB classic
2019.2/candidate: ↑
2019.2/beta: ↑
2019.2/edge: ↑
2019.1/stable: 2019.1.4 2019-07-30 (148) 394MB classic
2019.1/candidate: ↑
2019.1/beta: ↑
2019.1/edge: ↑
2018.3/stable: 2018.3.7 2019-07-10 (142) 355MB classic
2018.3/candidate: ↑
2018.3/beta: ↑
2018.3/edge: ↑
2018.2/stable: 2018.2.8 2019-04-12 (128) 313MB classic
2018.2/candidate: ↑
2018.2/beta: ↑
2018.2/edge: ↑
2018.1/stable: 2018.1.6 2018-11-15 (101) 314MB classic
2018.1/candidate: ↑
2018.1/beta: ↑
2018.1/edge: ↑
2017.3/stable: 2017.3.7 2018-11-15 (100) 344MB classic
2017.3/candidate: ↑
2017.3/beta: ↑
2017.3/edge: ↑
installed: 2022.3 (314) 779MB classic
只要在里面挑一个好一点的版本就好了。
查看全部
所以只好回滚到指定的pycharm版本。
使用snap可以下载指定版本的pycharm和goland
sudo snap install pycharm-professional --channel=2021.2/stable --classic
上面的命令下载 2021.2/stable的版本的pycharm
那么怎么查看pycharm的版本?
snap info pycharm-professional
name: pycharm-professional
summary: PyCharm Professional Edition
publisher: jetbrains✓
store-url: https://snapcraft.io/pycharm-professional
contact: https://www.jetbrains.com/pycharm/documentation/
license: unset
description: |
Python IDE for professional developers. Save time while PyCharm takes care of the r
on bigger things and embrace the keyboard-centric approach to get the most of PyCha
productivity features.
commands:
- pycharm-professional
snap-id: Uqpw0ZWqy6Wh4mgaWE0rxgM5tAGCwf4D
tracking: latest/stable
refresh-date: 15 days ago, at 09:57 CST
channels:
latest/stable: 2022.3 2022-12-01 (314) 779MB classic
latest/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
latest/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/stable: 2022.3 2022-12-01 (314) 779MB classic
2022.3/candidate: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/beta: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.3/edge: 2022.3.1-RC 2022-12-12 (315) 793MB classic
2022.2/stable: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/candidate: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/beta: 2022.2.4 2022-11-17 (311) 764MB classic
2022.2/edge: 2022.2.4 2022-11-17 (311) 764MB classic
2022.1/stable: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/candidate: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/beta: 2022.1.4 2022-07-21 (295) 759MB classic
2022.1/edge: 2022.1.4 2022-07-21 (295) 759MB classic
2021.3/stable: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/candidate: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/beta: 2021.3.3 2022-03-17 (278) 702MB classic
2021.3/edge: 2021.3.3 2022-03-17 (278) 702MB classic
2021.2/stable: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/candidate: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/beta: 2021.2.4 2021-12-22 (268) 565MB classic
2021.2/edge: 2021.2.4 2021-12-22 (268) 565MB classic
2021.1/stable: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/candidate: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/beta: 2021.1.3 2021-06-30 (248) 530MB classic
2021.1/edge: 2021.1.3 2021-06-30 (248) 530MB classic
2020.3/stable: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/candidate: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/beta: 2020.3.5 2021-03-26 (237) 559MB classic
2020.3/edge: 2020.3.5 2021-03-26 (237) 559MB classic
2020.2/stable: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/candidate: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/beta: 2020.2.5 2020-12-02 (225) 479MB classic
2020.2/edge: 2020.2.5 2020-12-02 (225) 479MB classic
2020.1/stable: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/candidate: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/beta: 2020.1.5 2020-12-02 (224) 465MB classic
2020.1/edge: 2020.1.5 2020-12-02 (224) 465MB classic
2019.3/stable: 2019.3.5 2020-05-08 (199) 473MB classic
2019.3/candidate: ↑
2019.3/beta: ↑
2019.3/edge: ↑
2019.2/stable: 2019.2.6 2020-02-10 (184) 445MB classic
2019.2/candidate: ↑
2019.2/beta: ↑
2019.2/edge: ↑
2019.1/stable: 2019.1.4 2019-07-30 (148) 394MB classic
2019.1/candidate: ↑
2019.1/beta: ↑
2019.1/edge: ↑
2018.3/stable: 2018.3.7 2019-07-10 (142) 355MB classic
2018.3/candidate: ↑
2018.3/beta: ↑
2018.3/edge: ↑
2018.2/stable: 2018.2.8 2019-04-12 (128) 313MB classic
2018.2/candidate: ↑
2018.2/beta: ↑
2018.2/edge: ↑
2018.1/stable: 2018.1.6 2018-11-15 (101) 314MB classic
2018.1/candidate: ↑
2018.1/beta: ↑
2018.1/edge: ↑
2017.3/stable: 2017.3.7 2018-11-15 (100) 344MB classic
2017.3/candidate: ↑
2017.3/beta: ↑
2017.3/edge: ↑
installed: 2022.3 (314) 779MB classic
只要在里面挑一个好一点的版本就好了。
macbook m1版本 兼容性问题
Linux • 马化云 发表了文章 • 0 个评论 • 1695 次浏览 • 2022-10-18 11:36
比如你有个软件依赖旧版本的postgresql,那么就没有办法在m1上搞个旧版本的postgresql了,不过新版的postgresql是支持的。
这种向前兼容性很差的问题,如果对于项目,日常高频使用软件里有旧版应用,应该会挺难受,只能早一些替代方案。
查看全部
ubuntu安装z.lua 路径跳转工具
Linux • 马化云 发表了文章 • 0 个评论 • 2034 次浏览 • 2022-10-15 17:06
正则将按顺序进行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。
性能:
性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。
支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
支持 Fish Shell,Power Shell 和 Windows cmd。
使用增强匹配算法,更准确的带你去到你想去的地方。
低占用,能够仅在当前路径改变时才更新数据库(将 $_ZL_ADD_ONCE 设成 1)。
交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
集成 fzf (可选),可以用来做可视化选择或者参数补全。
快速跳转到父目录,或者项目根目录,代替反复 “cd ../../.." 。
兼容 lua 5.1, 5.2 和 5.3 以上版本。
自包含且无额外依赖,单个 z.lua 文件完成所有工作。
安装步骤:
官网太蛋疼,没有写好。
下面是个人的安装步骤,在ubuntu20上测试的。
1. 安装lua
sudo apt install lua5.3
2. 下载z.lua脚本
git clone [url]https://github.com/skywind3000/z.lua.git[/url]
你也可以直接到文末下载。 关注公众号,回复 z.lua即可
下载后记录它的 目录:
比如:
/home/root/tool/z.lua
3. 然后配置bash shell
首先,确定你是哪个shell, 不同shell的初始化命令参数不一样:
bash:
在 .bashrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init bash)"
zsh:
在 .zshrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init zsh)"
Posix Shells:
在.profile 文件最后一行加入这一行
eval "$(lua /path/to/z.lua --init posix)"
4. 重启shell ,注销系统或者 source ~/.zshrc 激活新的shell
z.lua 要经过cd 进入不同的目录才会生效的。一开始如果输入 z 回车,是没有任何反应的。
查看缓存的目录
z -l
如果没有显示目录,要么你的配置出问题,要么还是你还没有用cd 切换足够多的目录 让lua 保存记录
关注公众号,回复 z.lua 获取 z.lua 安装包
查看全部
z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 FireFox),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。
正则将按顺序进行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。
性能:
性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。
支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
支持 Fish Shell,Power Shell 和 Windows cmd。
使用增强匹配算法,更准确的带你去到你想去的地方。
低占用,能够仅在当前路径改变时才更新数据库(将 $_ZL_ADD_ONCE 设成 1)。
交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
集成 fzf (可选),可以用来做可视化选择或者参数补全。
快速跳转到父目录,或者项目根目录,代替反复 “cd ../../.." 。
兼容 lua 5.1, 5.2 和 5.3 以上版本。
自包含且无额外依赖,单个 z.lua 文件完成所有工作。
安装步骤:
官网太蛋疼,没有写好。
下面是个人的安装步骤,在ubuntu20上测试的。
1. 安装lua
sudo apt install lua5.3
2. 下载z.lua脚本
git clone [url]https://github.com/skywind3000/z.lua.git[/url]
你也可以直接到文末下载。 关注公众号,回复 z.lua即可
下载后记录它的 目录:
比如:
/home/root/tool/z.lua
3. 然后配置bash shell
首先,确定你是哪个shell, 不同shell的初始化命令参数不一样:
bash:
在 .bashrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init bash)"
zsh:
在 .zshrc 文件最后加上这一行
eval "$(lua /path/to/z.lua --init zsh)"
Posix Shells:
在.profile 文件最后一行加入这一行
eval "$(lua /path/to/z.lua --init posix)"
4. 重启shell ,注销系统或者 source ~/.zshrc 激活新的shell
z.lua 要经过cd 进入不同的目录才会生效的。一开始如果输入 z 回车,是没有任何反应的。
查看缓存的目录
z -l
如果没有显示目录,要么你的配置出问题,要么还是你还没有用cd 切换足够多的目录 让lua 保存记录
关注公众号,回复 z.lua 获取 z.lua 安装包
ubuntu用非root用户 无法启用80端口web服务
Linux • 李魔佛 发表了文章 • 0 个评论 • 2425 次浏览 • 2022-06-05 00:19
默认情况下,1024以下的端口,只有root用户可以使用,例如想用python3启动一个在80端口上的web服务,只能切换到root用户再启动。如果想不用root用户启动,怎么办呢?
解决办法
记录一种测试了的办法:
Linux 内核从 2.6.24 版本开始就有了能力的概念,这使得普通用户也能够做只有超级用户才能完成的工作。
使用 setcap 命令让指定程序拥有绑定端口的能力,这样即使程序运行在普通用户下,也能够绑定到 1024 以下的特权端口上。
# 给指定程序设置 CAP_NET_BIND_SERVICE 能力
$ sudo setcap cap_net_bind_service=+eip /home/xda/miniconda3/bin/python3.9
注意赋给的程序目标不能是软链接
注意 conda的python一般都是软链接
比如:
/home/xda/miniconda3/bin/python
很可能是指向
/home/xda/miniconda3/bin/python3.9的
如果使用的python路径
/home/xda/miniconda3/bin/python
给
setcap cap_net_bind_service=+eip
会报错的。 查看全部
需求 conda python
默认情况下,1024以下的端口,只有root用户可以使用,例如想用python3启动一个在80端口上的web服务,只能切换到root用户再启动。如果想不用root用户启动,怎么办呢?
解决办法
记录一种测试了的办法:
Linux 内核从 2.6.24 版本开始就有了能力的概念,这使得普通用户也能够做只有超级用户才能完成的工作。
使用 setcap 命令让指定程序拥有绑定端口的能力,这样即使程序运行在普通用户下,也能够绑定到 1024 以下的特权端口上。
# 给指定程序设置 CAP_NET_BIND_SERVICE 能力
$ sudo setcap cap_net_bind_service=+eip /home/xda/miniconda3/bin/python3.9
注意赋给的程序目标不能是软链接
注意 conda的python一般都是软链接
比如:
/home/xda/miniconda3/bin/python
很可能是指向
/home/xda/miniconda3/bin/python3.9的
如果使用的python路径
/home/xda/miniconda3/bin/python
给
setcap cap_net_bind_service=+eip
会报错的。
ubuntu下最好的图形git管理工具kranken (免费版本)
Linux • 李魔佛 发表了文章 • 0 个评论 • 4326 次浏览 • 2022-05-30 19:06
不过最新的版本已经要收费了。
但是如果你用回以前的旧版本,还是可以依然免费的。[url]https://release.axocdn.com/lin ... 1.deb[/url]
[url]https://release.axocdn.com/lin ... 1.rpm[/url]
[url]https://release.axocdn.com/lin ... ar.gz[/url]
[url]https://release.axocdn.com/win ... 1.exe[/url]
如果上面链接下载不了,可以换一个源。我在本地ip下似乎下不了,跑到腾讯云上的云服务器 就可以正常下载。
反正多试几次就可以。
不要点击安装,不然出错了,也不知道是什么问题。
使用命令行安装:sudo dpkg -i gitkraken-amd64.deb
如果报错,依赖出错,那么可以这样操作:sudo apt --fix-broken install
搞定 查看全部
不过最新的版本已经要收费了。
但是如果你用回以前的旧版本,还是可以依然免费的。
[url]https://release.axocdn.com/lin ... 1.deb[/url]
[url]https://release.axocdn.com/lin ... 1.rpm[/url]
[url]https://release.axocdn.com/lin ... ar.gz[/url]
[url]https://release.axocdn.com/win ... 1.exe[/url]
如果上面链接下载不了,可以换一个源。我在本地ip下似乎下不了,跑到腾讯云上的云服务器 就可以正常下载。
反正多试几次就可以。
不要点击安装,不然出错了,也不知道是什么问题。
使用命令行安装:
sudo dpkg -i gitkraken-amd64.deb
如果报错,依赖出错,那么可以这样操作:
sudo apt --fix-broken install
搞定
ubuntu下虚拟机对比virtualbox 和 vmware
Linux • 李魔佛 发表了文章 • 0 个评论 • 2720 次浏览 • 2022-05-28 01:27
virtual box当时选择的是在snap store安装的,不过安装完成之后系统依赖不满足,需要下载系统内核开发库。kernel-headers, kernel-devel. 这个整下来,需要800MB,并且很多系统依赖库可能要被重新安装,因为对应的版本可能对不上。
看到这,想起以前基本每年一次ubuntu重装经历,心有余悸。 思考略1秒,果断关闭,卸载virtual box。选择vmware的怀抱。
vmware的安装包是bundle格式,设置x 可执行权限后,直接安装就可以了。
一路顺畅。
查看全部
Got recursion not available from 8.8.8.8
网络 • 李魔佛 发表了文章 • 0 个评论 • 2361 次浏览 • 2022-05-26 12:18
返回的报错:Got recursion not available from 8.8.8.8
返回的github的ip地址还是为127.0.0.1
只能直接修改hosts文件了 查看全部
返回的报错:
Got recursion not available from 8.8.8.8
返回的github的ip地址还是为127.0.0.1
只能直接修改hosts文件了
原来ubuntu发行的版本数字是按照年份来定的22.04 是22年4月发行的
Linux • 李魔佛 发表了文章 • 0 个评论 • 1677 次浏览 • 2022-05-26 11:30
最早用的10.04 这么看就是12年前的操作系统了。
而18.04也差不多也是4年前的操作系统了。
而当前最新的应该就是22.04 LTS 长期支持版本了。
最早用的10.04 这么看就是12年前的操作系统了。
而18.04也差不多也是4年前的操作系统了。
而当前最新的应该就是22.04 LTS 长期支持版本了。
Ubuntu20安装搜狗输入法 (自带的智能拼音太烂了)
Linux • 李魔佛 发表了文章 • 0 个评论 • 2296 次浏览 • 2022-05-20 13:49
Ubuntu20.04安装搜狗输入法步骤
1、更新源
在终端执行 sudo apt update
2、安装fcitx输入法框架
\1. 在终端输入 sudo apt install fcitx
\2. 设置fcitx为系统输入法
点击左下角菜单选择语言支持,将语言选择为fcitx(如下图二)
\3. 设置fcitx开机自启动
在终端执行sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
\4. 卸载系统ibus输入法框架
在终端执行 sudo apt purge ibus
3、安装搜狗输入法
\1. 在官网下载搜狗输入法安装包,并安装,安装命令 sudo dpkg -i 安装包名
\2. 安装输入法依赖
在终端执行
sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
4、重启电脑、调出输入法
1.重启电脑
2.查看右上角,可以看到“搜狗”字样,在输入窗口即可且出搜狗输入法。
\3. 没有“搜狗”字样,选择配置,将搜狗加入输入法列表即可
至此,搜狗输入法安装完毕 查看全部
Ubuntu20.04安装搜狗输入法步骤
1、更新源
在终端执行 sudo apt update
2、安装fcitx输入法框架
\1. 在终端输入 sudo apt install fcitx
\2. 设置fcitx为系统输入法
点击左下角菜单选择语言支持,将语言选择为fcitx(如下图二)
\3. 设置fcitx开机自启动
在终端执行sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
\4. 卸载系统ibus输入法框架
在终端执行 sudo apt purge ibus
3、安装搜狗输入法
\1. 在官网下载搜狗输入法安装包,并安装,安装命令 sudo dpkg -i 安装包名
\2. 安装输入法依赖
在终端执行
sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
4、重启电脑、调出输入法
1.重启电脑
2.查看右上角,可以看到“搜狗”字样,在输入窗口即可且出搜狗输入法。
\3. 没有“搜狗”字样,选择配置,将搜狗加入输入法列表即可
至此,搜狗输入法安装完毕
ubuntu20 设置程序/脚本开机自动启动 可视化
Linux • 马化云 发表了文章 • 0 个评论 • 3259 次浏览 • 2022-05-16 16:40
无非都是把脚本写入到/etc/rc.local 里面
不过笔者在ubuntu20下,试了他们的方法,发现都没有生效,所以就比较郁闷了。
不过也找到了一种图形界面的方法,亲测也可以使用。
1. 在终端下输入
sudo gnome-session-properties
2. 在弹出来的图形界面中,会让你输入自动启动的命令路径和名字。
这个时候,点击add,然后只需要把你的程序路径填入 command 的地址中,然后随意写一个名字(有意义即可)
查看全部
无非都是把脚本写入到/etc/rc.local 里面
不过笔者在ubuntu20下,试了他们的方法,发现都没有生效,所以就比较郁闷了。
不过也找到了一种图形界面的方法,亲测也可以使用。
1. 在终端下输入
sudo gnome-session-properties
2. 在弹出来的图形界面中,会让你输入自动启动的命令路径和名字。
这个时候,点击add,然后只需要把你的程序路径填入 command 的地址中,然后随意写一个名字(有意义即可)
ubuntu的Shotwell 图片处理,居然连图片大小调整的功能都没有
Linux • 李魔佛 发表了文章 • 0 个评论 • 1594 次浏览 • 2022-05-11 17:31
只好用用中的photogimg(号称ubuntu下的photoshop)
只好用用中的photogimg(号称ubuntu下的photoshop)
ubuntu20 pycharm goland 无法使用中文输入法ibus
Linux • 李魔佛 发表了文章 • 0 个评论 • 1958 次浏览 • 2022-02-20 15:14
ubuntu 20.04 Intelligent Pinyin 1.11.1 IntelliJ IDEA 2020.2.2(Ultimate Edition)
当全拼输入2~3个汉字时,会被强行打断,然后就无法继续输入(也无法切换中英文),并且汉字下会有下划线。
该提问来源于开源项目:libpinyin/ibus-libpinyin
1.点击菜单 "Help | Edit Custom VM options..."
2.添加 -Drecreate.x11.input.method=true 到最后一行
3.重启IDEA
查看全部
ubuntu 20.04 Intelligent Pinyin 1.11.1 IntelliJ IDEA 2020.2.2(Ultimate Edition)
当全拼输入2~3个汉字时,会被强行打断,然后就无法继续输入(也无法切换中英文),并且汉字下会有下划线。
该提问来源于开源项目:libpinyin/ibus-libpinyin
1.点击菜单 "Help | Edit Custom VM options..."
2.添加 -Drecreate.x11.input.method=true 到最后一行
3.重启IDEA
ubuntu20 不建议使用fcitx作为输入法框架
Linux • 李魔佛 发表了文章 • 0 个评论 • 1950 次浏览 • 2022-02-19 11:54
受不了了,直接用会ibus下的智能拼音,也很好用。 查看全部
受不了了,直接用会ibus下的智能拼音,也很好用。