「Linux下,WPA Supplicant安装」

从发行版的源中安装

# Kali GNU/Linux Rolling
apt-get install wpasupplicant wpagui

使用源码编译安装
参考 BLFS/wpa_supplicant-2.5 页面
安装的可执行程序
wpa_gui,用于和 wpa_supplicant 服务进程交互的 GUI 工具;
wpa_cli,用于控制 wpa_supplicant 服务进程的命令行工具;
wpa_supplicant,守护进程,由于连接受密码保护的无线热点;
wpa_passphrase,使用 SSID 和密码生成 wpa_supplicant 可识别的配置格式;
参考文献
BLFS/wpa_supplicant-2.5[……]

READ MORE

「xinit」

xinit,该软件包包含两个程序:xinit和startx,便于启动X server,并加载基本X session的程序。
安装

#!/bin/bash

# Kali GNU/Linux Rolling
apt-get install xinit

安装的可执行程序
xinit X Window System的初始化程序。
startx 初始化一个X session。
参考文献

dpkg -L xinit
BLFS/xinit-1.3.4[……]

READ MORE

「startx(1)」-

初始化一个X会话
命令语法格式
startx [ [ client ] options … ] [ — [ server ] [ display ] options … ]
命令描述
脚本startx是xinit(1)的前端,它为运行X Window系统的单个会话提供了更好的用户接口。它通常没有参数运行。
紧跟startx命令之后的参数用于启动客户端,以与xinit(1)相同的方式。特殊参数’–‘标记客户端参数的结束和服务器选项的开始。 使用startx指定服务器选项可能很方便,可以在每个会话的基础上更改默认颜色深度、服务器的显示设备所呈现的每英寸点数的概念、或利用不同的服务器布局,允许由Xorg(1)服务器在xorg.conf(5)配置中指定。 下面是一些指定服务器参数的例子;请参阅X服务器的手册页,以确定哪些参数合法。

startx — -depth 16
startx — -dpi 100
startx — -layout Multihead

请注意,在Debian系统中,许多传统上放在.xinitrc中的内容应该进入.xsession中;这允许呈现相同的X环境,无论startx,xdm,xinit中的哪个用于启动X会话。在xinit(1)手册页中对.xinitrc文件的所有讨论同样适用于.xsession。 请记住,.xinitrc仅由xinit(1)使用,并且完全被xdm(1)忽略。
要确定要运行的客户端,startx将按顺序查找以下文件:

$(HOME)/.startxrc
/usr/lib/x86_64-linux-gnu/sys.startxrc
$(HOME)/.xinitrc
/etc/X11/xinit/xinitrc

如果给出了命令行客户机选项,它们将覆盖此行为并恢复为xinit(1)行为。 要确定要运行的服务器,startx首先在用户的主目录中查找名为.xserverrc的文件。 如果找不到,则使用xinit库目录中的文件xserverrc。 如果给出了命令行服务器选项,它们将覆盖此行为并恢复为xinit(1)行为。 用户很少需要提供.xserverrc文件。 有关参数的更多详细信息,请参见xinit(1)手册页。
系统范围的xinitrc和xserverrc文件位于/etc/X11/xinit/中。
相关环境变量
DISPLAY 此变量被设置为客户端应连接的显示的名称。请注意,这是设置,而不是读取。
XAUTHORITY 此变量(如果尚未定义)将设置为$(HOME)/.Xauthority。 这是为了防止X服务器(如果没有给出-[……]

READ MORE

「xinit(1)」-

X Window系统初始化程序
命令语法格式
xinit [ [ client ] options … ] [ — [ server ] [ display ] options … ]
命令描述
命令xinit用于在不使用显示管理器(如xdm(1))的系统上或在使用多个窗口系统的环境中启动X Window System服务器和第一个客户端程序。 当第一个客户端退出时,xinit将终止X服务器然后终止。
如果在命令行上没有给出特定的客户端程序,xinit将在用户的主目录中查找名为.xinitrc的文件,以作为shell脚本运行以启动客户端程序。 如果不存在此类文件,xinit将使用以下内容作为默认值:

# xterm -geometry +1+1 -n login -display :0

如果命令行中没有给出特定的服务器程序,xinit将在用户的主目录中查找名为.xserverrc的文件,以作为shell脚本运行以启动服务器。 如果不存在此类文件,xinit将使用以下内容作为默认值:

# X :0

请注意,这假定当前搜索路径中有一个名为X的程序。 因此,站点管理员应该在计算机上建立相应类型服务器的链接,或者创建一个与适当服务器一起运行xinit的shell脚本。
注意,使用.xserverrc脚本时,请务必“执行”真正的X服务器。 如果不这样做,可能会使X服务器启动和退出变慢。 例如:

# exec Xdisplaytype

重要的一点是,.xinitrc运行的程序如果不立即退出,应该在后台运行,这样它们就不会阻止其他程序启动。但是,最后一个长期存在的程序(通常是一个窗口管理器或终端模拟器)应该留在前台,这样脚本就不会退出(这表明用户已经完成并且xinit应该退出)。
可以在命令行上指定备用客户端和/或服务器。所需的客户端程序及其参数应作为xinit的第一个命令行参数给出。要指定特定的服务器命令行,请在xinit命令行(在任何客户端和参数之后)附加双短划线(–),后跟所需的服务器命令。
客户端程序名称和服务器程序名称都必须以斜杠(/)或句点(.)开头。否则,它们将被视为要附加到各自启动行的参数。这使得可以添加参数(例如,前景色和背景色),而无需重新键入整个命令行。
如果未给出显式服务器名称,且双短划线(–)后面的第一个参数是冒号后跟数字,则xinit将使用该数字作为显示数字而不是零。所有剩余的参数都附加到服务器命令行。
相关环境变量
DISPLAY 此变量被设置为客户端应连接的显示的名称。
XINITRC 此变量指定包含用于启动初始窗口的Shel[……]

READ MORE

「xl2tpd」

pfc
xl2tpd
xl2tpd-control

章节列表
「xl2tpd-control(8)」-[……]

READ MORE

「xl2tpd-control(8)」-

L2TP守护进程的控制程序
命令语法格式
xl2tpd-control [-c <PATH>] <command> <tunnel name> [<COMMAND OPTIONS>]
命令描述
命令xl2tpd-control是L2TP守护进程的控制程序。
目前由Xelerance维护:http://www.xelerance.com/software/xl2tpd
命令行选项
-c 指定xl2tpd的控制文件,通常为/var/run/xl2tpd/l2tp-control文件。
-d 指定xl2tpd-control应该运行在调试模式。
命令行命令
add 添加新的或修改现有的LAC配置。配置必须以<key>=<value>的格式作为命令选项。查看xl2tpd.conf(5)中的可用选项。
connect 尝试激活隧道。隧道的用户名和密码可以作为命令选项传递。
disconnect 断开隧道。
remove 从xl2tpd中删除LAC配置。在xl2tpd删除配置之前,会先断开隧道连接。
add-lac 添加新的或修改现有的LAC配置。
connect-lac
disconnect-lac
remove-lac
available
status
add-lns 添加新的或修改现有的LNS配置。
remove-lns
status-lns
相关手册
xl2tpd.conf(5)
参考文献

man 8 xl2tpd-control, Version 1.3.12-1
xelerance/xl2tpd/xl2tpd-control.c
xl2tpd-control • help

更新日志

11/06/2018 创建文章[……]

READ MORE

「Xorg applications」

在 Xorg applications 中,提供系列能够在 X Window 的实现中运行的程序,诸如编辑器、时钟、终端、窗口管理器及管理工具等等。
应用列表
该章节将介绍在 Xorg Applications 中的命令,下面是命令列表:
appres
bdftopcf
beforelight
bitmap
compiz
constype
editres
fonttosfnt
fslsfonts
fstobdf
grandr
iceauth
ico
intel
lbxproxy
listres
luit
mkcfm
mkcomposecache
mkfontdir
oclock
proxymngr
rendercheck
rgb
rstart
scripts
sessreg
setxkbmap
showfont
smproxy
transset
twm
viewres
x11perf
xauth
xbacklight
xbiff
xbitmaps
xcalc
xclock
xcmsdb
xcompmgr
xconsole
xcursorgen
xdbedizzy
xditview
xdm
xdpyinfo
xdriinfo
xedit
xev
xeyes
xf86dga
xfd
xfindproxy
xfontsel
xfs
xfsinfo
xfwp
xgamma
xgc
xhost
xinit
xinput,配置和测试X中的输入设备。xinput,命令用于列出可用的输入设备、查询设备的信息、修改输入设备的设置。
xkbcomp
xkbevd
xkbprint
xkbutils
xkill
xload
xlogo
xlsatoms
xlsclients
xlsfonts
xmag
xman
xmessage
xmh
xmodmap 用于修改X中的键盘映射和鼠标按钮映射。
xmore
xphelloworld
xplsprinters
xpr
xprehashprinterlist[……]

READ MORE

「XCLOCK」

xclock – analog / digital clock for X
SYNOPSIS
xclock [ -help ]

[ -analog | -digital ] [ -brief ] [ -chime ] [ -hd color ] [ -hl color ] [ -update seconds ] [ -strftime format ] [ -twelve | -twentyfour | -utime ] [ -padding number ] [ -norender ] [ -render ] [ -sharp ] [ -face pattern ]

DESCRIPTION
The xclock program displays the time in analog or digital form. The time is continuously updated at a frequency which may be specified by the user.
OPTIONS
Xclock accepts all of the standard X Toolkit command line options along with the additional options listed below:
-help 在stderr上输出一个允许使用的选项的简短概要。
-analog 此选项表示显示一个使用刻度标记和指针的12小时的图形时钟。该选项是默认值。
-digital or -d 显示一个24小时的数字时钟。
-brief 对数字时钟使用该选项后,只显示小时和分钟。 不使用该选项时,数字时钟会显示完整的日期和时间。
-utime 对于数字时钟,使用该选项后显示从Epoch开始的秒值,格式为‘970012340 seconds since Epoch’,而不在显示24小时时间。
-strftime format 用于指定数字时钟的显示格式,格式字符串format支持的格式参考strftime(3)。
-twelve 使数字时钟以12小时格式来显示时间。
-twentyfour 使数字时钟以24小时格式来显示时间。使用数字时钟时,该选项是默认的。
-chime 敲钟报时。半小时响一次,一小时响两次。
-hands color (or -hd color)

This option specifies the color of the hands on an analog clock. The default is black. This option
is effectively[……]

READ MORE

「xhost」-

server access control program for X
命令语法格式
xhost [[+-]name …]
命令描述
命令xhost用于向”允许与X服务器建立连接的列表“中添加和删除主机名或用户名。在主机的情况下,这提供了基本形式的隐私控制和安全性。它仅适用于工作站(单用户)环境,尽管它确实限制了最严重的滥用。 需要更复杂措施的环境应该实现基于用户的机制或使用协议中的钩子将其他身份验证数据传递给服务器。
命令支持的选项及含义
xhost接受以下命令行选项。 为安全起见,影响访问控制的选项只能从“控制主机”运行。 对于工作站,这与服务器是同一台机器。 对于X终端,它是登录主机。
如果没有给出命令行参数,则会打印一条消息,指示当前是否启用了访问控制,然后是允许连接的列表。 这是可以从控制主机以外的机器使用的唯一选项。
-help 显示一个使用信息。
[+]name 给定的name(加号是可选的)被添加到允许连接到X服务器的列表中。参数name可以是主机名或完整名称(有关详细信息,请参阅「NAMES」部分)。
-name 给定name将从允许连接到服务器的列表中删除。参数name可以是主机名或完整名称(有关详细信息,请参阅「NAMES」部分)。
现有连接不会中断,但新连接尝试将被拒绝。 请注意,允许删除当前机器;但是,将不允许进一步的连接(包括尝试将其添加回来)。重置服务器(从而断开所有连接)是再次允许本地连接的唯一方法。
+ 即使不在列表中(即访问控制已关闭),也会向所有人授予访问权限。
– 访问仅限于列表中的访问(即,打开访问控制)。
NAMES
完整name语法为family:name,其中的family如下:

inet Internet host (IPv4)
inet6 Internet host (IPv6)
dnet DECnet host
nis Secure RPC network name
krb Kerberos V5 principal
local contains only one name, the empty string
si Server Interpreted

该family不区分大小写。而name的格式因family而异。
使用Secure RPC时,可以指定网络独立网络名称(例如,“nis:unix.uid@domainname”),或者只使用用户名和尾随符号指定本地用户(例如,“nis:pat@”)。
为了与前R6 xhost向后兼容,假定包含at符号(@)的name位于family为nis中。否则[……]

READ MORE

「xlsatoms(1)」-

列出在服务器上定义的实体原子
命令语法格式
xlsatoms [-options …]
命令描述
命令xlsatoms列出了实体原子。 默认情况下,列出从1开始的所有原子(协议定义的最低原子值),直到找到未知原子。 如果给出了明确的范围,xlsatoms将尝试该范围内的所有原子,无论是否有任何未定义的原子。
命令支持的选项及含义
-display dpy 此选项指定要连接的X服务器。
-format string 此选项指定printf样式字符串,用于列出按顺序打印的每个atom的<value,name>对(value为unsigned long,而name为char *)。命令xlsatoms将在每行结尾处提供换行符。默认值为%ld\t%s。
-range [low]-[high] 此选项指定要检查的原子值范围。如果未给出low值,则假定值为”1“。 如果没有给出high位,xlsatoms将停在第一个未定义的原子处或高于low位。
-name string 此选项指定要列出的原子的名称。 如果原子不存在,将在标准错误上打印一条消息。
-version 显示版本信息并退出程序。
相关环境变量
DISPLAY 获取默认主机、显示编号、屏幕。
相关手册
X(7), Xserver(1), xprop(1)
参考文献

man 1 xlsatoms, Version 7.7+3+b1

更新日志

11/04/2018 创建文章[……]

READ MORE

「xlsclients(1)」-

列出在显示器上运行的客户端应用
命令语法格式
xlsclients [-display displayname] [-a] [-l] [-m maxcmdlen] [-version]
命令描述
命令xlsclients是一个实用程序,用于列出有关在显示器上运行的客户端应用程序的信息。 它可用于生成”表示用户当前会话快照“的脚本。
命令支持的选项及含义
-display displayname 指定要连接的X服务器。
-a 此选项表示应列出所有屏幕上的客户端。 默认情况下,仅列出默认屏幕上的那些客户端。
-l 以长格式列出,除了以默认格式显示的机器名称和命令字符串外,还提供窗口名称、图标名称、类提示。
-m maxcmdlen 此选项指定要打印的命令中的最大字符数。 默认值为”10000“。
-version 显示版本信息并退出程序。
相关环境变量
DISPLAY 获取默认主机、显示编号、屏幕。
相关手册
X(7), xwininfo(1), xprop(1)
参考文献

man 1 xlsclients, Version 7.7+3+b1

更新日志

11/04/2018 创建文章[……]

READ MORE

「xlsfonts(1)」-

X的服务器字体列表显示器
命令语法格式
xlsfonts [-display host:dpy] [-l] [-ll] [-lll] [-m] [-C] [-1] [-w width] [-n columns] [-u] [-o] [-fn pattern]
命令描述
命令xlsfonts列出与给定模式parrtern匹配的字体。通配符“*”可用于匹配任何字符序列(包括空)和“?” 匹配任何单个字符。如果没有给出模式,则假定为“*”。
必须引用字符“*”和“?”以防止它们被Shell扩展。
命令支持的选项及含义
-display host:dpy 此选项指定要连接的X服务器。
-d host:dpy 等同于-display host:dpy选项
-l 除了名称之外,还在一行中列出字体的某些属性。
-ll 除-l输出之外,列出字体属性。
-lll 除-ll输出外,还列出字符度量标准。
-m 此选项表示长列表还应打印每种字体的最小和最大边界。
-C 此选项表示列表应使用多列。 这与-n 0相同。
-1 此选项表示列表应使用单个列。 这与-n 1相同。
-w width 在确定要打印的列数时,应使用的字符宽度。 默认值为79。
-n columns 此选项指定用于显示输出的列数。 默认情况下,它会尝试将尽可能多的字体名称列合并为-w width指定的字符数。
-u 此选项表示输出应保持未排序。
-o 此选项表示xlsfonts应该执行OpenFont(和QueryFont,如果适用),而不是ListFonts。 如果ListFonts或ListFontsWithInfo无法列出已知字体(如某些缩放字体系统的情况),这将非常有用。
-fn pattern 此选项指定要匹配的字体名称模式。
-v 此选项表示xlsfonts应打印出程序版本并退出。
注意事项
执行xlsfonts -l会占用你的服务器很长一段时间。 这实际上是单线程非抢占服务器的错误,而不是这个程序。
相关环境变量
DISPLAY 必须设置DISPLAY才能获取默认主机和要使用的显示。
相关手册
X(7), Xserver(1), xset(1), xfd(1), X Logical Font Description Conventions
参考文献

man 1 xlsfonts, Version 7.7+3+b1

更新日志

11/16/2018 创建文章[……]

READ MORE

「xset」

xset,用于设置显示器的各种用户属性选项。
如果想要持久化设置,可以将设置写入.xinitrc文件中。
命令行语法格式

xset [-display display]
[-b] [b {on|off}] [b [volume [pitch [duration]]]]
[-bc] [bc]
[-c] [c {on|off}] [c [volume]]
[+dpms] [-dpms]
[dpms standby [ suspend [ off]]] [dpms force {standby|suspend|off|on}]
[fp=pathlist] [-fp=pathlist] [+fp=pathlist] [fp-pathlist] [fp+pathlist]
[fp default] [fp rehash]
[-led [integer|named indicator]] [led [integer|named indicator]]
[led {on|off}]
[mouse [accel_mult[/accel_div] [threshold]]] [mouse default]
[p pixel color]
[-r [keycode]] [r [keycode]] [r {on|off}] [r rate delay [rate]]
[s [length [period]]] [s {blank|noblank}] [s {expose|noexpose}] [s {on|off}] [s default] [s activate] [s reset]
[q]
[-version]

命令行选项及含义
-dpms 禁用DPMS(Display Power Management Signaling)特征。
+dpms 启用DPMS(Display Power Management Signaling)特征。
注意事项

不是所有的X实现都支持上述选项。
logout后,这些设置将会失效。

参考文献

man 1 xset[……]

READ MORE

「xwd」

xwd,在X window中的截图工具,能dump出窗口的图片。
命令行语法格式
xwd [-debug] [-help] [-nobdrs] [-out file] [-xy] [-frame] [-add value] [-root | -id id | -name name ] [-icmap] [-screen] [-silent] [-display display]
命令支持的选项及含义
-display display 指定 x server
-nobdrs dump 的内容不包括 x window 的边界, 只包含窗口的内容;
-out file 指定存储 dump 内容的文件;
-xy 该选项只适用与颜色显示. 它选择 `XY’ 格式, 而不使用默认的 `Z’ 格式;
-add value 将 value 指定的值添加到每个像素上;
-frame 截图是包含窗口管理器, 没有该选项的时候只截取窗口的内容;
-root 截取整个屏幕;
-id id 截取 resource id 指定的窗口;
-name name 截取 name 指定的窗口来截图, name 来自于 WM_NAME 属性;不是很明白啊
-icmap 一般情况下, 窗口的 colormap 是 RGB 值, 如果指定该选项, 强制使用屏幕第一次安装的 colormap ?? 这个我就不是很明白了
-screen 截取窗口, 如果指定窗口上面被别窗口或者控件覆盖, 那么覆盖的部分也会被截取, 当然只是重叠的部分;
-silent 安静模式, dump 的时候没有提示音;
关于输出的文件
dump窗口的内容到图片中, 是一种特殊的图片文件,dump出的文件的结构定义在XWDFile.h 中, dump出的文件使用xwud查看;
如果想要将dump文件转换为其他的格式, 可以是引用convert命令, convert属于imagemagick软件包;
默认情况下, 使用鼠标截图, 如果指定了 [-root | -id id | -name name ] 这三个中的一个选项, 就不再需要通过点击鼠标来选择窗口;
简单实例
xwd -silent -id $[w.id] | convert
参考文献

man x xwd, version xwd 1.0.6[……]

READ MORE

「yum-utils」

命令yum-config-manager找不到的解决方法:安装「yum-utils」软件包
包含在「yum-utils」中的文件(使用repoquery -q -l yum-utils命令查看):

/etc/bash_completion.d
/etc/bash_completion.d/yum-utils.bash

/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repo-rss
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/show-changed-rco
/usr/bin/show-installed
/usr/bin/verifytree
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader

/usr/sbin/yum-complete-transaction
/usr/sbin/yumdb

/usr/lib/python2.6/site-packages/yumutils
/usr/lib/python2.6/site-packages/yumutils/init.py
/usr/lib/python2.6/site-packages/yumutils/init.pyc
/usr/lib/python2.6/site-packages/yumutils/init.pyo
/usr/lib/python2.6/site-packages/yumutils/i18n.py
/usr/lib/python2.6/site-packages/yumutils/i18n.pyc
/usr/lib/python2.6/site-packages/yumutils/i18n.pyo

/usr/share/doc/yum-utils-1.1.30
/usr/share/doc/yum-utils-1.1.30/COPYING
/usr/share/doc/yum-utils-1.1.30/README
/usr/share/doc/yum-utils-1.1.30/y[……]

READ MORE

「yum」

yum
repoquery
「YUM」- RPM package manager
关于YUM的更多内容可以查看红帽的手册:

RHEL 6 Chapter 8. Yum
RHEL 7 Chapter 9. Yum

/etc/bash_completion.d /etc/bash_completion.d/yum.bash /etc/logrotate.d/yum /etc/yum /etc/yum.conf /etc/yum.repos.d /etc/yum/pluginconf.d /etc/yum/protected.d /etc/yum/vars /etc/yum/version-groups.conf
/usr/bin/yum
/usr/lib/python2.6/site-packages/rpmUtils /usr/lib/python2.6/site-packages/rpmUtils/init.py /usr/lib/python2.6/site-packages/rpmUtils/init.pyc /usr/lib/python2.6/site-packages/rpmUtils/init.pyo /usr/lib/python2.6/site-packages/rpmUtils/arch.py /usr/lib/python2.6/site-packages/rpmUtils/arch.pyc /usr/lib/python2.6/site-packages/rpmUtils/arch.pyo /usr/lib/python2.6/site-packages/rpmUtils/miscutils.py /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyc /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyo /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.py /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyc /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyo /usr/lib/python2.6/site-packages/rpmUtils/transaction.py /usr/lib/python2.6/site-packages/rpmUtils/transaction.pyc /usr/lib/python2.6/site-packages/rpmUtils/tran[……]

READ MORE

「repoquery」-

repoquery
SYNOPSIS

repoquery [options] <item …>
repoquery -a [options]

DESCRIPTION

repoquery is a program for querying information from YUM repositories
similarly to rpm queries.

GENERAL OPTIONS

–querytags

List valid queryformat tags and exit..

–version

Report program version and exit.

–repoid=<repo>

Specify which repository to query. Using this option disables
all repositories not explicitly enabled with –repoid option
(can be used multiple times). By default repoquery uses whatever
repositories are enabled in YUM configuration.

–enablerepo=<repo>

In addition to the default set, query the given additional
repository, even if it is disabled in YUM configuration. Can be
used multiple times.

–disablerepo=<repo>

Do not query the given repository, even if it is enabled in YUM
configuration. Can be used multiple times.

–repofrompath=<repoid>,<path/url>

Specify a path or url to a repository (same path as in a
baseurl) to add to[……]

READ MORE

「yum」- 命令行包管理工具

常用命令
查看软件包依赖:

yum deplist sqlite

语法格式
yum [options] [command] [package …]
命令描述

yum is an interactive, rpm based, package manager. It can automatically perform system updates, including dependency analysis and obsolete processing based on “repository” metadata. It can also perform installation of new packages, removal of old packages and perform queries on the installed and/or available packages among many other commands/services (see below). yum is similar to other high level package managers like apt-get and smart.

While there are some graphical interfaces directly to the yum code, more recent graphical interface development is happening with PackageKit and the gnome-packagekit application.[……]

READ MORE

「zip」-

打包压缩文件
命令语法格式

zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [–longoption …] [-b path] [-n suffixes] [-t date] [-tt date] [zipfile [file …]] [-xi list]

zipcloak (see separate man page)

zipnote (see separate man page)

zipsplit (see separate man page)

Note: Command line processing in zip has been changed to support long options and handle all options and arguments more consistently. Some old command lines that depend on command line inconsistencies may no longer work.

===== 命令描述 zip is a compression and file packaging utility for Unix, VMS, MSDOS, OS/2, Windows 9x/NT/XP, Minix, Atari, Macintosh, Amiga, and Acorn RISC OS. It is analogous to a combination of the Unix commands tar(1) and compress(1) and is compatible with PKZIP (Phil Katz’s ZIP for MSDOS systems).
A companion program (unzip(1)) unpacks zip archives. The zip and unzip(1) programs can work with archives produced by PKZIP (supporting most PKZIP features up to PKZIP version 4.6), and PKZIP and PKUNZIP can work with archives produced by zip (with some exceptions, notably streamed archives, but recent changes in the zip file standard ma[……]

READ MORE

「zipsplit(1)」-

将ZIP文件分隔成多个小ZIP文件
命令语法格式
zipsplit [-t] [-i] [-p] [-s] [-n size] [-r room] [-b path] [-h] [-v] [-L] zipfile
命令描述
命令zipsplit读取一个zip文件,并将其拆分为较小的zip文件。
命令支持的选项及含义
zipfile 要拆分的ZIP文件。
-t 报告将创建多少文件,但不要制作它们。
-i 制作索引(zipsplit.idx),并根据第一个zip文件计算其大小。
-n size 使zip文件不大于“大小”(默认值为36000)。
-r room 在第一个磁盘上为“room”字节留出空间(默认值0)。
-b path 使用path输出zip文件。
-p 在输出ZIP文件之间暂停。
-s 即使需要更多的zip文件,也要执行顺序拆分。
其他选项
-h 显示简短的帮助信息。
-v 显示版本信息。
-L 显示软件的许可证。
注意事项
尚不支持大型(> 2GB)或拆分归档。
相关手册
zip(1), unzip(1)
参考文献

man 1 zipnote, Version 3.0-11+b1

更新日志

09/23/2018 创建文章[……]

READ MORE

「C」- 学习笔记

语言起源
1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。然而,C语言不完全是里奇突发奇想而来,他是在B语言(汤普逊发明)的基础上进行设计。至于B语言的起源,那是另一个故事。C语言设计的初衷是将其作为程序员使用的一种编程工具,因此,其主要目标是成为有用的语言。
虽然绝大多数语言都以实用为目标,但是通常也会考虑其他方面。例如,Pascal的主要目标是为更好地学习编程原理提供扎实的基础:而BASIC的主要目标是开发出类似英文的语言,让不熟悉计算机的学生轻松学习编程,这些目标周然很重要,但是随着计算机的讯猛发展,它们已经不是主流语言,然而,最初为程序员设计开发的C语言,现在已成为首选的编程语言之一。
特性特征
设计特性、高效、可移植性、强大、灵活、面向程序员;
缺点:简洁紧凑,运算符较多,导致容易写出费解的代码;指针往往容易带来不易察觉的错误;
应用范围
操作系统、嵌入式、计算机语言[……]

READ MORE

「DevOps, CI, CD」- 提高效率;保证质量;降低成本;

Continuous Integration Continuous Delivery Continuous Deployment Continuous Upgrade —— 我们早晚都会出先这个词语(04/17/2022),持续交付并不是结束,而是客户持续部署(持续升级、不断升级)的开始,交付太频繁客户也会反感,要求我们能保证无感升级)
持续集成平台/持续交付平台
Jenkins, Build great things at any scale
Travis CI – Test and Deploy with Confidence
Open Source Continuous Delivery and Release Automation Server | GoCD GoCD概念篇
代码审查与代码分析
Gerrit Code Review Code Quality and Security | SonarQube
TODO 使用 Redmine 进行代码统计 https://www.redmine.org/projects/redmine/wiki/RedmineRepositoryStatistics
软件测试(Software Testing)
Wikipedia/Software testing
图形界面的测试工具(GUI testing tools)
Comparison of GUI testing tools – Wikipedia
GitHub – appium/appium: Automation for iOS, Android, and Windows Apps. openstf/stf: Control and manage Android devices from your browser. AutoIt: a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting.
其他概念
Agile development – 敏捷开发
使用分支,你就无法做持续集成 http://www.aiuxian.com/article/p-836173.html
# The Twelve-Factor App The Twelve-Factor App[……]

READ MORE

「DevOps」- 关于过于依赖基础设备的应用程序

在我们的日常开发中,前端程序和后端程序都存在大量 Nginx 配置,通过 Nginx 配置进行 URL 的处理以及实现用户请求的路由。
采用这种方法的优点是:简单,拦截一切请求,然后直接进行跳转或进行其他处理。
但是,解决问题的方案 和 解决问题的最方案 是两回事情,这样处理请求也存在很多问题,所以我们尝试将应用程序与 Nginx 解耦。
将业务配置从Nginx中脱离的原因: 1)应用与基础设施的解耦性,增加可移植性:将Nginx与业务应用的解耦,提高程序的可移植性,应用程序应是基础设置无关的。 2)应用程序的可维护性:简化应用程序的维护成本,在问题排查追踪过程中可快速溯源。 3)个人技能技能:由于基础设施并不是每个人的专长领域,部分基础设置配置中会忽略某些潜在的问题,可能会存在可移植性差、稳定性差的问题。
不是说不能在 Nginx 中进行处理,而是说能在应用层面解决的问题尽量放在应用程序层面解决,尽量避免放在基础层面。除非应用层面解决不了,万不得已才放入 Nginx 之类的基础设置中处理。
实际上 Nginx 把请求传递给应用,我们应该在应用的路由来决定这个资源的请求该如何处理,而不是再 Nginx 的配置中混入业务相关的东西。
相关链接
Yii2 cors filters error that No ‘Access-Control-Allow-Origin’ header is present[……]

READ MORE

「DevOps」- 部署环境

问题描述
软件开发通常会涉及各种环境,比如开发、测试、生产等等。那么各个环境对应哪个英文单词呢?
在软件开发中,通过会涉及很多的环境。在简单情况下,可能只有一个环境,例如在同一台机器上开发和立即执行程序。但在工业应用中,开发环境(进行最初更改)和生产环境(用户最终使用)是分开的;经常分为几个阶段。使用此结构化发布管理过程,允许在出现问题时分阶段部署(部署),测试和回滚;
本文将简单介绍这些环境以及这些环境的含义、作用;
环境列表
部署体系结构,从广义上讲,层级是通过从开发(DEV)开始到生产(PROD)结束来预订的。常见的四层体系结构是开发,测试,模型,生产(DEV,TEST,MODL,PROD),并按顺序部署软件;
但是,这个过程中涉及的部署环境可能有很多。比说说,开发过程中可能包含开发环境与集成环境;
Local
开发人员的桌面 / 工作站。直白的说就是开发者本地的环境;
dev: Development/Trunk
开发服务器充当沙箱,其中单元测试可由开发人员执行。为开发人员提供一个类似生产环境的运行环境;
比如,开发者在 Windows 中进行开发,但是线上环境是 Linux 服务器。此时,开发者可以在开发环境(运行 Linux 主机,保证类似于生产)中运行程序,进行某些单元测试等等;
Integration
持续集成构建目标,或开发人员测试副作用。汇集开发人员的成果,发现其中的问题;
tst: Testing/Test/QC/Internal Acceptance
执行测试的环境。在测试环境中部署新代码后,质量控制团队确保新代码不会对现有功能产生任何影响,并测试系统的主要功能;
质量团队工作于该环境中,对产品功能进行测试;
stg: Staging/Stage/Model/Pre-production/External-Client Acceptance/Demo
生产环境的镜像,是一种完全类似于生产环境的测试环境。旨在尽可能地对实际的生产环境进行镜像,并可以连接到其他生产服务和数据,例如数据库;
pro: Production/Live
为最终用户 / 客户提供服务的环境;
其他常见术语
DEV: Development FAT: Factory Acceptance Test UAT: User Acceptance Test PRO: Production
最后总结

英文
中文

Development environment
开发环境

Testing environme[……]

READ MORE

「DevOps」- 服务升级策略

问题描述
在践行 DevOps 理念时,需要引入大量的工具(诸如 Jenkins GitLab Harboar Nexus SonarQube Rancher Kubernetes 等等)。
针对日常管理,我们面临的最大问题是这些工具集的升级问题。鉴于 DevOps 盛行,这些工具的发布周期短,新版本发布速度快。例如,Gitlab 每月更新次版本,Jenkins 每周更新次版本;
作为开源软件下游的用户,我们要决定是否进行升级、升级带来的问题、升级频率 等等问题。
该笔记将记录:针对升级操作,我们需要考虑哪些问题、我们的所采用的升级策略、相关的升级问题的解决办法。
解决方案
版本选择策略
我们当前采用「版本间隔」的升级策略,具体细节如下: 1)假如官方发布 14.5 版本,虽然经过官方测试,但我们不会升级到最新版本; 2)我们会查看 14.4 版本所修复的问题,来发现 14.3 版本中潜在的问题; 3)如果 14.3 版本中潜在的问题是我们所能接受的,我们将升级到 14.3 版本;
服务升级周期
当前服务升级周期,跟随官方版本发布周期,最快每 6 周进行一次服务升级,最晚 3 月进行服务升级; 若未跟随官方版本发布周期进行升级,则下次升级时将会进行连续升级;
服务升级规范
该升级规范流程借鉴于《华为网路升级规范》,并结合当前的实际应用场景进行调整。
阶段一、前期准备
调研升级环境
1)在开始升级前,需要与 技术负责人、研发工程师 等等多方进行沟通,以进行相关使用及当前配置信息的收集; 2)针对收到收集到的信息,分析服务当前情况以及升级前后服务情况进行对比分析,判断升级前后服务是否正常; 3)静态信息采集分析:当前服务拓扑信息;当前服务版本信息;当前软件许可信息;当前服务配置信息; 4)动态信息采集分析:服务资源使用情况;服务带宽使用信息;服务运行状态;服务网络时延、抖动、丢包率; 5)业务模型采集分析:在调研阶段中,还需要对服务的业务流量走向、业务流量大小进行观察,包括流量走向的变化和链路流量大小,可用于升级前后进行对比;
分析升级内容
当调研升级完成后,需要分析此次升级内容: 1)针对研发需求进行分析、梳理,分析用户服务升级的需求,诸如 问题修复、引入新特性 等等; 2)输出《服务升级变更内容》,在该文档中,明确升级需求、选择目标版本、明确变更内容;
评估升级风险
1)根据调研结果、需求分析结果、升级方案的框架,进行升级风险分析与评估; 2)针对可能出现的风险项目提前制定应对措施,并将对应的风险项对应措施责任人确认; 2)风险评估需要涉及的技术人员参与讨论,将各个风险的责任人明确到具体的技术人员;
输出升级方案
1)根据调研结果、项目分[……]

READ MORE

「Nexus Repository Manager」

用于搭建私有仓库。
它可以是MAVEN仓库,可以是PYPI仓库,可以是DOCKER镜像仓库,可以是很多类型的仓库。且也可以同时支持这些格式。官方文档中列出了所有支持的格式「Formats」。[……]

READ MORE

「Nexus」- 部署 3.33.0 版本,Docker Compose

问题描述
该笔记将记录:通过 Docker Compose 部署 Nexus 3.33.0 版本的方法,以及相关问题的解决办法。
解决方案
第一步、编写 Docker Compose 文件

version: “3”

services:
package-repository:
image: sonatype/nexus3:3.33.0
container_name: package-repository
restart: always
volumes:
– “/srv/hdd/package-repository/nexus-data:/nexus-data”
ports:
– “50362:8081”

第二步、启动服务并测试

# 根据文档,nexus-data,会被 UID=200 的进程 Nexus 写入数据,所以:
mkdir -pv /srv/hdd/package-repository/nexus-data
chown 200 /srv/hdd/package-repository/nexus-data

# 启动服务
docker-compose up -d

# 查看运行日志:
docker-compose logs -f

第三步、配置 Nginx 代理

server
{
listen *:443;
server_name repo.example.com;

# allow large uploads of files
client_max_body_size 1G;

# optimize downloading files larger than 1G
#proxy_max_temp_file_size 2G;

ssl on;
ssl_certificate example.pem;
ssl_certificate_key example.key;

location /
{
# Use IPv4 upstream address instead of DNS name to avoid attempts by nginx to use IPv6 DNS lookup
proxy_pass http://127.0.0.1:8081/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
pro[……]

READ MORE

「DevOps」- 自动化测试

概念术语
Performance Testing(性能测试)
Load Testing(压力测试)
Stress Testing(负载测试)
Locust – A modern load testing framework https://locust.io
Jmeter (Apache)
Homepage: http://jmeter.apache.org/ Source Repositories: http://jmeter.apache.org/svnindex.html[……]

READ MORE

「Project Management」- 项目管理软件

问题描述
通过项目管理工具,我们可以追踪当前问题、了解工作进度、查看当前进展,可以更好的控制工作。
该部分笔记将记录:与项目管理有关的工具,比如 Kanboard、Redmine 等等。
解决方案
Redmine Unfuddle STACK – Software Project Management Online | GIT and SVN Hosting
团队看板
Kanboard Wekan – Open-Source kanban
个人看板
Kanban for VSCode
mkloubert/vscode-kanban
focalboard
mattermost/focalboard
适合我们工作场景的看板工具
针对我们的工作场景,我们对看板工具有以下要求: 1)基本的看板功能 2)针对团队,每个团队都有自己的看板页面 3)能够定时任务提醒;
目前(06/24/2021),能够满足我们需求的只有 Wekan 看板工具。但是,它还不支持定时任务提醒。
参考文献
kanban-board · GitHub Topics · GitHub[……]

READ MORE

「Kanboard」- 个人看板工具

问题描述
参考 Project Management Software 问题。
目前,我们使用 Kanboard 进行问题记录与追踪(实际是个人看板,我们用它记录生活的各种事情、待办事项等等)。
该笔记将记录:Kanboard 的安装过程、使用方法、常见问题处理。
解决方案
官方主页:Kanban Project Management Software – Kanboard 项目地址:kanboard/kanboard: Kanban project management software
安装步骤
该笔记只包含简述,详细参考 Installation Instructions 手册。
1)准备 PHP 环境,无需安装 MySQL 数据库(默认使用 sqlite 数据库); 2)下载源码,或者克隆源码(我们直接使用 master 分支); 3)保证 data 目录可写,用于保存:sqlite,log,uploaded files,image thumbnails 4)浏览器访问,默认密码为 admin/admin,注意修改默认密码;
升级步骤
详细步骤,参考 Upgrading to a New Version — Kanboard documentation 页面。
1)数据备份:rsync -avz “</path/to/kanboard>” “</path/to/kanboard.backup>”; 2)拉取最新代码(我们直接使用 master 分支):git pull origin master 3)访问页面,浏览器访问新页面,按照按照提示操作即可。
安装插件
第一步、启用配置文件
Configuration File

cp config.default.php config.php

第二步、修改配置文件
Plugin Directory Configuration
The plugin directory must be writeable by the web server user -> /path/to/kanboard/plugins/
The Zip extension must be available on your server -> php zip extension
The config parameter PLUGIN_INSTALLER must be set to true -> vim config.php
补充说明
如果插件版本较旧,可以直接从 GitHub 将插件检出新版本插件到 plugins 目录。
常用插件记[……]

READ MORE