root 6 years ago
parent f19d9172d5
commit 874a89bd26

@ -114,7 +114,7 @@ p7zip p7zip-plugins
7z t -r archive.7z *.doc # 测试压缩包中的所有doc文件
# 7z压缩文件-t7z可以省略/root/achive.7z表示将压缩文件放到root目录下-m0=LZMA2 -mx表示以LZMA2算法等级是9(0-9)-aoa直
# 接覆盖现有文件,-mmt多线程(30个线程)加速压缩,-y默认允许所有-pSECRET表示密码是SECRET-bb3设置输出日志文件等级(0-3)
# 接覆盖现有文件,-mmt多线程(30个线程)加速压缩,-y默认允许所有-pSECRET表示密码是SECRET-bb3设置输出日志文件等级(0-3)
# -bsp1将命令输出写入到out.log文件
7z a -r -t7z /root/achive.7z /home -m0=LZMA2 -mx=9 -aoa -mmt=30 -y -pSECRET -bb3 -bsp1 > out.log

@ -7,64 +7,37 @@
### 选项
```markdown
-A指定连接服务器的基本的认证凭据
-c指定一次向服务器发出请求数
-C添加cookie
-g将测试结果输出为“gnuolot”文件
-H为请求追加一个额外的头
-i使用“head”请求方式
-k激活HTTP中的“keepAlive”特性
-n指定测试会话使用的请求数
-p指定包含数据的文件
-q不显示进度百分比
-T使用POST数据时设置内容类型头
-v设置详细模式等级
-w以HTML表格方式打印结果
-x以表格方式输出时设置表格的属性
-X使用指定的代理服务器发送请求
-y以表格方式输出时设置表格属性
```
用法: ab [选项] [http[s]://]hostname[:port]/path
选项:
-n requests 执行请求的数量
-c concurrency 一次进行多少个并发请求
-t timelimit Seconds to max. to spend on benchmarking
This implies -n 50000
-s timeout Seconds to max. wait for each response
Default is 30 seconds
-b windowsize Size of TCP send/receive buffer, in bytes
-B address Address to bind to when making outgoing connections
-p postfile File containing data to POST. Remember also to set -T
-u putfile File containing data to PUT. Remember also to set -T
-T content-type Content-type header to use for POST/PUT data, eg.
'application/x-www-form-urlencoded'
Default is 'text/plain'
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute Add cookie, eg. 'Apache=1234'. (repeatable)
-H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
Inserted after all normal header lines. (repeatable)
-A attribute Add Basic WWW Authentication, the attributes
are a colon separated username and password.
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-q Do not show progress when doing more than 150 requests
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-r Don't exit on socket receive errors.
-h Display usage information (this message)
-Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)
-f protocol Specify SSL/TLS protocol
(SSL3, TLS1, TLS1.1, TLS1.2 or ALL)
-n requests 指定测试会话的请求数量
-c concurrency 一次进行多少个并发请求
-t timelimit Seconds to max. to spend on benchmarking,This implies -n 50000
-s timeout Seconds to max. wait for each response,Default is 30 seconds
-b windowsize Size of TCP send/receive buffer, in bytes
-B address Address to bind to when making outgoing connections
-p postfile File containing data to POST. Remember also to set -T
-u putfile File containing data to PUT. Remember also to set -T
-T content-type 用于POST/PUT数据的Content-type header,例如:'application/x-www-form-urlencoded',默认是:'text/plain'
-v verbosity How much troubleshooting info to print
-w 以HTML表格方式打印结果
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute Add cookie,例如:'Apache=1234'. (repeatable)
-H attribute 为请求添加一个额外的header,例如:'Accept-Encoding: gzip'
Inserted after all normal header lines. (repeatable)
-A attribute 添加基本的WWW身份验证attribute是用冒号分隔的用户名和密码
-P attribute 添加基本代理身份验证attribute是用冒号分隔的用户名和密码
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k 使用HTTP KeepAlive特性
-d Do not show percentiles served table
-S Do not show confidence estimators and warnings
-q 超过150个请求时不显示进度
-g filename 将收集的结果输出为gnuplot格式文件
-e filename Output CSV file with percentages served
-r Don't exit on socket receive errors
-Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)
-f protocol 指定SSL/TLS协议(SSL3, TLS1, TLS1.1, TLS1.2 or ALL)
```

@ -5,9 +5,9 @@ accept
## 说明
**accept命令** 属于CUPS套件用于指示打印系统接受发往指定目标打印机的打印任务
**accept命令** 属于CUPS套件用于指示打印系统接受发往指定目标打印机的打印任务
### 语法
## 选项
```
accept(选项)(参数)
@ -16,13 +16,13 @@ accept(选项)(参数)
```
-E当连接到服务器时强制加密
-U指定连接服务器时使用的用户名
-h指定连接服务器名和端口号
-E当连接到服务器时强制加密
-U指定连接服务器时使用的用户名
-h指定连接服务器名和端口号
```
### 参数
目标:指定目标打印机
目标:指定目标打印机

@ -5,11 +5,11 @@ alias
## 说明
**alias命令** 用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时用户必须使用单引号`''`将原来的命令引起来,防止特殊字符导致错误
**alias命令** 用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时用户必须使用单引号`''`将原来的命令引起来,防止特殊字符导致错误
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名则可将相应的alias命令存放到bash的初始化文件`/etc/bashrc`中
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名则可将相应的alias命令存放到bash的初始化文件`/etc/bashrc`中
### 语法
## 选项
```
alias(选项)(参数)
@ -18,14 +18,14 @@ alias(选项)(参数)
```
-p打印已经设置的命令别名
-p打印已经设置的命令别名
```
### 参数
命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”
命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”
### 实例
## 实例
**alias 的基本使用方法为:**
@ -33,9 +33,9 @@ alias(选项)(参数)
alias 新的命令='原命令 -选项/参数'
```
例如:`alias l=ls -lsh'`将重新定义ls命令现在只需输入l就可以列目录了。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名
例如:`alias l=ls -lsh'`将重新定义ls命令现在只需输入l就可以列目录了。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名
要删除一个别名,可以使用 unalias 命令,如 unalias l
要删除一个别名,可以使用 unalias 命令,如 unalias l
**查看系统已经设置的别名:**
@ -56,7 +56,7 @@ alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-ti
```
### 命令别名永久生效
直接在shell里设定的命令别名在终端关闭或者系统重新启动后都会失效如何才能永久有效呢办法就是将别名的设置加入~/.bashrc文件然后重新载入下文件就可以了
直接在shell里设定的命令别名在终端关闭或者系统重新启动后都会失效如何才能永久有效呢办法就是将别名的设置加入~/.bashrc文件然后重新载入下文件就可以了
```bash
$ vim ~/.bashrc
```
@ -71,21 +71,21 @@ if [ -f ~/.bash_aliases ]; then
fi
```
这个代码的意思就是加载.bash_aliases文件CentOS7已经帮我们考虑好了所以也可以在用户根目录下新建一个文件.bash_aliases存放命令别名设置
这个代码的意思就是加载.bash_aliases文件CentOS7已经帮我们考虑好了所以也可以在用户根目录下新建一个文件.bash_aliases存放命令别名设置
### 小结
alias这个命令是shell的内建命令可以根据自己的使用习惯设置一些别名需要注意的就是和其他命令冲突的情况
alias这个命令是shell的内建命令可以根据自己的使用习惯设置一些别名需要注意的就是和其他命令冲突的情况
#### 一、 范例演示
在使用和维护Linux系统过程中我们常常希望根据自己的需要来定义一些命令那么这样的操作是不是很难呢其实不是系统已经为我们设置好了相关的命令下面小编就以CentOS6.4系统为例,为大家演示如何创建自己的命令
在使用和维护Linux系统过程中我们常常希望根据自己的需要来定义一些命令那么这样的操作是不是很难呢其实不是系统已经为我们设置好了相关的命令下面小编就以CentOS6.4系统为例,为大家演示如何创建自己的命令
#### 二、 自定义命令简介
CentOS系统下的创建自定义命令其实比较简单使用的命令就是alias具体使用的方法就是 alias 自定义命令名=‘命令’。但是需要注意的是,在自定义之前需要查看自定义的命令名是否是系统已经使用的命令名,否则会冲突,另外一个就是定期清理不需要的自定义命令名
CentOS系统下的创建自定义命令其实比较简单使用的命令就是alias具体使用的方法就是 alias 自定义命令名=‘命令’。但是需要注意的是,在自定义之前需要查看自定义的命令名是否是系统已经使用的命令名,否则会冲突,另外一个就是定期清理不需要的自定义命令名
#### 三、 演示举例
@ -93,20 +93,20 @@ alias这个命令是shell的内建命令可以根据自己的使用习惯设
1.进入目录/root
2.查看目录下文件
3.切换回根目录
通常这需要三条命令 cd /rootlscd / ,如果需要经常使用那么我们可以通过自定义命令的方式用一条命令完成全部操作
通常这需要三条命令 cd /rootlscd / ,如果需要经常使用那么我们可以通过自定义命令的方式用一条命令完成全部操作
![](alias\01.png)
#### 四、 操作过程
首先使用命令 type 自定义命令名 查看自定义命令名是否被系统占用。从图中可以看出test命令名已被系统占用所以不能使用而loo这个命令名经查询可以使用
首先使用命令 type 自定义命令名 查看自定义命令名是否被系统占用。从图中可以看出test命令名已被系统占用所以不能使用而loo这个命令名经查询可以使用
![](alias\02.png)
使用命令alias创建自定义命令alias loo='cd /root;ls;cd /' 。需要注意的是命令的使用格式,分号与分号之间是没有空格的
使用命令alias创建自定义命令alias loo='cd /root;ls;cd /' 。需要注意的是命令的使用格式,分号与分号之间是没有空格的
![](alias\03.png)
测试一下自定义命令,当输入命令 loo 时,发现系统依次完成了 cd /root、ls、cd / 三条命令,说明设置成功。同时也可直接使用命令 alias 查询系统中是否添加了loo这个自定义命令
测试一下自定义命令,当输入命令 loo 时,发现系统依次完成了 cd /root、ls、cd / 三条命令,说明设置成功。同时也可直接使用命令 alias 查询系统中是否添加了loo这个自定义命令
![](alias\04.png)
如果希望删除这个自定义命令,可以使用命令 unalias 自定义命令名 来完成。执行之后发现loo命令已不存在同时自定义命令库中也没有loo命令
如果希望删除这个自定义命令,可以使用命令 unalias 自定义命令名 来完成。执行之后发现loo命令已不存在同时自定义命令库中也没有loo命令
![](alias\05.png)

@ -4,7 +4,7 @@
**apropos命令** 在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标准输出。 
如果你不知道完成某个特定任务所需要命令的名称可以使用一个关键字通过Linux apropos实用程序来搜索它。该实用程序可以搜索关键字并且显示所有包含匹配项的man页面的简短描述。另外使用man实用程序和-k关键字选项可以得到和用Linux apropos实用程序相同的结果实际上是相同的命令
如果你不知道完成某个特定任务所需要命令的名称可以使用一个关键字通过Linux apropos实用程序来搜索它。该实用程序可以搜索关键字并且显示所有包含匹配项的man页面的简短描述。另外使用man实用程序和-k关键字选项可以得到和用Linux apropos实用程序相同的结果实际上是相同的命令
@ -22,7 +22,7 @@
-M, --manpath=路径 设置搜索手册页的路径为“路径”,默认使用$MANPATH环境变量
-s, --sections=列表, --section=列表 只查找指定的手册section
返回值:返回0表示成功1表示用法、语法或配置文件错误2表示操作错误16表示没有找到匹配的内容
返回值:返回0表示成功1表示用法、语法或配置文件错误2表示操作错误16表示没有找到匹配的内容
```
## 实例

@ -1,29 +1,22 @@
apt-key
===
管理Debian Linux系统中的软件包密钥
# **apt-key**
## 说明
**apt-key命令** 用于管理Debian Linux系统中的软件包密钥。每个发布的deb包都是通过密钥认证的apt-key用来管理密钥。
### 语法
**apt-key命令** 用于管理Debian Linux系统中的软件包密钥。每个发布的deb包都是通过密钥认证的apt-key用来管理密钥
```
apt-key(参数)
```
## 选项
### 参数
```markdown
操作指令APT密钥操作指令。
```
### 实例
## 实例
```
apt-key list #列出已保存在系统中key
apt-key add keyname #把下载的key添加到本地trusted数据库中
apt-key del keyname #从本地trusted数据库删除key
apt-key update #更新本地trusted数据库删除过期没用的key
```bash
apt-key list # 列出已保存在系统中key
apt-key add keyname # 把下载的key添加到本地trusted数据库中
apt-key del keyname # 从本地trusted数据库删除key
apt-key update # 更新本地trusted数据库删除过期没用的key
```

@ -5,9 +5,9 @@ Debian Linux下对软件包索引文件进行排序的工具
## 说明
**apt-sortpkgs命令** 是Debian Linux下对软件包索引文件进行排序的简单工具
**apt-sortpkgs命令** 是Debian Linux下对软件包索引文件进行排序的简单工具
### 语法
## 选项
```
apt-sortpkgs(选项)(参数)
@ -16,12 +16,12 @@ apt-sortpkgs(选项)(参数)
```
-s使用源索引字段排序
-h显示帮助信息
-s使用源索引字段排序
-h显示帮助信息
```
### 参数
文件指定要排序的包含debian包信息的索引文件
文件指定要排序的包含debian包信息的索引文件

@ -2,31 +2,32 @@
## 说明
**aptitude命令** 与apt-get命令一样都是Debian Linux及其衍生系统中功能极其强大的包管理工具。与apt-get不同的是aptitude在处理依赖问题上更佳一些。举例来说aptitude在删除一个包时会同时删除本身所依赖的包。这样系统中不会残留无用的包整个系统更为干净。它通过文本操作菜单和命令两种方式管理软件包。
```
-d仅下载软件包不执行安装操作
-P每一步操作都要求确认
-y所有问题都回答“yes”
-v显示附加信息
-u启动时下载新的软件包列表。
**aptitude命令** 与apt-get命令一样都是Debian Linux及其衍生系统中功能极其强大的包管理工具。与apt-get不同的是aptitude在处理依赖
问题上更佳一些。举例来说aptitude在删除一个包时会同时删除本身所依赖的包。这样系统中不会残留无用的包整个系统更为干净
它通过文本操作菜单和命令两种方式管理软件包
## 选项
```markdown
-d仅下载软件包不执行安装操作
-P每一步操作都要求确认
-y所有问题都回答“yes”
-v显示附加信息
-u启动时下载新的软件包列表
```
## 实例
```bash
aptitude update # 更新可用的包列表
aptitude upgrade # 升级可用的包
aptitude dist-upgrade # 将系统升级到新的发行版
aptitude install pkgname # 安装包
aptitude remove pkgname # 删除包
aptitude purge pkgname # 删除包及其配置文件
aptitude search string # 搜索包
aptitude show pkgname # 显示包的详细信息
aptitude clean # 删除下载的包文件
aptitude autoclean # 仅删除过期的包文件
```
aptitude update #更新可用的包列表
aptitude upgrade #升级可用的包
aptitude dist-upgrade #将系统升级到新的发行版
aptitude install pkgname #安装包
aptitude remove pkgname #删除包
aptitude purge pkgname #删除包及其配置文件
aptitude search string #搜索包
aptitude show pkgname #显示包的详细信息
aptitude clean #删除下载的包文件
aptitude autoclean #仅删除过期的包文件
```
当然,你也可以在文本界面模式中使用 aptitude。

@ -7,7 +7,7 @@ ar
**ar命令** 是一个建立或修改备存文件或是从备存文件中抽取文件的工具ar可让您集合许多文件成为单一的备存文件。在备存文件中所有成员文件皆保有原来的属性与权限
### 语法
## 选项
```
ab(选项)(参数)
@ -56,7 +56,7 @@ x[o] - 从归档文件中分解文件
ar支持的目标 elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex
### 实例
## 实例
打包文件

@ -1,23 +1,14 @@
arch
===
显示当前主机的硬件架构类型
# **arch**
## 说明
**arch命令** 用于显示当前主机的硬件架构类型。arch命令等同于`命令name -m`在当前的Linux系统下,arch命令输出结果有:i386、i486、i586、alpha、sparc、arm、m68k、mips、ppc、i686等
### 语法
```
arch
```
**arch命令** 用于显示当前主机的硬件架构类型。arch命令等同于`命令name -m`在当前的Linux系统下,
arch命令输出结果有:i386、i486、i586、alpha、sparc、arm、m68k、mips、ppc、i686等
### 实例
## 实例
```
arch
x86_64
```bash
arch # 64位输出x86_64
```

@ -5,9 +5,9 @@ arj
## 说明
**arj命令** 是“.arj”格式的压缩文件的管理器用于创建和管理“.arj”压缩包
**arj命令** 是“.arj”格式的压缩文件的管理器用于创建和管理“.arj”压缩包
### 语法
## 选项
```
arj(参数)
@ -15,7 +15,7 @@ arj(参数)
### 参数
* 操作指令:对“.arj”压缩包执行的操作指令
* 压缩包名称指定要操作的arj压缩包名称
* 操作指令:对“.arj”压缩包执行的操作指令
* 压缩包名称指定要操作的arj压缩包名称

@ -1,45 +1,29 @@
arp
===
显示和修改IP到MAC转换表
# **arp**
## 说明
**arp命令** 用于操作主机的arp缓冲区它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。
### 语法
**arp命令** 用于操作主机的arp缓冲区它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系
```
arp(选项)(参数)
```
## 选项
```markdown
-a display (all) hosts in alternative (BSD) style
-e display (all) hosts in default (Linux) style
-s, --set set a new ARP entry
-d, --delete delete a specified entry
-v, --verbose be verbose
-n, --numeric don't resolve names
-i, --device specify network interface (e.g. eth0)
-D, --use-device read <hwaddr> from given device
-A, -p, --protocol specify protocol family
-f, --file read new entries from file or from /etc/ethers
```
-a<主机>显示arp缓冲区的所有条目
-H<地址类型>指定arp指令使用的地址类型
-d<主机>从arp缓冲区中删除指定主机的arp条目
-D使用指定接口的硬件地址
-e以Linux的显示风格显示arp缓冲区中的条目
-i<接口>指定要操作arp缓冲区的网络接口
-s<主机><MAC>设置指定的主机的IP地址与MAC地址的静态映射
-n以数字方式显示arp缓冲区中的条目
-v显示详细的arp缓冲区条目包括缓冲区条目的统计信息
-f<文件>设置主机的IP地址与MAC地址的静态映射。
```
### 参数
主机查询arp缓冲区中指定主机的arp条目。
## 实例
### 实例
```bash
```
[root@localhost ~]# arp -v
Address HWtype HWaddress Flags Mask Iface
192.168.0.134 ether 00:21:5E:C7:4D:88 C eth1
115.238.144.129 ether 38:22:D6:2F:B2:F1 C eth0
Entries: 2 Skipped: 0 Found: 2
```

@ -5,9 +5,9 @@ arpd
## 说明
**arpd命令** 是用来收集免费arp信息的一个守护进程它将收集到的信息保存在磁盘上或者在需要时提供给内核用户用于避免多余广播
**arpd命令** 是用来收集免费arp信息的一个守护进程它将收集到的信息保存在磁盘上或者在需要时提供给内核用户用于避免多余广播
### 语法
## 选项
```
arpd(选项)(参数)
@ -16,19 +16,19 @@ arpd(选项)(参数)
```
-l将arp数据库输出到标准输出设备显示并退出
-f指定读取和加载arpd数据库的文本文件文件的格式与“-l”输出信息类似
-b指定arpd数据库文件默认的位置为“/var/lib/arpd.db”
-a指定目标被认为死掉前查询的次数
-k禁止通过内核发送广播查询
-n设定缓冲失效时间
-l将arp数据库输出到标准输出设备显示并退出
-f指定读取和加载arpd数据库的文本文件文件的格式与“-l”输出信息类似
-b指定arpd数据库文件默认的位置为“/var/lib/arpd.db”
-a指定目标被认为死掉前查询的次数
-k禁止通过内核发送广播查询
-n设定缓冲失效时间
```
### 参数
网络接口:指定网络接口
网络接口:指定网络接口
### 实例
## 实例
启动arpd进程

@ -1,49 +1,33 @@
arping
===
通过发送ARP协议报文测试网络
# arping
## 说明
**arping命令** 是用于发送arp请求到一个相邻主机的工具arping使用arp数据包通过ping命令检查设备上的硬件地址。能够测试一个ip地址是否是在网络上已经被使用并能够获取更多设备信息。功能类似于ping。
### 语法
**arping命令** 是用于发送arp请求到一个相邻主机的工具arping使用arp数据包通过ping命令检查设备上的硬件地址。能够测试一个ip地址是否
在网络上已经被使用并能够获取更多设备信息。功能类似于ping
## 选项
```markdown
-f : quit on first reply
-q : be quiet
-b : keep broadcasting, don't go unicast
-D : duplicate address detection mode
-U : Unsolicited ARP mode, update your neighbours
-A : ARP answer mode, update your neighbours
-V : print version and exit
-c count : how many packets to send
-w timeout : how long to wait for a reply
-I device : which ethernet device to use
-s source : source ip address
destination : ask for what ip address
```
arping(选项)(参数)
```
## 实例
```
-b用于发送以太网广播帧FFFFFFFFFFFF。arping一开始使用广播地址在收到响应后就使用unicast地址。
-qquiet output不显示任何信息
-f表示在收到第一个响应报文后就退出
-w timeout设定一个超时时间单位是秒。如果到了指定时间arping还没到完全收到响应则退出
-c count表示发送指定数量的ARP请求数据包后就停止。如果指定了deadline选项则arping会等待相同数量的arp响应包直到超时为止
-s source设定arping发送的arp数据包中的SPA字段的值。如果为空则按下面处理如果是DAD模式冲突地址探测则设置为0.0.0.0如果是Unsolicited ARP模式Gratutious ARP则设置为目标地址否则从路由表得出
-I interface设置ping使用的网络接口。
```
```bash
arping www.baidu.com
### 参数
目的主机指定发送ARP报文的目的主机。
### 实例
```
[root@localhost ~]# arping www.baidu.com
ARPING 220.181.111.147 from 173.231.43.132 eth0
Unicast reply from 220.181.111.147 00:D0:03:[bc:48:00] 1.666ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.677ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.691ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.728ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.626ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.292ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.429ms
Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 2.042ms
Sent 8 probes (1 broadcast(s))
Received 8 response(s)
```

@ -5,9 +5,9 @@ arptables
## 说明
**arptables命令** 用来设置、维护和检查Linux内核中的arp包过滤规则表
**arptables命令** 用来设置、维护和检查Linux内核中的arp包过滤规则表
### 语法
## 选项
```
arptables(选项)
@ -16,19 +16,19 @@ arptables(选项)
```
-A向规则链中追加规则
-D从指定的链中删除规则
-l向规则链中插入一条新的规则
-R替换指定规则
-P设置规则链的默认策略
-F刷新指定规则链将其中的所有规则链删除但是不改变规则链的默认策略
-Z将规则链计数器清零
-L显示规则链中的规则列表
-X删除指定的空用户自定义规则链
-h显示指令帮助信息
-j指定满足规则的添加时的目标
-s指定要匹配ARP包的源ip地址
-d指定要匹配ARP包的目的IP地址
-A向规则链中追加规则
-D从指定的链中删除规则
-l向规则链中插入一条新的规则
-R替换指定规则
-P设置规则链的默认策略
-F刷新指定规则链将其中的所有规则链删除但是不改变规则链的默认策略
-Z将规则链计数器清零
-L显示规则链中的规则列表
-X删除指定的空用户自定义规则链
-h显示指令帮助信息
-j指定满足规则的添加时的目标
-s指定要匹配ARP包的源ip地址
-d指定要匹配ARP包的目的IP地址
```

@ -5,9 +5,9 @@ arpwatch
## 说明
**arpwatch命令** 用来监听网络上arp的记录
**arpwatch命令** 用来监听网络上arp的记录
### 语法
## 选项
```
arpwatch(选项)
@ -16,10 +16,10 @@ arpwatch(选项)
```
-d启动排错模式
-f<记录文件>设置存储ARP记录的文件预设为/var/arpwatch/arp.dat
-i<接口>指定监听ARP的接口预设的接口为eth0
-r<记录文件>从指定的文件中读取ARP记录而不是从网络上监听
-d启动排错模式
-f<记录文件>设置存储ARP记录的文件预设为/var/arpwatch/arp.dat
-i<接口>指定监听ARP的接口预设的接口为eth0
-r<记录文件>从指定的文件中读取ARP记录而不是从网络上监听
```

@ -5,9 +5,9 @@ as
## 说明
**as命令** GNU组织推出的一款汇编语言编译器它支持多种不同类型的处理器
**as命令** GNU组织推出的一款汇编语言编译器它支持多种不同类型的处理器
### 语法
## 选项
```
as(选项)(参数)
@ -16,25 +16,25 @@ as(选项)(参数)
```
-ac忽略失败条件
-ad忽略调试指令
-ah包括高级源
-al包括装配
-am包括宏扩展
-an忽略形式处理
-as包括符号
=file设置列出文件的名字
--alternate以交互宏模式开始
-f跳过空白和注释预处理
-g产生调试信息
-J对于有符号溢出不显示警告信息
-L在符号表中保留本地符号
-o指定要生成的目标文件
--statistics打印汇编所用的最大空间和总时间
-ac忽略失败条件
-ad忽略调试指令
-ah包括高级源
-al包括装配
-am包括宏扩展
-an忽略形式处理
-as包括符号
=file设置列出文件的名字
--alternate以交互宏模式开始
-f跳过空白和注释预处理
-g产生调试信息
-J对于有符号溢出不显示警告信息
-L在符号表中保留本地符号
-o指定要生成的目标文件
--statistics打印汇编所用的最大空间和总时间
```
### 参数
汇编文件:指定要汇编的源文件
汇编文件:指定要汇编的源文件

@ -73,7 +73,7 @@ samples: number of intervals (minimum 1)
- idle字段指示CPU处在完全空闲状态的时间比例
- wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例
CPU列各个字段指示值相加结果为N00%其中N为cpu核数
CPU列各个字段指示值相加结果为N00%其中N为cpu核数
cpu列该列显示某一核cpu的使用情况各字段含义可参照CPU列各字段值相加结果为100%

@ -5,9 +5,9 @@ atq
## 说明
**atq命令** 显示系统中待执行的任务列表也就是列出当前用户的at任务列表
**atq命令** 显示系统中待执行的任务列表也就是列出当前用户的at任务列表
### 语法
## 选项
```
atq(选项)
@ -16,11 +16,11 @@ atq(选项)
```
-V显示版本号
-q查询指定队列的任务
-V显示版本号
-q查询指定队列的任务
```
### 实例
## 实例
```
at now + 10 minutes

@ -5,9 +5,9 @@ atrm
## 说明
**atrm命令** 用于删除待执行任务队列中的指定任务
**atrm命令** 用于删除待执行任务队列中的指定任务
### 语法
## 选项
```
atrm(选项)(参数)
@ -16,14 +16,14 @@ atrm(选项)(参数)
```
-V显示版本号
-V显示版本号
```
### 参数
任务号:指定待执行队列中要删除的任务
任务号:指定待执行队列中要删除的任务
### 实例
## 实例
删除已经排队的任务

@ -41,9 +41,9 @@ gawk is a pattern scanning and processing language.By default it reads standard
pattern可以是以下任意一个
* /正则表达式/:使用通配符的扩展集
* 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试
* 模式匹配表达式:用运算符`~`(匹配)和`~!`(不匹配)
* /正则表达式/:使用通配符的扩展集
* 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试
* 模式匹配表达式:用运算符`~`(匹配)和`~!`(不匹配)
* BEGIN语句块、pattern语句块、END语句块参见awk的工作原理
## 操作
@ -61,9 +61,9 @@ pattern可以是以下任意一个
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
```
* 第一步:执行`BEGIN{ commands }`语句块中的语句
* 第二步:从文件或标准输入(stdin)读取一行,然后执行`pattern{ commands }`语句块,它逐行扫描文件,从第一行到最后一行重复<br>这个过程,直到文件全部被读取完毕
* 第三步:当读至输入流末尾时,执行`END{ commands }`语句块
* 第一步:执行`BEGIN{ commands }`语句块中的语句
* 第二步:从文件或标准输入(stdin)读取一行,然后执行`pattern{ commands }`语句块,它逐行扫描文件,从第一行到最后一行重复<br>这个过程,直到文件全部被读取完毕
* 第三步:当读至输入流末尾时,执行`END{ commands }`语句块
**BEGIN语句块** 在awk开始从输入流中读取行** 之前** 被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等
语句通常可以写在BEGIN语句块中
@ -92,11 +92,11 @@ Start
A line 1nA line 2
End
{ }类似一个循环体会对文件中的每一行进行迭代通常变量初始化语句i=0以及打印文件头部的语句放入BEGIN语句块中
将打印的结果等语句放在END语句块中
{ }类似一个循环体会对文件中的每一行进行迭代通常变量初始化语句i=0以及打印文件头部的语句放入BEGIN语句块中
将打印的结果等语句放在END语句块中
comment
# 当使用不带参数的`print`时,它就打印当前行,当`print`的参数是以逗号进行分隔时,打印时则以空格作为定界符
# 当使用不带参数的`print`时,它就打印当前行,当`print`的参数是以逗号进行分隔时,打印时则以空格作为定界符
# 在awk的print语句块中双引号是被当作拼接符使用例如
echo | awk '{ var1="v1"; var2="v2"; var3="v3"; print var1,var2,var3; }' # 输出v1 v2 v3
echo | awk '{ var1="v1"; var2="v2"; var3="v3"; print var1"="var2"="var3; }' # 双引号使用例子输出v1=v2=v3
@ -107,7 +107,7 @@ echo | awk '{ var1="v1"; var2="v2"; var3="v3"; print var1"="var2"="var3; }' #
说明:[A][N][P][G]表示第一个支持变量的工具,[A]=awk、[N]=nawk、[P]=POSIXawk、[G]=gawk
可自定义变量,变量可以是字符串或数值。输入字段的内容也可以分配给变量。为了更精确地控制输出格式而不是打印通常提供的
输出格式请使用printf。 printf命令可用于指定每个项目使用的字段宽度以及数字的各种格式选择例如要使用的输出基数
输出格式请使用printf。 printf命令可用于指定每个项目使用的字段宽度以及数字的各种格式选择例如要使用的输出基数
是否打印指数,是否打印标记以及数字位数在小数点后打印)。这是通过提供一个名为格式字符串的字符串来完成的,该字符串控
制打印其他参数的方式和位置
@ -283,7 +283,7 @@ awk 'BEGIN{a="b";arr[0]="b";arr["b"]="c";print (a in arr);}' # 输出1
```bash
# awk中next语句在循环中逐行匹配遇到next就会跳过当前行直接忽略下面语句。而进行下一行匹配。next语句一般用于多行合并
# 打印student.txt偶数行并打印出对应的行号。解析当记录行号除以2余1就跳过当前行。print NR,$0也不会执行
# 打印student.txt偶数行并打印出对应的行号。解析当记录行号除以2余1就跳过当前行。print NR,$0也不会执行
awk 'NR%2==1{next}{print NR,$0;}' student.txt
# 匹配并跳过file文件以web行开头的行然后将匹配到的行作为下面每行的开始并与下面每行合并为一行
@ -291,17 +291,17 @@ awk '/^web/{T=$0;next;}{print T"\t"$0;}' file
# 简单地读取一条记录
: << comment
awk getline用法输出重定向需用到getline函数。getline从标准输入、管道或者当前正在处理的文件之外的其他输入文件获得输入
awk getline用法输出重定向需用到getline函数。getline从标准输入、管道或者当前正在处理的文件之外的其他输入文件获得输入
它负责从输入获得下一行的内容并给NF,NR和FNR等内建变量赋值。如果得到一条记录getline函数返回1如果到达文件的末尾就
返回0如果出现错误例如打开文件失败就返回-1
getline语法getline var变量var包含了特定行的内容
getline语法getline var变量var包含了特定行的内容
awk getline从整体上来说用法说明
当其左右无重定向符 | 或 <getline作用于当前文件读入当前文件的第一行给其后跟的变量var或$0无变量,
应该注意到由于awk在处理getline之前已经读入了一行所以getline得到的返回结果是隔行的
当其左右有重定向符 | 或 <getline则作用于定向输入文件由于该文件是刚打开并没有被awk读入一行
当其左右有重定向符 | 或 <getline则作用于定向输入文件由于该文件是刚打开并没有被awk读入一行
只是getline读入那么getline返回的是该文件的第一行而不是隔行
comment
@ -320,7 +320,7 @@ echo | awk '{printf("hello word!n") > "datafile"}' # awk中允许用如下方
```bash
# 关闭文件
# awk中允许在程序中关闭一个输入或输出文件方法是使用awk的close语句
# file可以是getline打开的文件也可以是stdin包含文件名的变量或者getline使用的确切命令。或一个输出文件
# file可以是getline打开的文件也可以是stdin包含文件名的变量或者getline使用的确切命令。或一个输出文件
# 可以是stdout包含文件名的变量或使用管道的确切命令,例如
echo "21 2
@ -343,7 +343,7 @@ for(i in second)
close("sort -n >> test.txt")
'
: << comment
# 以上命令输出为,任何一个close都不能去掉因为awk管道使用时若不关闭将会被一致使用
# 以上命令输出为,任何一个close都不能去掉因为awk管道使用时若不关闭将会被一致使用
======打印第1列并排序===========
3
17
@ -370,8 +370,8 @@ comment
## 流程控制语句
```bash
# awk的while、do-while和for语句中允许使用break,continue语句来控制流程走向也允许使用exit这样的语句来退出
# break中断当前正在执行的循环并跳到循环外执行下一条语句。if 是流程选择用法。awk中流程控制语句语法结构与c语言类型
# awk的while、do-while和for语句中允许使用break,continue语句来控制流程走向也允许使用exit这样的语句来退出
# break中断当前正在执行的循环并跳到循环外执行下一条语句。if 是流程选择用法。awk中流程控制语句语法结构与c语言类型
# 有了这些语句其实很多shell程序都可以交给awk而且性能是非常快的。下面是各个语句用法
# if条件判断语句示例判断数字大小进行对应的输出,输出very good
@ -475,7 +475,7 @@ awk 'BEGIN{tB["a"]="a1";tB["b"]="b1";delete tB["a"];for(k in tB){print k,tB[k];}
### 二维、多维数组使用
awk的多维数组在本质上是一维数组更确切一点awk在存储上并不支持多维数组。awk提供了逻辑上模拟二维数组的访问方式
awk的多维数组在本质上是一维数组更确切一点awk在存储上并不支持多维数组。awk提供了逻辑上模拟二维数组的访问方式
例如,`array[2,4]=1`这样的访问是允许的。awk使用一个特殊的字符串`SUBSEP(34)`作为分割字段,在上面的例子中,关联数组
array存储的键值实际上是2344(此处存疑,暂未实际验证)
@ -501,7 +501,7 @@ split(m,tarr2,SUBSEP); print tarr2[1],"*",tarr2[2],"=",tarr[m];}}'
## 内置函数
awk内置函数主要分以下3种类似算数函数、字符串函数、其它一般函数、时间函数
awk内置函数主要分以下3种类似算数函数、字符串函数、其它一般函数、时间函数
### 算术函数
@ -561,7 +561,7 @@ awk 'BEGIN{info="this is a test";split(info,tA," ");print length(tA);for(k in tA
### 格式化字符串输出sprintf使用
格式化字符串格式:其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出; 另一部分是格式化规定字符
格式化字符串格式:其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出; 另一部分是格式化规定字符
以`"%"`开始,后跟一个或几个规定字符,用来确定输出内容格式
| 格式 | 描述 | 格式 | 描述 |
@ -653,7 +653,7 @@ strftime日期和时间格式说明符
awk'1; {print“”}'
awk'BEGIN {ORS =“\ n \ n”}; 1'
# 双空间的文件已经有空行。输出文件,在文本行之间应该包含不超过一个空白行
# 双空间的文件已经有空行。输出文件,在文本行之间应该包含不超过一个空白行
# 注意在Unix系统上只有CRLF\ r \ n的DOS行是经常被视为非空白因此仅'NF'将返回TRUE
awk'NF {print $ 0“\ n”}'
@ -717,7 +717,7 @@ awk'$ NF> 4'
awk'BEGIN {whilea ++ <513s = s“”; s}'
#在特定字符位置插入特定长度的字符串
#示例:在每个输入行的#6列之后插入49个空格
#示例:在每个输入行的#6列之后插入49个空格
gawk --re-interval'BEGIN {whilea ++ <49s = s“”}; {sub/ ^{6} /s}; 1'
```
@ -726,10 +726,10 @@ gawk --re-interval'BEGIN {whilea ++ <49s = s“”}; {sub/ ^。{6} /
```sh
#接下来的2个条目不是单行脚本而是技术
#非常方便,因此在这里值得一试
#非常方便,因此在这里值得一试
#创建一个名为“月”的数组,索引数字,以便该月[1]
#是'Jan',月份[2]是'Feb',月份[3]是'Mar'等等
#是'Jan',月份[2]是'Feb',月份[3]是'Mar'等等
拆分“1月2月3月4月5月6月7月8月9月10月11月12月”“”
#创建一个名为“mdigit”的数组用字符串索引这样
@ -755,7 +755,7 @@ awk 1
#不能用DOS版本的awk完成除了gawk
gawk -v BINMODE =“w”'1'infile> outfile
#使用“tr”代替
#使用“tr”代替
tr -d \ r <infile> outfile#GNU tr版本1.22或更高
#从每行前面删除前导空格(空格,制表符)
@ -846,7 +846,7 @@ awk'/ regex /'
awk'$ 5 ==“abc123”'
#仅打印字段#5不等于“abc123”的行
#这也将打印少于5个字段的行
#这也将打印少于5个字段的行
awk'$ 5=“abc123”'
awk'$ 5 ==“abc123”'
@ -917,7 +917,7 @@ awk '!($0 in array) { array[$0]; print }' temp
方法一:
awk '{++S[$1]} END {for (variable in S) print variable ,S[variable]}' access.log |sort -rn -k2
$1为第一个域的内容。-k2 为对第二个字段排序,即对数量排序
$1为第一个域的内容。-k2 为对第二个字段排序,即对数量排序
方法二:
awk '{print $1}' access.log|sort|uniq -c |sort -rn -k1

@ -5,13 +5,13 @@ axel
## 说明
**axel** 是Linux下一个不错的HTTP/ftp高速下载工具。支持多线程下载、断点续传且可以从多个地址或者从一个地址的多个连接来下载同一个文件。适合网速不给力时多线程下载提高下载速度。比如在国内VPS或服务器上下载lnmp一键安装包用Axel就比wget快
**axel** 是Linux下一个不错的HTTP/ftp高速下载工具。支持多线程下载、断点续传且可以从多个地址或者从一个地址的多个连接来下载同一个文件。适合网速不给力时多线程下载提高下载速度。比如在国内VPS或服务器上下载lnmp一键安装包用Axel就比wget快
### 安装
CentOS安装Axel
目前yum源上没有Axel我们可以到http://pkgs.repoforge.org/axel/下载rpm包安装
目前yum源上没有Axel我们可以到http://pkgs.repoforge.org/axel/下载rpm包安装
32位CentOS执行下面命令
@ -33,7 +33,7 @@ Debian/Ubuntu安装Axel
apt-get install axel
```
### 语法
## 选项
```
axel [options] url1 [url2] [url...]
@ -56,7 +56,7 @@ axel [options] url1 [url2] [url...]
--version -V 版本信息
```
### 实例
## 实例
如下载lnmp安装包指定10个线程存到/tmp/
@ -64,6 +64,6 @@ axel [options] url1 [url2] [url...]
axel -n 10 -o /tmp/ http://www.jsdig.com/lnmp.tar.gz
```
如果下载过程中下载中断可以再执行下载命令即可恢复上次的下载进度
如果下载过程中下载中断可以再执行下载命令即可恢复上次的下载进度

@ -1,46 +1,26 @@
basename
===
打印目录或者文件的基本名称
# **basename**
## 说明
**basename命令** 用于打印目录或者文件的基本名称。basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。
### 语法
```
basename(选项)(参数)
```
```
--help显示帮助
--version显示版本号。
```
### 参数
**basename命令** 用于打印目录或者文件的基本名称。basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异
的输出文件名称
* 文件:带路径信息的文件;
* 后缀:可选参数,指定要去除的文件后缀字符串。
## 选项
### 实例
```markdown
-a, --multiple support multiple arguments and treat each as a NAME
-s, --suffix=SUFFIX remove a trailing SUFFIX
-z, --zero separate output with NUL rather than newline
1、要显示一个shell变量的基本名称请输入
```
basename $WORKFILE
```
此命令显示指定给shell变量WORKFILE的值的基本名称。如果WORKFILE变量的值是`/home/jim/program.c`文件则此命令显示program.c。
## 实例
要构造一个和另一个文件名称相同(除了后缀)的文件名称,请输入:
```
OFILE=`basename $1 .c`.o
```bash
basename $WORKFILE # 显示一个shell变量的基本名称
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" followed by "str2"
```
此命令指定给 OFILE 文件第一个位置上的参数($1的值但它的 .c 后缀更改至 .o。如果 $1 是 /home/jim/program.c 文件,则 OFILE 成为 program.o。因为 program.o 仅是一个基本文件名称,它标识在当前目录中的文件。

@ -5,9 +5,9 @@ batch
## 说明
**batch命令** 用于在指定时间当系统不繁忙时执行任务用法与at相似
**batch命令** 用于在指定时间当系统不繁忙时执行任务用法与at相似
### 语法
## 选项
```
batch(选项)(参数)
@ -16,16 +16,16 @@ batch(选项)(参数)
```
-f指定包含具体指令的任务文件
-q指定新任务的队列名称
-m任务执行完后向用户发送E-mail
-f指定包含具体指令的任务文件
-q指定新任务的队列名称
-m任务执行完后向用户发送E-mail
```
### 参数
日期时间:指定任务执行的日期时间
日期时间:指定任务执行的日期时间
### 实例
## 实例
```
batch

@ -5,11 +5,11 @@ bg
## 说明
**bg命令** 用于将作业放到后台运行,使前台可以执行其他任务。该命令的运行效果与在指令后面添加符号`&`的效果是相同的,都是将其放到系统后台执行
**bg命令** 用于将作业放到后台运行,使前台可以执行其他任务。该命令的运行效果与在指令后面添加符号`&`的效果是相同的,都是将其放到系统后台执行
在Linux系统中执行某些操作时候有时需要将当前任务暂停调至后台或有时须将后台暂停的任务重启开启并调至前台这一序列的操作将会使用到 jobs、bg、和 fg 三个命令以及两个快捷键来完成
在Linux系统中执行某些操作时候有时需要将当前任务暂停调至后台或有时须将后台暂停的任务重启开启并调至前台这一序列的操作将会使用到 jobs、bg、和 fg 三个命令以及两个快捷键来完成
### 语法
## 选项
```
bg(参数)
@ -17,9 +17,9 @@ bg(参数)
### 参数
作业标识:指定需要放到后台的作业标识号
作业标识:指定需要放到后台的作业标识号
### 实例
## 实例
使用bg命令将任务号为1的任务放到后台继续执行输入如下命令
@ -27,7 +27,7 @@ bg(参数)
bg 1 #后台执行任务号为1的任务
```
如果系统中只有一个挂起的任务时,即使不为该命令设置参数"1",也可以实现这个功能
如果系统中只有一个挂起的任务时,即使不为该命令设置参数"1",也可以实现这个功能
注意实际上使用bg命令与在指令后面添加符号"&"的效果是一样的。例如,使用`&`将`find / -name password`放到后台执行,输入如下命令:

@ -5,9 +5,9 @@ bind
## 说明
**bind命令** 用于显示和设置命令行的键盘序列绑定功能。通过这一命令可以提高命令行中操作效率。您可以利用bind命令了解有哪些按键组合与其功能也可以自行指定要用哪些按键组合
**bind命令** 用于显示和设置命令行的键盘序列绑定功能。通过这一命令可以提高命令行中操作效率。您可以利用bind命令了解有哪些按键组合与其功能也可以自行指定要用哪些按键组合
### 语法
## 选项
```
bind(选项)
@ -16,15 +16,15 @@ bind(选项)
```
-d显示按键配置的内容
-f<按键配置文件>:载入指定的按键配置文件
-l列出所有的功能
-m<按键配置>:指定按键配置
-q<功能>:显示指定功能的按键
-v列出目前的按键配置与其功能
-d显示按键配置的内容
-f<按键配置文件>:载入指定的按键配置文件
-l列出所有的功能
-m<按键配置>:指定按键配置
-q<功能>:显示指定功能的按键
-v列出目前的按键配置与其功能
```
### 实例
## 实例
```
bind -x '"\C-l":ls -l' #直接按 CTRL+L 就列出目录

@ -5,9 +5,9 @@ blockdev
## 说明
**blockdev命令** 在命令调用“ioxtls”函数以实现对设备的控制
**blockdev命令** 在命令调用“ioxtls”函数以实现对设备的控制
### 语法
## 选项
```
blockdev(选项)(参数)
@ -16,22 +16,22 @@ blockdev(选项)(参数)
选项
```
-V打印版本号并退出
-q安静模式
-v详细信息模式
--setro只读
--setrw只写
--getro打印只读状态“1”表示只读“0”表示非只读
--getss打印扇区大小。通常为521
--flushbufs刷新缓冲区
--rereadpt重新读取分区表
-V打印版本号并退出
-q安静模式
-v详细信息模式
--setro只读
--setrw只写
--getro打印只读状态“1”表示只读“0”表示非只读
--getss打印扇区大小。通常为521
--flushbufs刷新缓冲区
--rereadpt重新读取分区表
```
### 参数
设备文件名:指定要操作的磁盘的设备文件名
设备文件名:指定要操作的磁盘的设备文件名
### 实例
## 实例
设置设备为只读:

@ -5,9 +5,9 @@ bmodinfo
## 说明
**bmodinfo命令** 用于显示给定模块的详细信息
**bmodinfo命令** 用于显示给定模块的详细信息
### 语法
## 选项
```
bmodinfo(选项)(参数)
@ -16,19 +16,19 @@ bmodinfo(选项)(参数)
```
-a显示模块作者
-d显示模块的描述信息
-l显示模块的许可信息
-p显示模块的参数信息
-n显示模块对应的文字信息
-0用ASCII码的0字符分割字段值而不使用新行
-a显示模块作者
-d显示模块的描述信息
-l显示模块的许可信息
-p显示模块的参数信息
-n显示模块对应的文字信息
-0用ASCII码的0字符分割字段值而不使用新行
```
### 参数
模块名:要显示详细信息的模块名称
模块名:要显示详细信息的模块名称
### 实例
## 实例
显示sg模块的信息

@ -5,9 +5,9 @@ builtin
## 说明
**builtin命令** 用于执行指定的shell内部命令并返回内部命令的返回值。builtin命令在使用时将不能够再使用Linux中的外部命令。当系统中定义了与shell内部命令相同的函数时使用builtin显式地执行shell内部命令从而忽略定义的shell函数
**builtin命令** 用于执行指定的shell内部命令并返回内部命令的返回值。builtin命令在使用时将不能够再使用Linux中的外部命令。当系统中定义了与shell内部命令相同的函数时使用builtin显式地执行shell内部命令从而忽略定义的shell函数
### 语法
## 选项
```
builtin(参数)
@ -15,9 +15,9 @@ builtin(参数)
### 参数
shell内部命令指定需要执行的shell内部命令
shell内部命令指定需要执行的shell内部命令
### 实例
## 实例
使用builtin命令执行shell内部命alias显示命令别名输入如下命令
@ -32,6 +32,6 @@ alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
```
上面的命令执行后,将输出当前系统下的命令别名
上面的命令执行后,将输出当前系统下的命令别名

@ -5,9 +5,9 @@ bunzip2
## 说明
**bunzip2命令** 解压缩由bzip2指令创建的”.bz2"压缩包。对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令只能对文件进行压缩。对于目录只能压缩目录下的所有文件压缩完成后在目录下生成以“.bz2”为后缀的压缩包。bunzip2其实是bzip2的符号链接即软链接因此压缩解压都可以通过bzip2实现
**bunzip2命令** 解压缩由bzip2指令创建的”.bz2"压缩包。对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令只能对文件进行压缩。对于目录只能压缩目录下的所有文件压缩完成后在目录下生成以“.bz2”为后缀的压缩包。bunzip2其实是bzip2的符号链接即软链接因此压缩解压都可以通过bzip2实现
### 语法
## 选项
```
bunzip2(选项)(参数)
@ -16,25 +16,25 @@ bunzip2(选项)(参数)
```
-f或--force解压缩时若输出的文件与现有文件同名时预设不会覆盖现有的文件
-k或——keep在解压缩后预设会删除原来的压缩文件。若要保留压缩文件请使用此参数
-s或——small降低程序执行时内存的使用量
-v或——verbose解压缩文件时显示详细的信息
-l--license-V或——version显示版本信息
-f或--force解压缩时若输出的文件与现有文件同名时预设不会覆盖现有的文件
-k或——keep在解压缩后预设会删除原来的压缩文件。若要保留压缩文件请使用此参数
-s或——small降低程序执行时内存的使用量
-v或——verbose解压缩文件时显示详细的信息
-l--license-V或——version显示版本信息
```
### 参数
.bz2压缩包指定需要解压缩的.bz2压缩包
.bz2压缩包指定需要解压缩的.bz2压缩包
### 实例
## 实例
将`/opt`目录下的etc.zip、var.zip和backup.zip进行压缩设置压缩率为最高同时在压缩完毕后不删除原始文件显示压缩过程的详细信息
将`/opt`目录下的etc.zip、var.zip和backup.zip进行压缩设置压缩率为最高同时在压缩完毕后不删除原始文件显示压缩过程的详细信息
```
bzip2 -9vk /opt/etc.zip /opt/var.zip /opt/backup.zip
```
压缩完毕后,在`/opt`下就会生成相应的etc.zip.bz2、var.zip.bz2和backup.zip.bz2文件
压缩完毕后,在`/opt`下就会生成相应的etc.zip.bz2、var.zip.bz2和backup.zip.bz2文件

@ -1,20 +1,20 @@
bye
===
命令用于中断FTP连线并结束程序。
命令用于中断FTP连线并结束程序。
## 说明
**bye命令** 在ftp模式下输入bye即可中断目前的连线作业并结束ftp的执行
**bye命令** 在ftp模式下输入bye即可中断目前的连线作业并结束ftp的执行
### 语法
## 选项
```
bye
```
### 实例
## 实例
```
bye

@ -5,9 +5,9 @@ bzcat
## 说明
**bzcat命令** 解压缩指定的.bz2文件并显示解压缩后的文件内容。保留原压缩文件并且不生成解压缩后的文件
**bzcat命令** 解压缩指定的.bz2文件并显示解压缩后的文件内容。保留原压缩文件并且不生成解压缩后的文件
### 语法
## 选项
```
bzcat(参数)
@ -15,9 +15,9 @@ bzcat(参数)
### 参数
.bz2压缩文件指定要显示内容的.bz2压缩文件
.bz2压缩文件指定要显示内容的.bz2压缩文件
### 实例
## 实例
将`/tmp/man.config`以bzip2格式压缩
@ -33,6 +33,6 @@ bzip2 -z man.config
bzcat man.config.bz2
```
此时屏幕上会显示 man.config.bz2 解压缩之后的文件内容
此时屏幕上会显示 man.config.bz2 解压缩之后的文件内容

@ -5,9 +5,9 @@ bzcmp
## 说明
**bzcmp命令** 主要功能是在不真正解压缩.bz2压缩包的情况下比较两个压缩包中的文件省去了解压缩后在调用cmp命令的过程
**bzcmp命令** 主要功能是在不真正解压缩.bz2压缩包的情况下比较两个压缩包中的文件省去了解压缩后在调用cmp命令的过程
### 语法
## 选项
```
bzcmp(参数)
@ -15,7 +15,7 @@ bzcmp(参数)
### 参数
* 文件1指定要比较的第一个.bz2压缩包
* 文件2指定要比较的第二个.bz2压缩包
* 文件1指定要比较的第一个.bz2压缩包
* 文件2指定要比较的第二个.bz2压缩包

@ -5,9 +5,9 @@ bzdiff
## 说明
**bzdiff命令** 用于直接比较两个“.bz2”压缩包中文件的不同省去了解压缩后再调用diff命令的过程
**bzdiff命令** 用于直接比较两个“.bz2”压缩包中文件的不同省去了解压缩后再调用diff命令的过程
### 语法
## 选项
```
bzdiff(参数)
@ -15,7 +15,7 @@ bzdiff(参数)
### 参数
* 文件1指定要比较的第一个.bz2压缩包
* 文件2指定要比较的第二个.bz2压缩包
* 文件1指定要比较的第一个.bz2压缩包
* 文件2指定要比较的第二个.bz2压缩包

@ -5,9 +5,9 @@ bzgrep
## 说明
**bzgrep命令** 使用正则表达式搜索“.bz2”压缩包中文件将匹配的行显示到标注输出
**bzgrep命令** 使用正则表达式搜索“.bz2”压缩包中文件将匹配的行显示到标注输出
### 语法
## 选项
```
bzgrep(参数)
@ -15,7 +15,7 @@ bzgrep(参数)
### 参数
* 搜索模式:指定要搜索的模式
* .bz2文件指定要搜索的.bz2压缩包
* 搜索模式:指定要搜索的模式
* .bz2文件指定要搜索的.bz2压缩包

@ -5,11 +5,11 @@ bzip2recover
## 说明
**bzip2recover命令** 可用于恢复被破坏的“.bz2”压缩包中的文件
**bzip2recover命令** 可用于恢复被破坏的“.bz2”压缩包中的文件
bzip2是以区块的方式来压缩文件每个区块视为独立的单位。因此当某一区块损坏时便可利用bzip2recover试着将文件中的区块隔开来以便解压缩正常的区块。通常只适用在压缩文件很大的情况
bzip2是以区块的方式来压缩文件每个区块视为独立的单位。因此当某一区块损坏时便可利用bzip2recover试着将文件中的区块隔开来以便解压缩正常的区块。通常只适用在压缩文件很大的情况
### 语法
## 选项
```
bzip2recover(参数)
@ -17,6 +17,6 @@ bzip2recover(参数)
### 参数
文件:指定要恢复数据的.bz2压缩包
文件:指定要恢复数据的.bz2压缩包

@ -5,9 +5,9 @@ bzless
## 说明
**bzless命令** 是增强“.bz2”压缩包查看器bzless比bzmore命令功能更加强大
**bzless命令** 是增强“.bz2”压缩包查看器bzless比bzmore命令功能更加强大
### 语法
## 选项
```
bzless(参数)
@ -15,6 +15,6 @@ bzless(参数)
### 参数
文件:指定要分屏显示的.bz2压缩包
文件:指定要分屏显示的.bz2压缩包

@ -5,9 +5,9 @@ bzmore
## 说明
**bzmore命令** 用于查看bzip2压缩过的文本文件的内容当下一屏显示不下时可以实现分屏显示
**bzmore命令** 用于查看bzip2压缩过的文本文件的内容当下一屏显示不下时可以实现分屏显示
### 语法
## 选项
```
bzmore(参数)
@ -15,6 +15,6 @@ bzmore(参数)
### 参数
文件:指定要分屏显示的.bz2压缩包
文件:指定要分屏显示的.bz2压缩包

@ -5,9 +5,9 @@ cancel
## 说明
**cancel命令** 用于取消已存在的打印任务
**cancel命令** 用于取消已存在的打印任务
### 语法
## 选项
```
cancel(选项)(参数)
@ -16,15 +16,15 @@ cancel(选项)(参数)
```
-a取消所有打印任务
-E当连接到服务器时强制使用加密
-U指定连接服务器时使用的用户名
-u指定打印任务所属的用户
-h指定连接的服务器名和端口号
-a取消所有打印任务
-E当连接到服务器时强制使用加密
-U指定连接服务器时使用的用户名
-u指定打印任务所属的用户
-h指定连接的服务器名和端口号
```
### 参数
打印任务号:指定要取消的打印任务编号
打印任务号:指定要取消的打印任务编号

@ -5,9 +5,9 @@ Linux系统下光盘刻录功能命令
## 说明
**cdrecord命令** 用于Linux系统下光盘刻录它支持cd和DVD格式。linux下一般都带有cdrecord软件
**cdrecord命令** 用于Linux系统下光盘刻录它支持cd和DVD格式。linux下一般都带有cdrecord软件
### 语法
## 选项
```
cdrecord(选项)(参数)
@ -16,18 +16,18 @@ cdrecord(选项)(参数)
```
-v显示刻录光盘的详细过程
-eject刻录完成后弹出光盘
speed=<刻录倍速>:指定光盘刻录的倍速
dev=<刻录机设备号>:指定使用“-scanbus”参数扫描到的刻录机的设备号
-scanbus扫描系统中可用的刻录机
-v显示刻录光盘的详细过程
-eject刻录完成后弹出光盘
speed=<刻录倍速>:指定光盘刻录的倍速
dev=<刻录机设备号>:指定使用“-scanbus”参数扫描到的刻录机的设备号
-scanbus扫描系统中可用的刻录机
```
### 参数
ISO文件指定刻录光盘使用的ISO映像文件
ISO文件指定刻录光盘使用的ISO映像文件
### 实例
## 实例
查看系统所有 CD-R(w) 设备:
@ -50,7 +50,7 @@ cdrecord -v -eject speed=4 dev=0,3,0 backup.iso
* -v显示刻录光盘的详细过程
* -eject刻完自动弹出光盘
* speed=4 dev=0,3,0四速刻录到HP CD-writer设备上
* speed=4 dev=0,3,0四速刻录到HP CD-writer设备上
擦写光驱:

@ -18,7 +18,7 @@
```
### 实例
## 实例
```bash
: << comment

@ -5,9 +5,9 @@ chcon
## 说明
**chcon命令** 是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用`--reference`选项时把指定文件的安全环境设置为与参考文件相同。chcon命令位于`/usr/bin/chcon`
**chcon命令** 是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用`--reference`选项时把指定文件的安全环境设置为与参考文件相同。chcon命令位于`/usr/bin/chcon`
### 语法
## 选项
```
chcon [选项]... 环境 文件...
@ -18,27 +18,27 @@ chcon [选项]... --reference=参考文件 文件...
```
-h, --no-dereference影响符号连接而非引用的文件
--reference=参考文件:使用指定参考文件的安全环境,而非指定值
-R, --recursive递归处理所有的文件及子目录
-v, --verbose为处理的所有文件显示诊断信息
-u, --user=用户:设置指定用户的目标安全环境
-r, --role=角色:设置指定角色的目标安全环境
-t, --type=类型:设置指定类型的目标安全环境
-l, --range=范围:设置指定范围的目标安全环境
-h, --no-dereference影响符号连接而非引用的文件
--reference=参考文件:使用指定参考文件的安全环境,而非指定值
-R, --recursive递归处理所有的文件及子目录
-v, --verbose为处理的所有文件显示诊断信息
-u, --user=用户:设置指定用户的目标安全环境
-r, --role=角色:设置指定角色的目标安全环境
-t, --type=类型:设置指定类型的目标安全环境
-l, --range=范围:设置指定范围的目标安全环境
```
以下选项是在指定了`-R`选项时被用于设置如何穿越目录结构体系。如果您指定了多于一个选项,那么只有最后一个会生效
以下选项是在指定了`-R`选项时被用于设置如何穿越目录结构体系。如果您指定了多于一个选项,那么只有最后一个会生效
```
-H如果命令行参数是一个通到目录的符号链接则遍历符号链接
-L遍历每一个遇到的通到目录的符号链接
-P不遍历任何符号链接默认
--help显示此帮助信息并退出
--version显示版本信息并退出
-H如果命令行参数是一个通到目录的符号链接则遍历符号链接
-L遍历每一个遇到的通到目录的符号链接
-P不遍历任何符号链接默认
--help显示此帮助信息并退出
--version显示版本信息并退出
```
### 实例
## 实例
如果你想把这个ftp共享给匿名用户的话需要开启以下

@ -2,7 +2,7 @@
## 说明
**chgrp命令** 用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中组名可以是用户组的id也可以是用户组的组名
**chgrp命令** 用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中组名可以是用户组的id也可以是用户组的组名
文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变
该文件的组
@ -37,7 +37,7 @@
-P do not traverse any symbolic links (default)
示例:
chgrp staff /u 将 /u 的属组更改为"staff"
chgrp staff /u 将 /u 的属组更改为"staff"
chgrp -hR staff /u 将 /u 及其子目录下所有文件的属组更改为"staff"
```

@ -5,9 +5,9 @@ chkconfig
## 说明
**chkconfig命令** 检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序它可查询操作系统在每一个执行等级中会执行哪些系统服务其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务它只是简单的改变了符号连接
**chkconfig命令** 检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序它可查询操作系统在每一个执行等级中会执行哪些系统服务其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务它只是简单的改变了符号连接
### 语法
## 选项
```bash
chkconfig(选项)
@ -16,9 +16,9 @@ chkconfig(选项)
```bash
--add增加所指定的系统服务让chkconfig指令得以管理它并同时在系统启动的叙述文件内增加相关数据
--del删除所指定的系统服务不再由chkconfig指令管理并同时在系统启动的叙述文件内删除相关数据
--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕
--add增加所指定的系统服务让chkconfig指令得以管理它并同时在系统启动的叙述文件内增加相关数据
--del删除所指定的系统服务不再由chkconfig指令管理并同时在系统启动的叙述文件内删除相关数据
--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕
```
缺省的运行级RHS用到的级别如下
@ -32,19 +32,19 @@ chkconfig(选项)
对各个运行级的详细解释:
* 0 为停机,机器关闭
* 1 为单用户模式就像Win9x下的安全模式类似
* 0 为停机,机器关闭
* 1 为单用户模式就像Win9x下的安全模式类似
* 2 为多用户模式但是没有NFS支持。
* 3 为完整的多用户模式,是标准的运行级
* 4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置
* 5 就是X11进到X Window系统了
* 6 为重启运行init 6机器就会重启
* 3 为完整的多用户模式,是标准的运行级
* 4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置
* 5 就是X11进到X Window系统了
* 6 为重启运行init 6机器就会重启
需要说明的是level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级只能有一个启动脚本或者停止脚本。当切换运行级时init不会重新启动已经启动的服务也不会再次去停止已经停止的服务
需要说明的是level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级只能有一个启动脚本或者停止脚本。当切换运行级时init不会重新启动已经启动的服务也不会再次去停止已经停止的服务
运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动那么使用`-`代替运行级。第二行对服务进行描述,可以用`\`跨行注释
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动那么使用`-`代替运行级。第二行对服务进行描述,可以用`\`跨行注释
例如random.init包含三行
@ -54,26 +54,26 @@ chkconfig(选项)
# higher quality random number generation.
```
### 实例
## 实例
```bash
chkconfig --list #列出所有的系统服务
chkconfig --add httpd #增加httpd服务
chkconfig --del httpd #删除httpd服务
chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on开启的状态
chkconfig --list # 列出系统所有的服务启动情况
chkconfig --list mysqld # 列出mysqld服务设置情况
chkconfig --level 35 mysqld on # 设定mysqld在等级3和5为开机运行服务--level 35表示操作只在等级3和5执行on表示启动off表示关闭
chkconfig mysqld on # 设定mysqld在各等级为on“各等级”包括2、3、4、5等级
chkconfig level redis 2345 on # 把redis在运行级别为2、3、4、5的情况下都是on开启的状态
chkconfig --list #列出所有的系统服务
chkconfig --add httpd #增加httpd服务
chkconfig --del httpd #删除httpd服务
chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on开启的状态
chkconfig --list # 列出系统所有的服务启动情况
chkconfig --list mysqld # 列出mysqld服务设置情况
chkconfig --level 35 mysqld on # 设定mysqld在等级3和5为开机运行服务--level 35表示操作只在等级3和5执行on表示启动off表示关闭
chkconfig mysqld on # 设定mysqld在各等级为on“各等级”包括2、3、4、5等级
chkconfig level redis 2345 on # 把redis在运行级别为2、3、4、5的情况下都是on开启的状态
```
如何增加一个服务:
1. 服务脚本必须存放在`/etc/ini.d/`目录下
2. `chkconfig --add servicename`在chkconfig工具服务列表中增加此服务此时服务会被在`/etc/rc.d/rcN.d`中赋予K/S入口了
3. `chkconfig --level 35 mysqld on`修改服务的默认启动等级
1. 服务脚本必须存放在`/etc/ini.d/`目录下
2. `chkconfig --add servicename`在chkconfig工具服务列表中增加此服务此时服务会被在`/etc/rc.d/rcN.d`中赋予K/S入口了
3. `chkconfig --level 35 mysqld on`修改服务的默认启动等级

@ -5,9 +5,9 @@ chpasswd
## 说明
**chpasswd命令** 是批量更新用户口令的工具,是把一个文件内容重新定向添加到`/etc/shadow`中
**chpasswd命令** 是批量更新用户口令的工具,是把一个文件内容重新定向添加到`/etc/shadow`中
### 语法
## 选项
```
chpasswd(选项)
@ -16,12 +16,12 @@ chpasswd(选项)
```
-e输入的密码是加密后的密文
-h显示帮助信息并退出
-m当被支持的密码未被加密时使用MD5加密代替DES加密
-e输入的密码是加密后的密文
-h显示帮助信息并退出
-m当被支持的密码未被加密时使用MD5加密代替DES加密
```
### 实例
## 实例
先创建用户密码对应文件,格式为`username:password`,如`abc:abc123`必须以这种格式来书写并且不能有空行保存成文本文件user.txt然后执行chpasswd命令
@ -29,6 +29,6 @@ chpasswd(选项)
chpasswd < user.txt
```
以上是运用chpasswd命令来批量修改密码。是linux系统管理中的捷径
以上是运用chpasswd命令来批量修改密码。是linux系统管理中的捷径

@ -1,121 +1,39 @@
chroot
===
把根目录换成指定的目的目录
# chroot
## 说明
**chroot命令** 用来在指定的根目录下运行指令。chroot即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以`/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为`/`位置。
**chroot命令** 用来在指定的根目录下运行指令。chroot即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录
结构都是以`/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为`/`位置
在经过 chroot 命令之后,系统读取到的目录和文件将不在是旧系统根下的而是新根下(即被指定的新的位置)的目录结构和文件因此它带来的好处大致有以下3个
chroot命令之后系统读取的目录和文件将不再是系统根下的而是被指定的目录因此它带来的好处大致有以下3个
**增加了系统的安全性,限制了用户的权力:**
在经过 chroot 之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。这个一般是在登录 (login) 前使用 chroot以此达到用户不能访问一些特定的文件。
在经过 chroot 之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。这个一般是在登录 (login) 前使用 chroot
以此达到用户不能访问一些特定的文件
**建立一个与原系统隔离的系统目录结构,方便用户的开发:**
使用 chroot 后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译以及一些与系统不相关的独立开发。
使用 chroot 后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译
以及一些与系统不相关的独立开发
**切换系统的根目录位置,引导 Linux 系统启动以及急救系统等:**
chroot 的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根位置并执行真正的 init。另外当系统出现一些问题时我们也可以使用 chroot 来切换到一个临时的系统。
### 语法
```
chroot(选项)(参数)
```
```
--help在线帮助
--version显示版本信息。
```
### 参数
* 目录:指定新的根目录;
* 指令:指定要执行的指令。
### 实例
**将target作为根目录运行其中的`/bin/sh`:**
```
chroot target /bin/sh
```
这里,target是busybox安装好的路径类似一个文件系统包含了许多工具。这样将会进入一个shell界面这个shell以target为根。运行exit退出该shell又返回原来的本机环境了也可以使用Ctrl+D。
注意:
* 根用户才行
* 如果直接chroot target默认寻找target的/bin/bash.这会以target作为根目录
将target作为根目录(运行其中的`/bin/ls`):
```
chroot target /bin/ls
```
这里target是busybox安装好的路径类似一个文件系统包含了许多工具。这样运行的是target中的ls不是本机的`/bin/ls`),然后返回立即本机的目录环境。
注意自己在本地编译一个程序生成a.out之后拷进`target/bin/`中这样运行却不行,因为它包含了动态连接的库需要用ldd查看a.out需要那些动态库将这些库拷贝到新根的对应路径下才能执行。
chroot 的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根
位置并执行真正的 init。另外当系统出现一些问题时我们也可以使用 chroot 来切换到一个临时的系统
**用chroot运行自己编译的一个程序**
## 选项
准备chroot的根目录
```
mkdir newRoot
```markdown
--userspec=用户:组 指定所用的用户及用户组(可使用"数字"或"名字")
--groups=组列表 指定可供选择的用户组列表形如组1组2组3...
```
编译自己的程序:
## 实例
```
gcc main.c
```
```bash
chroot target /bin/sh # 将target作为根目录运行其中的`/bin/sh`
chroot target /bin/ls # 将target作为根目录(运行其中的`/bin/ls`)
这里main.c生成a.out功能是输出hello。
查看程序需要的库:
```
ldd a.out
```
输入之后,输出如下:
```
linux-gate.so.1 = &gt; (0xb8034000)
libc.so.6 = &gt; /lib/tls/i686/cmov/libc.so.6 (0xb7eab000)
/lib/ld-linux.so.2 (0xb801a000)
```
将程序需要的库和程序拷贝到新根目录下:
```
cp a.out newRoot
mkdir newRoot/lib
cp /lib/tls/i686/cmov/libc.so.6 newRoot/lib
cp /lib/ld-linux.so.2 newRoot/lib
```
这里newRoot内容将如下
```
a.out lib/
```
使用chroot运行自己的程序
```
su
chroot newRoot /a.out
```
这样就能够正确运行a.out了因为a.out使用到了其他的动态连接库所以需要将库拷贝到newRoot中如果没有其他库那么直接拷贝a.out就能运行。例如静态编译后的busybox其安装目录中的`/bin/busybox`就没有依赖其他库。

@ -5,16 +5,16 @@ clear
## 说明
**clear命令** 用于清除当前屏幕终端上的任何信息
**clear命令** 用于清除当前屏幕终端上的任何信息
### 语法
## 选项
```
clear
```
### 实例
## 实例
直接输入clear命令当前终端上的任何信息就可被清除
直接输入clear命令当前终端上的任何信息就可被清除

@ -5,16 +5,16 @@ clockdiff
## 说明
在ip报文的首部和ICMP报文的首部都可以放入时间戳数据。 **clockdiff** 程序正是使用时间戳来测算目的主机和本地主机的系统时间差
在ip报文的首部和ICMP报文的首部都可以放入时间戳数据。 **clockdiff** 程序正是使用时间戳来测算目的主机和本地主机的系统时间差
```
-o使用IP时间戳选项来测量系统时间差。时间戳只用3个
-o1使用IP时间戳选项来测量系统时间差。用4个时间戳。如果-o和-o1都没有设置那么就是用ICMP时间戳来测试系统时间差
-o使用IP时间戳选项来测量系统时间差。时间戳只用3个
-o1使用IP时间戳选项来测量系统时间差。用4个时间戳。如果-o和-o1都没有设置那么就是用ICMP时间戳来测试系统时间差
```
### 实例
## 实例
```
lixi@lixi-desktop:~$ ping -T tsandaddr www.ustc.edu.cn -c 1
@ -45,7 +45,7 @@ lixi@lixi-desktop:~# ./clockdiff 202.38.64.9
host=202.38.64.9 rtt=750(187)ms/0ms delta=-857517ms/-857517ms Wed Dec 17 11:28:35 2008
```
两种方法测试的都比较准确
两种方法测试的都比较准确
```
lixi@lixi-desktop:~#./clockdiff gigagate1.Princeton.EDU
@ -53,6 +53,6 @@ lixi@lixi-desktop:~#./clockdiff gigagate1.Princeton.EDU
host=gigagate1.Princeton.EDU rtt=307(21)ms/271ms delta=-5ms/-5ms Wed Dec 17 11:50:16 2008
```
上面是测试一个RTT较大的目的主机和本地主机的系统时间差。不过在使用clockdiff的时候需要一点运气因为很多路由会忽略ICMP或IP时间戳
上面是测试一个RTT较大的目的主机和本地主机的系统时间差。不过在使用clockdiff的时候需要一点运气因为很多路由会忽略ICMP或IP时间戳

@ -5,9 +5,9 @@ cmp
## 说明
**cmp命令** 用来比较两个文件是否有差异。当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有差异,预设会标示出第一个不通之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为“-”则cmp指令会从标准输入设备读取数据
**cmp命令** 用来比较两个文件是否有差异。当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有差异,预设会标示出第一个不通之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为“-”则cmp指令会从标准输入设备读取数据
### 语法
## 选项
```
cmp(选项)(参数)
@ -16,19 +16,19 @@ cmp(选项)(参数)
```
-c或--print-chars除了标明差异处的十进制字码之外一并显示该字符所对应字符
-i<字符数目>或--ignore-initial=<字符数目>:指定一个数目
-l或——verbose标示出所有不一样的地方
-s或--quiet或——silent不显示错误信息
-v或——version显示版本信息
--help在线帮助
-c或--print-chars除了标明差异处的十进制字码之外一并显示该字符所对应字符
-i<字符数目>或--ignore-initial=<字符数目>:指定一个数目
-l或——verbose标示出所有不一样的地方
-s或--quiet或——silent不显示错误信息
-v或——version显示版本信息
--help在线帮助
```
### 参数
目录:比较两个文件的差异
目录:比较两个文件的差异
### 实例
## 实例
使用cmp命令比较文件"testfile"和文件"testfile1"两个文件,则输入下面的命令:
@ -57,6 +57,6 @@ cmp testfile testfile1 #比较两个文件
testfile testfile1 #有差异第8字节第2行
```
注意:在比较结果中,只能够显示第一比较结果
注意:在比较结果中,只能够显示第一比较结果

@ -5,9 +5,9 @@ col
## 说明
**col命令** 是一个标准输入文本过滤器它从标注输入设备读取文本内容并把内容显示到标注输出设备。在许多UNIX说明文件里都有RLF控制字符。当我们运用shell特殊字符`>`和`>>`把说明文件的内容输出成纯文本文件时控制字符会变成乱码col命令则能有效滤除这些控制字符
**col命令** 是一个标准输入文本过滤器它从标注输入设备读取文本内容并把内容显示到标注输出设备。在许多UNIX说明文件里都有RLF控制字符。当我们运用shell特殊字符`>`和`>>`把说明文件的内容输出成纯文本文件时控制字符会变成乱码col命令则能有效滤除这些控制字符
### 语法
## 选项
```
col(选项)
@ -16,10 +16,10 @@ col(选项)
```
-b过滤掉所有的控制字符包括RLF和HRLF
-f滤掉RLF字符但允许将HRLF字符呈现出来
-x以多个空格字符来表示跳格字符
-l<缓冲区列数>预设的内存缓冲区有128列用户可以自行指定缓冲区的大小
-b过滤掉所有的控制字符包括RLF和HRLF
-f滤掉RLF字符但允许将HRLF字符呈现出来
-x以多个空格字符来表示跳格字符
-l<缓冲区列数>预设的内存缓冲区有128列用户可以自行指定缓冲区的大小
```

@ -5,9 +5,9 @@ colrm
## 说明
**colrm命令** 用于删除文件中的指定列。colrm命令从标准输入设备读取书记转而输出到标准输出设备。如果不加任何参数则colrm命令不会过滤任何一行
**colrm命令** 用于删除文件中的指定列。colrm命令从标准输入设备读取书记转而输出到标准输出设备。如果不加任何参数则colrm命令不会过滤任何一行
### 语法
## 选项
```
colrm(参数)
@ -15,7 +15,7 @@ colrm(参数)
### 参数
* 起始列号:指定要删除的指定列
* 结尾列号:指定要删除的结尾列
* 起始列号:指定要删除的指定列
* 结尾列号:指定要删除的结尾列

@ -5,13 +5,13 @@ comm
## 说明
**comm命令** 可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集、求差、以及差集操作
**comm命令** 可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集、求差、以及差集操作
* 交集:打印出两个文件所共有的行
* 求差:打印出指定文件所包含的且不相同的行
* 差集:打印出包含在一个文件中,但不包含在其他指定文件中的行
* 交集:打印出两个文件所共有的行
* 求差:打印出指定文件所包含的且不相同的行
* 差集:打印出包含在一个文件中,但不包含在其他指定文件中的行
### 语法
## 选项
```bash
comm [选项]... 文件1 文件2
@ -20,10 +20,10 @@ comm [选项]... 文件1 文件2
```
如果不附带选项,程序会生成三列输出
第一列包含文件1 特有的行
第二列包含文件2 特有的行
而第三列包含两个文件共有的行
如果不附带选项,程序会生成三列输出
第一列包含文件1 特有的行
第二列包含文件2 特有的行
而第三列包含两个文件共有的行
-1 不输出文件1 特有的行
-2 不输出文件2 特有的行
@ -36,10 +36,10 @@ comm [选项]... 文件1 文件2
### 参数
* 文件1指定要比较的第一个**有序**文件
* 文件2指定要比较的第二个**有序**文件
* 文件1指定要比较的第一个**有序**文件
* 文件2指定要比较的第二个**有序**文件
### 实例
## 实例
文本 `aaa.txt` 内容
@ -84,7 +84,7 @@ eee
第一列 第二列 第三列
```
输出的第一列只包含在aaa.txt中出现的行第二列包含在bbb.txt中出现的行第三列包含在aaa.txt和bbb.txt中相同的行。各列是以制表符\t作为定界符
输出的第一列只包含在aaa.txt中出现的行第二列包含在bbb.txt中出现的行第三列包含在aaa.txt和bbb.txt中相同的行。各列是以制表符\t作为定界符
**交集**
@ -113,7 +113,7 @@ ttt
jjj
```
`sed 's/^\t//'` 是将制表符`\t`删除,以便把两列合并成一列
`sed 's/^\t//'` 是将制表符`\t`删除,以便把两列合并成一列
**差集**

@ -5,9 +5,9 @@ command
## 说明
**command命令** 调用指定的指令并执行命令执行时不查询shell函数。command命令只能够执行shell内部的命令
**command命令** 调用指定的指令并执行命令执行时不查询shell函数。command命令只能够执行shell内部的命令
### 语法
## 选项
```
command(参数)
@ -15,9 +15,9 @@ command(参数)
### 参数
指令:需要调用的指令及参数
指令:需要调用的指令及参数
### 实例
## 实例
使用command命令调用执行`echo Linux`,输入如下命令:

@ -5,9 +5,9 @@ compress
## 说明
**compress命令** 使用“Lempress-Ziv”编码压缩数据文件。compress是个历史悠久的压缩程序文件经它压缩后其名称后面会多出".Z"的扩展名。当要解压缩时可执行uncompress指令。事实上uncompress是指向compress的符号连接因此不论是压缩或解压缩都可通过compress指令单独完成
**compress命令** 使用“Lempress-Ziv”编码压缩数据文件。compress是个历史悠久的压缩程序文件经它压缩后其名称后面会多出".Z"的扩展名。当要解压缩时可执行uncompress指令。事实上uncompress是指向compress的符号连接因此不论是压缩或解压缩都可通过compress指令单独完成
### 语法
## 选项
```
compress(选项)(参数)
@ -16,20 +16,20 @@ compress(选项)(参数)
```
-f不提示用户强制覆盖掉目标文件
-c将结果送到标准输出无文件被改变
-r递归的操作方式
-b<压缩效率>压缩效率是一个介于9~16的数值预设值为"16",指定愈大的数值,压缩效率就愈高
-d对文件进行解压缩而非压缩
-v显示指令执行过程
-V显示指令版本及程序预设值
-f不提示用户强制覆盖掉目标文件
-c将结果送到标准输出无文件被改变
-r递归的操作方式
-b<压缩效率>压缩效率是一个介于9~16的数值预设值为"16",指定愈大的数值,压缩效率就愈高
-d对文件进行解压缩而非压缩
-v显示指令执行过程
-V显示指令版本及程序预设值
```
### 参数
文件:指定要压缩的文件列表
文件:指定要压缩的文件列表
### 实例
## 实例
将`/etc/man.config`复到`/tmp` ,并加以压缩
@ -62,6 +62,6 @@ compress(选项)(参数)
-rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z
```
这个`-c`的选项比较有趣会将压缩过程的资料输出到屏幕上而不是写入成为file.Z文件。所以我们可以透过资料流重导向的方法将资料输出成为另一个档名
这个`-c`的选项比较有趣会将压缩过程的资料输出到屏幕上而不是写入成为file.Z文件。所以我们可以透过资料流重导向的方法将资料输出成为另一个档名

@ -5,15 +5,15 @@ consoletype
## 说明
**consoletype命令** 用于打印已连接的终端类型到标准输出,并能够检查已连接的终端是当前终端还是虚拟终端
**consoletype命令** 用于打印已连接的终端类型到标准输出,并能够检查已连接的终端是当前终端还是虚拟终端
### 语法
## 选项
```
consoletype
```
### 实例
## 实例
```
[root@localhost ~]# consoletype

@ -5,9 +5,9 @@ convertquota
## 说明
**convertquota命令** 用于将老的磁盘额数据文件“quota.user”和“quota.group”转换为新格式的文件“quota.user”和“quota.group”
**convertquota命令** 用于将老的磁盘额数据文件“quota.user”和“quota.group”转换为新格式的文件“quota.user”和“quota.group”
### 语法
## 选项
```
convertquota(选项)(参数)
@ -16,17 +16,17 @@ convertquota(选项)(参数)
```
-u仅转换用户磁盘配额数据文件
-g仅转换组磁盘配额数据文件
-f将老的磁盘配额文件转换为新的格式
-e将新的文件格式从大字节序换为小字节序
-u仅转换用户磁盘配额数据文件
-g仅转换组磁盘配额数据文件
-f将老的磁盘配额文件转换为新的格式
-e将新的文件格式从大字节序换为小字节序
```
### 参数
文件系统:指定要转换磁盘配额数据文件格式的文件系统(硬盘分区)
文件系统:指定要转换磁盘配额数据文件格式的文件系统(硬盘分区)
### 实例
## 实例
使用convertquota指令转换指定文件系统`/data`的磁盘配额数据文件。在命令行中输入下面的命令:

@ -13,12 +13,13 @@
 cp [选项]... -t 目录 源文件...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
必选参数对长短选项同时适用
必选参数对长短选项同时适用
-a, --archive 等于-dR --preserve=all
--attributes-only 仅复制属性而不复制数据 --backup[=CONTROL 为每个已存在的目标文件创建备份
--attributes-only 仅复制属性而不复制数据 --backup[=CONTROL为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
--copy-contents 在递归处理是复制特殊文件内容
-d 等于--no-dereference --preserve=links,当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-d 等于--no-dereference --preserve=links,当复制符号连接时,把目标文件或目录也建立为符号连接
并指向与源文件或目录连接的原始文件或目录
-f, --force 强行复制文件或目录,不论目标文件或目录是否已存在强行复制文件或目录,不论目标文件或目录是否已存在
-i, --interactive 覆盖既有文件之前先询问用户
-H follow command-line symbolic links in SOURCE
@ -32,7 +33,7 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
--sno-preserve=属性列表 不保留指定的文件属性
--parents 复制前在目标目录创建来源文件路径中的所有目录
-R, -r, --recursive 递归复制目录及其子目录内的所有内容
--reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如
--reflink[=WHEN] 控制克隆/CoW 副本。请查看下面的内如
--remove-destination 尝试打开目标文件前先删除已存在的目的地
文件 (相对于 --force 选项)
--sparse=WHEN 控制创建稀疏文件的方式
@ -50,17 +51,15 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
file to default type
--context[=CTX] like -Z, or if CTX is specified then set the
SELinux or SMACK security context to CTX
--help 显示此帮助信息并退出
--version 显示版本信息并退出
默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也
被为稀疏。这是因为默认情况下使用了--sparse=auto 参数。如果明确使用
--sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文
建为稀疏件
使用--sparse=never 参数禁止创建稀疏文件
建为稀疏件
使用--sparse=never 参数禁止创建稀疏文件
当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的
情况下才复制。如果复制失败或者同时指定了--reflink=auto则返回标准复制模式
情况下才复制。如果复制失败或者同时指定了--reflink=auto则返回标准复制模式
The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
@ -72,16 +71,16 @@ the VERSION_CONTROL environment variable. Here are the values:
simple, never 永远使用普通方式备份
有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件
是同一个已存在的一般文件的话cp 会将源文件备份
是同一个已存在的一般文件的话cp 会将源文件备份
* 源文件制定源文件列表。默认情况下cp命令不能复制目录如果要复制目录则必须使用`-R`选项
* 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录
* 源文件制定源文件列表。默认情况下cp命令不能复制目录如果要复制目录则必须使用`-R`选项
* 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录
```
## 实例
```bash
# 所有目标文件指定的目录必须是己经存在的cp命令不能创建目录。如果没有文件复制的权限则系统会显示出错信息
# 所有目标文件指定的目录必须是己经存在的cp命令不能创建目录。如果没有文件复制的权限则系统会显示出错信息
cp -ruv /usr/men/tmp ~/men/tmp # 只拷贝新的文件到我的存储设备上就用cp的“u更新”和“v详细”选项
cp --force --backup=numbered test1.py test1.py # --backup=numbered参数表示做带编号的连续备份第一个备份就是1号第二个就是2号
cp file /usr/men/tmp/file1 # 将文件file复制到目录`/usr/men/tmp`下并改名为file1

@ -1,95 +1,123 @@
cpio
===
用来建立、还原备份档的工具程序
# cpio
## 说明
**cpio命令** 主要是用来建立或者还原备份档的工具程序cpio命令可以复制文件到归档包中或者从归档包中复制文件。
### 语法
```
cpio(选项)
```
```
-0或--null接受新增列控制字符通常配合find指令的“-print0”参数使用
-a或--rest-access-time重新设置文件的存取时间
-A或--append附加到已存在的备份文档中且这个备份文档必须存放在磁盘上而不能放置于磁带机里
-b或--awap此参数的效果和同时指定“-ss”参数相同
-B将输入/输出的区块大小改成5210Bytes
-c使用旧ASCII备份格式
-C<区块大小>或--io-size=<区块大小>:设置输入/输出的区块大小单位是Byte
-d或--make-directories如有需要cpio会自行建立目录
-E<范本文件>或--pattern-file=<范本文件>指定范本文件其内含有一个或多个范本样式让cpio解开符合范本条件的文件格式为每列一个范本样式
-f或--nonmatching让cpio解开所有不符合范本条件的文件
-F<备份档>或--file=<备份档>:指定备份档的名称,用来取代标准输入或输出,也能借此通过网络使用另一台主机的保存设备存取备份档;
-H<备份格式>:指定备份时欲使用的文件格式;
-i或--extract执行copy-in模式还原备份档
-l<备份档>:指定备份档的名称,用来取代标准输入,也能借此通过网络使用另一台主机的保存设备读取备份档;
-k此参数将忽略不予处理仅负责解决cpio不同版本间的兼容性问题
-l或--link以硬连接的方式取代复制文件可在copy-pass模式下运用
-L或--dereference不建立符号连接直接复制该连接所指向的原始文件
-m或preserve-modification-time不去更改文件的更改时间
-M<回传信息>或--message=<回传信息>:设置更换保存媒体的信息;
-n或--numeric-uid-gid使用“-tv”参数列出备份档的内容时若再加上参数“-n”则会以用户识别和群组识别码替代拥有者和群组名称列出文件清单
-o或--create执行copy-out模式建立备份档
-O<备份档>:指定备份档的名称,用来取代标准输出,也能借此通过网络使用另一台主机的保存设备存放备份档;
-p或--pass-through执行copy-pass模式略过备份步骤直接将文件复制到目的目录
-r或--rename当有文件名称需要更改时采用互动模式
-R<拥有者><:/.><所属群组>或----owner<拥有者><:/.><所属群组> 在copy-in模式还原备份档或copy-pass模式复制文件时可指定这些备份复制的文件的拥有者与所属群组
-s或--swap-bytes交换每队字节的内容
-S或--swap-halfwords交换每半个字节的内容
-t或--list将输入的内容呈现出来
-u或--unconditional置换所有文件不论日期时间的新旧与否皆不予询问而直接覆盖
-v或--verbose详细显示指令的执行过程
-V或--dot执行指令时。在每个文件的执行程序前面加上“.”号;
--block-size=<区块大小>:设置输入/输出的区块大小假如设置数值为5则区块大小为2500若设置成10则区块大小为5120以此类推
--force-local强制将备份档存放在本地主机
--help在线帮助
--no-absolute-filenames使用相对路径建立文件名称
--no-preserve-owner不保留文件的拥有者谁解开了备份档那些文件就归谁所有
-only-verify-crc当备份档采用CRC备份格式时可使用这项参数检查备份档内的每个文件是否正确无误
--quiet不显示复制了多少区块
--sparse倘若一个文件内含有大量的连续0字节则将此文件存在稀疏文件
--version显示版本信息。
```
### 实例
**将`/etc`下的所有普通文件都备份到`/opt/etc.cpio`,使用以下命令:**
**cpio命令** 将归档文件及从包中提取文件cpio命令可以复制文件到归档包中或者从归档包中复制文件
## 选项
```markdown
cpio [OPTION...] [目标目录]
主操作模式
-i, --extract 从包中提取文件 (运行 copy-in 模式)
-o, --create 创建包 (运行 copy-out 模式)
-p, --pass-through 运行 copy-pass 模式
-t, --list 打印输入内容列表
应用于所有模式的选项:
--block-size=BLOCK-SIZE 设置 I/O 块大小为 BLOCK-SIZE * 512
字节
-B 设置 I/O 块大小为 5120 字节
-c Identical to "-H newc", use the new (SVR4)
portable format.If you wish the old portable
(ASCII) archive format, use "-H odc" instead.
-C, --io-size=NUMBER 设置 I/O 块大小为指定的 NUMBER 字节
--force-local
包文件是本地的,尽管名字中含有冒号
-f, --nonmatching 仅拷贝不匹配任意给定的模式的文件
-F, --file=[[用户@]主机:]文件名
用“文件名”来替代标准输入和输出。如果是非本地的文件,则用可选的“用户”和“主机”来指定用户名和主机名
-H, --format=格式 使用指定的包格式
-M, --message=STRING 当到达备份介质的尾部的时候打印
STRING
-n, --numeric-uid-gid 在内容列表的详表中,显示数字的 UID
和 GID
--quiet 不要打印已拷贝的块数
--rsh-command=COMMAND 用 COMMAND 替代 rsh
-v, --verbose 详细列出已处理的文件
-V, --dot 每处理一个文件就打印一个“.”
-W, --warning=FLAG 控制警告信息显示。当前 FLAG
可为“none”、“truncate”或“all”。多个选项可以累积
命令修饰仅在 copy-in 模式中有效:
-b, --swap
交换数据中每个字的两个半字以及每个半字中的两个字节。等价于
-sS
-r, --rename 交互式重命名文件
-s, --swap-bytes 交换文件中每个半字中的两个字节
-S, --swap-halfwords
交换文件中每个字(4个字节)中的两个半字
--to-stdout 提取文件到标准输出
-E, --pattern-file=FILE 从 FILE
中读取额外的用于指定提取或列表的文件名的模式
--only-verify-crc When reading a CRC format archive, only verify the
checksum of each file in the archive, don't
actually extract the files
应用于 copy-out 模式的选项
-A, --append 追加到已存在的归档文件
--device-independent, --reproducible
Create device-independent (reproducible) archives
--ignore-devno Don't store device numbers
-O [[用户@]主机:]文件名
使用包文件名而不是标准输出。如果文件在远程机器上,则可指定用户和主机
--renumber-inodes Renumber inodes
应用于 copy-pass 模式的选项:
-l, --link 在可行时链接文件而不是拷贝文件
应用于 copy-in 及 copy-out 模式的选项:
--absolute-filenames 文件名不去除文件系统前缀
--no-absolute-filenames 相对于当前目录来创建所有文件
应用于 copy-out 及 copy-pass 模式的选项:
-0, --null 文件名列表采用 NULL
而不是换行作为分割符
-a, --reset-access-time 文件读取后恢复文件的访问时间
-I [[用户@]主机:]文件名
从文件读入而不是从标准输入读入
如果文件在远程机器上
则可指定用户和主机
-L, --dereference 跟随符号链接
(拷贝符号链接指向的文件而不是拷贝链接本身)
-R, --owner=[用户][:.][组]
设置所有文件的所有权信息到指定的用户和/或组
应用于 copy-in 和 copy-pass 模式的选项:
-d, --make-directories 需要时创建目录
-m, --preserve-modification-time
创建文件时保留以前文件的修改时间
--no-preserve-owner 不改变文件的所有权
--sparse
把含有大块零的文件以稀疏文件方式写出
-u, --unconditional 无条件覆盖所有文件
```
find /etc type f | cpio ocvB >/opt/etc.cpio
```
**将系统上所有资料备份到磁带机内,使用以下命令:**
```
find / -print | cpio -covB > /dev/st0
```
这里的`/dev/st0`是磁带的设备名代表SCSI磁带机。
**查看上例磁带机上备份的文件,使用以下命令:**
```
cpio -icdvt < /dev/st0 > /tmp/st_content
```
有时可能因为备份的文件过多,一个屏幕无法显示完毕,此时我们利用下面命令,让磁带机的文件信息输出到文件。
**将示例1中的备份包还原到相应的位置如果有相同文件进行覆盖使用以下命令**
```
cpio icduv < /opt/etc.cpio
```
注意cpio恢复的路径如果cpio在打包备份的时候用的是绝对路径那么在恢复的时候会自动恢复到这些绝对路径下本例就会将备份文件全部还原到/etc路径下对应的目录中。同理如果在打包备份用的是相对路径还原时也将恢复到相对路径下。
通过上面的示例可以看出cpio无法直接读取文件它需要每个文件或者目录的完整路径名才能识别读取而find命令的输出刚好做到了这点因此cpio命令一般和find命令配合使用。其实上面的示例我们已经看到了它们的组合用法。
## 实例
```bash
cpio -o name-list > archive # 归档 name-list 中的文件到 archive
cpio -i < archive # archive
cpio -p destination-directory < name-list # name-list (destination-directory)
find / -print | cpio -covB > /dev/st0 # 将系统上所有资料备份到磁带机内,/dev/st0是磁带的设备名代表SCSI磁带机
cpio -icdvt < /dev/st0 > /tmp/st_content # 查看上例磁带机上备份的文件
find /etc -type f | cpio -ocvB >/opt/etc.cpio # 将/etc下的所有普通文件都备份到/opt/etc.cpio
cpio -icduv < /opt/etc.cpio # 备份包etc.cpio还原到相应的位置如果有相同文件进行覆盖
: << comment
注意cpio恢复的路径如果cpio在打包备份的时候用的是绝对路径那么在恢复的时候会自动恢复到这些绝对路径下本例就会将备份文件全部还原
到/etc路径下对应的目录中。同理如果在打包备份用的是相对路径还原时也将恢复到相对路径下
示例可以看出cpio无法直接读取文件它需要每个文件或者目录的完整路径名才能识别读取而find命令的输出刚好做到了这点因此cpio命令一般
和find命令配合使用
comment

@ -61,7 +61,7 @@ MAILTO=""HOME=/
/etc/cron.allow 该文件中所列用户允许使用crontab命令
/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名
crontab文件的含义用户所建立的crontab文件中每一行都代表一项任务每行的每个字段代表一项设置它的格式共分为六个字段
crontab文件的含义用户所建立的crontab文件中每一行都代表一项任务每行的每个字段代表一项设置它的格式共分为六个字段
前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command 顺序:分 时 日 月 周
```

@ -5,9 +5,9 @@ csplit
## 说明
**csplit命令** 用于将一个大文件分割成小的碎片并且将分割后的每个碎片保存成一个文件。碎片文件的命名类似“xx00”“xx01”。csplit命令是split的一个变体split只能够根据文件大小或行数来分割但csplit能够根据文件本身特点来分割文件
**csplit命令** 用于将一个大文件分割成小的碎片并且将分割后的每个碎片保存成一个文件。碎片文件的命名类似“xx00”“xx01”。csplit命令是split的一个变体split只能够根据文件大小或行数来分割但csplit能够根据文件本身特点来分割文件
### 语法
## 选项
```
csplit(选项)(参数)
@ -16,20 +16,20 @@ csplit(选项)(参数)
```
-b<输出格式>或--suffix-format=<输出格式>预设的输出格式其文件名称为xx00xx01等用户可以通过改变<输出格式>来改变输出的文件名
-b<输出格式>或--suffix-format=<输出格式>预设的输出格式其文件名称为xx00xx01等用户可以通过改变<输出格式>来改变输出的文件名
-f<输出字首字符串>或--prefix=<输出字首字符串>预设的输出字首字符串其文件名为xx00xx01等如果制定输出字首字符串为“hello”则输出的文件名称会变成hello00hello、01......
-k或--keep-files保留文件就算发生错误或中断执行与不能删除已经输出保存的文件
-n<输出文件名位数>或--digits=<输出文件名位数>预设的输出文件名位数其文件名称为xx00xx01......如果用户指定输出文件名位数为“3”则输出的文件名称会变成xx000xx001等
-q或-s或--quiet或——silent不显示指令执行过程
-z或--elide-empty-files删除长度为0 Byte文件
-k或--keep-files保留文件就算发生错误或中断执行与不能删除已经输出保存的文件
-n<输出文件名位数>或--digits=<输出文件名位数>预设的输出文件名位数其文件名称为xx00xx01......如果用户指定输出文件名位数为“3”则输出的文件名称会变成xx000xx001等
-q或-s或--quiet或——silent不显示指令执行过程
-z或--elide-empty-files删除长度为0 Byte文件
```
### 参数
* 文件:指定要分割的原文件
* 模式:指定要分割文件时的匹配模式
* 文件:指定要分割的原文件
* 模式:指定要分割文件时的匹配模式
### 实例
## 实例
示例测试文件 server.log
@ -63,13 +63,13 @@ server01.log server02.log server03.log server.log
**命令详细说明:**
```
/[正则表达式]/ #匹配文本样式,比如/SERVER/从第一行到包含SERVER的匹配行
{*} #表示根据匹配重复执行分割,直到文件尾停止,使用{整数}的形式指定分割执行的次数
-s #静默模式,不打印其他信息
-n #指定分割后的文件名后缀的数字个数。比如01、02、03等
-f #指定分割后的文件名前缀
-b #指定后缀格式。比如%02d.log类似于C语言中的printf参数格式
rm server00.log #是删除第一个文件,因为分割后的的第一个文件没有内容,匹配的单词就位于文件的第一行中
/[正则表达式]/ #匹配文本样式,比如/SERVER/从第一行到包含SERVER的匹配行
{*} #表示根据匹配重复执行分割,直到文件尾停止,使用{整数}的形式指定分割执行的次数
-s #静默模式,不打印其他信息
-n #指定分割后的文件名后缀的数字个数。比如01、02、03等
-f #指定分割后的文件名前缀
-b #指定后缀格式。比如%02d.log类似于C语言中的printf参数格式
rm server00.log #是删除第一个文件,因为分割后的的第一个文件没有内容,匹配的单词就位于文件的第一行中
```

@ -1,13 +1,13 @@
cu
===
用于连接另一个系统主机
用于连接另一个系统主机
## 说明
**cu命令** 用于连接另一个系统主机。cu(call up)指令可连接另一台主机,并采用类似拨号终端机的接口工作,也可执行简易的文件传输作业
**cu命令** 用于连接另一个系统主机。cu(call up)指令可连接另一台主机,并采用类似拨号终端机的接口工作,也可执行简易的文件传输作业
### 语法
## 选项
```
cu [dehnotv][-a<通信端口>][-c<电话号码>][-E<脱离字符>][-I<设置文件>][-l<外围设备代号>]
@ -17,27 +17,27 @@ cu [dehnotv][-a<通信端口>][-c<电话号码>][-E<脱离字符>][-I<设置文
```
-a<通信端口>或-p<通信端口>或--port<通信端口> 使用指定的通信端口进行连线
-c<电话号码>或--phone<电话号码> 拨打该电话号码
-d 进入排错模式
-e或--parity=even 使用双同位检查
-E<脱离字符>或--escape<脱离字符> 设置脱离字符
-h或--halfduple 使用半双工模式
-I<配置文件>或--config<配置文件> 指定要使用的配置文件
-l<外围设备代号>或--line<外围设备代号> 指定某项外围设备,作为连接的设备
-n或--prompt 拨号时等待用户输入电话号码
-o或--parity=odd 使用单同位检查
-s<连线速率>或--speed<连线速率>或--baud<连线速率>或-<连线速率> 设置连线的速率,单位以鲍率计算
-t或--maper 把CR字符置换成LF+CR字符
-v或--version 显示版本信息
-x<排错模式>或--debug<排错模式> 使用排错模式
-z<系统主机>或--system<系统主机> 连接该系统主机
--help 在线帮助
--nostop 关闭Xon/Xoff软件流量控制
--parity=none 不使用同位检查
-a<通信端口>或-p<通信端口>或--port<通信端口> 使用指定的通信端口进行连线
-c<电话号码>或--phone<电话号码> 拨打该电话号码
-d 进入排错模式
-e或--parity=even 使用双同位检查
-E<脱离字符>或--escape<脱离字符> 设置脱离字符
-h或--halfduple 使用半双工模式
-I<配置文件>或--config<配置文件> 指定要使用的配置文件
-l<外围设备代号>或--line<外围设备代号> 指定某项外围设备,作为连接的设备
-n或--prompt 拨号时等待用户输入电话号码
-o或--parity=odd 使用单同位检查
-s<连线速率>或--speed<连线速率>或--baud<连线速率>或-<连线速率> 设置连线的速率,单位以鲍率计算
-t或--maper 把CR字符置换成LF+CR字符
-v或--version 显示版本信息
-x<排错模式>或--debug<排错模式> 使用排错模式
-z<系统主机>或--system<系统主机> 连接该系统主机
--help 在线帮助
--nostop 关闭Xon/Xoff软件流量控制
--parity=none 不使用同位检查
```
### 实例
## 实例
与远程主机连接

@ -5,9 +5,9 @@ cupsdisable
## 说明
**cupsdisable命令** 用于停止指定的打印机
**cupsdisable命令** 用于停止指定的打印机
### 语法
## 选项
```
cupsdisable(选项)(参数)
@ -16,16 +16,16 @@ cupsdisable(选项)(参数)
```
-E当连接到服务器时强制使用加密
-U指定连接服务器时使用的用户名
-u指定打印任务所属的用户
-c取消指定打印机的所有打印任务
-h指定连接的服务器名和端口号
-r停止打印机的原因
-E当连接到服务器时强制使用加密
-U指定连接服务器时使用的用户名
-u指定打印任务所属的用户
-c取消指定打印机的所有打印任务
-h指定连接的服务器名和端口号
-r停止打印机的原因
```
### 参数
目标:指定目标打印机
目标:指定目标打印机

@ -5,9 +5,9 @@ cupsenable
## 说明
**cupsenable命令** 用于启动指定的打印机
**cupsenable命令** 用于启动指定的打印机
### 语法
## 选项
```
cupsenable(选项)(参数)
@ -16,14 +16,14 @@ cupsenable(选项)(参数)
```
-E当连接到服务器时强制使用加密
-U指定连接服务器时使用的用户名
-u指定打印任务所属的用户
-h指定连接的服务器名和端口号
-E当连接到服务器时强制使用加密
-U指定连接服务器时使用的用户名
-u指定打印任务所属的用户
-h指定连接的服务器名和端口号
```
### 参数
目标:指定目标打印机
目标:指定目标打印机

@ -11,220 +11,190 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
## 选项
```markdown
-a/--append 上传文件时,附加到目标文件
-A/--user-agent 设置用户代理发送给服务器
-anyauth 可以使用“任何”身份验证方法
-b/--cookie cookie字符串或文件读取位置
--basic 使用HTTP基本验证
-B/--use-ascii 使用ASCII /文本传输
-c/--cookie-jar 操作结束后把cookie写入到这个文件中
-C/--continue-at 断点续传
-d/--data HTTP POST方式传送数据
--data-ascii 以ascii的方式post数据
--data-binary 以二进制的方式post数据
--negotiate 使用HTTP身份验证
--digest 使用数字身份验证
--disable-eprt 禁止使用EPRT或LPRT
--disable-epsv 禁止使用EPSV
-D/--dump-header 把header信息写入到该文件中
--egd-file 为随机数据(SSL)设置EGD socket路径
--tcp-nodelay 使用TCP_NODELAY选项
-e/--referer 来源网址
-E/--cert 客户端证书文件和密码 (SSL)
--cert-type 证书文件类型 (DER/PEM/ENG) (SSL)
--key 私钥文件名 (SSL)
--key-type 私钥文件类型 (DER/PEM/ENG) (SSL)
--pass 私钥密码 (SSL)
--engine 加密引擎使用 (SSL). "--engine list" for list
--cacert CA证书 (SSL)
--capath CA目录 (made using c_rehash) to verify peer against (SSL)
--ciphers SSL密码
--compressed 要求返回是压缩的形势 (using deflate or gzip)
--connect-timeout 设置最大请求时间
--create-dirs 建立本地目录的目录层次结构
--crlf 上传是把LF转变成CRLF
-f/--fail 连接失败时不显示http错误
--ftp-create-dirs 如果远程目录不存在,创建远程目录
--ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
--ftp-pasv 使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
--ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输
--ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输
-F/--form 模拟http表单提交数据
--form-string 模拟http表单提交数据
-g/--globoff 禁用网址序列和范围使用{}和[]
-G/--get 以get的方式来发送数据
-H/--header 自定义头信息传递给服务器
--ignore-content-length 忽略的HTTP头信息的长度
-i/--include 输出时包括protocol头信息
-I/--head 只显示请求头信息
-j/--junk-session-cookies 读取文件进忽略session cookie
--interface 使用指定网络接口/地址
--krb4 使用指定安全级别的krb4
-k/--insecure 允许不使用证书到SSL站点
-K/--config 指定的配置文件读取
-l/--list-only 列出ftp目录下的文件名称
--limit-rate 设置传输速度
--local-port 强制使用本地端口号
-m/--max-time 设置最大传输时间
--max-redirs 设置最大读取的目录数
--max-filesize 设置最大下载的文件总量
-M/--manual 显示全手动
-n/--netrc 从netrc文件中读取用户名和密码
--netrc-optional 使用 .netrc 或者 URL来覆盖-n
--ntlm 使用 HTTP NTLM 身份验证
-N/--no-buffer 禁用缓冲输出
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-p/--proxytunnel 使用HTTP代理
--proxy-anyauth 选择任一代理身份验证方法
--proxy-basic 在代理上使用基本身份验证
--proxy-digest 在代理上使用数字身份验证
--proxy-ntlm 在代理上使用ntlm身份验证
-P/--ftp-port 使用端口地址而不是使用PASV
-q 作为第一个参数,关闭 .curlrc
-Q/--quote 文件传输前,发送命令到服务器
-r/--range 检索来自HTTP/1.1或FTP服务器字节范围
--range-file 读取SSL的随机文件
-R/--remote-time 在本地生成文件时,保留远程文件时间
--retry 传输出现问题时,重试的次数
--retry-delay 传输出现问题时,设置重试间隔时间
--retry-max-time 传输出现问题时,设置最大重试时间
-s/--silent 静默模式。不输出任何东西
-S/--show-error 显示错误
--socks4 用socks4代理给定主机和端口
--socks5 用socks5代理给定主机和端口
--stderr
-t/--telnet-option Telnet选项设置
--trace 对指定文件进行debug
--trace-ascii Like --跟踪但没有hex输出
--trace-time 跟踪/详细输出时,添加时间戳
-T/--upload-file 上传文件
--url Spet URL to work with
-u/--user 设置服务器的用户和密码
-U/--proxy-user 设置代理用户名和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy 在给定的端口上使用HTTP代理
-X/--request 指定什么命令
-y/--speed-time 放弃限速所要的时间默认为30
-Y/--speed-limit 停止传输速度的限制,速度时间
(H) means HTTP/HTTPS only, (F) means FTP only
--anyauth Pick "any" authentication method (H)
-a, --append Append to target file when uploading (F/SFTP)
--basic Use HTTP Basic Authentication (H)
--cacert FILE CA certificate to verify peer against (SSL)
--capath DIR CA directory to verify peer against (SSL)
-E, --cert CERT[:PASSWD] Client certificate file and password (SSL)
--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
--ciphers LIST SSL ciphers to use (SSL)
--compressed Request compressed response (using deflate or gzip)
-K, --config FILE Specify which config file to read
--connect-timeout SECONDS Maximum time allowed for connection
-C, --continue-at OFFSET Resumed transfer offset
-b, --cookie STRING/FILE String or file to read cookies from (H)
-c, --cookie-jar FILE Write cookies to this file after operation (H)
--create-dirs Create necessary local directory hierarchy
--crlf Convert LF to CRLF in upload
--crlfile FILE Get a CRL list in PEM format from the given file
-d, --data DATA HTTP POST data (H)
--data-ascii DATA HTTP POST ASCII data (H)
--data-binary DATA HTTP POST binary data (H)
--data-urlencode DATA HTTP POST data url encoded (H)
--delegation STRING GSS-API delegation permission
--digest Use HTTP Digest Authentication (H)
--disable-eprt Inhibit using EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F)
-D, --dump-header FILE Write the headers to this file
--egd-file FILE EGD socket path for random data (SSL)
--engine ENGINGE Crypto engine (SSL). "--engine list" for list
-f, --fail Fail silently (no output at all) on HTTP errors (H)
-F, --form CONTENT Specify HTTP multipart POST data (H)
--form-string STRING Specify HTTP multipart POST data (H)
--ftp-account DATA Account data string (F)
--ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
-P, --ftp-port ADR Use PORT with given address instead of PASV (F)
--ftp-skip-pasv-ip Skip the IP address for PASV (F)
--ftp-pret Send PRET before PASV (for drftpd) (F)
--ftp-ssl-ccc Send CCC after authenticating (F)
--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)
--ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)
-G, --get Send the -d data with a HTTP GET (H)
-g, --globoff Disable URL sequences and ranges using {} and []
-H, --header LINE Custom header to pass to server (H)
-I, --head Show document info only
-h, --help This help text
--hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH)
-0, --http1.0 Use HTTP 1.0 (H)
--ignore-content-length Ignore the HTTP Content-Length header
-i, --include Include protocol headers in the output (H/F)
-k, --insecure Allow connections to SSL sites without certs (H)
--interface INTERFACE Specify network interface/address to use
-4, --ipv4 Resolve name to IPv4 address
-6, --ipv6 Resolve name to IPv6 address
-j, --junk-session-cookies Ignore session cookies read from file (H)
--keepalive-time SECONDS Interval between keepalive probes
--key KEY Private key file name (SSL/SSH)
--key-type TYPE Private key file type (DER/PEM/ENG) (SSL)
--krb LEVEL Enable Kerberos with specified security level (F)
--libcurl FILE Dump libcurl equivalent code of this command line
--limit-rate RATE Limit transfer speed to this rate
-l, --list-only List only names of an FTP directory (F)
--local-port RANGE Force use of these local port numbers
-L, --location Follow redirects (H)
--location-trusted like --location and send auth to other hosts (H)
-M, --manual Display the full manual
--mail-from FROM Mail from this address
--mail-rcpt TO Mail to this receiver(s)
--mail-auth AUTH Originator address of the original email
--max-filesize BYTES Maximum file size to download (H/F)
--max-redirs NUM Maximum number of redirects allowed (H)
-m, --max-time SECONDS Maximum time allowed for the transfer
--metalink Process given URLs as metalink XML file
--negotiate Use HTTP Negotiate Authentication (H)
-n, --netrc Must read .netrc for user name and password
--netrc-optional Use either .netrc or URL; overrides -n
--netrc-file FILE Set up the netrc filename to use
-N, --no-buffer Disable buffering of the output stream
--no-keepalive Disable keepalive use on the connection
--no-sessionid Disable SSL session-ID reusing (SSL)
--noproxy List of hosts which do not use proxy
--ntlm Use HTTP NTLM authentication (H)
-o, --output FILE Write output to <file> instead of stdout
--pass PASS Pass phrase for the private key (SSL/SSH)
--post301 Do not switch to GET after following a 301 redirect (H)
--post302 Do not switch to GET after following a 302 redirect (H)
--post303 Do not switch to GET after following a 303 redirect (H)
-#, --progress-bar Display transfer progress as a progress bar
--proto PROTOCOLS Enable/disable specified protocols
--proto-redir PROTOCOLS Enable/disable specified protocols on redirect
-x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port
--proxy-anyauth Pick "any" proxy authentication method (H)
--proxy-basic Use Basic authentication on the proxy (H)
--proxy-digest Use Digest authentication on the proxy (H)
--proxy-negotiate Use Negotiate authentication on the proxy (H)
--proxy-ntlm Use NTLM authentication on the proxy (H)
-U, --proxy-user USER[:PASSWORD] Proxy user and password
--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port
-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)
--pubkey KEY Public key file name (SSH)
-Q, --quote CMD Send command(s) to server before transfer (F/SFTP)
--random-file FILE File for reading random data from (SSL)
-r, --range RANGE Retrieve only the bytes within a range
--raw Do HTTP "raw", without any transfer decoding (H)
-e, --referer Referer URL (H)
-J, --remote-header-name Use the header-provided filename (H)
-O, --remote-name Write output to a file named as the remote file
--remote-name-all Use the remote file name for all URLs
-R, --remote-time Set the remote file's time on the local output
-X, --request COMMAND Specify request command to use
--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
--retry NUM Retry request NUM times if transient problems occur
--retry-delay SECONDS When retrying, wait this many seconds between each
--retry-max-time SECONDS Retry only within this period
-S, --show-error Show error. With -s, make curl show errors when they occur
-s, --silent Silent mode. Don't output anything
--socks4 HOST[:PORT] SOCKS4 proxy on given host + port
--socks4a HOST[:PORT] SOCKS4a proxy on given host + port
--socks5 HOST[:PORT] SOCKS5 proxy on given host + port
--socks5-basic Enable username/password auth for SOCKS5 proxies
--socks5-gssapi Enable GSS-API auth for SOCKS5 proxies
--socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy
--socks5-gssapi-service NAME SOCKS5 proxy service name for gssapi
--socks5-gssapi-nec Compatibility with NEC SOCKS5 server
-Y, --speed-limit RATE Stop transfers below speed-limit for 'speed-time' secs
-y, --speed-time SECONDS Time for trig speed-limit abort. Defaults to 30
--ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)
--ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)
-2, --sslv2 Use SSLv2 (SSL)
-3, --sslv3 Use SSLv3 (SSL)
--ssl-allow-beast Allow security flaw to improve interop (SSL)
--stderr FILE Where to redirect stderr. - means stdout
--tcp-nodelay Use the TCP_NODELAY option
-t, --telnet-option OPT=VAL Set telnet option
--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)
-z, --time-cond TIME Transfer based on a time condition
-1, --tlsv1 Use => TLSv1 (SSL)
--tlsv1.0 Use TLSv1.0 (SSL)
--tlsv1.1 Use TLSv1.1 (SSL)
--tlsv1.2 Use TLSv1.2 (SSL)
--trace FILE Write a debug trace to the given file
--trace-ascii FILE Like --trace but without the hex output
--trace-time Add time stamps to trace/verbose output
--tr-encoding Request compressed transfer encoding (H)
-T, --upload-file FILE Transfer FILE to destination
--url URL URL to work with
-B, --use-ascii Use ASCII/text transfer
-u, --user USER[:PASSWORD] Server user and password
--tlsuser USER TLS username
--tlspassword STRING TLS password
--tlsauthtype STRING TLS authentication type (default SRP)
--unix-socket FILE Connect through this UNIX domain socket
-A, --user-agent STRING User-Agent to send to server (H)
-v, --verbose Make the operation more talkative
-V, --version Show version number and quit
-w, --write-out FORMAT What to output after completion
--xattr Store metadata in extended file attributes
-q If used as the first parameter disables .curlrc
```
## 实例
```bash
**文件下载**
curl命令可以用来执行下载、发送各种HTTP请求指定HTTP头部等操作。如果系统没有curl可以使用`yum install curl`安装也可以下载安装。curl是将下载文件输出到stdout将进度信息输出到stderr不显示进度信息使用`--silent`选项。
curl URL --silent
```
这条命令是将下载文件输出到终端所有下载的数据都被写入到stdout。
使用选项`-O`将下载的数据写入到文件,必须使用文件的绝对地址:
```
curl http://man.linuxde.net/text.iso --silent -O
```
选项`-o`将下载数据写入到指定名称的文件中,并使用`--progress`显示进度条:
```
curl http://man.linuxde.net/test.iso -o filename.iso --progress
######################################### 100.0%
```
**断点续传**
curl能够从特定的文件偏移处继续下载它可以通过指定一个便宜量来下载部分文件
```
curl URL/File -C 偏移量
#偏移量是以字节为单位的整数如果让curl自动推断出正确的续传位置使用-C -
curl -C -URL
```
**使用curl设置参照页字符串**
参照页是位于HTTP头部中的一个字符串用来表示用户是从哪个页面到达当前页面的如果用户点击网页A中的某个连接那么用户就会跳转到B网页网页B头部的参照页字符串就包含网页A的URL。
使用`--referer`选项指定参照页字符串:
```
curl -I http://man.linuxde.net # 通过-I或者--head可以只打印出HTTP头部信息
curl -H "Host:man.linuxde.net" -H "accept-language:zh-cn" URL # 使用-H "头部信息" 传递多个头部信息
curl URL --silent # curl默认输出到stdout将进度信息输出到stderr不显示进度信息使用--silent选项
curl http://man.linuxde.net/text.iso --silent -O # 所有下载的数据都被写入到stdout,将下载的数据写入到文件,必须使用绝对路径
curl http://man.linuxde.net/test.iso -o filename.iso --progress # 选项-o将下载数据写入到指定文件中--progress显示进度
curl URL/File -C 偏移量 # curl能从特定的文件偏移处继续下载它可以通过指定一个偏移量来下载部分文件,偏移量是以字节为单位的整数
curl http://man.linuxde.net --cookie "user=root;pass=123456" # 指定cookie多个cookie使用分号分隔
curl URL --cookie-jar cookie_file # 将cookie另存为一个文件使用--cookie-jar选项
curl URL --user-agent "Mozilla/5.0" # 使用user-agent访问或下载
curl URL --limit-rate 50k # --limit-rate限制curl的下载速度k,m,g或K,M,G
curl URL --max-filesize bytes # 使用--max-filesize指定可下载的最大文件大小
curl -u user:pwd http://man.linuxde.net # 使用curl选项-u可以完成HTTP或者FTP的认证也可以不指定密码在后续操作中输入密码
: << comment
参照页是位于HTTP头部中的一个字符串用来表示用户是从哪个页面到达当前页面的如果用户点击网页A中的某个连接那么用户就会跳转到B网页
网页B头部的参照页字符串就包含网页A的URL,使用--referer选项指定参照页字符串
comment
curl --referer http://www.google.com http://man.linuxde.net
```
**用curl设置cookies**
使用`--cookie "COKKIES"`选项来指定cookie多个cookie使用分号分隔
```
curl http://man.linuxde.net --cookie "user=root;pass=123456"
```
将cookie另存为一个文件使用`--cookie-jar`选项:
```
curl URL --cookie-jar cookie_file
```
**用curl设置用户代理字符串**
有些网站访问会提示只能使用IE浏览器来访问这是因为这些网站设置了检查用户代理可以使用curl把用户代理设置为IE这样就可以访问了。使用`--user-agent`或者`-A`选项:
```
curl URL --user-agent "Mozilla/5.0"
curl URL -A "Mozilla/5.0"
```
其他HTTP头部信息也可以使用curl来发送使用`-H`"头部信息" 传递多个头部信息,例如:
```
curl -H "Host:man.linuxde.net" -H "accept-language:zh-cn" URL
```
**curl的带宽控制和下载配额**
使用`--limit-rate`限制curl的下载速度
```
curl URL --limit-rate 50k
```
命令中用k千字节和m兆字节指定下载速度限制。
使用`--max-filesize`指定可下载的最大文件大小:
```
curl URL --max-filesize bytes
```
如果文件大小超出限制命令则返回一个非0退出码如果命令正常则返回0。
**用curl进行认证**
使用curl选项 -u 可以完成HTTP或者FTP的认证可以指定密码也可以不指定密码在后续操作中输入密码
```
curl -u user:pwd http://man.linuxde.net
curl -u user http://man.linuxde.net
```
**只打印响应头部信息**
通过`-I`或者`-head`可以只打印出HTTP头部信息
```
[root@localhost text]# curl -I http://man.linuxde.net
HTTP/1.1 200 OK
Server: nginx/1.2.5
date: Mon, 10 Dec 2012 09:24:34 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Pingback: http://man.linuxde.net/xmlrpc.php
```

@ -25,7 +25,7 @@ Mandatory arguments to long options are mandatory for short options too.
--output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入的分界符
仅使用f -b, -c 或-f 中的一个。每一个列表都是专门为一个类别作出的,或者您可以用逗号隔
开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次
开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次
每种参数格式表示范围如下:
N 从第1 个开始数的第N 个字节、字符或域
N- 从第N 个开始到所在行结束的所有字符、字节或域

@ -81,9 +81,9 @@ _ 下划线,用空格填充
^ 如果可能的话,使用大写字母
# 尽可能使用相反的情况
在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字
在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字
作为一个可选的修饰声明它可以是E在可能的情况下使用本地环境关联的
表示方式或者是O在可能的情况下使用本地环境关联的数字符号
表示方式或者是O在可能的情况下使用本地环境关联的数字符号
例如:
将数字从纪元(1970-01-01)UTC开始转换为日期
date --date='@2147483647'

@ -27,7 +27,7 @@ of=FILE 从文件写入而不是从标准输出
oflag=FLAGS 按逗号分隔的参数列表写入
seek=N 在输出开始时跳过N个obs-sized的块
skip=N 在输入开始时跳过N个ibs-sized的块
status=LEVEL 要打印到stderr的信息的级别; 'none'除了错误消息之外禁止其他所有输出,'noxfer'禁止最终传输统计信息
status=LEVEL 要打印到stderr的信息的级别; 'none'除了错误消息之外禁止其他所有输出,'noxfer'禁止最终传输统计信息
'progress'显示定期传输统计信息
N和BYTES之后可以跟随以下乘法后缀:
@ -88,10 +88,10 @@ dd if=/dev/zero of=sun.txt bs=1M count=1 # 可以看出dd命令来测试内
该命令创建了一个1M大小的文件sun.txt其中参数解释
* **if** 代表输入文件。如果不指定if默认就会从stdin中读取输入
* **of** 代表输出文件。如果不指定of默认就会将stdout作为默认输出
* **bs** 代表字节为单位的块大小
* **count** 代表被复制的块数
* **if** 代表输入文件。如果不指定if默认就会从stdin中读取输入
* **of** 代表输出文件。如果不指定of默认就会将stdout作为默认输出
* **bs** 代表字节为单位的块大小
* **count** 代表被复制的块数
* **/dev/zero** 是一个字符设备会不断返回0值字节\0
块大小可以使用的计量单位表

@ -2,17 +2,18 @@
## 说明
**declare命令** 用于声明和显示已存在的shell变量。当不提供变量名参数时显示所有shell变量。declare命令若不带任何参数选项则会显示所有shell变量及其值。declare的功能与typeset命令的功能是相同的。
**declare命令** 用于声明和显示已存在的shell变量。当不提供变量名参数时显示所有shell变量。declare命令若不带任何参数选项则会显示所有
shell变量及其值。declare的功能与typeset命令的功能是相同的
## 选项
```markdown
+/-"-"可用来指定变量的属性,"+"则是取消变量所设的属性
-f仅显示函数
r将变量设置为只读
x指定的变量会成为环境变量可供shell以外的程序来使用
i[设置值]可以是数值,字符串或运算式
shell变量声明shell变量格式为“变量名=值”
+/-"-"可用来指定变量的属性,"+"则是取消变量所设的属性
-f仅显示函数
r将变量设置为只读
x指定的变量会成为环境变量可供shell以外的程序来使用
i[设置值]可以是数值,字符串或运算式
shell变量声明shell变量格式为“变量名=值”
```
## 实例

@ -5,9 +5,9 @@ depmod
## 说明
**depmod命令** 可产生模块依赖的映射文件在构建嵌入式系统时需要由这个命令来生成相应的文件由modprobe使用
**depmod命令** 可产生模块依赖的映射文件在构建嵌入式系统时需要由这个命令来生成相应的文件由modprobe使用
### 语法
## 选项
```
depmod(选项)
@ -16,26 +16,26 @@ depmod(选项)
```
-a或--all分析所有可用的模块
-d或debug执行排错模式
-e输出无法参照的符号
-i不检查符号表的版本
-m<文件>或system-map<文件>:使用指定的符号表文件
-s或--system-log在系统记录中记录错误
-v或--verbose执行时显示详细的信息
-V或--version显示版本信息
--help显示帮助
-a或--all分析所有可用的模块
-d或debug执行排错模式
-e输出无法参照的符号
-i不检查符号表的版本
-m<文件>或system-map<文件>:使用指定的符号表文件
-s或--system-log在系统记录中记录错误
-v或--verbose执行时显示详细的信息
-V或--version显示版本信息
--help显示帮助
```
### 实例
## 实例
```
depmod -b /home/windsome/EMMA3PF-KernelSource-20080626/install_pos -e -F ./boot/System.map -v 2.6.18_pro500-bcm91250-mips2_fp_be -A -a
```
* `/home/windsome/EMMA3PF-KernelSource-20080626/install_pos`是我`make mod_install`后,所有模块的存放路径
* `./boot/System.map`是`make linux`后生成,我拷贝到此目录的
* `2.6.18_pro500-bcm91250-mips2_fp_be`是我build的linux的版本
* `/home/windsome/EMMA3PF-KernelSource-20080626/install_pos`是我`make mod_install`后,所有模块的存放路径
* `./boot/System.map`是`make linux`后生成,我拷贝到此目录的
* `2.6.18_pro500-bcm91250-mips2_fp_be`是我build的linux的版本
编译linux过程及执行depmod的例子
@ -56,8 +56,8 @@ depmod -b /home/windsome/EMMA3PF-KernelSource-20080626/install_pos -e -F ./boot/
其他用法:
在linux桌面系统中当你编译了新的驱动为了能够用`modprobe ***`加载模块, 你需要先将模块拷贝到`/lib/modules /2.6.31-20-generic`目录下,然后运行`sudo depmod -a`将模块信息写入modules.dep、modules.dep.bin、modules.alias.bin、modules.alias和modules.pcimap文件中
在linux桌面系统中当你编译了新的驱动为了能够用`modprobe ***`加载模块, 你需要先将模块拷贝到`/lib/modules /2.6.31-20-generic`目录下,然后运行`sudo depmod -a`将模块信息写入modules.dep、modules.dep.bin、modules.alias.bin、modules.alias和modules.pcimap文件中
我编译了一个新的wifi驱动r8192se_pci.ko将其拷贝到`/lib/modules/2.6.31-20-generic/wireless`下,然后到`/lib/modules/2.6.31-20-generic`运行`depmod -a`之后可以在任意目录运行modprobe r8192se_pci
我编译了一个新的wifi驱动r8192se_pci.ko将其拷贝到`/lib/modules/2.6.31-20-generic/wireless`下,然后到`/lib/modules/2.6.31-20-generic`运行`depmod -a`之后可以在任意目录运行modprobe r8192se_pci

@ -5,9 +5,9 @@ dhclient
## 说明
**dhclient命令** 使用动态主机配置协议动态的配置网络接口的网络参数
**dhclient命令** 使用动态主机配置协议动态的配置网络接口的网络参数
### 语法
## 选项
```
dhclient(选项)(参数)
@ -16,17 +16,17 @@ dhclient(选项)(参数)
```
0指定dhcp客户端监听的端口号
-d总是以前台方式运行程序
-q安静模式不打印任何错误的提示信息
-r释放ip地址
0指定dhcp客户端监听的端口号
-d总是以前台方式运行程序
-q安静模式不打印任何错误的提示信息
-r释放ip地址
```
### 参数
网络接口:操作的网络接口
网络接口:操作的网络接口
### 实例
## 实例
```
dhclient -r #释放IP

@ -1,9 +1,9 @@
dhcpd
===
运行DHCP服务器
运行DHCP服务器
### 语法
## 选项
```
dhcpd [选项] [网络接口]
@ -29,7 +29,7 @@ dhcpd [选项] [网络接口]
### 例子
对DHCP服务器进行排错
对DHCP服务器进行排错
```bash
[root@localhost ~]# dhcpd

@ -5,9 +5,9 @@ dhcrelay
## 说明
**dhcrelay命令** 使用dhcrelay命令可以提供中继DHCP和BOOTP请求从一个没有DHCP服务器的子网直接连接到其它子网内的一个或多个DHCP服务器。该命令在DHCP中继服务器上使用同时支持DHCPv4/BOOTP和DHCPv6协议
**dhcrelay命令** 使用dhcrelay命令可以提供中继DHCP和BOOTP请求从一个没有DHCP服务器的子网直接连接到其它子网内的一个或多个DHCP服务器。该命令在DHCP中继服务器上使用同时支持DHCPv4/BOOTP和DHCPv6协议
### 语法
## 选项
```
dhcrelay [选项] [DHCP服务器]
@ -27,7 +27,7 @@ dhcrelay [选项] [DHCP服务器]
### 例子
指定DHCP服务器的位置
指定DHCP服务器的位置
```bash
[root@localhost ~]# dhcrelay 192.168.0.2

@ -10,40 +10,40 @@ diff命令是以逐行的方式比较文本文件的异同处。如果该命
```markdown
-<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用
-a或——textdiff预设只会逐行比较文本文件
-b或--ignore-space-change不检查空格字符的不同
-B或--ignore-blank-lines不检查空白行
-c显示全部内容并标出不同之处
-C<行数>或--context<行数>:与执行“-c-<行数>”指令相同
-d或——minimal使用不同的演算法以小的单位来做比较
-D<巨集名称>或ifdef<巨集名称>:此参数的输出格式可用于前置处理器巨集
-e或——ed此参数的输出格式可用于ed的script文件
-f或-forward-ed输出的格式类似ed的script文件但按照原来文件的顺序来显示不同处
-H或--speed-large-files比较大文件时可加快速度
-l<字符或字符串>或--ignore-matching-lines<字符或字符串>:若两个文件在某几行有所不同,而之际航同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异
-i或--ignore-case不检查大小写的不同
-l或——paginate将结果交由pr程序来分页
-n或——rcs将比较结果以RCS的格式来显示
-N或--new-file在比较目录时若文件A仅出现在某个目录中预设会显示Only in目录文件A 若使用-N参数则diff会将文件A 与一个空白的文件比较
-p若比较的文件为C语言的程序码文件时显示差异所在的函数名称
-P或--unidirectional-new-file与-N类似但只有当第二个目录包含了第一个目录所没有的文件时才会将这个文件与空白的文件做比较
-q或--brief仅显示有无差异不显示详细的信息
-r或——recursive比较子目录中的文件
-s或--report-identical-files若没有发现任何差异仍然显示信息
-S<文件>或--starting-file<文件>:在比较目录时,从指定的文件开始比较
-t或--expand-tabs在输出时将tab字符展开
-T或--initial-tab在每行前面加上tab字符以便对齐
-u-U<列数>或--unified=<列数>:以合并的方式来显示文件内容的不同
-v或——version显示版本信息
-w或--ignore-all-space忽略全部的空格字符
-W<宽度>或--width<宽度>:在使用-y参数时指定栏宽
-x<文件名或目录>或--exclude<文件名或目录>:不比较选项中所指定的文件或目录
-X<文件>或--exclude-from<文件>;您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件
-y或--side-by-side以并列的方式显示文件的异同之处
--help显示帮助
--left-column在使用-y参数时若两个文件某一行内容相同则仅在左侧的栏位显示该行内容
--suppress-common-lines在使用-y参数时仅显示不同之处
-<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用
-a或——textdiff预设只会逐行比较文本文件
-b或--ignore-space-change不检查空格字符的不同
-B或--ignore-blank-lines不检查空白行
-c显示全部内容并标出不同之处
-C<行数>或--context<行数>:与执行“-c-<行数>”指令相同
-d或——minimal使用不同的演算法以小的单位来做比较
-D<巨集名称>或ifdef<巨集名称>:此参数的输出格式可用于前置处理器巨集
-e或——ed此参数的输出格式可用于ed的script文件
-f或-forward-ed输出的格式类似ed的script文件但按照原来文件的顺序来显示不同处
-H或--speed-large-files比较大文件时可加快速度
-l<字符或字符串>或--ignore-matching-lines<字符或字符串>:若两个文件在某几行有所不同,而之际航同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异
-i或--ignore-case不检查大小写的不同
-l或——paginate将结果交由pr程序来分页
-n或——rcs将比较结果以RCS的格式来显示
-N或--new-file在比较目录时若文件A仅出现在某个目录中预设会显示Only in目录文件A 若使用-N参数则diff会将文件A 与一个空白的文件比较
-p若比较的文件为C语言的程序码文件时显示差异所在的函数名称
-P或--unidirectional-new-file与-N类似但只有当第二个目录包含了第一个目录所没有的文件时才会将这个文件与空白的文件做比较
-q或--brief仅显示有无差异不显示详细的信息
-r或——recursive比较子目录中的文件
-s或--report-identical-files若没有发现任何差异仍然显示信息
-S<文件>或--starting-file<文件>:在比较目录时,从指定的文件开始比较
-t或--expand-tabs在输出时将tab字符展开
-T或--initial-tab在每行前面加上tab字符以便对齐
-u-U<列数>或--unified=<列数>:以合并的方式来显示文件内容的不同
-v或——version显示版本信息
-w或--ignore-all-space忽略全部的空格字符
-W<宽度>或--width<宽度>:在使用-y参数时指定栏宽
-x<文件名或目录>或--exclude<文件名或目录>:不比较选项中所指定的文件或目录
-X<文件>或--exclude-from<文件>;您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件
-y或--side-by-side以并列的方式显示文件的异同之处
--help显示帮助
--left-column在使用-y参数时若两个文件某一行内容相同则仅在左侧的栏位显示该行内容
--suppress-common-lines在使用-y参数时仅显示不同之处
用法diff [选项]... FILES
Compare FILES line by line.
@ -136,7 +136,7 @@ Mandatory arguments to long options are mandatory for short options too.
FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'.
If --from-file or --to-file is given, there are no restrictions on FILE(s).
If a FILE is '-', read standard input.
如果输入相同,则退出状态为 01 表示输入不同2 表示有错误产生
如果输入相同,则退出状态为 01 表示输入不同2 表示有错误产生
```

@ -5,9 +5,9 @@ diff3
## 说明
**diff3命令** 用于比较3个文件将3个文件的不同的地方显示到标准输出
**diff3命令** 用于比较3个文件将3个文件的不同的地方显示到标准输出
### 语法
## 选项
```
diff3(选项)(参数)
@ -16,19 +16,19 @@ diff3(选项)(参数)
```
-a把所有的文件都当做文本文件按照行为单位进行比较即给定的文件不是文本文件
-A合并第2个文件和第3个文件之间的不同到第1个文件中有冲突内容用括号括起来
-B与选项“-A”功能相同但是不显示冲突的内容
-e/--ed生成一个“-ed”脚本用于将第2个文件和第3个文件之间的不同合并到第1个文件中
--easy-only除了不显示互相重叠的变化与选项“-e”的功能相同
-i为了和system V系统兼容在“ed”脚本的最后生成“w”和“q”命令。此选项必须和选项“-AeExX3”连用但是不能和“-m”连用
--initial-tab在正常格式的行的文本前输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范
-a把所有的文件都当做文本文件按照行为单位进行比较即给定的文件不是文本文件
-A合并第2个文件和第3个文件之间的不同到第1个文件中有冲突内容用括号括起来
-B与选项“-A”功能相同但是不显示冲突的内容
-e/--ed生成一个“-ed”脚本用于将第2个文件和第3个文件之间的不同合并到第1个文件中
--easy-only除了不显示互相重叠的变化与选项“-e”的功能相同
-i为了和system V系统兼容在“ed”脚本的最后生成“w”和“q”命令。此选项必须和选项“-AeExX3”连用但是不能和“-m”连用
--initial-tab在正常格式的行的文本前输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范
```
### 参数
* 文件1指定要比较的第1个文件
* 文件2指定要比较的第2个文件
* 文件3指定要比较的第3个文件
* 文件1指定要比较的第1个文件
* 文件2指定要比较的第2个文件
* 文件3指定要比较的第3个文件

@ -5,9 +5,9 @@ diffstat
## 说明
**diffstat命令** 用来显示diff命令输出信息的柱状图用以显示diff命令比较两个文件的不同统计信息。用户也可以直接使用`|`将diff命令所输出的结果直接送给diffstat命令进行统计结果的显示。使用该命令时若所比较的文件或者子目录不在当前目录下则应该使用其完整路径
**diffstat命令** 用来显示diff命令输出信息的柱状图用以显示diff命令比较两个文件的不同统计信息。用户也可以直接使用`|`将diff命令所输出的结果直接送给diffstat命令进行统计结果的显示。使用该命令时若所比较的文件或者子目录不在当前目录下则应该使用其完整路径
### 语法
## 选项
```
diffstat(选项)(参数)
@ -16,17 +16,17 @@ diffstat(选项)(参数)
```
-n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p<文件名长度>:与-n参数相同但此处的<文件名长度>包括了文件的路径
-w指定要输出时栏位的宽度
-v显示版本信息
-n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p<文件名长度>:与-n参数相同但此处的<文件名长度>包括了文件的路径
-w指定要输出时栏位的宽度
-v显示版本信息
```
### 参数
文件指定保存有diff命令的输出信息文件
文件指定保存有diff命令的输出信息文件
### 实例
## 实例
将目录"test1"和"test2"下的同名文件"testf.txt"使用diff命令进行比较。然后使用diffstat命令对结果进行统计显示输入如下命令
@ -34,7 +34,7 @@ diffstat(选项)(参数)
diff test1 test2 | diffstat #进行比较结果的统计显示
```
注意:使用这条命令可以非常方便地实现统计显示的功能
注意:使用这条命令可以非常方便地实现统计显示的功能
对于查看文件中的内容用户可以通过cat命令进行查看即可具体操作如下

@ -5,9 +5,9 @@ dig
## 说明
**dig命令** 是常用的域名查询工具,可以用来测试域名系统工作是否正常
**dig命令** 是常用的域名查询工具,可以用来测试域名系统工作是否正常
### 语法
## 选项
```
dig(选项)(参数)
@ -16,25 +16,25 @@ dig(选项)(参数)
```
@<服务器地址>:指定进行域名解析的域名服务器
-b<ip>当主机具有多个IP地址指定使用本机的哪个IP地址向域名服务器发送域名查询请求
-f<文件名称>指定dig以批处理的方式运行指定的文件中保存着需要批处理查询的DNS任务信息
-P指定域名服务器所使用端口号
-t<类型>指定要查询的DNS数据类型
-x<IP>:执行逆向域名查询
-4使用IPv4
-6使用IPv6
-h显示指令帮助信息
@<服务器地址>:指定进行域名解析的域名服务器
-b<ip>当主机具有多个IP地址指定使用本机的哪个IP地址向域名服务器发送域名查询请求
-f<文件名称>指定dig以批处理的方式运行指定的文件中保存着需要批处理查询的DNS任务信息
-P指定域名服务器所使用端口号
-t<类型>指定要查询的DNS数据类型
-x<IP>:执行逆向域名查询
-4使用IPv4
-6使用IPv6
-h显示指令帮助信息
```
### 参数
* 主机:指定要查询域名主机
* 查询类型指定DNS查询的类型
* 查询类指定查询DNS的class
* 查询选项:指定查询选项
* 主机:指定要查询域名主机
* 查询类型指定DNS查询的类型
* 查询类指定查询DNS的class
* 查询选项:指定查询选项
### 实例
## 实例
```
[root@localhost ~]# dig www.jsdig.com

@ -5,9 +5,9 @@ dircolors
## 说明
**dircolors命令** 设置ls命令在显示目录或文件时所用的色彩。dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或是显示设置LS_COLORS环境变量的命令
**dircolors命令** 设置ls命令在显示目录或文件时所用的色彩。dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或是显示设置LS_COLORS环境变量的命令
### 语法
## 选项
```
dircolors(选项)(参数)
@ -16,18 +16,18 @@ dircolors(选项)(参数)
```
-b或--sh或--bourne-shell显示在Boume shell中将LS_COLORS设为目前预设置的shell指令
-c或--csh或--c-shell显示在C shell中将LS_COLORS设为目前预设置的shell指令
-p或--print-database显示预设置
-help显示帮助
-version显示版本信息
-b或--sh或--bourne-shell显示在Boume shell中将LS_COLORS设为目前预设置的shell指令
-c或--csh或--c-shell显示在C shell中将LS_COLORS设为目前预设置的shell指令
-p或--print-database显示预设置
-help显示帮助
-version显示版本信息
```
### 参数
文件:指定用来设置颜色的文件
文件:指定用来设置颜色的文件
### 实例
## 实例
```
[root@localhost ~]# dircolors -p

@ -5,9 +5,9 @@ dirname
## 说明
**dirname命令** 去除文件名中的非目录部分仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个`/`及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个`<cite>/</cite>`后无字符dirname 命令使用倒数第二个`/`并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名
**dirname命令** 去除文件名中的非目录部分仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个`/`及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个`<cite>/</cite>`后无字符dirname 命令使用倒数第二个`/`并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名
### 语法
## 选项
```
dirname(选项)(参数)
@ -16,11 +16,11 @@ dirname(选项)(参数)
```
--help显示帮助
--version显示版本号
--help显示帮助
--version显示版本号
```
### 实例
## 实例
```
dirname //

@ -5,9 +5,9 @@ dirs
## 说明
**dirs命令** 显示当前目录栈中的所有记录不带参数的dirs命令显示当前目录栈中的记录。dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录
**dirs命令** 显示当前目录栈中的所有记录不带参数的dirs命令显示当前目录栈中的记录。dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录
### 语法
## 选项
```
dirs(选项)(参数)
@ -27,9 +27,9 @@ dirs(选项)(参数)
### 参数
目录:显示目录堆叠中的记录
目录:显示目录堆叠中的记录
### 实例
## 实例
```
[root@localhost etc]# dirs

@ -5,9 +5,9 @@ dmesg
## 说明
**dmesg命令** 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息可利用dmesg来查看。开机信息保存在`/var/log/dmesg`文件里
**dmesg命令** 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息可利用dmesg来查看。开机信息保存在`/var/log/dmesg`文件里
### 语法
## 选项
```
dmesg(选项)
@ -16,12 +16,12 @@ dmesg(选项)
```
-c显示信息后清除ring buffer中的内容
-s<缓冲区大小>预设置为8196刚好等于ring buffer的大小
-n设置记录信息的层级
-c显示信息后清除ring buffer中的内容
-s<缓冲区大小>预设置为8196刚好等于ring buffer的大小
-n设置记录信息的层级
```
### 实例
## 实例
```
[root@localhost ~]# dmesg | head

@ -5,7 +5,7 @@ dnf
## 说明
**DNF** 是新一代的rpm软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近它取代了yum正式成为 Fedora 22 的包管理器
**DNF** 是新一代的rpm软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近它取代了yum正式成为 Fedora 22 的包管理器
DNF包管理器克服了YUM包管理器的一些瓶颈提升了包括用户体验内存占用依赖分析运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。你可以在这里获得关于 DNF 的更多知识:《 DNF 代替 YUM ,你所不知道的缘由》
@ -15,7 +15,7 @@ DNF 的最新稳定发行版版本号是 1.0发行日期是2015年5月11日
DNF 并未默认安装在 RHEL 或 CentOS 7系统中但是 Fedora 22 已经默认使用 DNF .
1、为了安装 DNF ,您必须先安装并启用 epel-release 依赖
1、为了安装 DNF ,您必须先安装并启用 epel-release 依赖
在系统中执行以下命令:
@ -29,7 +29,7 @@ DNF 并未默认安装在 RHEL 或 CentOS 7系统中但是 Fedora 22 已经
# yum install epel-release -y
```
其实这里并没有强制使用”-y”的理由相反的在不使用”-y”的情况下用户可以在安装过程中查看到底有哪些东西被安装进了系统。但对于没有这个需求的用户您可以在 YUM 中使用”-y”参数来自动安装所有东西
其实这里并没有强制使用”-y”的理由相反的在不使用”-y”的情况下用户可以在安装过程中查看到底有哪些东西被安装进了系统。但对于没有这个需求的用户您可以在 YUM 中使用”-y”参数来自动安装所有东西
2、使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。在系统中执行以下命令:
@ -181,7 +181,7 @@ DNF 并未默认安装在 RHEL 或 CentOS 7系统中但是 Fedora 22 已经
**删除无用孤立的软件包**
用处:当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包
用处:当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包
```
# dnf autoremove
@ -191,7 +191,7 @@ DNF 并未默认安装在 RHEL 或 CentOS 7系统中但是 Fedora 22 已经
**删除缓存的无用软件包**
用处:在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件
用处:在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件
```
# dnf clean all
@ -221,7 +221,7 @@ DNF 并未默认安装在 RHEL 或 CentOS 7系统中但是 Fedora 22 已经
**查看 DNF 命令的执行历史**
用处:您可以使用该命令来查看您系统上 DNF 命令的执行历史。通过这个手段您可以知道在自您使用 DNF 开始有什么软件被安装和卸载
用处:您可以使用该命令来查看您系统上 DNF 命令的执行历史。通过这个手段您可以知道在自您使用 DNF 开始有什么软件被安装和卸载
```
# dnf history
@ -311,15 +311,15 @@ No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.
```
原作者注:在执行这条命令的时候, DNF 并没有按照我期望的那样降级指定的软件“acpid”。该问题已经上报
原作者注:在执行这条命令的时候, DNF 并没有按照我期望的那样降级指定的软件“acpid”。该问题已经上报
### 总结
DNF 包管理器作为 YUM 包管理器的升级替代品,它能自动完成更多的操作。但在我看来,正因如此,所以 DNF 包管理器不会太受那些经验老道的 Linux 系统管理者的欢迎。举例如下:
1. 在 DNF 中没有 skip-broken 命令,并且没有替代命令供选择
2. 在 DNF 中没有判断哪个包提供了指定依赖的 resolvedep 命令
3. 在 DNF 中没有用来列出某个软件依赖包的 deplist 命令
4. 当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会咋升级和安装软件时才起作用
1. 在 DNF 中没有 skip-broken 命令,并且没有替代命令供选择
2. 在 DNF 中没有判断哪个包提供了指定依赖的 resolvedep 命令
3. 在 DNF 中没有用来列出某个软件依赖包的 deplist 命令
4. 当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会咋升级和安装软件时才起作用

@ -5,9 +5,9 @@ dnsdomainname
## 说明
**dnsdomainname命令** 用于定义DNS系统中FQDN名称中的域名
**dnsdomainname命令** 用于定义DNS系统中FQDN名称中的域名
### 语法
## 选项
```
dnsdomainname(选项)
@ -15,9 +15,9 @@ dnsdomainname(选项)
-v详细信息模式输出指令执行的详细信息
-v详细信息模式输出指令执行的详细信息
### 实例
## 实例
```
[root@AY1307311912260196fcZ ~]# dnsdomainname -v

@ -5,9 +5,9 @@ domainname
## 说明
**domainname命令** 用于显示和设置系统的NIS域名
**domainname命令** 用于显示和设置系统的NIS域名
### 语法
## 选项
```
domainname(选项)(参数)
@ -16,15 +16,15 @@ domainname(选项)(参数)
```
-v详细信息模式
-F指定读取域名信息的文件
-v详细信息模式
-F指定读取域名信息的文件
```
### 参数
NIS域名指定要设置的NIS域名
NIS域名指定要设置的NIS域名
### 实例
## 实例
```
[root@AY1307311912260196fcZ ~]# domainname -v

@ -5,9 +5,9 @@ dos2unix
## 说明
**dos2unix命令** 用来将DOS格式的文本文件转换成UNIX格式的DOS/MAC to UNIX text file format converter。DOS下的文本文件是以`\r\n`作为断行标志的表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的表示成十六进制就是0A。DOS格式的文本文件在Linux底下用较低版本的vi打开时行尾会显示`^M`而且很多命令都无法很好的处理这种格式的文件如果是个shell脚本。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令
**dos2unix命令** 用来将DOS格式的文本文件转换成UNIX格式的DOS/MAC to UNIX text file format converter。DOS下的文本文件是以`\r\n`作为断行标志的表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的表示成十六进制就是0A。DOS格式的文本文件在Linux底下用较低版本的vi打开时行尾会显示`^M`而且很多命令都无法很好的处理这种格式的文件如果是个shell脚本。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令
### 语法
## 选项
```
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
@ -17,18 +17,18 @@ dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
```
-k保持输出文件的日期不变
-q安静模式不提示任何警告信息
-q安静模式不提示任何警告信息
-V查看版本
-c转换模式模式有ASCII, 7bit, ISO, Mac, 默认是ASCII
-c转换模式模式有ASCII, 7bit, ISO, Mac, 默认是ASCII
-o写入到源文件
-n写入到新文件
```
### 参数
参数:需要转换到文件
参数:需要转换到文件
### 实例
## 实例
最简单的用法就是dos2unix直接跟上文件名
@ -43,13 +43,13 @@ dos2unix file1 file2 file3
dos2unix -o file1 file2 file3
```
上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用`-n`参数
上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用`-n`参数
```
dos2unix oldfile newfile
```
如果要保持文件时间戳不变,加上`-k`参数。所以上面几条命令都是可以加上`-k`参数来保持文件时间戳的
如果要保持文件时间戳不变,加上`-k`参数。所以上面几条命令都是可以加上`-k`参数来保持文件时间戳的
```
dos2unix -k file

@ -5,9 +5,9 @@ Debian Linux下的软件包管理工具
## 说明
**dpkg-deb命令** 是Debian Linux下的软件包管理工具它可以对软件包执行打包和解包操作以及提供软件包信息
**dpkg-deb命令** 是Debian Linux下的软件包管理工具它可以对软件包执行打包和解包操作以及提供软件包信息
### 语法
## 选项
```
dpkg-deb(选项)(参数)
@ -16,22 +16,22 @@ dpkg-deb(选项)(参数)
```
-c显示软件包中的文件列表
-e将主控信息解压
-f把字段内容打印到标准输出
-x将软件包中的文件释放到指定目录下
-X将软件包中的文件释放到指定目录下并显示释放文件的详细过程
-w显示软件包的信息
-l显示软件包的详细信息
-R提取控制信息和存档的清单文件
-b创建debian软件包
-c显示软件包中的文件列表
-e将主控信息解压
-f把字段内容打印到标准输出
-x将软件包中的文件释放到指定目录下
-X将软件包中的文件释放到指定目录下并显示释放文件的详细过程
-w显示软件包的信息
-l显示软件包的详细信息
-R提取控制信息和存档的清单文件
-b创建debian软件包
```
### 参数
文件:指定要操作的“.deb”软件包的全名或软件名
文件:指定要操作的“.deb”软件包的全名或软件名
### 实例
## 实例
解压程序文件:

@ -5,9 +5,9 @@ Debian Linux中创建并管理一个转向列表
## 说明
**dpkg-divert命令** 是Debian Linux中创建并管理一个转向diversion列表其使得安装文件的默认位置失效的工具
**dpkg-divert命令** 是Debian Linux中创建并管理一个转向diversion列表其使得安装文件的默认位置失效的工具
### 语法
## 选项
```
dpkg-divert(选项)(参数)
@ -16,18 +16,18 @@ dpkg-divert(选项)(参数)
```
--add添加一个转移文件
--remove删除一个转移文件
--list列出匹配的转移
--truename对应转移文件真实文件名
--quidet安静模式
--add添加一个转移文件
--remove删除一个转移文件
--list列出匹配的转移
--truename对应转移文件真实文件名
--quidet安静模式
```
### 参数
文件:指定转移文件名
文件:指定转移文件名
### 实例
## 实例
指定软件包wibble安装时写入`/usr/bin/example.foo`,而不是`/usr/bin/example`

@ -5,9 +5,9 @@ Debian Linux中软件包安装之前询问问题
## 说明
**dpkg-preconfigure命令** 用于在Debian Linux中软件包安装之前询问问题
**dpkg-preconfigure命令** 用于在Debian Linux中软件包安装之前询问问题
### 语法
## 选项
```
dpkg-preconfigure(选项)(参数)
@ -16,16 +16,16 @@ dpkg-preconfigure(选项)(参数)
```
-f选择使用的前端
-p感兴趣的最低的优先级问题
--apt在apt模式下运行
-f选择使用的前端
-p感兴趣的最低的优先级问题
--apt在apt模式下运行
```
### 参数
软件包:指定“.deb”软件包
软件包:指定“.deb”软件包
### 实例
## 实例
导入debconf模板

@ -5,9 +5,9 @@ Debian Linux中软件包的查询工具
## 说明
**dpkg-query命令** 是Debian Linux中软件包的查询工具它从dpkg软件包数据库中查询并辨识软件包的信息
**dpkg-query命令** 是Debian Linux中软件包的查询工具它从dpkg软件包数据库中查询并辨识软件包的信息
### 语法
## 选项
```
dpkg-query(选项)(参数)
@ -16,20 +16,20 @@ dpkg-query(选项)(参数)
```
-l列出符合匹配模式的软件包
-s查询软件包的状态信息
-L显示软件包所安装的文件列表
-S从安装的软件包中查询文件
-w显示软件包信息
-c显示软件包的控制文件路径
-p显示软件包的细节
-l列出符合匹配模式的软件包
-s查询软件包的状态信息
-L显示软件包所安装的文件列表
-S从安装的软件包中查询文件
-w显示软件包信息
-c显示软件包的控制文件路径
-p显示软件包的细节
```
### 参数
软件包名称:指定需要查询的软件包
软件包名称:指定需要查询的软件包
### 实例
## 实例
查找文件file1在哪个包里安装

@ -5,11 +5,11 @@ Debian Linux中重新配制一个已经安装的软件包
## 说明
**dpkg-reconfigure命令** 是Debian Linux中重新配置已经安装过的软件包可以将一个或者多个已安装的软件包传递给此指令它将询问软件初次安装后的配置问题
**dpkg-reconfigure命令** 是Debian Linux中重新配置已经安装过的软件包可以将一个或者多个已安装的软件包传递给此指令它将询问软件初次安装后的配置问题
当用户需要再次对软件包配置的时候可以使用dpkg-reconfigure命令来对指定的软件包进行配置
当用户需要再次对软件包配置的时候可以使用dpkg-reconfigure命令来对指定的软件包进行配置
### 语法
## 选项
```
dpkg-reconfigure(选项)(参数)
@ -18,22 +18,22 @@ dpkg-reconfigure(选项)(参数)
```
-a重新配置所有的软件包
-u或--unseen-only仅显示未提过的问题
--default-priority使用默认优先级而非“低”级
--force强制执行操作需谨慎使用此选项
--no-reload不要轻易的重装模板使用时请慎重考虑
-f或--frontend指定 debconf 前端界面
-p或--priority指定要显示的问题的最优先级
--terse开启简要模式
-a重新配置所有的软件包
-u或--unseen-only仅显示未提过的问题
--default-priority使用默认优先级而非“低”级
--force强制执行操作需谨慎使用此选项
--no-reload不要轻易的重装模板使用时请慎重考虑
-f或--frontend指定 debconf 前端界面
-p或--priority指定要显示的问题的最优先级
--terse开启简要模式
```
### 参数
软件包名:需要重新配置的已安装的软件包
软件包名:需要重新配置的已安装的软件包
### 实例
## 实例
用于配置语言:

@ -5,9 +5,9 @@ Debian Linux中将大软件包分割成小包
## 说明
**dpkg-split命令** 用来将Debian Linux中的大软件包分割成小软件包它还能够将已分割的文件进行合并
**dpkg-split命令** 用来将Debian Linux中的大软件包分割成小软件包它还能够将已分割的文件进行合并
### 语法
## 选项
```
dpkg-split(选项)(参数)
@ -16,19 +16,19 @@ dpkg-split(选项)(参数)
```
-S设置分割后的每个小文件最大尺寸以字节为单位
-s分割软件包
-j<分块文件><分块文件>:把各个分块合并到一起
-I<分块文件>:显示分块文件的相关信息
-l列出不匹配的部分
-dscard<文件名>:忽略不匹配的部分
-S设置分割后的每个小文件最大尺寸以字节为单位
-s分割软件包
-j<分块文件><分块文件>:把各个分块合并到一起
-I<分块文件>:显示分块文件的相关信息
-l列出不匹配的部分
-dscard<文件名>:忽略不匹配的部分
```
### 参数
软件包:指定需要分割的“.deb”软件包
软件包:指定需要分割的“.deb”软件包
### 实例
## 实例
把foo.deb分割出N个大小为460KB的文件

@ -5,9 +5,9 @@ Debian Linux中覆盖文件的所有权和模式
## 说明
**dpkg-statoverride命令** 用于Debian Linux中覆盖文件的所有权和模式让dpkg于包安装时使得文件所有权与模式失效
**dpkg-statoverride命令** 用于Debian Linux中覆盖文件的所有权和模式让dpkg于包安装时使得文件所有权与模式失效
### 语法
## 选项
```
dpkg-statoverride(选项)
@ -16,13 +16,13 @@ dpkg-statoverride(选项)
```
-add为文件添加一个改写
--remove为文件删除一个改写
--list显示所有改写列表
--update如果文件存在则立刻执行改写操作
-add为文件添加一个改写
--remove为文件删除一个改写
--list显示所有改写列表
--update如果文件存在则立刻执行改写操作
```
### 实例
## 实例
修改文件夹的权限属性:

@ -5,9 +5,9 @@ Debian Linux下的软件包触发器
## 说明
**dpkg-trigger命令** 是Debian Linux下的软件包触发器
**dpkg-trigger命令** 是Debian Linux下的软件包触发器
### 语法
## 选项
```
dpkg-trigger(选项)(参数)
@ -16,15 +16,15 @@ dpkg-trigger(选项)(参数)
```
--check-supported检查运行的dpkg是否支持触发器返回值为0则支持触发器
--help显示帮助信息
--admindir=<目录>设置dpkg数据库所在的目录
--no-act仅用于测试不执行任何操作
--by-package=<软件包>:覆盖触发器等待者
--check-supported检查运行的dpkg是否支持触发器返回值为0则支持触发器
--help显示帮助信息
--admindir=<目录>设置dpkg数据库所在的目录
--no-act仅用于测试不执行任何操作
--by-package=<软件包>:覆盖触发器等待者
```
### 参数
触发器名:指定触发器名称
触发器名:指定触发器名称

@ -3,21 +3,21 @@
## 说明
```info
-i安装软件包
-r删除软件包
-P删除软件包的同时删除其配置文件
-L显示于软件包关联的文件
-l显示已安装软件包列表
--unpack解开软件包
-c显示软件包内文件列表
--confiugre配置软件包
-i安装软件包
-r删除软件包
-P删除软件包的同时删除其配置文件
-L显示于软件包关联的文件
-l显示已安装软件包列表
--unpack解开软件包
-c显示软件包内文件列表
--confiugre配置软件包
```
### 参数
Deb软件包指定要操作的.deb软件包
Deb软件包指定要操作的.deb软件包
### 实例
## 实例
```
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n | 显示所有在deb发布版上安装的包并以KB包大小为序

@ -5,9 +5,9 @@ dris
## 说明
**dris命令** 用于显示和清空目录堆栈中的内容
**dris命令** 用于显示和清空目录堆栈中的内容
### 语法
## 选项
```
dris(选项)
@ -16,9 +16,9 @@ dris(选项)
```
+n显示从左边算起第n笔的目录
-n显示从右边算起第n笔的目录
-l显示目录完整的记录
+n显示从左边算起第n笔的目录
-n显示从右边算起第n笔的目录
-l显示目录完整的记录
```

@ -2,7 +2,7 @@
## 说明
**dstat命令** 是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具是一个全能系统信息统计工具。与sysstat相比dstat拥有一个彩色的界面在手动观察性能状况时数据比较显眼容易观察而且dstat支持即时刷新譬如输入`dstat 3`即每三秒收集一次但最新的数据都会每秒刷新显示。和sysstat相同的是dstat也可以收集指定的性能资源譬如`dstat -c`即显示CPU的使用情况
**dstat命令** 是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具是一个全能系统信息统计工具。与sysstat相比dstat拥有一个彩色的界面在手动观察性能状况时数据比较显眼容易观察而且dstat支持即时刷新譬如输入`dstat 3`即每三秒收集一次但最新的数据都会每秒刷新显示。和sysstat相同的是dstat也可以收集指定的性能资源譬如`dstat -c`即显示CPU的使用情况
### 下载安装
@ -23,9 +23,9 @@ rpm -ivh dstat-0.6.7-1.rh7.rf.noarch.rpm
### 使用说明
安装完后就可以使用了dstat非常强大可以实时的监控cpu、磁盘、网络、IO、内存等使用情况
安装完后就可以使用了dstat非常强大可以实时的监控cpu、磁盘、网络、IO、内存等使用情况
直接使用dstat默认使用的是`-cdngy`参数分别显示cpu、disk、net、page、system信息默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔如`dstat 5`是没5s显示一条`dstat 5 10`表示没5s显示一条一共显示10条
直接使用dstat默认使用的是`-cdngy`参数分别显示cpu、disk、net、page、system信息默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔如`dstat 5`是没5s显示一条`dstat 5 10`表示没5s显示一条一共显示10条
```
[root@iZ23uulau1tZ ~]# dstat
@ -41,12 +41,12 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw
下面对显示出来的部分信息作一些说明:
1. cpuhiq、siq分别为硬中断和软中断次数
2. systemint、csw分别为系统的中断次数interrupt和上下文切换context switch
1. cpuhiq、siq分别为硬中断和软中断次数
2. systemint、csw分别为系统的中断次数interrupt和上下文切换context switch
其他的都很好理解
其他的都很好理解
### 语法
## 选项
```
dstat [-afv] [options..] [delay [count]]
@ -55,30 +55,30 @@ dstat [-afv] [options..] [delay [count]]
### 常用选项
```
-c显示CPU系统占用用户占用空闲等待中断软件中断等信息
-C当有多个CPU时候此参数可按需分别显示cpu状态-C 0,1 是显示cpu0和cpu1的信息
-d显示磁盘读写数据大小
-D hda,totalinclude hda and total
-n显示网络状态
-N eth1,total有多块网卡时指定要显示的网卡
-l显示系统负载情况
-m显示内存使用情况
-g显示页面使用情况
-p显示进程状态
-s显示交换分区使用情况
-S类似D/N
-rI/O请求情况
-y系统状态
--ipc显示ipc消息队列信号等信息
--socket用来显示tcp udp端口状态
-a此为默认选项等同于-cdngy
-v等同于 -pmgdsc -D total
--output 文件此选项也比较有用可以把状态信息以csv的格式重定向到指定的文件中以便日后查看。例dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中
-c显示CPU系统占用用户占用空闲等待中断软件中断等信息
-C当有多个CPU时候此参数可按需分别显示cpu状态-C 0,1 是显示cpu0和cpu1的信息
-d显示磁盘读写数据大小
-D hda,totalinclude hda and total
-n显示网络状态
-N eth1,total有多块网卡时指定要显示的网卡
-l显示系统负载情况
-m显示内存使用情况
-g显示页面使用情况
-p显示进程状态
-s显示交换分区使用情况
-S类似D/N
-rI/O请求情况
-y系统状态
--ipc显示ipc消息队列信号等信息
--socket用来显示tcp udp端口状态
-a此为默认选项等同于-cdngy
-v等同于 -pmgdsc -D total
--output 文件此选项也比较有用可以把状态信息以csv的格式重定向到指定的文件中以便日后查看。例dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中
```
当然dstat还有很多更高级的用法常用的基本这些选项更高级的用法可以结合man文档
当然dstat还有很多更高级的用法常用的基本这些选项更高级的用法可以结合man文档
### 实例
## 实例
如想监控swapprocesssocketsfilesystem并显示监控的时间
@ -108,11 +108,11 @@ dstat [-afv] [options..] [delay [count]]
26-07 09:25:36| 0 0 | 0 0 0|104 8 5 0 0| 736 6494
```
这样生成的csv文件可以用excel打开然后生成图表
这样生成的csv文件可以用excel打开然后生成图表
通过`dstat --list`可以查看dstat能使用的所有参数其中上面internal是dstat本身自带的一些监控参数下面`/usr/share/dstat`中是dstat的插件这些插件可以扩展dstat的功能如可以监控电源battery、mysql等
通过`dstat --list`可以查看dstat能使用的所有参数其中上面internal是dstat本身自带的一些监控参数下面`/usr/share/dstat`中是dstat的插件这些插件可以扩展dstat的功能如可以监控电源battery、mysql等
下面这些插件并不是都可以直接使用的有的还依赖其他包如想监控mysql必须要装python连接mysql的一些包
下面这些插件并不是都可以直接使用的有的还依赖其他包如想监控mysql必须要装python连接mysql的一些包
```
[root@iZ23uulau1tZ ~]# dstat --list

@ -7,21 +7,21 @@
## 选项
```markdown
-a或-all 显示目录中个别文件的大小
-b或-bytes 显示目录或文件大小时以byte为单位
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-k或--kilobytes 以KB(1024bytes)为单位输出
-m或--megabytes 以MB为单位输出
-s或--summarize 仅显示总计,只列出最后加总的值
-h或--human-readable 以KMG为单位提高信息的可读性
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件
--exclude=<目录或文件> 略过指定的目录或文件
-D或--dereference-args 显示指定符号链接的源文件大小
-H或--si 与-h参数相同但是KMG是以1000为换算单位
-l或--count-links 重复计算硬件链接的文件
-a或-all 显示目录中个别文件的大小
-b或-bytes 显示目录或文件大小时以byte为单位
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-k或--kilobytes 以KB(1024bytes)为单位输出
-m或--megabytes 以MB为单位输出
-s或--summarize 仅显示总计,只列出最后加总的值
-h或--human-readable 以KMG为单位提高信息的可读性
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件
--exclude=<目录或文件> 略过指定的目录或文件
-D或--dereference-args 显示指定符号链接的源文件大小
-H或--si 与-h参数相同但是KMG是以1000为换算单位
-l或--count-links 重复计算硬件链接的文件
```
## 实例

@ -5,9 +5,9 @@ dump
## 说明
**dump命令** 用于备份ext2或者ext3文件系统。可将目录或整个文件系统备份至指定的设备或备份成一个大文件
**dump命令** 用于备份ext2或者ext3文件系统。可将目录或整个文件系统备份至指定的设备或备份成一个大文件
### 语法
## 选项
```
dump(选项)(参数)
@ -16,26 +16,26 @@ dump(选项)(参数)
```
-0123456789备份的层级
-b<区块大小>指定区块的大小单位为KB
-B<区块数目>:指定备份卷册的区块数目
-c修改备份磁带预设的密度与容量
-d<密度>设置磁带的密度。单位为BPI
-f<设备名称>:指定备份设备
-h<层级>当备份层级等于或大于指定的层级时将不备份用户标示为“nodump”的文件
-n当备份工作需要管理员介入时向所有“operator”群组中的使用者发出通知
-s<磁带长度>:备份磁带的长度,单位为英尺
-T<日期>:指定备份的时间与日期
-u备份完毕后在/etc/dumpdates中记录备份的文件系统、层级、日期与时间等
-w与-W类似但仅显示需要备份的文件
-W显示需要备份的文件及其最后一次备份的层级、时间与日期
-0123456789备份的层级
-b<区块大小>指定区块的大小单位为KB
-B<区块数目>:指定备份卷册的区块数目
-c修改备份磁带预设的密度与容量
-d<密度>设置磁带的密度。单位为BPI
-f<设备名称>:指定备份设备
-h<层级>当备份层级等于或大于指定的层级时将不备份用户标示为“nodump”的文件
-n当备份工作需要管理员介入时向所有“operator”群组中的使用者发出通知
-s<磁带长度>:备份磁带的长度,单位为英尺
-T<日期>:指定备份的时间与日期
-u备份完毕后在/etc/dumpdates中记录备份的文件系统、层级、日期与时间等
-w与-W类似但仅显示需要备份的文件
-W显示需要备份的文件及其最后一次备份的层级、时间与日期
```
### 参数
备份源:指定要备份的文件、目录或者文件系统
备份源:指定要备份的文件、目录或者文件系统
### 实例
## 实例
将`/home`目录所有内容备份到`/tmp/homeback.bak`文件中,备份层级为`0`并在`/etc/dumpdates`中记录相关信息:
@ -49,6 +49,6 @@ dump(选项)(参数)
dump -1u -f /tmp/homeback.bak /home
```
通过dump命令的备份层级可实现完整+增量备份、完整+差异备份在配合crontab可以实现无人值守备份
通过dump命令的备份层级可实现完整+增量备份、完整+差异备份在配合crontab可以实现无人值守备份

@ -5,19 +5,19 @@ e2fsck(单用户模式执行)
## 说明
**e2fsck命令** 用于检查第二扩展文件系统的完整性,通过适当的选项可以尝试修复出现的错误
**e2fsck命令** 用于检查第二扩展文件系统的完整性,通过适当的选项可以尝试修复出现的错误
e2fsck执行后的传回值及代表意义如下
* 0 没有任何错误发生
* 1 文件系统发生错误,并且已经修正
* 2 文件系统发生错误,并且已经修正
* 4 文件系统发生错误,但没有修正
* 8 运作时发生错误
* 16 使用的语法发生错误
* 128 共享的函数库发生错误
* 0 没有任何错误发生
* 1 文件系统发生错误,并且已经修正
* 2 文件系统发生错误,并且已经修正
* 4 文件系统发生错误,但没有修正
* 8 运作时发生错误
* 16 使用的语法发生错误
* 128 共享的函数库发生错误
### 语法
## 选项
```
e2fsck(选项)(参数)
@ -26,32 +26,32 @@ e2fsck(选项)(参数)
```
-a不询问使用者意见便自动修复文件系统
-b<superblock>指定superblock而不使用预设的superblock
-B<区块大小>:指定区块的大小,单位为字节
-c一并执行badblocks以标示损坏的区块
-C将检查过程的信息完整记录在file descriptor中使得整个检查过程都能完整监控
-d显示排错信息
-f即使文件系统没有错误迹象仍强制地检查正确性
-F执行前先清除设备的缓冲区
-l<文件>:将文件中指定的区块加到损坏区块列表
-L<文件>:先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的
-n以只读模式开启文件系统并采取非互动方式执行所有的问题对话均设置以"no"回答
-p不询问使用者意见便自动修复文件系统
-r此参数只为了兼容性而存在并无实际作用
-s如果文件系统的字节顺序不适当就交换字节顺序否则不做任何动作
-S不管文件系统的字节顺序一律交换字节顺序
-t显示时间信息
-v执行时显示详细的信息
-V显示版本信息
-y采取非互动方式执行所有的问题均设置以"yes"回答
-a不询问使用者意见便自动修复文件系统
-b<superblock>指定superblock而不使用预设的superblock
-B<区块大小>:指定区块的大小,单位为字节
-c一并执行badblocks以标示损坏的区块
-C将检查过程的信息完整记录在file descriptor中使得整个检查过程都能完整监控
-d显示排错信息
-f即使文件系统没有错误迹象仍强制地检查正确性
-F执行前先清除设备的缓冲区
-l<文件>:将文件中指定的区块加到损坏区块列表
-L<文件>:先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的
-n以只读模式开启文件系统并采取非互动方式执行所有的问题对话均设置以"no"回答
-p不询问使用者意见便自动修复文件系统
-r此参数只为了兼容性而存在并无实际作用
-s如果文件系统的字节顺序不适当就交换字节顺序否则不做任何动作
-S不管文件系统的字节顺序一律交换字节顺序
-t显示时间信息
-v执行时显示详细的信息
-V显示版本信息
-y采取非互动方式执行所有的问题均设置以"yes"回答
```
### 参数
文件系统或者分区:指定文件系统或者分区所对应的设备文件名
文件系统或者分区:指定文件系统或者分区所对应的设备文件名
### 实例
## 实例
检查`/dev/sda1`是否有问题,如发现问题便自动修复:
@ -59,6 +59,6 @@ e2fsck(选项)(参数)
e2fsck -a -y /dev/sda1
```
执行e2fsck或fsck前请先umount partition否则有机会令档案系统毁损。如果需要对根目录`/`进行检查及修复便需要进入singal user mode执行
执行e2fsck或fsck前请先umount partition否则有机会令档案系统毁损。如果需要对根目录`/`进行检查及修复便需要进入singal user mode执行

@ -9,7 +9,7 @@
```markdown
e2label device [ new-label ]
若new-label可选参数未指定则只是查看对应设备的卷标指定的卷标最多可以包含16个字符 如果new-label的长度超过16个字符
若new-label可选参数未指定则只是查看对应设备的卷标指定的卷标最多可以包含16个字符 如果new-label的长度超过16个字符
则e2label将截断它并打印一个警告信息
```

@ -8,16 +8,16 @@ ed
**ed命令** 是单行纯文本编辑器它有命令模式command mode和输入模式input mode两种工作模式。ed命令支持多个内置命令常见内置命令如下
```
A切换到输入模式在文件的最后一行之后输入新的内容
C切换到输入模式用输入的内容替换掉最后一行的内容
i切换到输入模式在当前行之前加入一个新的空行来输入内容
d用于删除最后一行文本内容
n用于显示最后一行的行号和内容
w<文件名>:一给定的文件名保存当前正在编辑的文件
q退出ed编辑器
A切换到输入模式在文件的最后一行之后输入新的内容
C切换到输入模式用输入的内容替换掉最后一行的内容
i切换到输入模式在当前行之前加入一个新的空行来输入内容
d用于删除最后一行文本内容
n用于显示最后一行的行号和内容
w<文件名>:一给定的文件名保存当前正在编辑的文件
q退出ed编辑器
```
### 语法
## 选项
```
ed(选项)(参数)
@ -26,15 +26,15 @@ ed(选项)(参数)
```
-G或——traditional提供兼容的功能
-p<字符串>指定ed在command mode的提示字符
-s---quiet或——silent不执行开启文件时的检查功能
--help显示帮助
--version显示版本信息
-G或——traditional提供兼容的功能
-p<字符串>指定ed在command mode的提示字符
-s---quiet或——silent不执行开启文件时的检查功能
--help显示帮助
--version显示版本信息
```
### 参数
文件:待编辑的文件
文件:待编辑的文件

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save