Relative Content

LINUX MANUAL PAGES

category

「bzcat(1)」-

解压bzip2到标准输出
命令描述
参考bzip2(1)手册。
参考文献

man 1 bzip2, Version 1.0.6-8.1

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzcmp(1)」-

比较bzip2压缩文件
命令描述
参考bzdiff(1)手册。
参考文献

man 1 bzdiff, Version 2.27-2

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzdiff(1)」-

比较bzip2压缩文件
命令语法格式
bzcmp [ cmp_options ] file1 [ file2 ] bzdiff [ diff_options ] file1 [ file2 ]
命令描述
命令bzcmp和bzdiff用于在bzip2压缩文件上调用cmp或diff程序。指定的所有选项都直接传递给cmp或diff命令。
如果只指定了一个文件“file1”,则比较的文件是“file1”和未压缩的“file1.bz2”。 如果指定了两个文件,则在必要时会将它们解压缩,并送入cmp或diff命令。
注意事项
来自cmp或diff程序的消息引用了临时文件名,而不是指定的文件名。
退出状态
保留命令cmp或diff的退出状态。
相关手册
cmp(1), diff(1), bzmore(1), bzless(1), bzgrep(1), bzip2(1)
参考文献

man 1 bzdiff, Version 2.27-2

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzegrep(1)」-

为正则表达式搜索bzip2压缩文件
命令描述
参考bzgrep(1)手册。
参考文献

man 1 bzgrep, Version 2.27-2

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzfgrep(1)」-

为正则表达式搜索bzip2压缩文件
命令描述
参考bzgrep(1)手册。
参考文献

man 1 bzgrep, Version 2.27-2

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzgrep(1)」-

为正则表达式搜索bzip2压缩文件
命令语法格式
bzgrep [ grep_options ] [ -e ] pattern filename… bzegrep [ egrep_options ] [ -e ] pattern filename… bzfgrep [ fgrep_options ] [ -e ] pattern filename…
命令描述
命令bzgrep用于在bzip2压缩文件上调用grep命令。指定的所有选项都直接传递给grep命令。
如果没有指定文件,则必要时将标准输入解压缩并送入grep命令。如果指定了文件,给定文件将被解压缩(如果有必要),并送入grep命令。
如果bzgrep命令以bzegrep或bzfgrep为文件名进行调用,则使用egrep或fgrep而不是grep命令。
相关环境变量
GREP 如果设置了GREP环境变量,bzgrep将其用作要调用的grep程序。 例如:
在sh中:# GREP=fgrep bzgrep string files 在csh中:# (setenv GREP fgrep; bzgrep string files)
相关手册
grep(1), egrep(1), fgrep(1), bzdiff(1), bzmore(1), bzless(1), bzip2(1)
参考文献

man 1 bzgrep, Version 2.27-2

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzip2(1)」-

块排序的文件压缩器
命令语法格式
bzip2 [ -cdfkqstvzVL123456789 ] [ filenames … ] bzip2 [ -h|–help ]
bunzip2 [ -fkvsVL ] [ filenames … ] bunzip2 [ -h|–help ]
bzcat [ -s ] [ filenames … ] bzcat [ -h|–help ]
bzip2recover filename
命令描述
实际上bzip2、bunzip2、bzcat是相同的程序,根据调用名的不同来决定采取什么操作。
bzip2: 块排序的文件压缩器
命令bzip2使用“Burrows-Wheeler块排序文本压缩“算法和“Huffman编码”压缩文件。压缩通常比通过更传统的基于LZ77/LZ78的压缩器实现的压缩要好得多,并且接近PPM系列统计压缩器的性能。
命令行选项与GNU的gzip的命令行选项非常相似,但它们并不完全相同。
命令bzip2期望命令行标志附带一个文件名列表。每个文件都由其自身的压缩版本替换,名称为“original_name.bz2”。每个压缩文件具有相同的修改日期、权限、具有相应原始的所有权(在可能的情况下),以便可以在解压缩时正确恢复这些属性。文件名处理是简单的,因为没有机制来保存缺少这些概念的文件系统中的原始文件名、权限、所有权、日期,或者具有严重的文件名长度限制,例如MS-DOS。
如果未指定文件名,则bzip2将从标准输入读取数据,压缩结果写入标准输出。在这种情况下,命令bzip2将拒绝将压缩输出写入终端,因为这将是完全不可理解的,因此毫无意义。
命令bzip2将按顺序读取环境变量BZIP2和BZIP中的参数,并在从命令行读取任何参数之前处理它们。这提供了一种提供默认参数的便捷方法。
bunzip2(bzip2 -d): 解压bzip2文件
命令bunzip2解压所有指定的文件。如果文件不是由bzip2创建的,则会忽略该文件并发出警告。命令bzip2尝试从压缩文件的文件名中猜出解压缩文件的文件名,如下所示:

filename.bz2 => filename
filename.bz => filename
filename.tbz2 => filename.tar
filename.tbz => filename.tar
anyothername => anyothername.out

如果文件没有以识别的结尾之一(.bz2,.bz,.tbz2,.tbz)结尾,则bzip2会”抱怨“无法猜出原始文件的名称,并使[……]

READ MORE

「bzip2recover(1)」-

从损坏的bzip2文件中恢复数据
命令描述
参考bzip2(1)手册。
参考文献

man 1 bzip2, Version 1.0.6-8.1

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzless(1)」-

文件读取过滤器,用于查看bzip2压缩文本
命令描述
参考bzmore(1)手册。
参考文献

man 1 bzmore, Version 1.0.6-8.1

更新日志

08/13/2018 创建文章[……]

READ MORE

「bzmore(1)」-

文件读取过滤器,用于查看bzip2压缩文本
命令语法格式
bzmore [ name … ] bzless [ name … ]
命令描述
命令bzmore是一个过滤器,它允许用户在软拷贝终端上检查压缩或纯文本文件的内容,一次一屏幕。命令bzmore适用于使用bzip2压缩的文件以及未压缩的文件。
如果指定的文件不存在,那么命令bzmore将查找具有相同名称的文件,并添加.bz2后缀。
命令bzmore通常在每显示一屏后暂停,在屏幕底部打印“–More–”。如果用户随后键入回车符,则会显示另一行。如果用户点击空格,则显示另一屏内容。其他功能稍后列举。
命令bzmore在文件/etc/termcap中查找以确定终端特征,并确定默认窗口大小。在能够显示24行的终端上,默认窗口大小为22行。
交互快捷命令
当bzmore暂停时,可以键入的其他按键序列,它们的效果如下。其中,“i”是可选的整数参数,默认为“1”。
i<space> 再显示“i”行文本。如果没有给出参数,则显示另一个屏文本。
iz 整体上与“i<space>”相同,但是参数“i”会成为新的窗口大小。即之后的每次滚动行数都是之前“i”指定的大小。
请注意,在当前文件末尾时,窗口大小将恢复为默认值。
i<^D> 再显示“11”行文本(一次滚动)。如果给出了“i”,则滚动“i”行。
d 与^D (Ctrl-D)相同
is 跳过“i”行内容,然后打印出一屏内容。
if 跳过“i”屏内容,然后打印出一屏内容。
q, Q 退出当前文件;继续下一个(如果有的话)
:q, :Q 退出当前文件;继续下一个(如果有的话),与“q, Q”相同
e, q 当打印提示“–More–(Next file: file)”时,此命令会导致bzmore退出。
s 当打印提示“–More–(Next file: file)”时,此命令会导致bzmore跳过下一个文件并继续。
= 显示当前行号。
i/expr 搜索正则表达式expr的第“i”次出现。
如果找不到模式,bzmore会继续下一个文件(如果有的话)。否则,将显示一个屏幕文本,从找到表达式的位置前两行开始显示。
用户的擦除和终止字符可用于编辑正则表达式,编辑仅限于回车按下之前。擦除第一个字符后会取消搜索命令。
in 搜索上一个输入的正则表达式的第“i”次出现。
!command 使用命令command来调用Shell。在“command”中的`!’字符替换为上一个Shell命令。 序列”\!”表示“!”。
. (英文句号,点[……]

READ MORE

「cifs-utils」

LinuxCIFS utils,用于管理CIFS网络文件系统的挂载。
安装
从发行版的源中安装

#!/bin/bash

# Kali GNU/Linux Rolling
apt-get install cifs-utils

使用源码编译安装 下载地址: Git仓库:git clone git://git.samba.org/cifs-utils.git 安装请参考源码目录下的README文件:https://git.samba.org/?p=cifs-utils.git;a=blob_plain;f=README;hb=HEAD
安装的可执行程序
cifscreds 是用于管理凭据(用户名和密码)的工具,用于在多用户挂载中建立会话。
getcifsacl 用于在CIFS的安全描述符中显示ACL的用户空间助手。
mount.cifs 挂载Linux CIFS文件系统。通常,通过使用“mount -t cifs”间接调用它。
setcifsacl 用于在更改文件系统对象的安全描述符的ACL
cifs.idmap 用于linux CIFS客户端文件系统的用户空间助手程序。有一些动作是Kernel不能轻易做到,这个程序是一个调出程序,为Kernel执行这些操作,然后返回结果。该程序不是为了从命令行运行。
cifs.upcall 用于linux CIFS客户端文件系统的用户空间助手程序。当Kernel为特定密钥类型来调用请求密钥时,它将被运行。该程序不是为了从命令行运行。
参考文献

Homepage: http://www.samba.org/~jlayton/cifs-utils/
Documentation: https://pserver.samba.org/samba/ftp/cifs-cvs/linux-cifs-client-guide.pdf[……]

READ MORE

「mount.cifs」

mount.cifs,挂载Linux CIFS文件系统。通常,通过使用“mount -t cifs”间接调用它。
命令行语法格式(SYNOPSIS)
mount.cifs {service} {mount-point} [-o options]
命令简述(DESCRIPTION)

This tool is part of the cifs-utils suite.

mount.cifs mounts a Linux CIFS filesystem. It is usually invoked indirectly by the mount(8) command when
using the “-t cifs” option. This command only works in Linux, and the kernel must support the cifs
filesystem. The CIFS protocol is the successor to the SMB protocol and is supported by most Windows servers
and many other commercial servers and Network Attached Storage appliances as well as by the popular Open
Source server Samba.

The mount.cifs utility attaches the UNC name (exported network resource) specified as service (using
//server/share syntax, where “server” is the server name or IP address and “share” is the name of the share)
to the local directory mount-point.

Options to mount.cifs are specified as a comma-separated list of key=value pairs. It is possible to send
options other than those listed here, assuming that the cifs filesystem kernel module (cifs.ko) supports
them. Unrecognized cifs[……]

READ MORE

「compress」

安装的可执行程序
compress
uncompress
参考文献

https://github.com/vapier/ncompress

章节列表
「compress(1)」- 「uncompress(1)」-[……]

READ MORE

「compress(1)」-

压缩和扩展数据
命令语法格式
compress [ -f ] [ -v ] [ -c ] [ -V ] [ -r ] [ -b bits ] [ name … ]
uncompress.real [ -f ] [ -v ] [ -c ] [ -V ] [ name … ]
命令描述
请注意,在Debian中,通常作为uncompress安装的程序将作为uncompress.real安装。这样做是为了避免与更常用的程序冲突,该程序具有与gzip包相同的名称。
compress
命令compress使用自适应Lempel-Ziv编码减小命名文件的大小。只要有可能,每个文件都被扩展名为.Z的文件替换,同时保持相同的所有权模式、访问、修改时间。如果未指定文件,则标准输入将压缩为标准输出。命令compress只会尝试压缩常规文件。特别是,它将忽略符号链接。如果文件有多个硬链接,则除非给出-f标志,否则compress将拒绝压缩它。
如果未给出-f选项,并且在前台运行compress,则会提示用户是否应覆盖现有文件。
uncompress
可以使用uncompress.real将压缩文件恢复为原始格式。
uncompress.real在其命令行中获取文件列表,并替换名称以.Z结尾的每个文件,并以没有.Z的未压缩文件的正确幻数开头。未压缩的文件将具有压缩文件的模式、所有权、时间戳。
-c选项使compress/uncompress.real写入标准输出;没有文件被更改。
如果指定了-r标志,则compress将以递归方式运行。如果命令行中指定的任何文件名是目录,则compress将下降到目录中并压缩它在那里找到的所有文件。
在执行任何压缩或解压缩之前,-V标志告诉每个程序在标准错误上打印其版本和补丁级别以及编译期间指定的任何预处理程序标志。
Compress使用在“高性能数据压缩技术”中推广的改进的Lempel-Ziv算法,Terry A. Welch,IEEE Computer,vol。17,no. 6(1984年6月),第8-19页。文件中的公共子串首先被9位代码257及更换取代。当到达代码512时,算法切换到10位代码并继续使用更多位,直到达到-b标志指定的限制为止(默认16)。位必须介于9和16之间。可以在源中更改默认值以允许运行在一台较小的机器上运行压缩。
达到位限制后,compress会定期检查压缩比。如果它在增加,压缩将继续使用现有的代码字典。但是,如果压缩率降低,则compress会丢弃子字符串表,并从头开始重建。这允许算法适应文件的下一个“块”。
请注意,uncompress.real省略-b标志,因为压缩期间指定的bits参数[……]

READ MORE

「uncompress(1)」-

扩展数据
命令语法格式
uncompress.real [ -f ] [ -v ] [ -c ] [ -V ] [ name … ]
命令描述
参考compress(1)手册。
相关手册
pack(1), compact(1)
参考文献

man 1 compress, Version 4.2.4.4-21

更新日志

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

READ MORE

「Coreutils」- GNU core utilities

主页:http://gnu.org/software/coreutils
Coreutils,Linux中非常核心软件包,涵盖了Linux中非常基础的命令。
打印用户信息
pinky 用于报告用户的某些信息,是finger(1)的轻量级版本。
对文件内容格式化
fmt 格式化文件中的段落,按照指定格式进行编排。
fold 文本行宽度调整,控制一行显示的字符数量,将超出的部分放入下一行。
pr 分页并列出文件,用于打印
「SELinux」上下文
runcon 使用给定的安全上下文运行命令。
chcon 更改文件和目录的安全上下文
有关数字的操作
seq 用于打印数字序列。比如:seq 9 50,打印9~50的”全部数字“,包含9和50。
numfmt 将数字转化为可读的格式,或者将可读的格式转化为数字,同时支持单位转换。
factor 打印地址定数字的素数因子
延时
sleep 暂停指定的时间。
文件路径名的操作
basename 从文件名中去除任何路径和给定的后缀。
realpath 打印解析后的路径
mktemp 以安全的方式创建临时文件;它通常在脚本中使用。
pathchk 检查文件名是否有效或者是否具有可移植性
dirname 移除文件名中的最后一部分。
文件内容输出(编/解码、正/反向打印、行号、二进制查看)
tac 反序打印文件中内容
cat 将文件内容输出到stdout中。
base32 根据Base32规范编码或者解码文件。(RFC4648)
base64 根据Base64规范编码或者解码文件。(RFC4648)
od 以八进制或者其他格式输出文件内容。
nl 对给定的文件标注行号。
获取文件中的部分内容(头、尾、分割)
tail 打印指定文件最后的若干行。
head 打印文件中的头若干行。
csplit 根据指定的匹配模式或者行号,将文件分为若干新文件,并打印出每个文件的总字节数。
split 通过大小或者行号,将文件分为若干部分。
输出内容的重定向
tee tee可以从stdin中读取内容,然后将读取的内容写入文件和stdout(就是打印出来)。
条件检查,评估某个表达式真假
test 值比较,文件类型检查等等。
expr 表达式检查评估。
true 什么都不做,只返回成功。
false 什么都不做,总返回失败。
获取当前工作环境的信息
tty 报告连接到stdin的终端的文件名
pwd 报告当前工作目录的名字。
printenv[……]

READ MORE

「arch(1)」-

打印机器硬件名称,等价于’uname -m’
命令语法格式
arch [OPTION]…
命令描述
打印机器的架构。
命令arch不是默认安装的,所以可移植脚本中不应该依赖它的存在。
命令支持的选项及含义
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
相关手册
uname(1), uname(2)
查看在线手册:http://www.gnu.org/software/coreutils/arch
查看info手册:info ‘(coreutils) arch invocation’
参考文献

man 1 arch, version GNU coreutils 8.26

更新日志

06/08/2018 创建文章,快下班了,做点别的休息一下[……]

READ MORE

「b2sum(1)」-

计算和检验BLAKE2消息摘要
命令语法格式
b2sum [OPTION]… [FILE]…
命令描述
命令b2sum为文件FILE计算长度为384位的校验和。该命令的用法和选项与md5sum(1)基本相同。请参阅md5sum(1)调用。
命令b2sum支持的其他选项
该命令的用法和选项与md5sum(1)基本相同,此外,b2sum支持以下选项:
-l, –length 更改默认摘要长度,这里的更改实际上是缩短。这是以位为单位指定的,因此length必须是8的倍数。
当指定–check选项时(参考md5sum(1)调用),将忽略此选项,因为在检查时会自动确定长度。
相关手册
md5sum(1)
查看在线手册:http://www.gnu.org/software/coreutils/b2sum
查看info手册:info ‘(coreutils) b2sum invocation’
参考文献

man 1 b2sum, version GNU coreutils 8.28

更新日志

07/08/2018 创建文章[……]

READ MORE

「base32(1)」-

使用base32编码/解码数据,然后打印到标准输出中
命令语法格式
base32 [OPTION]… [FILE]
命令描述
base32命令会将FILE按照RFC4648文档中描述的那样进行编码或者解码,然后输出到标准输出中。如果没有指定FILE,或者FILE为-,则从标准输入中读取数据。
长选项的必须参数,对于对应的短选项也是必须的。
-d, –decode 对数据进行解码。默认是对数据进行编码的。
-i, –ignore-garbage 在解码时,换行符是可以接受的,除此之外,忽略无法识别的字节,以允许解码那些失真的数据。
如果输入流中包含了一些非字母表的字符,可以使用该选项。
-w, –wrap=COLS 在编码过程中,在COLS个字符后换行。COLS必须是一个正数。 默认值是在76个字符后换行。如果COLS的值0,表示完全禁用换行。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
相关手册
在线完整手册:http://www.gnu.org/software/coreutils/base32
查看info手册:info ‘(coreutils) base32 invocation’
参考文献

man 1 base32, verison GNU coreutils 8.26

更新日志

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

READ MORE

「base64(1)」-

使用base64编码/解码数据,然后打印到标准输出中
命令语法格式
base64 [OPTION]… [FILE]
命令描述
base64命令会将FILE按照RFC4648文档中描述的那样进行编码或者解码,然后输出到标准输出中。如果没有指定FILE,或者FILE为-,则从标准输入中读取数据。
长选项的必须参数,对于对应的短选项也是必须的。
-d, –decode 对数据进行解码。默认是对数据进行编码的。
-i, –ignore-garbage 在解码时,换行符是可以接受的,除此之外,忽略无法识别的字节,以允许解码那些失真的数据。
如果输入流中包含了一些非字母表的字符,可以使用该选项。
-w, –wrap=COLS 在编码过程中,在COLS个字符后换行。COLS必须是一个正数。 默认值是在76个字符后换行。如果COLS的值0,表示完全禁用换行。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
相关手册
在线完整手册:http://www.gnu.org/software/coreutils/base64
查看info手册:info ‘(coreutils) base64 invocation’
参考文献

man 1 base64, verison GNU coreutils 8.26

更新日志

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

READ MORE

「basename(1)」-

从文件名中去除目录和后缀
命令语法格式
basename NAME [SUFFIX] basename OPTION… NAME…
命令描述
移除NAME中的所有前导目录,只留下文件名。如果指定了SUFFIX,那么同时也会移除文件后缀。
长选项的参数,短选项也必须使用。
-a, –multiple 使用该选项后,basename可以支持多个NAME参数,而不是将其视为要被移除的后缀SUFFIX。
-s, –suffix=SUFFIX 从文件名中移除后缀SUFFIX。隐含了-a选项。
-z, –zero 以NUL分隔输出的行。没有指定该选项时,使用NEWLINE来分隔行。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
使用示例
# basename /usr/bin/sort sort
# basename include/stdio.h .h stdio
# basename -s .h include/stdio.h stdio
# basename -a any/str1 any/str2 str1 str2
相关手册
dirname(1), readlink(1)
在线完整手册:http://www.gnu.org/software/coreutils/basename
查看info手册:info ‘(coreutils) basename invocation’
参考文献

man 1 basename, verison GNU coreutils 8.26

更新日志

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

READ MORE

「cat(1)」- 读取文件内容,并在标准输出上打印

常用命令
向文件中写入内容:

cat <<EOF > foo.html
echo $var
EOF

cat <<\EOF > foo.html
echo $var
EOF

# 补充说明
# 1)EOF 将内容写入文件 foo.html 中,其中 $var 将 Shell 解析;
# 2)\EOF 使得 $var 不被 Shell 解析,免去对 $ 符号的转义;

语法格式

cat [OPTION]… [FILE]…

如果未指定 FILE、或者 FILE 为 -,则从标准输入中读取。
命令行选项
打印行号
-n, –number 给所有的输出行前加上行号。
-b, –number-nonblank 只给非空行编号,而不会在非空白行前添加行号。该选项会重写-n。
-s, –squeeze-blank 多个连续的空行,合并成一个输出。
打印特殊字符
-A, –show-all 等价于-vET。
-e 等价于-vE
-t 等价于-vT。
-v, –show-nonprinting 除LFD和TAB外,使用’^’表示法,显示控制字符。使用’M-‘来表示高位的字符。
-E, –show-ends 在行尾部显示$符号。
-T, –show-tabs 将TAB显示为^I。
其他选项
-u (已忽略)
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
简单示例
输出文件f、标准输入、文件g中的内容:

# cat f – g

显示标准输入的内容:

# cat

我们要在日志文件中使用grep命令检索文本,但是这个文件里包含了一些二进制的内容,导致grep将文件视为了二进制文件,显示的结果就是Binary file XXXXX matches,而不是我们期望的显示匹配的行。要解决这个问题,可以用下面的命令:

# cat -v filename.log | grep ‘abc’

将不可打印的字符“转码”显示,然后再进行grep搜索。
在cat *显示多个文件的内容时,如果如果想打印文件名,则可以搭配more命令:

# more * | cat

相关手册
tac(1)
参考文献
man 1 cat, version GNU coreutils 8.26 Full documentation at: http://www.gnu.org/software/coreu[……]

READ MORE

「chcon(1)」-

修改文件的安全上下文
命令语法格式
chcon [OPTION]… CONTEXT FILE… chcon [OPTION]… [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE… chcon [OPTION]… –reference=RFILE FILE…
命令描述
将FILE的上下文设置为CONTEXT。使用–reference,可以将每个文件FILE的安全上下文更改为rfile的安全上下文。
命令支持的选项及含义
长选项的参数,短选项也必须使用。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
–dereference 不要作用于符号链接,而是作用于它们所指向的对象。这是默认值行为。
-h, –no-dereference 作用于符号连接,而不是他们指向的文件。
-u, –user=USER 在目标安全上下文中设置用户USER。
-r, –role=ROLE 在目标上下文中设置角色ROLE。
-t, –type=TYPE 在目标上下文中设置类型TYPE。
-l, –range=RANGE 在目标上下文中设置范围RANGE。
–no-preserve-root 不要特殊对待“/”。这是默认的。
–preserve-root 当与–recursive使用时,拒绝在根目录上进行递归操作。参考文献
–reference=RFILE 使用RFILE的安全上下文,而不是指定上下文值。参考文献
-R, –recursive 递归操作文件或者目录。
-v, –verbose 为每个处理的文件输出一个诊断信息。
当-R选项也指定时,以下选项修改如何遍历层次结构。如果指定了多个,则只有最后一个生效:
-H 如果命令行选项是一个指向目录的符号链接,遍历它。参考文献
-L 遍历所有遇到的指向目录的符号链接。参考文献
-P 不遍历任何符号链接。这个是默认的。参考文献
相关手册
完整在线手册:http://www.gnu.org/software/coreutils/chcon
查看info手册:info ‘(coreutils) chcon invocation’
参考文献

man 1 chcon, version GNU coreutils 8.26

更新日志

05/30/2018 创建文章[……]

READ MORE

「chgrp(1)」-

修改文件的所属组
命令语法格式
chgrp [OPTION]… GROUP FILE… chgrp [OPTION]… –reference=RFILE FILE…
命令描述
将文件FILE的所属组修改为GROUP。GROUP既可以是组名,也可以是组ID,或者是某个文件的组(使用–reference选项时)。使用–reference时,可以将文件FILE的所属组修改为与RFILE相同的组。
如果GROUP是一个数值型的组ID,可以添加前导的加号(“+”)来将其与组名进行区别。参考文献如何区分名与ID。
用户是否可以该文件所属组更改为任意一个其他组依赖于系统,或者更便携的做法是限制为设置成用户所属的组。
命令支持的选项及含义
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
-v, –verbose 为每个被处理的文件FILE输出一个诊断信息。如果在没有使用lchown(2)系统调用的系统上进行递归遍历时遇到符号链接,并且–no-dereference已生效,则chgrp会发出一条诊断消息来说明符号链接及其引用对象都未被更改。
-c, –changes 类似于-v选项,但是只有文件的所有组实际发生变化的时候才产生日志。如果将文件FILE从staff组修改为staff组,前后没有发生实际的变化,就不会有诊断信息产生。
-f, –silent, –quiet 在文件所属组无法修改时,不产生错误信息。
–dereference 不要去修改符号链接所属的组,而是修改符号链接所指向的文件的组。这是默认的行为。
-h, –no-dereference 修改符号链接所属的组,而不是修改符号链接所指向的文件的组。这种模式依赖于lchown(2)系统调用。在不提供lchown(2)系统调用的系统上,当命令行中指定的文件是符号链接时,chgrp会失败。默认情况下,对递归遍历期间遇到的符号链接不产生诊断信息,但请参阅–verbose选项。
–no-preserve-root 不对根目录进行保护,这是默认行为。与–preserve-root选项的作用相反。参考特别对待根目录。
–preserve-root 根目录保护。尝试在根目录(/)上递归更改时会失败。没有–recursive选项时,该选项不会有效果。参考特别对待根目录。
–reference=RFILE 将每个文件的组更改为与RFILE相同的组。如果RFILE是符号链接,则会使用符号连接所引用的文件的组。
-R, –recursive 递归修改目录及子目录中所有对象的所属组。
当使用了-R选项时,下面的选项修改如何[……]

READ MORE

「chmod(1)」-

修改文件的访问权限
命令语法格式
chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… –reference=RFILE FILE…
命令描述
命令chmod根据给出的MODE修改文件FILE的权限位。
为了方便表述问题并遵守习惯,这里将英文的“MODE”翻译为“权限”一词。“UID”表示”用户ID“。“GID”表示“组ID”。
只有有效UID与文件的UID匹配的进程,或具有适当权限的进程,才允许更改文件的权限位。
如果使用,MODE指定新的文件权限位。有关详细信息,请参阅「文件权限」一节。如果你真的想要权限有一个前导的’-‘,你应该使用–首先,例如chmod — -w file。通常情况下,使用chmod a-w FILE更可取,而chmod -w FILE(没有–)会表示它的行为与chmod a-w FILE的行为不同。
关于MODE参数
参数MODE指定了对文件权限的操作(添加、删除、修改)。与命令选项相比,参数MODE的使用更重要一些,因此才放在前面。
参数MODE既可以是「符号权限」,也可以是「数字权限」。
符号权限
对于符号权限,它的格式是[ugoa…][[-+=][perms…]…],即分为三部分。
字母集“ugoa”决定了哪些用户的访问权限会被修改:“u”表示文件所属的用户;“g”表示文件所属组中的用户;“o”表示其他用户;“a”表示所有用户。如果没有指定,则假设为“a”,但是,在UMASK中设置的比特不会受到影响。
操作符“-+=”用于控制权限的移除、添加、修改:“+”表示向权限位添加某个权限;“-”表示移除权限位上的某个权限;“=”表示将权限位设置为指定的权限,但是不会影响setuid和setgid位。
其中的“perms”可以是字母集“rwxXst”中的零个或多个,或者字母集“ugo”中的一个。可以同时指定多个符号权限,但是要用逗号分隔,比如chmod a-x,o+x /tmp/file。
字母集“rwxXst”是用于指定用户的权限位:读(r);写(w);执行或目录搜索(x);只有FILE是目录或者某些用户已经具有可执行权限时,才会赋予执行/搜索(X);在执行时设置UID或者GID(s);限制删除标识或者粘滞位(t)。除了这些字母集中的一个或多个之外,还可以精确地指定字母ugo中的一个:把文件所有者的权限(u)授予用户;将文件所属组的权限(g)授予用户;将其他用户的权限(o)授予用户。比如chmod o+u tmp,将文件所属用户的拥有的权限(u)授予[……]

READ MORE

「chown(1)」-

修改文件的所有者和所属组
命令语法格式
chown [OPTION]… [OWNER][:[GROUP]] FILE… chown [OPTION]… –reference=RFILE FILE…
命令描述
chown会将每个给出文件FILE的用户和组的所有权更改为新所有者,或修改为与现有文件RFILE相同的用户和组。
对于[OWNER][:[GROUP]]参数

OWNER

如果仅给出OWNER(用户名或数字类型的用户ID),则文件的所有者将会更改为OWNER,但是不会更改文件的组。

OWNER:GROUP

如果OWNER后面跟着一个冒号和一个组GROUP(组名称或数字类型的组ID),并且它们之间没有空格,则文件的所有者和所属组组都会进行更改。

OWNER:

如果冒号后面没有组GROUP,那么该OWNER将成为文件的新的所有者,并且OWNER的登录组将成为文件的新组。

:GROUP

如果没有OWNER,只有一个冒号和一个组GROUP,那么只会将文件的组修改为GROUP,不会修改文件的所有者。这种情况下,chown的功能与chgrp的功能相同。

:

如果只指定了一个冒号,没有OWNER和GROUP,则什么都不做。

如果组名是一个数字,可以使用前导的加号(+)来标识该数字实际上是一个组名,而不是一个数字类型的组ID。参考区分组名与组ID。
一些旧的脚本可能仍然使用’.’代替’:’分隔符,但POSIX 1003.1-2001(参阅标准一致性)不要求对此进行支持,而为了向后兼容,GNU实现的chown支持’.’,只要不会产生歧义的结果。新脚本应该避免使用’.’,因为它不具有可移植性,并且如果OWNER或GROUP中包含’.’,则它会产生不良的结果。
用户能否将文件修改为任意的组取决于系统,或者限制为设置用户所属的组的更可移植的行为。
chown命令有时会清除SETUID或SETGID权限位。此行为取决于底层chown(2)系统调用的策略和功能,这可能会使chown(1)命令对系统相关的文件模式修改失控。例如,当具有适当权限的用户调用时,chown命令可能不会影响这些位,或者某个权限位表示可执行权限以外的某些功能时(例如,强制锁定)。如有疑问,请检查底层系统行为。
命令支持的选项及含义
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
-h, –no-dereference 作用于符号链接,而非符号链接指向的文件。[……]

READ MORE

「chroot(1)」-

将指定的目录作为根目录来运行程序
命令行语法格式
chroot [OPTION] NEWROOT [COMMAND [ARG]…]
chroot OPTION
命令描述
命令chroot可以指定一个目录来做为程序运行的根目录。NEWROOT是新的根目录,在NEWROOT中运行COMMAND。在很多系统上,只有超级用户才能做到这一点。
通常,程序运行时是从目录结构的根目录(/)开始查找文件名及依赖的库文件。chroot将根目录更改为NEWROOT目录(目录必须存在),然后将工作目录更改为根目录(/),最后运行带有可选参数的命令(COMMAND)。如果没有指定COMMAND,则默认的COMMAND是”${SHELL} -i” (通常是:’/bin/sh -i’)。COMMAND不能是内建程序。
命令行选项及含义
将指定的目录作为根目录来运行程序,也就是改变了程序运行时加载的各种库、目录等环境
通常,命令运行时,是从根目录开始查找文件名,即/。chroot将根目录更改为NEWROOT(必须存在),然后将工作目录更改为/,并最终使用可选参数运行命令。如果未指定命令,则默认值为SHELL环境变量的值或/bin/sh(如果未设置),则使用-i选项调用。命令不能是特殊的内置实用程序(请参阅特殊内置实用程序)。
–userspec=USER:GROUP 默认情况下,使用了哪个用户身份运行chroot,就会使用哪个用户身份运行COMMAND。该此选项可以指定运行COMMAND的用户身份(用户和组)。如果仅仅指定了USER,则会根据系统中USER对应的组来设置COMMAND运行时的组(GROUP),除非使用–groups选项进行覆盖。
–groups=G_LIST 使用此选项覆盖新进程使用的补充组。参数G_LIST是使用逗号分隔的组名或者GID。使用–groups=”禁用–userspec选项中隐含的补充组查找。
–skip-chdir 使用该选项后,进入chroot之后,不会将工作目录修改为/。只有当NEWROOT是旧的根目录时才允许使用此选项,因此与–groups和–userspec选项一起使用来保留以前的工作目录时非常有用。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
注意事项
–userspec与–groups会在chroot的外部和内部同时进行查找,如果查找成功,内部的查找结果的优先级更高。
如果用户名或者组名为数字时,可以使用前导加号(+)来避免被解析成组ID数值。参考区别组名与组ID。
实际用途
你可能很少会用到这个命令,也许你还没理解这个命令是干什么的,你可以把它想象成一个[……]

READ MORE

「cksum(1)」-

计算文件校验和并计算文件字节数
命令语法格式
cksum [FILE]…
cksum [OPTION]
命令描述
cksum为每个给定的文件FIEL计算循环冗余校验(CRC)校验和,或者如果没有给出文件FIEL,或者FILE为’-‘,则从标准输入读取数据。
除非没有给出参数(从标准输入中读取),否则cksum会为每个文件打印CRC校验和以及文件中的字节数和文件名。
cksum通常用于计算CRC校验和。通过比较接收文件的CRC校验和和原始文件的校验和来确保通过不可靠方式传输的文件没有被破坏。
CRC算法由POSIX标准规定。它与BSD或System V的sum算法不兼容;它更强大。
命令支持的选项及含义
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
相关手册
查看在线手册:http://www.gnu.org/software/coreutils/cksum
查看info手册:info ‘(coreutils) cksum invocation’
参考文献

man 1 cksum, version GNU coreutils 8.26
Wikipedia/Cyclic redundancy check

更新日志

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

READ MORE

「comm(1)」-

逐行比较两个已排序文件
命令行语法格式
comm [OPTION]… FILE1 FILE2
命令描述
逐行比较两个内容已经排序的文件,输出两个文件中都有的行和独有的行。OPTION是命令行选项,下面会介绍。FILE1、FILE2要比较的文件,如果为`-‘表示文件为标准输入读取,但是FILE1/FILE2不能同时为`-‘。
对于命令comm FILE1 FILE2,在没有指定OPTION的情况下,comm命令会输出三列,输出形式如下:

1

2

3

4

5

第1列,FILE1中独有的行。第2列,FILE2中独有的行。第3列,两个文件中都存在的行。列由单个TAB字符分隔。选项-1、-2、-3会禁止打印相应的列,详见选项介绍部分。
命令支持的选项及含义
-1 不打印第一列。即不打印只在FILE1中存在的行。
-2 不打印第二列。即不打印只在FILE2中存在的行。
-3 不打印第三列。即不打印只在FILE1、FILE2中都存在的行。
–checkorder 检查文件是否已经排序。如果给出–check-order选项,未排序的输入将导致错误消息。
–nocheck-order 不检查文件是否排序。如果给出选项–nocheck-order,则未分类的输入永远不会导致错误消息。
–output-delimiter=STR 设置输出列之间的分隔字符为STR。STR不能为空。默认列之间使用TAB进行分隔。
–total 在最后输出一个包含摘要信息的摘要行。该选项是一个GNU扩展选项,在其他的comm实现中,可能没有这个选项。
与常规输出类似,第一列包含只在FILE1中唯一行的总数,第二列包含只在FILE2中唯一行的总数,第三列包含两个文件中共有行的总数,然后后面跟着“total”在附加的第四栏中。
-z, –zero-terminated 使用零字节而不是换行符(ASCII LF)来分隔项目。即,将输入视为由ASCII NUL分隔的项目,并用ASCII NUL终止输出项目。
这个选项可以和’perl -0’或者’find -print0’和’xargs -0’结合使用,它们可以可靠地处理任意文件名(甚至包含空格或其他特殊字符)。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
文件排序
在使用comm之前,必须使用LC_COLLATE语言环境指定的排序序列对输入文件进行排序。如果输入文件以非换行符结尾,则会自动附加换行符。没有选项的sort(1)命令可以生成适用于comm的输入[……]

READ MORE

「cp(1)」-

复制文件或者目录
命令行语法格式
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
将SOURCE复制到DEST,或者多个SOURCE到DIRECTORY。拷贝的副本完全独立于原始文件。既可以将一个文件复制为另一个,也可以将任意数量的文件复制到指定的目录中。
命令描述
如果给出了两个文件,则将第一个复制到第二个。
如果给出–target-directory(-t)选项,或者如果最后一个参数是一个目录并且没有给出–no-target-directory(-T)选项,则cp会将每个源文件复制到指定的目录,文件名为原来的文件名。
通常,文件如何读入就如何写出。对于例外情况,参考下面的–sparse选项。
默认情况下,cp不会复制目录。但是,-R,-a和-r选项会导致cp通过递归到源目录,然后将文件复制到相应的目标目录来实现递归复制。
当从符号链接复制时,通常只在未递归复制或使用–link(-l)时,cp才遵循链接所指向的对象。可以使用–archive(-a),-d,–dereference(-L),–no-dereference(-P),-H选项覆盖此默认值。如果指定了这些选项中的一个以上,则最后一个选项将默认覆盖其他选项。
复制到符号链接时,cp仅在符号链接指向已经存在的文件时才会跟随链接指向的文件。但是,当复制到“悬空的”符号链接时,默认情况下cp会拒绝,并且会因诊断而失败,因为该操作本质上是危险的。这种行为与历史惯例和POSIX相反。设置POSIXLY_CORRECT来使cp尝试创建悬挂目标符号链接的目标,尽管存在可能的风险。另外,当类似–backup或–link的选项在复制之前将会重命名或删除目标时,cp将重命名或删除符号链接,而不是它指向的文件。
默认情况下,只有在不进行递归复制时,cp才复制特殊文件的内容。这个默认值可以用–copy-contents选项覆盖。
cp通常拒绝将文件复制到自身上,但有以下例外:如果–force –backup指定的SOURCE和DEST相同,并且是常规文件,则cp会将备份文件(常规或编号)作为 以常规方式指定(请参阅备份选项)。如果只是想在对现有文件进行更改之前对其进行备份,这个选项非常有用。
命令支持的选项及含义
长选项的必须参数,对于短选项也是必须的。
–copy-contents 使用该选项时,如果是递归复制,对于特殊文件(例如,FIFO和设备文件),直接复制内容,而不复制设备文件。使用此选项通常是一个错误,因为[……]

READ MORE