#140 GNU/Linux 清空磁盘操作
Linux 2016-05-20记录一次 Linux 下清空磁盘的操作。
dd if=/dev/urandom of=/dev/sdb bs=1M status=progress
coding in a complicated world
记录一次 Linux 下清空磁盘的操作。
dd if=/dev/urandom of=/dev/sdb bs=1M status=progress
重装系统,记录安装过程,留给日后重建同样的开发环境作参考。
其实还有好多细节没有记录,日后慢慢补充完整。
bytes
类型
bytes
按索引取值得到的是整数。
b'abc'[0]
97
str
转 bytes
只需要编码一下就行了。反过来就是解码一下。
s = '你好'
b = bytes(s, 'utf-8')
# b'\xe4\xbd\xa0\xe5\xa5\xbd'
assert b.decode('utf-8') == s
bytes('hello')
TypeError: string argument without an encoding
bytes('hello', 'ascii')
b'hello'
'hello'.encode()
b'hello'
bytes('hello', 'utf-16')
b'\xff\xfeh\x00e\x00l\x00l\x00o\x00'
bytes('hello', 'utf-32')
b'\xff\xfe\x00\x00h\x00\x00\x00e\x00\x00\x00l\x00\x00\x00l\x00\x00\x00o\x00\x00\x00'
bytes
和 int
列表的转换。
list(b'abc')
[97, 98, 99]
bytes([97, 98, 99])
b'abc'
bytes([256])
ValueError: bytes must be in range(0, 256)
# 大端序
(2008).to_bytes(length=4, byteorder='big', signed=False)
b'\x00\x00\x07\xd8'
# 小端序
(2008).to_bytes(length=4, byteorder='little', signed=False)
b'\xd8\x07\x00\x00'
struct.pack('<I', 2008)
b'\xd8\x07\x00\x00'
int.from_bytes(b'\x00\x00\x07\xd8', 'big')
2008
int.from_bytes(b'\xd8\x07\x00\x00', 'little')
2008
int.from_bytes(b'abc', 'little')
6513249
int.from_bytes(b'cba', 'big')
6513249
PS:2020/11/02, 字节顺序(大端序、小端序)
Python2 字符串
# python2
print(repr('你好'))
'\xc4\xe3\xba\xc3'
print('\xc4\xe3\xba\xc3')
你好
# python3
print('\xc4\xe3\xba\xc3')
'ÄãºÃ'
print('\xc4\xe3\xba\xc3'.encode('latin-1'))
b'\xc4\xe3\xba\xc3'
print('\xc4\xe3\xba\xc3'.encode('latin-1').decode('gbk'))
'你好'
安装 Ubuntu 16.04 时选择的分区方案。
挂载点 | 大小 | 意义 |
---|---|---|
/ |
50GB | 根目录 |
/boot |
10GB | 启动目录 |
/home |
150GB | 用户主目录 |
/usr |
100GB | 程序分区 |
/var |
50GB | 变量文件目录 |
/tmp |
50GB | 临时文件目录 |
SWAP |
20GB | 交换分区 |
在命令行中输出颜色文字。
关于 DNF 的更多信息,参考:2016/05/03 CentOS DNF
.rpm
包,和 .deb
包是 Linux 生态中两种最主要的包格式。bash-4.2.46-35.el7_9.x86_64.rpm
其中:
名称 :bash
架构 :x86_64
版本 :4.2.46
发布 :31.el7
大小 :3.5 M
源 :installed
来自源:anaconda
简介 : The GNU Bourne Again shell
网址 :http://www.gnu.org/software/bash
协议 : GPLv3+
描述 : The GNU Bourne Again shell (Bash) is a shell or command language
: interpreter that is compatible with the Bourne shell (sh). Bash
: incorporates useful features from the Korn shell (ksh) and the C shell
: (csh). Most sh scripts can be run by bash without modification.
yum help list # 查看帮助
yum search <package> # 搜索包
yum list
yum list installed
rpm -qa
yum list --upgradable
yum info <package>
rpm -qi <package>
rpm -ql <package> # 已安装包的文件列表
rpm -qd <package> # 已安装包的文件列表中的文档部分
rpm -qc <package> # 已安装包的文件列表中的配置部分
yum repolist
# repoquery 是 yum-utils 包提供的命令
repoquery -l <package> # 文件列表
repoquery -f <filepath> # 查看文件属于哪个包, 比如: `repoquery -f "*/repoquery"`
repoquery --location <package> # 查看包的下载地址
yum deplist <package> # 依赖
rpm -qR <package> # 已安装包的依赖
rpm -q --whatrequires <package> # 反向依赖
rpm -q --whatprovides <filepath>
rpm -qf <filepath>
yum provides <pattern>
yum whatprovides <patter>
yum check-update
yum updateinfo
yum update [package]
yum upgrade [package]
yum update-minimal
yum upgrade-minimal # 和 yum update-minimal 相同
yum downgrade <package>
yum install <package>
yum install <package-rpm-filepath>
yum reinstall
yum makecache
yum clean
yum erase
yum remove
yum autoremove
# list, info, summary, repeat, redo, undo, new, rollback, addon, addon-info, stats, statistics, sync, synchronizepkg, pkgs, pkg-list, pkgs-list, package, package-list, packages, packages-list, pkg-info, pkgs-info, package-info, packages-info
yum history
yum history list
yum history list all
yum versionlock <package>
RedHat 系列提供的,安装组(Group)的概念非常好。
安装组就是为了某一个目的需要的一组包,比如 gnome-desktop 组是安装一个完整的 gnome 桌面环境,web-server 组是安装 apache 和相关的几个包。
$ yum help groups
groups [list|info|summary|install|upgrade|remove|mark] [GROUP]
显示或使用、组信息
别名:group, grouplist, groupinfo, groupinstall, groupupdate, groupremove, grouperase
yum grouplist
yum group list ids
附带组 IDyum group list hidden
列出所有组yum groupinfo
yum groupinstall <group>
yum install @<group>
yum install @^<environment-group>
yum --setopt=group_package_types=mandatory,default,optional groupinstall "Web Server"
yum groupupdate
yum groupremove
yum grouperase
/etc/yum.conf
/etc/yum.repos.d/
/etc/yum/
/etc/rpm 目录不知道是干什么的。
比如最常见的 fastestmirror,用于自动选择最快的镜像源。所以我们使用 CentOS 时,一般不需要去配置镜像源。
复制指定 URL 路径下的所有文件到本地目录 HTML 下:
wget -m -p -k -np -P <HTML> <URL>
Nginx 商用版 1.5.7 (2013 年) 开始支持 sticky 指令。
文档: https://nginx.org/en/docs/http/ngx_http_upstream_module.html#sticky
Syntax: sticky cookie name [expires=time] [domain=domain] [httponly] [samesite=strict|lax|none] [secure] [path=path];
sticky route $variable ...;
sticky learn create=$variable lookup=$variable zone=name:size [timeout=time] [header] [sync];
Default: —
Context: upstream
开源版有 nginx-sticky-module。
C 语言写的,BSD 协议。
代码看起来并不复杂,如果需要用到的时候,可以进行一个粗略的 Review。
# 下载 nginx 源码 (2016-04-26)
wget http://nginx.org/download/nginx-1.10.0.tar.gz http://nginx.org/download/nginx-1.10.0.tar.gz.asc
gpg --verify nginx-1.10.0.tar.gz.asc
# 下载 nginx-sticky-module (2015-08-06)
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/1.2.6.zip
unzip 1.2.6.zip
cd nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d/
unzip nginx-1.10.0.zip
cd nginx-1.10.0/
# 其他参数按需添加
./configure --add-module=../nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d/
make && make install
# Configuration summary
# + using system PCRE library
# + OpenSSL library is not used
# + md5: using system crypto library
# + sha1: using system crypto library
# + using system zlib library
# nginx path prefix: "/usr/local/nginx"
# nginx binary file: "/usr/local/nginx/sbin/nginx"
# nginx modules path: "/usr/local/nginx/modules"
# nginx configuration prefix: "/usr/local/nginx/conf"
# nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
# nginx pid file: "/usr/local/nginx/logs/nginx.pid"
# nginx error log file: "/usr/local/nginx/logs/error.log"
# nginx http access log file: "/usr/local/nginx/logs/access.log"
# nginx http client request body temporary files: "client_body_temp"
# nginx http proxy temporary files: "proxy_temp"
# nginx http fastcgi temporary files: "fastcgi_temp"
# nginx http uwsgi temporary files: "uwsgi_temp"
# nginx http scgi temporary files: "scgi_temp"
upstream {
sticky;
server 127.0.0.1:9000;
server 127.0.0.1:9001;
server 127.0.0.1:9002;
}
sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h]
[hash=index|md5|sha1] [no_fallback] [secure] [httponly];
ABO 血型系统是根据血小板上的两种抗原——A 抗原和 B 抗原——来区分的:
A 型血的人会消灭 B 抗原,所以不能输 B 型血和 AB 型血,只能输 A 型血和 O 型血;
同理,B 型血的人会消灭 A 抗原,所以不能输 A 型血和 AB 型血,只能输 B 型血和 O 型血;
AB 型血的人自己就两种抗原都有,当然都不消灭,所有血型的血都可以;
相反,O 型血的人两种抗原都没有,哪种都不可接受,所以只能使用 O 型血。
No | 父/母 | 父/母 | 子女 | 子女 | 子女 | 子女 |
---|---|---|---|---|---|---|
1 | O | O | O | - | - | - |
2 | O | A | O | A | - | - |
3 | O | B | O | - | B | - |
4 | O | AB | - | A | B | - |
5 | A | A | O | A | - | - |
6 | A | B | O | A | B | AB |
7 | A | AB | - | A | B | AB |
8 | B | B | O | - | B | - |
9 | B | AB | - | A | B | AB |
10 | AB | AB | - | A | B | AB |
一共 10 种组合:
生 O 型血子女的组合有 6 种
生 AB 型血子女的组合有 4 种
AB 型血父母不能生 O 型血子女
牛耕田回来,躺在栏里,疲惫不堪地喘着粗气,狗跑过来看它。
“唉,老朋友,我实在太累了。”牛诉着苦,“明儿个我真想歇一天。”
狗告别后,在墙角遇到了猫。狗说:“伙计,我刚才去看了牛,这位大哥实在太累了,它说它想歇一天。也难怪,主人给它的活儿太多太重了。”
猫转身对羊说:“牛抱怨主人给它的活儿太多太重,它想歇一天,明天不干活儿了。”