打印当前计算机和操作系统的名称、版本及其他细节.
uname(_unix name_的简写 继续阅读
打印当前计算机和操作系统的名称、版本及其他细节.
uname(_unix name_的简写 继续阅读
一个终端复用器。
Tmux 是一个终端复用器(terminal multiplexer),用起来就 继续阅读
日常工作学习常常会在 Debian 系操作系统中完成,特别是最近自己开始打包、安装,发现 .deb 安装包甚至可以包含内核,且 Debian 就是通过这种方式来管理内核的,那么 deb 软件包中究竟有那些内容呢?
deb是 Debian软件包 格式,文件扩展名 为.deb,跟Debian的命名一样,deb也是因Debra Murdock(Debian创始人Ian Murdock的前妻)而得名。处理这些包的经典程序是 dpkg ,经常是通过 apt 来运作。
流行的的 Ubunut,国内的 Deepin、麒麟等操作系统都是使用这一软件包格式进行软件包管理和分发的,今天就来简单探索一下 deb 软件包中都有什么东西。
这里以 dpkg 软件包为例,看一下这其中都包括了那些内容:
$ ar t dpkg_1.19.7_amd64.deb
debian-binary
control.tar.gz
data.tar.xz
$ ar x dpkg_1.19.7_amd64.deb
$ ls
control.tar.gz data.tar.xz debian-binary dpkg_1.19.7_amd64.deb
$ tar tJf data.tar.xz | head -n 16
...
./etc/dpkg/
./etc/dpkg/dpkg.cfg
./etc/dpkg/dpkg.cfg.d/
...
$ tar tJf control.tar.xz
...
./control
...
$ cat debian-binary
2.0
使用 ar (建立,修改档案或从档案中抽取成员的软件工具)可以看到 Debian 包的 ar 存档格式由三个文件组成:
debian-binary : 指定软件包格式版本,在 Debian Buster 中它仍然是2.0版本。control.tar.xz : 包含所有可用的 元信息,比如包的 名称 和 版本,以及在(取消)安装之前、期间或之后运行的一些脚本。data.tar.xz, data.tar.bz2, data.tar.gz : 包含要从包中提取的所有文件; 这是存储可执行文件、库、文档等的地方。这就是 deb 软件包中包含的内容,想要更详细的了解其中内容推荐大家阅读 《Debian管理员手册》,必将受益匪浅。
最近刚刚通过了 Google Adsense 的审核,加入了其联盟,兴奋之余不忘思考,既然如此艰难的通过了审核,虽然我也不知道为什么之前为什么一直不通过(没有给出具体原因),我也不知道为什么突然就通过了。总之来之不易,一定加倍珍惜,多多输出好的内容来回报社会。
于是在这里记下我在网上搜索的,特别是结合了 Google Adsense 规范内容总结出的一些注意事项,未来需格外小心:
在配置网站 CDN 时总是搞不清其中「回源HOST」与「源站」的区别,因此在这里简单记录。
源站和回源HOST的区别:
如果源站为www.a.com,回源HOST为www.b.com。那么实际回源是请求到www.a.com解析到的IP地址其对应主机上的www.b.com站点。
源站为1.1.1.1,回源HOST为www.b.com。那么实际回源的是1.1.1.1对应主机上的www.b.com站点。
2021年10月21日,基于以下原因,我打算重建自己的博客,这次直接使用顶级域名:
换了 m1 芯片的 Macbook 之后第一个感受到的就是使用 homebrew 的不一样,由于不同的芯片架构,其安装方法也有不同,在这简单记录。
# arm homebrew 同时设为国内源
/bin/zsh -c "$(curl -fsSL https://gitee.com/huwei1024/HomebrewCN/raw/master/Homebrew.sh)"
# 可在 .bashrc 追加下列内容实现 intel 和 arm 共存
alias abrew='arch -arm64 /opt/homebrew/bin/brew'
alias ibrew='arch -x86_64 /usr/local/bin/brew'
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
根据官方规划,ARM 版 Homebrew 必须安装在 /opt/homebrew 路径下,而非此前的 /usr/local/Homebrew。
以 pve-release-6.x ,基于 debian buster 为例:
# 配置 pve 软件包国内镜像源
$ echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian buster pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
$ wget https://enterprise.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-6.x.gpg
Install build dependencies (i got these from the pve-kernel/debian/control file):
apt install asciidoc-base automake bc bison cpio debhelper dh-python file flex gcc git kmod libdw-dev libelf-dev libiberty-dev libnuma-dev libpve-common-perl libslang2-dev libssl-dev libtool lintian lz4 perl-modules python-minimal rsync sed sphinx-common tar xmlto zlib1g-dev
Clone proxmox-kernel
git clone https://git.proxmox.com/git/pve-kernel.git
initialize the submodules
make submodule
If that fails Fabian told me that you have cd in each submodule and do “git fetch –tags”
make
It will build with ALL cores
会自动编译,不需要设置多线程,它会自动调用多线程编译。编译完当前目录的 .deb 包就是内核包,直接使用 dpkg -i 安装即可。
echo 'deb http://ftp.de.debian.org/debian sid main' > /etc/apt/sources.list
sudo apt-get update
sudo install dwarves
# 查看当前磁盘的分区形式,确定新磁盘的盘符
$ fdisk -l
# 开始分区(以 /dev/vda 为例)
$ fdisk /dev/vda
# 键入 n 继续,保持默认即可
# 键入 p 查看分区
# 键入 w 将分区写入分区表
# 将分区表同步到系统
$ partprobe
# 设置新分区的格式(以 /dev/xvda6 为例)
$ mkfs -t ext4 /dev/xvda6
# 将新分区挂载 (以 /opt 为例)
$ mount /dev/xvda6 /opt
# 查看挂载结果
$ df -TH
Tmux 是一个终端复用器(terminal multiplexer),用起来就离不开。网上有很多 Tmux 使用指南,但是用下来发现还是自己整理一遍才能真正的记住,于是有了这篇文章,本文意在整理 tmux 最常用操作,详细的操作指南请移步 「tmux(1) manual page」。
tmux采用C/S模型构建,输入tmux命令就相当于开启了一个服务器,此时将 新建一个会话(session),会话中默认新建一个窗口(window),窗口中默认新建一个面板 (pane) 。
tmux session 可以包含多个 window, window 默认充满 session 。window 又可以包含多个 pane ,且都处于同一界面下。以下按照 Ctrl 和 Alt 的简写记录,周知。
C -> CtrlA -> Alt
- 新建和断开
tmux # 新建一个无名称的会话
tmux new -s demo # 新建一个名称为demo的会话
tmux detach # 断开当前会话,会话在后台运行
tmux a # 默认进入第一个会话
tmux a -t <> # 进入之前的会话
tmux kill-session -t demo # 关闭demo会话
tmux ls # 查看所有会话
C-b d # 断开当前会话
C-b C-Z # 挂起当前会话
C-b c # 新建 window
C-b & # 关闭当前窗口(关闭前需输入y or n确认)
C-b " # 下侧新建面板
C-b % # 右侧新建面板
C-b x # 关闭当前面板(关闭前需输入y or n确认)
C-b 0~9 # 切换到指定 window
C-b p # 切换到上一 window
C-b n # 切换到下一 window
C-b f # 快速定位到 window(输入关键字匹配窗口名称)
C-b s # 显示 session 列表,用于选择并切换
C-b w # 显示 windows 列表,用于且切换窗口
C-b q # 显示 pane 编号,在编号消失前输入对应的数字可切换面板
C-b ←↑→↓ # 移动光标切换 pane
C-b ; # 切换到上一 pane
C-b o # 切换到下一 pane
C-b ! # 将当前 pane 拆分为一个独立 window
C-b z # 最大化当前面板,重复一次恢复正常(v1.8版本新增)
C-b { # 向前置换当前面板
C-b } # 向后置换当前面板
C-b C-o # 顺时针旋转当前窗口中的所有面板
C-b A-o # 逆时针旋转当前窗口中的所有面板
C-b space # 在自带的面板布局中循环切换
C-b A + ←↑→↓ # 以5个单元格为单位调整当前面板边缘
C-b C + ←↑→↓ # 以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖)