利用 aria2 在 linux 命令行下载文件
aria2 是一个轻量级的多协议和多源命令行下载实用程序。它支持 HTTP/HTTPS、FTP、SFTP、BitTorrent 和 Metalink。 aria2 可以通过内置的 JSON-RPC 和 XML-RPC 接口进行操作。它具有多连接下载、轻量级、功能齐全的 BitTorrent 客户端、可元链接(Metalink )下载和远程控制等特征。下面介绍如何利用该工具在 Ubuntu 上以命令行的形式下载文件。
安装12sudo apt updatesudo apt install aria2 -y
下载文件aria2 工具在命令行上是 aria2c (aria2 client),可使用该命令下载各种类型的文件,如单个文件、torrent文件、磁力文件等。
根据文件路径下载12345# 直接下载aria2c https://mirrors.zju.edu.cn/ubuntu-releases/20.04.3/ubuntu-20.04.3-desktop-amd64.iso# 下载保存为自定义名字aria2c -o ubuntu20.04.iso https://mi ...
ubuntu 更改镜像源
Ubuntu 是大家常用的 Linux 操作系统,但有时候安装软件时,会遇到连接错误,导致安装失败。比如,我安装 ffmpeg 时就出现无法安装的问题。那么,如何将镜像源切换为阿里源等,使得安装更快。本篇介绍如何为 Ubuntu 更改镜像源。
修改配置文件修改镜像源需要更改配置文件 etc/apt/sources.list,需要 root 权限。建议更改前,先把原文件保存一份
12# 保存原文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改为阿里源,只需要将 etc/apt/sources.list 中的二级地址改为:mirrors.aliyun.com
修改完上述文件后,需要运行如下命令
1sudo apt update
可用的源不同系统版本,需要的源不同。
喜欢清华源的可访问清华源地址,获取可用源信息。
Ubuntu 20.04,focal:1234567891011121314deb http://mirrors.aliyun.com/ubuntu/ focal main restricted univ ...
FFmpeg 视频处理等相关
FFmpeg 是一个非常受欢迎的、完备的、跨平台的、开源的用于处理多媒体内容(如音频、视频、字幕及其他相关元数据)的库和工具集。本篇介绍 FFmpeg 的相关概念和基本使用方法。所有命令以 Ubuntu 为例进行介绍,Windows 和 Mac 同样适用。
FFmpeg 安装想要使用 FFmpeg (Linux中对应的程序为 ffmpeg),必须首先安装它。Ubuntu(Centos 安装 FFmpeg的方法参考我的另一篇:Centos安装ffmpeg。Ubuntu 切换镜像源的方法参考我的另一篇:ubuntu 更改镜像源) 安装 FFmpeg 非常方便,命令如下:
12sudo apt updatesudo apt install ffmpeg
容器在介绍 FFmpeg 处理视频之前,我们需要对视频有个了解。从计算上来说,视频文件是一个容器 (container),在该容器中包含了视频(图片序列,无声音)、音频、字幕等内容。
常见的视频容器有如下几种,常常以文件后缀名来反映其容器格式:
MP4:常用
MKV:更清晰
WebM:体积更小
AVI:较久远
FFmpeg 支持很多 ...
Ubuntu 明文显示 known hosts
Ubuntu 通过 SSH 连结服务器时,将服务器的基本信息保存在相应用户名下的 .ssh/known_hosts 文件中,但是,默认保存的信息是通过密文保存的,这虽然安全,但不方便自己查看。如想要删除特定服务器信息时不好查找对应的信息。明文显示并不会造成不安全,在 Mac 系统中默认就是以明文显示。本篇介绍如何将信息保存为明文,方便自己查看。
修改配置只需要修改 SSH 的配置信息就可以设置明文保存 SSH 连结的服务器信息。方法如下:
1234sudo vim /etc/ssh/ssh_config# 将 HashKnownHosts 默认值 yes 改为 noHashKnownHosts no
建议先清空 .ssh/known_hosts ,然后再连接将会以明文方式显示。
更新 debian 系统内核版本
Debian 系统的内核升级的简单方法。本篇以 Debian 10 为例,所有命令均以 root 用户运行。
添加源1echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list
安装最新内核和头文件查看可安装的内核版本
1apt search linux-image
注意,有些人可能会安装云版本(如,linux-image-.**.-cloud-amd64)的内核,该种版本缺失一些必要的驱动程序,安装后可能导致无法直接使用,如 SSH 连接等。建议按如下方式安装完全版。
1234apt updateapt -t buster-backports install linux-image-amd64apt -t buster-backports install linux-headers-amd64update-grub
重新启动服务器
1shutdown -r now
查看内核版本1uname -r
卸载 ...
Python 网站开发之 flask
Python 网站开发常用的框架有 Flask, Django 等等,其中 Django 适合大型网站的开发,Flask 是一种微框架,用户自定义程度高。本篇介绍 Flask 开发网站的一些知识。
Flask 安装建议安装 Miniconda,并创建相应 Python 版本的虚拟环境,然后通过如下命令安装 Flask
1pip install Flask
Flask-SQLAlchemy 数据库添加用户和删除用户
1234567891011121314151617from app.models import Userfrom app import bcrypt# 明文密码passwd = '11111111'# 添加用户时必须使用加密密码me = User(username='me', email='me@outlook.com', password=bcrypt.generate_password_hash(passwd))# 添加用户db.session.add(me)# 提交后才算成功db.session.comm ...
ipython 中的魔法命令
Jupyter lab 或 ipython 中可以方便的书写 python 代码和 markdown 文档。同时,利用魔法命令可以书写 latex 文档、javascript 代码、js 代码、ruby 代码、bash 命令等。另外,魔法命令中还包含一些辅助工具(如 prun、timeit、writefile、loadpy)等等。本篇对其进行简单介绍。
魔法命令魔法命令(注意区别 Python 中的魔法函数)是由 ipython 提供的。查看所有魔法命令,可以在 jupyter lab 中使用如下魔法命令:
1%lsmagic
所有魔法命令分为两类,一类是面向行的魔法命令,一类是面向单元格的魔法命令。分别对应 line 和 cell:
123root: line: cell:
行命令是针对单行代码进行使用的,如:
1234%timeit sum((x*2 for x in range(100)))# 输出结果6.73 µs ± 70.8 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
单元格魔法命令是针对 ...
linux 中 ls 仅列出目录或文件
Linux 中的 ls 命令可谓是使用最多的命令之一,有效掌握该命令的能够大大提高效率,下面介绍如何使用 ls 命令仅列出目录或文件。本篇以 Ubuntu 18.04 为例。
仅列出目录12345678910# 不能罗列隐藏目录ls -ld */ls -lF | grep /ls -lF | grep /$# 不罗列隐藏目录ls -l | grep ^d# 能够罗列隐藏目录ls -al | grep ^d
仅列出文件12345# 不罗列隐藏文件ls -l | grep ^-# 能够罗列隐藏文件ls -al | grep ^-
参考链接
Linux Shell 只列出目录的方法
Linux技巧:ls命令只列出子目录名和每行打印一个文件名
Python 中的迭代器和生成器
Python 中对象的遍历称为迭代,常用 for 循环和 while 循环等实现。那么有哪些对象可以迭代,它们有什么共同特性呢?本篇对可迭代对象、迭代器和生成器进行介绍。
迭代对于 python 中的 list, tuple, dict, set, str,文件对象等容器(数据的集合,这里不使用集合为了区分 python 中的 set),我们可以使用 for 循环等遍历里面的元素,但没有按照固定的顺序进行:
12for i in set("a1$."): print(i) # 1 $ a .
对于 C 语言,迭代都是按照索引顺序进行:
123for (i = 0; i < length; i++) { n = list[i];}
可见,python 的 for 循环的抽象程度是高于 C 的。因此,在 python 中对于没有索引的容器都可以进行迭代。如
12345678910111213d = {"a": 1, "b": 2}# 对键进行迭代,对字典迭代默认为 ...
SSH 消息聊天与广播
通过 SSH 连接到远端主机,一般会打开一个伪终端(pts)。Linux 系统是可进行多用户访问,当你访问远端主机时,别人也可能正在进行访问,当我们需要进行远端主机重启等一些影响别人使用远端主机的行为时,我们需要把重启的消失广播给其他用户。
write 消息聊天使用 write 能够在终端上互相聊天,方法如下:
12345678910# 查看当前登录用户whojinzhongxu pts/2 2022-01-20 19:08 (127.0.0.1)jinzhongxu pts/3 2022-01-20 15:37 (10.2.28.40)# 我当前登录使用的是伪终端 pts/3,想发给 pts/2 实时消息# 发送消息,类似于写信,先写发送对象,回车后写内容,一行回车将直接发送信息给对方write jinzhongxu pts/2hello, I will reboot this computer!!!
此时,登录在伪终端 pts/3 的用户终端上就会显示我发生的信息。
查看伪终端的方法还有
123tty# 显示伪终端/dev/pts/2
...
SSH 转发知识汇总
我这里有个需求,就是如何将公司局域网内的服务器A开发的网站开放到互联网上。公司局域网的服务器A能够通过主路由器访问互联网,但却没有公网 IP,因此,无法在互联网上直接访问A上的网页。通过 SSH 远程端口转发可以实现这一目的。借此,本篇汇总记录一下 SSH 转发的相关知识。本篇以 Ubuntu18.04 为例,所有端口均指 TCP 端口,建议防火墙开放相应的端口,并保证端口没有被占用。
SSH 简介如今,SSH 在 Linux/MacOS/Windows 上是标配的软件工具。事实上,SSH 是一种网络协议,由芬兰学者 Tatu Ylonen 于 1995 年设计,用于主机之间的加密登录,将登录信息全部加密。现如今,针对该协议开发有各种实现,有商业的,也有开源的,如 OpenSSH 等。
1234# 使用 SSH 以用户 username 登录到主机 host_ip 上ssh username@host_ip# 指定端口登录ssh -p 2222 uername@host_ip
端口可以在 host_ip 上进行修改,方法如下:
123456# 在配置文件中修改 ...