更新 markdown 排版
This commit is contained in:
parent
51b20d599b
commit
49be3806b7
|
|
@ -15,7 +15,7 @@ ab(选项)(参数)
|
|||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-A:指定连接服务器的基本的认证凭据;
|
||||
-c:指定一次向服务器发出请求数;
|
||||
-C:添加cookie;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ ack
|
|||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
```shell
|
||||
# ubuntu下要安装ack-grep,因为在debian系中,ack这个名字被其他的软件占用了。
|
||||
sudo apt-get install ack-grep
|
||||
# alpine Linux-apk软件包管理器 安装 ack
|
||||
|
|
@ -16,7 +16,7 @@ apk install ack
|
|||
|
||||
这些参数在linux上的适用频率是相当高的,尤其是你用vim做为IDE的话
|
||||
|
||||
```
|
||||
```shell
|
||||
-c(统记)/ -i(忽略大小)/ -h(不显示名称)/
|
||||
-l(只显文件名)/ -n(加行号)/ -v(显示不匹配)
|
||||
```
|
||||
|
|
@ -43,7 +43,7 @@ ack官网列出了这工具的5大卖点:
|
|||
|
||||
grep常用操作
|
||||
|
||||
```bash
|
||||
```shell
|
||||
grep -r 'hello_world' # 简单用法
|
||||
grep '^hello_world' . # 简单正则
|
||||
ls -l | grep .py # 管道用法
|
||||
|
|
@ -65,7 +65,7 @@ ack-grep -Q 'hello*'
|
|||
|
||||
对搜索结果进行处理,比如只显示一个文件的一个匹配项,或者xxx
|
||||
|
||||
```bash
|
||||
```shell
|
||||
ack-grep --line=1 # 输出所有文件第二行
|
||||
ack-grep -l 'hello' # 包含的文件名
|
||||
ack-grep -L 'print' # 非包含文件名
|
||||
|
|
@ -75,7 +75,7 @@ ack-grep -L 'print' # 非包含文件名
|
|||
|
||||
输出的结果是以什么方式展示呢,这个部分有几个参数可以练习下
|
||||
|
||||
```bash
|
||||
```shell
|
||||
ack-grep hello --pager='less -R' # 以less形式展示
|
||||
ack-grep hello --noheading # 不在头上显示文件
|
||||
ack-grep hello --nocolor # 不对匹配字符着色
|
||||
|
|
@ -84,7 +84,7 @@ ack-grep hello --nocolor # 不对匹配字符着色
|
|||
### File finding
|
||||
没错,它可以查找文件,以省去你要不断的结合find和grep的麻烦,虽然在linux的思想是一个工具做好一件事。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
ack-grep -f hello.py # 查找全匹配文件
|
||||
ack-grep -g hello.py$ # 查找正则匹配文件
|
||||
ack-grep -g hello --sort-files # 查找然后排序
|
||||
|
|
@ -94,7 +94,7 @@ ack-grep -g hello --sort-files # 查找然后排序
|
|||
|
||||
文件过滤,个人觉得这是一个很不错的功能。如果你曾经在搜索项目源码是不小心命中日志中的某个关键字的话,你会觉得这个有用。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
ack-grep --python hello # 查找所有python文件
|
||||
ack-grep -G hello.py$ hello # 查找匹配正则的文件
|
||||
```
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ alias 新的命令='原命令 -选项/参数'
|
|||
|
||||
**查看系统已经设置的别名:**
|
||||
|
||||
```bash
|
||||
```shell
|
||||
[root@localhost ~]#
|
||||
[root@localhost ~]# alias
|
||||
alias cp='cp -i'
|
||||
|
|
@ -56,16 +56,21 @@ alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-ti
|
|||
|
||||
```
|
||||
### 命令别名永久生效
|
||||
|
||||
直接在shell里设定的命令别名,在终端关闭或者系统重新启动后都会失效,如何才能永久有效呢?办法就是将别名的设置加入~/.bashrc文件,然后重新载入下文件就可以了。
|
||||
```bash
|
||||
|
||||
```shell
|
||||
$ vim ~/.bashrc
|
||||
```
|
||||
在文件最后面加入别名设置,如:alias rm=’rm -i’,保存后重新载入:
|
||||
```bash
|
||||
|
||||
```shell
|
||||
$ source ~/.bashrc
|
||||
```
|
||||
|
||||
这样就可以永久保存命令的别名了。因为修改的是当前用户目录下的.bashrc文件,所以这样的方式只对当前用户有用。如果要对所有用户都有效,修改/etc目录下的bashrc文件就可以了。在CentOS7下,这个文件是/etc/bash.bashrc。此外在CentOS7下,细看~/.bashrc文件,会发有这样一段代码:
|
||||
```bash
|
||||
|
||||
```shell
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
|
@ -78,35 +83,35 @@ fi
|
|||
alias这个命令是shell的内建命令,可以根据自己的使用习惯设置一些别名,需要注意的就是和其他命令冲突的情况。
|
||||
|
||||
|
||||
|
||||
|
||||
#### 一、 范例演示
|
||||
|
||||
在使用和维护Linux系统过程中,我们常常希望根据自己的需要来定义一些命令,那么这样的操作是不是很难呢?其实不是,系统已经为我们设置好了相关的命令,下面小编就以CentOS6.4系统为例,为大家演示如何创建自己的命令。
|
||||
|
||||
#### 二、 自定义命令简介
|
||||
|
||||
CentOS系统下的创建自定义命令其实比较简单,使用的命令就是alias,具体使用的方法就是 alias 自定义命令名=‘命令’。但是需要注意的是,在自定义之前需要查看自定义的命令名是否是系统已经使用的命令名,否则会冲突,另外一个就是定期清理不需要的自定义命令名。
|
||||
|
||||
|
||||
#### 三、 演示举例
|
||||
|
||||
假定系统操作员希望进行如下操作:
|
||||
|
||||
1.进入目录/root
|
||||
2.查看目录下文件
|
||||
3.切换回根目录
|
||||
|
||||
通常这需要三条命令 cd /root;ls;cd / ,如果需要经常使用那么我们可以通过自定义命令的方式用一条命令完成全部操作。
|
||||

|
||||
|
||||
#### 四、 操作过程
|
||||
|
||||
|
||||
首先使用命令 type 自定义命令名 ,查看自定义命令名是否被系统占用。从图中可以看出test命令名已被系统占用,所以不能使用,而loo这个命令名经查询可以使用。
|
||||

|
||||
|
||||
使用命令alias创建自定义命令:alias loo='cd /root;ls;cd /' 。需要注意的是命令的使用格式,分号与分号之间是没有空格的。
|
||||

|
||||
|
||||
测试一下自定义命令,当输入命令 loo 时,发现系统依次完成了 cd /root、ls、cd / 三条命令,说明设置成功。同时也可直接使用命令 alias 查询系统中是否添加了loo这个自定义命令。
|
||||

|
||||
|
||||
如果希望删除这个自定义命令,可以使用命令 unalias 自定义命令名 来完成。执行之后发现,loo命令已不存在,同时自定义命令库中也没有loo命令。
|
||||

|
||||
|
||||
|
||||
<!-- Linux命令行搜索引擎:https://jaywcjlove.github.io/linux-command/ -->
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ Alpine Linux 下的包管理工具
|
|||
|
||||
## 使用实例
|
||||
|
||||
```bash
|
||||
```shell
|
||||
apk install xxx
|
||||
apk search xxx # 支持正则
|
||||
apk info xxx # 查看包的详细信息
|
||||
|
|
@ -18,7 +18,7 @@ apk del openssh openntp vim
|
|||
|
||||
upgrade命令升级系统已安装的所以软件包(一般包括内核),当然也可指定仅升级部分软件包(通过-u或–upgrade选择指定)。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
apk update # 更新最新本地镜像源
|
||||
apk upgrade # 升级软件
|
||||
apk add --upgrade busybox # 指定升级部分软件包
|
||||
|
|
@ -26,7 +26,7 @@ apk add --upgrade busybox # 指定升级部分软件包
|
|||
|
||||
### 搜索
|
||||
|
||||
```bash
|
||||
```shell
|
||||
apk search # 查找所以可用软件包
|
||||
apk search -v # 查找所以可用软件包及其描述内容
|
||||
apk search -v 'acf*' # 通过软件包名称查找软件包
|
||||
|
|
@ -37,7 +37,7 @@ apk search -v -d 'docker' # 通过描述文件查找特定的软件包
|
|||
|
||||
info命令用于显示软件包的信息。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
apk info # 列出所有已安装的软件包
|
||||
apk info -a zlib # 显示完整的软件包信息
|
||||
apk info --who-owns /sbin/lbu # 显示指定文件属于的包
|
||||
|
|
@ -47,7 +47,7 @@ apk info --who-owns /sbin/lbu # 显示指定文件属于的包
|
|||
|
||||
还是蛮喜欢 alpine 的,简单纯粹
|
||||
|
||||
```bash
|
||||
```shell
|
||||
apk add iproute2 # ss vs netstat
|
||||
ss -ptl
|
||||
apk add drill # drill vs nslookup&dig
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ apropos
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
apropos [-dalhvV] -e|-[w|-r] [-s section] [-m system[,...]] [-M path] [-L locale] -C [file] keyword ...
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-d, --debug:输出调试信息。
|
||||
-v, --verbose:输出详细的警告信息。
|
||||
-r, -- regex:将每个keyword作为正则表达式解释。这是默认行为。每个keyword将匹配手册页和描述。
|
||||
|
|
@ -40,7 +40,7 @@ apropos [-dalhvV] -e|-[w|-r] [-s section] [-m system[,...]] [-M path] [-L locale
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# man -k who
|
||||
at.allow [at] (5) - determine who can submit jobs via at or batch
|
||||
at.deny [at] (5) - determine who can submit jobs via at or batch
|
||||
|
|
@ -66,7 +66,7 @@ whoami (1) - print effective userid
|
|||
|
||||
查找手册页名字和描述中包含emacs和vi的手册页:
|
||||
|
||||
```
|
||||
```shell
|
||||
apropos -a emacs vi
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ Debian Linux发行版中的APT软件包管理工具
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-c:指定配置文件。
|
||||
```
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ apt-get(选项)(参数)
|
|||
|
||||
使用apt-get命令的第一步就是引入必需的软件库,Debian的软件库也就是所有Debian软件包的集合,它们存在互联网上的一些公共站点上。把它们的地址加入,apt-get就能搜索到我们想要的软件。/etc/apt/sources.list是存放这些地址列表的配置文件,其格式如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
deb web或[ftp地址] [发行版名字] main/contrib/non-[free]
|
||||
```
|
||||
|
||||
|
|
@ -36,55 +36,55 @@ deb web或[ftp地址] [发行版名字] main/contrib/non-[free]
|
|||
|
||||
在修改`/etc/apt/sources.list`或者`/etc/apt/preferences`之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get update
|
||||
```
|
||||
|
||||
安装一个新软件包:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get install packagename
|
||||
```
|
||||
|
||||
卸载一个已安装的软件包(保留配置文件):
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get remove packagename
|
||||
```
|
||||
|
||||
卸载一个已安装的软件包(删除配置文件):
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get –purge remove packagename
|
||||
```
|
||||
|
||||
会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get autoclean apt
|
||||
```
|
||||
|
||||
这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get clean
|
||||
```
|
||||
|
||||
更新所有已安装的软件包:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get upgrade
|
||||
```
|
||||
|
||||
将系统升级到新版本:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get dist-upgrade
|
||||
```
|
||||
|
||||
定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,您可以释放大量的磁盘空间。如果您的需求十分迫切,可以使用`apt-get clean`以释放更多空间。这个命令会将已安装软件包裹的.deb文件一并删除。大多数情况下您不会再用到这些.debs文件,因此如果您为磁盘空间不足 而感到焦头烂额,这个办法也许值得一试:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get autoclean
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ apt-key
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-key(参数)
|
||||
```
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ apt-key(参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-key list # 列出已保存在系统中key。
|
||||
apt-key add keyname # 把下载的key添加到本地trusted数据库中。
|
||||
apt-key del keyname # 从本地trusted数据库删除key。
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ Debian Linux下对软件包索引文件进行排序的工具
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-sortpkgs(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-s:使用源索引字段排序;
|
||||
-h:显示帮助信息。
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ Debian Linux系统中软件包管理工具
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
aptitude(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-h:显示帮助信息;
|
||||
-d:仅下载软件包,不执行安装操作;
|
||||
-P:每一步操作都要求确认;
|
||||
|
|
@ -32,7 +32,7 @@ aptitude(选项)(参数)
|
|||
|
||||
以下是我总结的一些常用aptitude命令,仅供参考:
|
||||
|
||||
```
|
||||
```shell
|
||||
aptitude update # 更新可用的包列表
|
||||
aptitude upgrade # 升级可用的包
|
||||
aptitude dist-upgrade # 将系统升级到新的发行版
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Usage: ar [emulation options] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin <name>]
|
|||
### 选项
|
||||
|
||||
|
||||
```
|
||||
```shell
|
||||
d - 从归档文件中删除文件
|
||||
m[ab] - 在归档文件中移动文件
|
||||
p - 打印在归档文件中找到的文件
|
||||
|
|
@ -50,7 +50,7 @@ x[o] - 从归档文件中分解文件
|
|||
|
||||
选项参数
|
||||
|
||||
```
|
||||
```shell
|
||||
--plugin <p> - load the specified plugin
|
||||
```
|
||||
|
||||
|
|
@ -60,12 +60,12 @@ ar:支持的目标: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pe
|
|||
|
||||
打包文件
|
||||
|
||||
```
|
||||
[root@localhost ~]# ls //显示当前目录文件
|
||||
```shell
|
||||
[root@localhost ~]# ls # 显示当前目录文件
|
||||
a.c b.c d.c install.log qte
|
||||
anaconda-ks.cfg c.c Desktop
|
||||
|
||||
[root@localhost ~]# ar rv one.bak a.c b.c //打包 a.c b.c文件
|
||||
[root@localhost ~]# ar rv one.bak a.c b.c # 打包 a.c b.c文件
|
||||
ar: 正在创建 one.bak
|
||||
a - a.c
|
||||
a - b.c
|
||||
|
|
@ -73,7 +73,7 @@ a - b.c
|
|||
|
||||
打包多个文件
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# ar rv two.bak *.c // 打包以.c结尾的文件
|
||||
ar: 正在创建 two.bak
|
||||
a - a.c
|
||||
|
|
@ -84,7 +84,7 @@ a - d.c
|
|||
|
||||
显示打包文件的内容
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# ar t two.bak
|
||||
a.c
|
||||
b.c
|
||||
|
|
@ -94,7 +94,7 @@ d.c
|
|||
|
||||
删除打包文件的成员文件
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# ar d two.bak a.c b.c c.c
|
||||
[root@localhost ~]# ar t two.bak
|
||||
d.c
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ arch
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
arch
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
arch
|
||||
x86_64
|
||||
```
|
||||
|
|
|
|||
|
|
@ -5,17 +5,17 @@ arj
|
|||
|
||||
## 补充说明
|
||||
|
||||
**arj命令** 是“.arj”格式的压缩文件的管理器,用于创建和管理“.arj”压缩包。
|
||||
**arj命令** 是 `.arj` 格式的压缩文件的管理器,用于创建和管理 `.arj` 压缩包。
|
||||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
arj(参数)
|
||||
```
|
||||
|
||||
### 参数
|
||||
|
||||
* 操作指令:对“.arj”压缩包执行的操作指令;
|
||||
* 操作指令:对 `.arj` 压缩包执行的操作指令;
|
||||
* 压缩包名称:指定要操作的arj压缩包名称。
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ arpd
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
arpd(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-l:将arp数据库输出到标准输出设备显示并退出;
|
||||
-f:指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似;
|
||||
-b:指定arpd数据库文件,默认的位置为“/var/lib/arpd.db”;
|
||||
|
|
@ -32,13 +32,13 @@ arpd(选项)(参数)
|
|||
|
||||
启动arpd进程:
|
||||
|
||||
```
|
||||
```shell
|
||||
arpd -b /var/tmp/arpd.db
|
||||
```
|
||||
|
||||
运行一段时间后,查看结果:
|
||||
|
||||
```
|
||||
```shell
|
||||
arpd -l -b /var/tmp/arpd.db
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ arping
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
arping(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-b:用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址。
|
||||
-q:quiet output不显示任何信息;
|
||||
-f:表示在收到第一个响应报文后就退出;
|
||||
|
|
@ -31,7 +31,7 @@ arping(选项)(参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[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
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ arptables
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
arptables(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-A:向规则链中追加规则;
|
||||
-D:从指定的链中删除规则;
|
||||
-l:向规则链中插入一条新的规则;
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ arpwatch
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
arpwatch(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-d:启动排错模式;
|
||||
-f<记录文件>:设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat;
|
||||
-i<接口>:指定监听ARP的接口,预设的接口为eth0;
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ as
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
as(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-ac:忽略失败条件;
|
||||
-ad:忽略调试指令;
|
||||
-ah:包括高级源;
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ at
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
at(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-f:指定包含具体指令的任务文件;
|
||||
-q:指定新任务的队列名称;
|
||||
-l:显示待执行任务的列表;
|
||||
|
|
@ -33,7 +33,7 @@ at(选项)(参数)
|
|||
|
||||
三天后的下午 5 点锺执行`/bin/ls`:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# at 5pm+3 days
|
||||
at> /bin/ls
|
||||
at> <EOT>
|
||||
|
|
@ -42,7 +42,7 @@ job 7 at 2013-01-08 17:00
|
|||
|
||||
明天17点钟,输出时间到指定文件内:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# at 17:20 tomorrow
|
||||
at> date >/root/2013.log
|
||||
at> <EOT>
|
||||
|
|
@ -51,7 +51,7 @@ job 8 at 2013-01-06 17:20
|
|||
|
||||
计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# atq
|
||||
8 2013-01-06 17:20 a root
|
||||
7 2013-01-08 17:00 a root
|
||||
|
|
@ -59,7 +59,7 @@ job 8 at 2013-01-06 17:20
|
|||
|
||||
删除已经设置的任务:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# atq
|
||||
8 2013-01-06 17:20 a root
|
||||
7 2013-01-08 17:00 a root
|
||||
|
|
@ -71,7 +71,7 @@ job 8 at 2013-01-06 17:20
|
|||
|
||||
显示已经设置的任务内容:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# at -c 8
|
||||
#!/bin/sh
|
||||
# atrun uid=0 gid=0
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ atop
|
|||
|
||||
## 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
atop(选项)(参数)
|
||||
```
|
||||
|
||||
|
|
@ -83,13 +83,13 @@ swin、swout字段:换入和换出内存页数
|
|||
|
||||
其实atop开发者已经提供了以上日志保存方式,相应的atop.daily脚本可以在源码目录下找到。在atop.daily脚本中,我们可以通过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);通过修改以下命令中的数值改变日志保存天数(默认为28天):
|
||||
|
||||
```
|
||||
```shell
|
||||
(sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )&
|
||||
```
|
||||
|
||||
最后,我们修改cron文件,每天凌晨执行atop.daily脚本:
|
||||
|
||||
```
|
||||
```shell
|
||||
0 0 * * * root /etc/cron.daily/atop.daily
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,20 +9,20 @@ atq
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
atq(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-V:显示版本号;
|
||||
-q:查询指定队列的任务。
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
at now + 10 minutes
|
||||
at> echo 1111
|
||||
at> <eot>
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ atrm
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
atrm(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-V:显示版本号。
|
||||
```
|
||||
|
||||
|
|
@ -27,12 +27,12 @@ atrm(选项)(参数)
|
|||
|
||||
删除已经排队的任务
|
||||
|
||||
```
|
||||
atq //显示当前已经设置的任务
|
||||
```shell
|
||||
atq # 显示当前已经设置的任务
|
||||
2 Mon May 17 08:00:00 2010 a root
|
||||
1 Sat May 15 17:00:00 2010 a root
|
||||
|
||||
atrm 2 //删除任务2
|
||||
atrm 2 # 删除任务2
|
||||
```
|
||||
|
||||
|
||||
|
|
|
|||
152
command/awk.md
152
command/awk.md
|
|
@ -11,17 +11,17 @@ awk
|
|||
|
||||
**语法形式**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk [options] 'script' var=value file(s)
|
||||
awk [options] -f scriptfile var=value file(s)
|
||||
```
|
||||
|
||||
**常用命令选项**
|
||||
|
||||
* **-F fs ** fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
|
||||
* **-v var=value ** 赋值一个用户定义变量,将外部变量传递给awk
|
||||
* **-f scripfile ** 从脚本文件中读取awk命令
|
||||
* **-m[fr] val ** 对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
|
||||
* **-F fs** fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
|
||||
* **-v var=value** 赋值一个用户定义变量,将外部变量传递给awk
|
||||
* **-f scripfile** 从脚本文件中读取awk命令
|
||||
* **-m[fr] val** 对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
|
||||
|
||||
## awk模式和操作
|
||||
|
||||
|
|
@ -47,20 +47,20 @@ awk脚本是由模式和操作组成的。
|
|||
|
||||
## awk脚本基本结构
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
|
||||
```
|
||||
|
||||
一个awk脚本通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。任意一个部分都可以不出现在脚本中,脚本通常是被 **单引号** 或 **双引号** 中,例如:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{ i=0 } { i++ } END{ print i }' filename
|
||||
awk "BEGIN{ i=0 } { i++ } END{ print i }" filename
|
||||
```
|
||||
|
||||
### awk的工作原理
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
|
||||
```
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
|
|||
|
||||
**示例**
|
||||
|
||||
```
|
||||
```shell
|
||||
echo -e "A line 1nA line 2" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'
|
||||
Start
|
||||
A line 1
|
||||
|
|
@ -86,14 +86,14 @@ End
|
|||
|
||||
当使用不带参数的`print`时,它就打印当前行,当`print`的参数是以逗号进行分隔时,打印时则以空格作为定界符。在awk的print语句块中双引号是被当作拼接符使用,例如:
|
||||
|
||||
```
|
||||
```shell
|
||||
echo | awk '{ var1="v1"; var2="v2"; var3="v3"; print var1,var2,var3; }'
|
||||
v1 v2 v3
|
||||
```
|
||||
|
||||
双引号拼接使用:
|
||||
|
||||
```
|
||||
```shell
|
||||
echo | awk '{ var1="v1"; var2="v2"; var3="v3"; print var1"="var2"="var3; }'
|
||||
v1=v2=v3
|
||||
```
|
||||
|
|
@ -104,7 +104,7 @@ v1=v2=v3
|
|||
|
||||
说明:[A][N][P][G]表示第一个支持变量的工具,[A]=awk、[N]=nawk、[P]=POSIXawk、[G]=gawk
|
||||
|
||||
```
|
||||
```shell
|
||||
**$n** 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
|
||||
**$0** 这个变量包含执行过程中当前行的文本内容。
|
||||
[N] **ARGC** 命令行参数的数目。
|
||||
|
|
@ -131,7 +131,7 @@ v1=v2=v3
|
|||
|
||||
**示例**
|
||||
|
||||
```
|
||||
```shell
|
||||
echo -e "line1 f2 f3\nline2 f4 f5\nline3 f6 f7" | awk '{print "Line No:"NR", No of fields:"NF, "$0="$0, "$1="$1, "$2="$2, "$3="$3}'
|
||||
Line No:1, No of fields:3 $0=line1 f2 f3 $1=line1 $2=f2 $3=f3
|
||||
Line No:2, No of fields:3 $0=line2 f4 f5 $1=line2 $2=f4 $3=f5
|
||||
|
|
@ -140,13 +140,13 @@ Line No:3, No of fields:3 $0=line3 f6 f7 $1=line3 $2=f6 $3=f7
|
|||
|
||||
使用`print $NF`可以打印出一行中的最后一个字段,使用`$(NF-1)`则是打印倒数第二个字段,其他以此类推:
|
||||
|
||||
```
|
||||
```shell
|
||||
echo -e "line1 f2 f3n line2 f4 f5" | awk '{print $NF}'
|
||||
f3
|
||||
f5
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
echo -e "line1 f2 f3n line2 f4 f5" | awk '{print $(NF-1)}'
|
||||
f2
|
||||
f4
|
||||
|
|
@ -155,13 +155,13 @@ f4
|
|||
|
||||
打印每一行的第二和第三个字段:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk '{ print $2,$3 }' filename
|
||||
```
|
||||
|
||||
统计文件中的行数:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'END{ print NR }' filename
|
||||
```
|
||||
|
||||
|
|
@ -169,7 +169,7 @@ awk 'END{ print NR }' filename
|
|||
|
||||
一个每一行中第一个字段值累加的例子:
|
||||
|
||||
```
|
||||
```shell
|
||||
seq 5 | awk 'BEGIN{ sum=0; print "总和:" } { print $1"+"; sum+=$1 } END{ print "等于"; print sum }'
|
||||
总和:
|
||||
1+
|
||||
|
|
@ -185,14 +185,14 @@ seq 5 | awk 'BEGIN{ sum=0; print "总和:" } { print $1"+"; sum+=$1 } END{ pri
|
|||
|
||||
借助 **`-v`选项** ,可以将外部值(并非来自stdin)传递给awk:
|
||||
|
||||
```
|
||||
```shell
|
||||
VAR=10000
|
||||
echo | awk -v VARIABLE=$VAR '{ print VARIABLE }'
|
||||
```
|
||||
|
||||
另一种传递外部变量方法:
|
||||
|
||||
```
|
||||
```shell
|
||||
var1="aaa"
|
||||
var2="bbb"
|
||||
echo | awk '{ print v1,v2 }' v1=$var1 v2=$var2
|
||||
|
|
@ -200,7 +200,7 @@ echo | awk '{ print v1,v2 }' v1=$var1 v2=$var2
|
|||
|
||||
当输入来自于文件时使用:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk '{ print v1,v2 }' v1=$var1 v2=$var2 filename
|
||||
```
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ awk '{ print v1,v2 }' v1=$var1 v2=$var2 filename
|
|||
|
||||
## 查找进程pid
|
||||
|
||||
```
|
||||
```shell
|
||||
netstat -antup | grep 7770 | awk '{ print $NF NR}' | awk '{ print $1}'
|
||||
```
|
||||
|
||||
|
|
@ -228,7 +228,7 @@ netstat -antup | grep 7770 | awk '{ print $NF NR}' | awk '{ print $1}'
|
|||
|
||||
例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{a="b";print a++,++a;}'
|
||||
0 2
|
||||
```
|
||||
|
|
@ -243,7 +243,7 @@ awk 'BEGIN{a="b";print a++,++a;}'
|
|||
|
||||
例:
|
||||
|
||||
```
|
||||
```shell
|
||||
a+=5; 等价于:a=a+5; 其它同类
|
||||
```
|
||||
|
||||
|
|
@ -256,7 +256,7 @@ a+=5; 等价于:a=a+5; 其它同类
|
|||
|
||||
例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{a=1;b=2;print (a>5 && b<=2),(a>5 || b<=2);}'
|
||||
0 1
|
||||
```
|
||||
|
|
@ -269,7 +269,7 @@ awk 'BEGIN{a=1;b=2;print (a>5 && b<=2),(a>5 || b<=2);}'
|
|||
|
||||
例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "ok";}}'
|
||||
ok
|
||||
```
|
||||
|
|
@ -282,7 +282,7 @@ ok
|
|||
|
||||
例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{a=11;if(a >= 9){print "ok";}}'
|
||||
ok
|
||||
```
|
||||
|
|
@ -300,12 +300,12 @@ ok
|
|||
|
||||
例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{a="b";print a=="b"?"ok":"err";}'
|
||||
ok
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{a="b";arr[0]="b";arr[1]="c";print (a in arr);}'
|
||||
0
|
||||
```
|
||||
|
|
@ -326,7 +326,7 @@ awk 'BEGIN{a="b";arr[0]="b";arr["b"]="c";print (a in arr);}'
|
|||
|
||||
awk中`next`语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。next语句一般用于多行合并:
|
||||
|
||||
```
|
||||
```shell
|
||||
cat text.txt
|
||||
a
|
||||
b
|
||||
|
|
@ -343,7 +343,7 @@ awk 'NR%2==1{next}{print NR,$0;}' text.txt
|
|||
|
||||
分析发现需要将包含有“web”行进行跳过,然后需要将内容与下面行合并为一行:
|
||||
|
||||
```
|
||||
```shell
|
||||
cat text.txt
|
||||
web01[192.168.2.100]
|
||||
httpd ok
|
||||
|
|
@ -381,19 +381,19 @@ awk getline从整体上来说,用法说明:
|
|||
|
||||
执行linux的`date`命令,并通过管道输出给`getline`,然后再把输出赋值给自定义变量out,并打印它:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{ "date" | getline out; print out }' test
|
||||
```
|
||||
|
||||
执行shell的date命令,并通过管道输出给getline,然后getline从管道中读取并将输入赋值给out,split函数把变量out转化成数组mon,然后打印数组mon的第二个元素:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{ "date" | getline out; split(out,mon); print mon[2] }' test
|
||||
```
|
||||
|
||||
命令ls的输出传递给geline作为输入,循环使getline从ls的输出中读取一行,并把它打印到屏幕。这里没有输入文件,因为BEGIN块在打开输入文件前执行,所以可以忽略输入文件。
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{ while( "ls" | getline) print }'
|
||||
```
|
||||
|
||||
|
|
@ -401,7 +401,7 @@ awk 'BEGIN{ while( "ls" | getline) print }'
|
|||
|
||||
awk中允许在程序中关闭一个输入或输出文件,方法是使用awk的close语句。
|
||||
|
||||
```
|
||||
```shell
|
||||
close("filename")
|
||||
```
|
||||
|
||||
|
|
@ -411,9 +411,9 @@ filename可以是getline打开的文件,也可以是stdin,包含文件名的
|
|||
|
||||
awk中允许用如下方式将结果输出到一个文件:
|
||||
|
||||
```
|
||||
```shell
|
||||
echo | awk '{printf("hello word!n") > "datafile"}'
|
||||
或
|
||||
# 或
|
||||
echo | awk '{printf("hello word!n") >> "datafile"}'
|
||||
```
|
||||
|
||||
|
|
@ -421,9 +421,9 @@ echo | awk '{printf("hello word!n") >> "datafile"}'
|
|||
|
||||
默认的字段定界符是空格,可以使用`-F "定界符"` 明确指定一个定界符:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk -F: '{ print $NF }' /etc/passwd
|
||||
或
|
||||
# 或
|
||||
awk 'BEGIN{ FS=":" } { print $NF }' /etc/passwd
|
||||
```
|
||||
|
||||
|
|
@ -435,7 +435,7 @@ awk 'BEGIN{ FS=":" } { print $NF }' /etc/passwd
|
|||
|
||||
### 条件判断语句
|
||||
|
||||
```
|
||||
```shell
|
||||
if(表达式)
|
||||
语句1
|
||||
else
|
||||
|
|
@ -444,7 +444,7 @@ else
|
|||
|
||||
格式中语句1可以是多个语句,为了方便判断和阅读,最好将多个语句用{}括起来。awk分枝结构允许嵌套,其格式为:
|
||||
|
||||
```
|
||||
```shell
|
||||
if(表达式)
|
||||
{语句1}
|
||||
else if(表达式)
|
||||
|
|
@ -455,7 +455,7 @@ else
|
|||
|
||||
示例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{
|
||||
test=100;
|
||||
if(test>90){
|
||||
|
|
@ -478,14 +478,14 @@ very good
|
|||
|
||||
#### while语句
|
||||
|
||||
```
|
||||
```shell
|
||||
while(表达式)
|
||||
{语句}
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{
|
||||
test=100;
|
||||
total=0;
|
||||
|
|
@ -504,14 +504,14 @@ for循环有两种格式:
|
|||
|
||||
格式1:
|
||||
|
||||
```
|
||||
```shell
|
||||
for(变量 in 数组)
|
||||
{语句}
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{
|
||||
for(k in ENVIRON){
|
||||
print k"="ENVIRON[k];
|
||||
|
|
@ -532,14 +532,14 @@ SSH_CLIENT=192.168.1.21 53087 22
|
|||
|
||||
格式2:
|
||||
|
||||
```
|
||||
```shell
|
||||
for(变量;条件;表达式)
|
||||
{语句}
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{
|
||||
total=0;
|
||||
for(i=0;i<=100;i++){
|
||||
|
|
@ -552,14 +552,14 @@ print total;
|
|||
|
||||
#### do循环
|
||||
|
||||
```
|
||||
```shell
|
||||
do
|
||||
{语句} while(条件)
|
||||
```
|
||||
|
||||
例子:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{
|
||||
total=0;
|
||||
i=0;
|
||||
|
|
@ -584,14 +584,14 @@ do {total+=i;i++;} while(i<=100)
|
|||
|
||||
数字做数组索引(下标):
|
||||
|
||||
```
|
||||
```shell
|
||||
Array[1]="sun"
|
||||
Array[2]="kai"
|
||||
```
|
||||
|
||||
字符串做数组索引(下标):
|
||||
|
||||
```
|
||||
```shell
|
||||
Array["first"]="www"
|
||||
Array"[last"]="name"
|
||||
Array["birth"]="1987"
|
||||
|
|
@ -601,7 +601,7 @@ Array["birth"]="1987"
|
|||
|
||||
**读取数组的值**
|
||||
|
||||
```
|
||||
```shell
|
||||
{ for(item in array) {print array[item]}; } #输出的顺序是随机的
|
||||
{ for(i=1;i<=len;i++) {print array[i]}; } #Len是数组的长度
|
||||
```
|
||||
|
|
@ -610,14 +610,14 @@ Array["birth"]="1987"
|
|||
|
||||
**得到数组长度:**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{info="it is a test";lens=split(info,tA," ");print length(tA),lens;}'
|
||||
4 4
|
||||
```
|
||||
|
||||
length返回字符串以及数组长度,split进行分割字符串为数组,也会返回分割得到数组长度。
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{info="it is a test";split(info,tA," ");print asort(tA);}'
|
||||
4
|
||||
```
|
||||
|
|
@ -626,7 +626,7 @@ asort对数组进行排序,返回数组长度。
|
|||
|
||||
**输出数组内容(无序,有序输出):**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{info="it is a test";split(info,tA," ");for(k in tA){print k,tA[k];}}'
|
||||
4 test
|
||||
1 it
|
||||
|
|
@ -636,7 +636,7 @@ awk 'BEGIN{info="it is a test";split(info,tA," ");for(k in tA){print k,tA[k];}}'
|
|||
|
||||
`for…in`输出,因为数组是关联数组,默认是无序的。所以通过`for…in`得到是无序的数组。如果需要得到有序数组,需要通过下标获得。
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{info="it is a test";tlen=split(info,tA," ");for(k=1;k<=tlen;k++){print k,tA[k];}}'
|
||||
1 it
|
||||
2 is
|
||||
|
|
@ -648,7 +648,7 @@ awk 'BEGIN{info="it is a test";tlen=split(info,tA," ");for(k=1;k<=tlen;k++){prin
|
|||
|
||||
**判断键值存在以及删除键值:**
|
||||
|
||||
```
|
||||
```shell
|
||||
# 错误的判断方法:
|
||||
awk 'BEGIN{tB["a"]="a1";tB["b"]="b1";if(tB["c"]!="1"){print "no found";};for(k in tB){print k,tB[k];}}'
|
||||
no found
|
||||
|
|
@ -659,7 +659,7 @@ c
|
|||
|
||||
以上出现奇怪问题,`tB[“c”]`没有定义,但是循环时候,发现已经存在该键值,它的值为空,这里需要注意,awk数组是关联数组,只要通过数组引用它的key,就会自动创建改序列。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
# 正确判断方法:
|
||||
awk 'BEGIN{tB["a"]="a1";tB["b"]="b1";if( "c" in tB){print "ok";};for(k in tB){print k,tB[k];}}'
|
||||
a a1
|
||||
|
|
@ -668,7 +668,7 @@ b b1
|
|||
|
||||
`if(key in array)`通过这种方法判断数组中是否包含`key`键值。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
#删除键值:
|
||||
awk 'BEGIN{tB["a"]="a1";tB["b"]="b1";delete tB["a"];for(k in tB){print k,tB[k];}}'
|
||||
b b1
|
||||
|
|
@ -682,7 +682,7 @@ awk的多维数组在本质上是一维数组,更确切一点,awk在存储
|
|||
|
||||
类似一维数组的成员测试,多维数组可以使用`if ( (i,j) in array)`这样的语法,但是下标必须放置在圆括号中。类似一维数组的循环访问,多维数组使用`for ( item in array )`这样的语法遍历数组。与一维数组不同的是,多维数组必须使用`split()`函数来访问单独的下标分量。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
awk 'BEGIN{
|
||||
for(i=1;i<=9;i++){
|
||||
for(j=1;j<=9;j++){
|
||||
|
|
@ -707,7 +707,7 @@ for(i=1;i<=9;i++){
|
|||
|
||||
另一种方法:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
awk 'BEGIN{
|
||||
for(i=1;i<=9;i++){
|
||||
for(j=1;j<=9;j++){
|
||||
|
|
@ -741,7 +741,7 @@ awk内置函数,主要分以下3种类似:算数函数、字符串函数、
|
|||
|
||||
举例说明:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{OFMT="%.3f";fs=sin(1);fe=exp(10);fl=log(10);fi=int(3.1415);print fs,fe,fl,fi;}'
|
||||
0.841 22026.466 2.303 3
|
||||
|
||||
|
|
@ -751,7 +751,7 @@ OFMT 设置输出数据格式是保留3位小数。
|
|||
|
||||
获得随机数:
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{srand();fr=int(100*rand());print fr;}'
|
||||
78
|
||||
awk 'BEGIN{srand();fr=int(100*rand());print fr;}'
|
||||
|
|
@ -781,7 +781,7 @@ awk 'BEGIN{srand();fr=int(100*rand());print fr;}'
|
|||
|
||||
**gsub,sub使用**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{info="this is a test2010test!";gsub(/[0-9]+/,"!",info);print info}'
|
||||
this is a test!test!
|
||||
```
|
||||
|
|
@ -790,7 +790,7 @@ this is a test!test!
|
|||
|
||||
**查找字符串(index使用)**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{info="this is a test2010test!";print index(info,"test")?"ok":"no found";}'
|
||||
ok
|
||||
```
|
||||
|
|
@ -806,7 +806,7 @@ ok
|
|||
|
||||
**截取字符串(substr使用)**
|
||||
|
||||
```
|
||||
```shell
|
||||
[wangsl@centos5 ~]$ awk 'BEGIN{info="this is a test2010test!";print substr(info,4,10);}'
|
||||
s is a tes
|
||||
```
|
||||
|
|
@ -815,7 +815,7 @@ s is a tes
|
|||
|
||||
**字符串分割(split使用)**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{info="this is a test";split(info,tA," ");print length(tA);for(k in tA){print k,tA[k];}}'
|
||||
4
|
||||
4 test
|
||||
|
|
@ -841,7 +841,7 @@ awk 'BEGIN{info="this is a test";split(info,tA," ");print length(tA);for(k in tA
|
|||
| %o | 无符号以八进制表示的整数 | %g | 自动选择合适的表示法 |
|
||||
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{n1=124.113;n2=-1.224;n3=1.2345; printf("%.2f,%.2u,%.2g,%X,%on",n1,n2,n3,n1,n1);}'
|
||||
124.11,18446744073709551615,1.2,7C,174
|
||||
```
|
||||
|
|
@ -858,7 +858,7 @@ awk 'BEGIN{n1=124.113;n2=-1.224;n3=1.2345; printf("%.2f,%.2u,%.2g,%X,%on",n1,n2,
|
|||
|
||||
**打开外部文件(close用法)**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{while("cat /etc/passwd"|getline){print $0;};close("/etc/passwd");}'
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
bin:x:1:1:bin:/bin:/sbin/nologin
|
||||
|
|
@ -867,14 +867,14 @@ daemon:x:2:2:daemon:/sbin:/sbin/nologin
|
|||
|
||||
**逐行读取外部文件(getline使用方法)**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{while(getline < "/etc/passwd"){print $0;};close("/etc/passwd");}'
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
bin:x:1:1:bin:/bin:/sbin/nologin
|
||||
daemon:x:2:2:daemon:/sbin:/sbin/nologin
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{print "Enter your name:";getline name;print name;}'
|
||||
Enter your name:
|
||||
chengmo
|
||||
|
|
@ -883,7 +883,7 @@ chengmo
|
|||
|
||||
**调用外部应用程序(system使用方法)**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{b=system("ls -al");print b;}'
|
||||
total 42092
|
||||
drwxr-xr-x 14 chengmo chengmo 4096 09-30 17:47 .
|
||||
|
|
@ -903,19 +903,19 @@ b返回值,是执行结果。
|
|||
|
||||
**建指定时间(mktime使用)**
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{tstamp=mktime("2001 01 01 12 12 12");print strftime("%c",tstamp);}'
|
||||
2001年01月01日 星期一 12时12分12秒
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{tstamp1=mktime("2001 01 01 12 12 12");tstamp2=mktime("2001 02 01 0 0 0");print tstamp2-tstamp1;}'
|
||||
2634468
|
||||
```
|
||||
|
||||
求2个时间段中间时间差,介绍了strftime使用方法
|
||||
|
||||
```
|
||||
```shell
|
||||
awk 'BEGIN{tstamp1=mktime("2001 01 01 12 12 12");tstamp2=systime();print tstamp2-tstamp1;}'
|
||||
308201392
|
||||
```
|
||||
|
|
|
|||
|
|
@ -15,52 +15,52 @@ CentOS安装Axel:
|
|||
|
||||
32位CentOS执行下面命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.i386.rpm
|
||||
rpm -ivh axel-2.4-1.el5.rf.i386.rpm
|
||||
```
|
||||
|
||||
64位CentOS执行下面命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.x86_64.rpm
|
||||
rpm -ivh axel-2.4-1.el5.rf.x86_64.rpm
|
||||
```
|
||||
|
||||
Debian/Ubuntu安装Axel:
|
||||
|
||||
```
|
||||
```shell
|
||||
apt-get install axel
|
||||
```
|
||||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
axel [options] url1 [url2] [url...]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
--max-speed=x , -s x 最高速度x
|
||||
--num-connections=x , -n x 连接数x
|
||||
--output=f , -o f 下载为本地文件f
|
||||
--search[=x] , -S [x] 搜索镜像
|
||||
--header=x , -H x 添加头文件字符串x(指定 HTTP header)
|
||||
--user-agent=x , -U x 设置用户代理(指定 HTTP user agent)
|
||||
--no-proxy , -N 不使用代理服务器
|
||||
--quiet , -q 静默模式
|
||||
--verbose ,-v 更多状态信息
|
||||
--alternate , -a Alternate progress indicator
|
||||
--help ,-h 帮助
|
||||
--version ,-V 版本信息
|
||||
```shell
|
||||
--max-speed=x , -s x # 最高速度x
|
||||
--num-connections=x , -n x # 连接数x
|
||||
--output=f , -o f # 下载为本地文件f
|
||||
--search[=x] , -S [x] # 搜索镜像
|
||||
--header=x , -H x # 添加头文件字符串x(指定 HTTP header)
|
||||
--user-agent=x , -U x # 设置用户代理(指定 HTTP user agent)
|
||||
--no-proxy , -N # 不使用代理服务器
|
||||
--quiet , -q # 静默模式
|
||||
--verbose ,-v # 更多状态信息
|
||||
--alternate , -a # Alternate progress indicator
|
||||
--help ,-h # 帮助
|
||||
--version ,-V # 版本信息
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
如下载lnmp安装包指定10个线程,存到/tmp/:
|
||||
如下载lnmp安装包指定10个线程,存到 `/tmp/`:
|
||||
|
||||
```
|
||||
```shell
|
||||
axel -n 10 -o /tmp/ http://www.jsdig.com/lnmp.tar.gz
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ badblocks
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
badblock(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-b<区块大小>:指定磁盘的区块大小,单位为字节;
|
||||
-o<输出文件>:将检查的结果写入指定的输出文件;
|
||||
-s:在检查时显示进度;
|
||||
|
|
@ -33,13 +33,13 @@ badblock(选项)(参数)
|
|||
|
||||
badblocks以 4096 的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里。
|
||||
|
||||
```
|
||||
```shell
|
||||
badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list
|
||||
```
|
||||
|
||||
hda-badblocks-list是个文本文件,内容如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
cat hda-badblocks-list
|
||||
51249
|
||||
51250
|
||||
|
|
@ -53,7 +53,7 @@ cat hda-badblocks-list
|
|||
|
||||
可以针对可疑的区块多做几次操作。下面,badblocks以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束。
|
||||
|
||||
```
|
||||
```shell
|
||||
badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000
|
||||
```
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ fsck.ext3 -l /tmp/hda-badblock-list.final /dev/hda1
|
|||
|
||||
badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:
|
||||
|
||||
```
|
||||
```shell
|
||||
mkfs.ext3 -c /dev/hda1
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ basename
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
basename(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
--help:显示帮助;
|
||||
--version:显示版本号。
|
||||
```
|
||||
|
|
@ -29,7 +29,7 @@ basename(选项)(参数)
|
|||
|
||||
1、要显示一个shell变量的基本名称,请输入:
|
||||
|
||||
```
|
||||
```shell
|
||||
basename $WORKFILE
|
||||
```
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ basename $WORKFILE
|
|||
|
||||
要构造一个和另一个文件名称相同(除了后缀)的文件名称,请输入:
|
||||
|
||||
```
|
||||
```shell
|
||||
OFILE=`basename $1 .c`.o
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ batch
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
batch(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-f:指定包含具体指令的任务文件;
|
||||
-q:指定新任务的队列名称;
|
||||
-m:任务执行完后向用户发送E-mail。
|
||||
|
|
@ -27,7 +27,7 @@ batch(选项)(参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
batch
|
||||
at> echo 1234
|
||||
at> <EOT>
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ bc
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bc(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-i:强制进入交互式模式;
|
||||
-l:定义使用的标准数学库;
|
||||
-w:对POSIX bc的扩展给出警告信息;
|
||||
|
|
@ -32,7 +32,7 @@ bc(选项)(参数)
|
|||
|
||||
算术操作高级运算bc命令它可以执行浮点运算和一些高级函数:
|
||||
|
||||
```
|
||||
```shell
|
||||
echo "1.212*3" | bc
|
||||
3.636
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ echo "1.212*3" | bc
|
|||
|
||||
设定小数精度(数值范围)
|
||||
|
||||
```
|
||||
```shell
|
||||
echo "scale=2;3/8" | bc
|
||||
0.37
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ echo "scale=2;3/8" | bc
|
|||
|
||||
进制转换
|
||||
|
||||
```
|
||||
```shell
|
||||
#!/bin/bash
|
||||
abc=192
|
||||
echo "obase=2;$abc" | bc
|
||||
|
|
@ -59,7 +59,7 @@ echo "obase=2;$abc" | bc
|
|||
|
||||
执行结果为:11000000,这是用bc将十进制转换成二进制。
|
||||
|
||||
```
|
||||
```shell
|
||||
#!/bin/bash
|
||||
abc=11000000
|
||||
echo "obase=10;ibase=2;$abc" | bc
|
||||
|
|
@ -70,7 +70,7 @@ echo "obase=10;ibase=2;$abc" | bc
|
|||
|
||||
计算平方和平方根:
|
||||
|
||||
```
|
||||
```shell
|
||||
echo "10^10" | bc
|
||||
echo "sqrt(100)" | bc
|
||||
```
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ bg
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bg(参数)
|
||||
```
|
||||
|
||||
|
|
@ -23,7 +23,7 @@ bg(参数)
|
|||
|
||||
使用bg命令将任务号为1的任务放到后台继续执行,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
bg 1 # 后台执行任务号为1的任务
|
||||
```
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ bg 1 #后台执行任务号为1的任务
|
|||
|
||||
注意:实际上,使用bg命令与在指令后面添加符号"&"的效果是一样的。例如,使用`&`将`find / -name password`放到后台执行,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
find / -name password & # 后台执行任务
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ bind
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bind(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-d:显示按键配置的内容;
|
||||
-f<按键配置文件>:载入指定的按键配置文件;
|
||||
-l:列出所有的功能;
|
||||
|
|
@ -26,13 +26,13 @@ bind(选项)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
bind -x '"\C-l":ls -l' #直接按 CTRL+L 就列出目录
|
||||
```
|
||||
|
||||
其中keyseq可以使用`showkey -a`命令来获取:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# showkey -a
|
||||
|
||||
Press any keys - Ctrl-D will terminate this program
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ blkid
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
blkid -L | -U
|
||||
blkid [-c ] [-ghlLv] [-o] [-s ][-t ] -[w ] [ ...]
|
||||
blkid -p [-s ] [-O ] [-S ][-o] ...
|
||||
|
|
@ -18,77 +18,77 @@ blkid -i [-s ] [-o] ...
|
|||
|
||||
### 选项
|
||||
|
||||
```
|
||||
-c <file> 指定cache文件(default: /etc/blkid.tab, /dev/null = none)
|
||||
-d don't encode non-printing characters
|
||||
-h 显示帮助信息
|
||||
-g garbage collect the blkid cache
|
||||
-o <format> 指定输出格式
|
||||
-k list all known filesystems/RAIDs and exit
|
||||
-s <tag> 显示指定信息,默认显示所有信息
|
||||
-t <token> find device with a specific token (NAME=value pair)
|
||||
-l look up only first device with token specified by -t
|
||||
-L <label> convert LABEL to device name
|
||||
-U <uuid> convert UUID to device name
|
||||
-v 显示版本信息
|
||||
-w <file> write cache to different file (/dev/null = no write)
|
||||
<dev> specify device(s) to probe (default: all devices)
|
||||
```shell
|
||||
-c <file> # 指定cache文件(default: /etc/blkid.tab, /dev/null = none)
|
||||
-d # don't encode non-printing characters
|
||||
-h # 显示帮助信息
|
||||
-g # garbage collect the blkid cache
|
||||
-o <format> # 指定输出格式
|
||||
-k # list all known filesystems/RAIDs and exit
|
||||
-s <tag> # 显示指定信息,默认显示所有信息
|
||||
-t <token> # find device with a specific token (NAME=value pair)
|
||||
-l # look up only first device with token specified by -t
|
||||
-L <label> # convert LABEL to device name
|
||||
-U <uuid> # convert UUID to device name
|
||||
-v # 显示版本信息
|
||||
-w <file> # write cache to different file (/dev/null = no write)
|
||||
<dev> # specify device(s) to probe (default: all devices)
|
||||
Low-level probing options:
|
||||
-p low-level superblocks probing (bypass cache)
|
||||
-i gather information about I/O limits
|
||||
-S <size> overwrite device size
|
||||
-O <offset> probe at the given offset
|
||||
-u <list> filter by "usage" (e.g. -u filesystem,raid)
|
||||
-n <list> filter by filesystem type (e.g. -n vfat,ext3)
|
||||
-p # low-level superblocks probing (bypass cache)
|
||||
-i # gather information about I/O limits
|
||||
-S <size> # overwrite device size
|
||||
-O <offset> # probe at the given offset
|
||||
-u <list> # filter by "usage" (e.g. -u filesystem,raid)
|
||||
-n <list> # filter by filesystem type (e.g. -n vfat,ext3)
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
1、列出当前系统中所有已挂载文件系统的类型:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid
|
||||
```
|
||||
|
||||
2、显示指定设备 UUID:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid -s UUID /dev/sda5
|
||||
```
|
||||
|
||||
3、显示所有设备 UUID:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid -s UUID
|
||||
```
|
||||
|
||||
4、显示指定设备 LABEL:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid -s LABEL /dev/sda5
|
||||
```
|
||||
|
||||
5、显示所有设备 LABEL:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid -s LABEL
|
||||
```
|
||||
|
||||
6、显示所有设备文件系统:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid -s TYPE
|
||||
```
|
||||
|
||||
7、显示所有设备:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid -o device
|
||||
```
|
||||
|
||||
8、以列表方式查看详细信息:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo blkid -o list
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ blockdev
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
blockdev(选项)(参数)
|
||||
```
|
||||
|
||||
选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-V:打印版本号并退出;
|
||||
-q:安静模式;
|
||||
-v:详细信息模式;
|
||||
|
|
@ -35,19 +35,19 @@ blockdev(选项)(参数)
|
|||
|
||||
设置设备为只读:
|
||||
|
||||
```
|
||||
```shell
|
||||
blockdev --setro /dev/hda4
|
||||
```
|
||||
|
||||
读取设备是否为只读:
|
||||
|
||||
```
|
||||
```shell
|
||||
blockdev --getro /dev/hda4
|
||||
```
|
||||
|
||||
设置设别为可读写:
|
||||
|
||||
```
|
||||
```shell
|
||||
blockdev --setrw /dev/hda4
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ bmodinfo
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bmodinfo(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-a:显示模块作者;
|
||||
-d:显示模块的描述信息;
|
||||
-l:显示模块的许可信息;
|
||||
|
|
@ -32,7 +32,7 @@ bmodinfo(选项)(参数)
|
|||
|
||||
显示sg模块的信息:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# modinfo sg
|
||||
filename: /lib/modules/2.6.9-42.ELsmp/kernel/drivers/scsi/sg.ko
|
||||
author: Douglas Gilbert
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ builtin
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
builtin(参数)
|
||||
```
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ shell内部命令:指定需要执行的shell内部命令。
|
|||
|
||||
使用builtin命令执行shell内部命alias显示命令别名,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
builtin alias # 执行shell内部指令
|
||||
alias cp='cp -i'
|
||||
alias l.='ls -d .* --color=tty'
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ bunzip2
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bunzip2(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-f或--force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
|
||||
-k或——keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
|
||||
-s或——small:降低程序执行时,内存的使用量;
|
||||
|
|
@ -31,7 +31,7 @@ bunzip2(选项)(参数)
|
|||
|
||||
将`/opt`目录下的etc.zip、var.zip和backup.zip进行压缩,设置压缩率为最高,同时在压缩完毕后不删除原始文件,显示压缩过程的详细信息。
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -9vk /opt/etc.zip /opt/var.zip /opt/backup.zip
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@ bye
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bye
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
bye
|
||||
```
|
||||
|
|
@ -9,7 +9,7 @@ bzcat
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzcat(参数)
|
||||
```
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ bzcat(参数)
|
|||
|
||||
将`/tmp/man.config`以bzip2格式压缩:
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -z man.config
|
||||
```
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ bzip2 -z man.config
|
|||
|
||||
将上面的压缩文件内容读出来:
|
||||
|
||||
```
|
||||
```shell
|
||||
bzcat man.config.bz2
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ bzcmp
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzcmp(参数)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ bzdiff
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzdiff(参数)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ bzgrep
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzgrep(参数)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ bzip2
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-c或——stdout:将压缩与解压缩的结果送到标准输出;
|
||||
-d或——decompress:执行解压缩;
|
||||
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
|
||||
|
|
@ -38,7 +38,7 @@ bzip2(选项)(参数)
|
|||
|
||||
**压缩指定文件filename:**
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 filename
|
||||
或
|
||||
bzip2 -z filename
|
||||
|
|
@ -48,7 +48,7 @@ bzip2 -z filename
|
|||
|
||||
**解压指定的文件filename.bz2:**
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -d filename.bz2
|
||||
或
|
||||
bunzip2 filename.bz2
|
||||
|
|
@ -58,13 +58,13 @@ bunzip2 filename.bz2
|
|||
|
||||
**压缩解压的时候将结果也输出:**
|
||||
|
||||
```
|
||||
```shell
|
||||
$bzip2 -v filename
|
||||
```
|
||||
|
||||
输入之后,输出如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
filename: 0.119:1, 67.200 bits/byte, -740.00% saved, 5 in, 42 out.
|
||||
```
|
||||
|
||||
|
|
@ -72,13 +72,13 @@ filename: 0.119:1, 67.200 bits/byte, -740.00% saved, 5 in, 42 out.
|
|||
|
||||
**模拟解压实际并不解压:**
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -tv filename.bz2
|
||||
```
|
||||
|
||||
输入之后,输出如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
filename.bz2: ok
|
||||
```
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ filename.bz2: ok
|
|||
|
||||
**压缩解压的时候,除了生成结果文件,将原来的文件也保存:**
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -k filename
|
||||
```
|
||||
|
||||
|
|
@ -94,13 +94,13 @@ bzip2 -k filename
|
|||
|
||||
**解压到标准输出:**
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -dc filename.bz2
|
||||
```
|
||||
|
||||
输入之后,输出如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
hahahhaahahha
|
||||
```
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ hahahhaahahha
|
|||
|
||||
**压缩到标准输出:**
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -c filename
|
||||
bzip2: I won't write compressed data to a terminal.
|
||||
bzip2: For help, type: `bzip2 --help'.
|
||||
|
|
@ -118,7 +118,7 @@ bzip2: For help, type: `bzip2 --help'.
|
|||
|
||||
**使用bzip2的时候将所有后面的看作文件(即使文件名以'-'开头):**
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2 -- -myfilename
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzip2recover(参数)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ bzless
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzless(参数)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ bzmore
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
bzmore(参数)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cal
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cal(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-l:显示单月输出;
|
||||
-3:显示临近三个月的日历;
|
||||
-s:将星期日作为月的第一天;
|
||||
|
|
@ -26,7 +26,7 @@ cal(选项)(参数)
|
|||
|
||||
### 参数
|
||||
|
||||
```
|
||||
```shell
|
||||
月:指定月份;
|
||||
年:指定年份。
|
||||
```
|
||||
|
|
@ -35,7 +35,7 @@ cal(选项)(参数)
|
|||
|
||||
单独执行cal命令会打印出日历:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# cal
|
||||
十二月 2013
|
||||
日 一 二 三 四 五 六
|
||||
|
|
@ -46,7 +46,7 @@ cal(选项)(参数)
|
|||
29 30 31
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# cal -j
|
||||
十二月 2013
|
||||
日 一 二 三 四 五 六
|
||||
|
|
@ -57,7 +57,7 @@ cal(选项)(参数)
|
|||
363 364 365
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# cal -3
|
||||
十一月 2013 十二月 2013 一月 2014
|
||||
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cancel
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cancel(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-a:取消所有打印任务;
|
||||
-E:当连接到服务器时强制使用加密;
|
||||
-U:指定连接服务器时使用的用户名;
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ cat
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cat(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-n或--number:从1开始对所有输出的行数编号;
|
||||
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
|
||||
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
|
||||
|
|
@ -34,7 +34,7 @@ cat(选项)(参数)
|
|||
|
||||
设m1和m2是当前目录下的两个文件
|
||||
|
||||
```
|
||||
```shell
|
||||
cat m1 (在屏幕上显示文件m1的内容)
|
||||
cat m1 m2 (同时显示文件m1和m2的内容)
|
||||
cat m1 m2 > file (将文件m1和m2合并后放入文件file中)
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cd
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cd (选项) (参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
|
||||
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
|
||||
- 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。
|
||||
|
|
@ -23,13 +23,13 @@ cd (选项) (参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
cd 进入用户主目录;
|
||||
cd ~ 进入用户主目录;
|
||||
cd - 返回进入此目录之前所在的目录;
|
||||
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
|
||||
cd ../.. 返回上两级目录;
|
||||
cd !$ 把上个命令的参数作为cd参数使用。
|
||||
```shell
|
||||
cd # 进入用户主目录;
|
||||
cd ~ # 进入用户主目录;
|
||||
cd - # 返回进入此目录之前所在的目录;
|
||||
cd .. # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
|
||||
cd ../.. # 返回上两级目录;
|
||||
cd !$ # 把上个命令的参数作为cd参数使用。
|
||||
```
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ Linux系统下光盘刻录功能命令
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cdrecord(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-v:显示刻录光盘的详细过程;
|
||||
-eject:刻录完成后弹出光盘;
|
||||
speed=<刻录倍速>:指定光盘刻录的倍速;
|
||||
|
|
@ -31,7 +31,7 @@ ISO文件:指定刻录光盘使用的ISO映像文件。
|
|||
|
||||
查看系统所有 CD-R(w) 设备:
|
||||
|
||||
```
|
||||
```shell
|
||||
cdrecord -scanbus
|
||||
scsibus0:
|
||||
0,0,0 0) *
|
||||
|
|
@ -42,7 +42,7 @@ scsibus0:
|
|||
|
||||
用iso文件刻录一张光盘:
|
||||
|
||||
```
|
||||
```shell
|
||||
cdrecord -v -eject speed=4 dev=0,3,0 backup.iso
|
||||
```
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ cdrecord -v -eject speed=4 dev=0,3,0 backup.iso
|
|||
|
||||
擦写光驱:
|
||||
|
||||
```
|
||||
```shell
|
||||
cdrecord --dev=0,3,0 --blank=fast
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ chage
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chage [选项] 用户名
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
|
||||
-M:密码保持有效的最大天数。
|
||||
-w:用户密码到期前,提前收到警告信息的天数。
|
||||
|
|
@ -29,7 +29,7 @@ chage [选项] 用户名
|
|||
|
||||
可以编辑`/etc/login.defs`来设定几个参数,以后设置口令默认就按照参数设定为准:
|
||||
|
||||
```
|
||||
```shell
|
||||
PASS_MAX_DAYS 99999
|
||||
PASS_MIN_DAYS 0
|
||||
PASS_MIN_LEN 5
|
||||
|
|
@ -38,7 +38,7 @@ PASS_WARN_AGE 7
|
|||
|
||||
当然在`/etc/default/useradd`可以找到如下2个参数进行设置:
|
||||
|
||||
```
|
||||
```shell
|
||||
# useradd defaults file
|
||||
GROUP=100
|
||||
HOME=/home
|
||||
|
|
@ -53,7 +53,7 @@ CREATE_MAIL_SPOOL=yes
|
|||
|
||||
我的服务器root帐户密码策略信息如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@linuxde ~]# chage -l root
|
||||
最近一次密码修改时间 : 3月 12, 2013
|
||||
密码过期时间 :从不
|
||||
|
|
@ -66,7 +66,7 @@ CREATE_MAIL_SPOOL=yes
|
|||
|
||||
我可以通过如下命令修改我的密码过期时间:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@linuxde ~]# chage -M 60 root
|
||||
[root@linuxde ~]# chage -l root
|
||||
最近一次密码修改时间 : 3月 12, 2013
|
||||
|
|
@ -80,7 +80,7 @@ CREATE_MAIL_SPOOL=yes
|
|||
|
||||
然后通过如下命令设置密码失效时间:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@linuxde ~]# chage -I 5 root
|
||||
[root@linuxde ~]# chage -l root
|
||||
最近一次密码修改时间 : 3月 12, 2013
|
||||
|
|
|
|||
|
|
@ -7,7 +7,15 @@ chattr
|
|||
|
||||
**chattr命令** 用来改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
|
||||
|
||||
### 语法
|
||||
|
||||
```shell
|
||||
chattr(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```shell
|
||||
a:让文件或目录仅供附加用途;
|
||||
b:不更新文件或目录的最后存取时间;
|
||||
c:将文件或目录压缩后存放;
|
||||
|
|
@ -18,15 +26,7 @@ S:即时更新文件或目录;
|
|||
u:预防意外删除。
|
||||
```
|
||||
|
||||
### 语法
|
||||
|
||||
```
|
||||
chattr(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-R:递归处理,将指令目录下的所有文件及子目录一并处理;
|
||||
-v<版本编号>:设置文件或目录版本;
|
||||
-V:显示指令执行过程;
|
||||
|
|
@ -39,7 +39,7 @@ chattr(选项)
|
|||
|
||||
用chattr命令防止系统中某个关键文件被修改:
|
||||
|
||||
```
|
||||
```shell
|
||||
chattr +i /etc/fstab
|
||||
```
|
||||
|
||||
|
|
@ -47,7 +47,7 @@ chattr +i /etc/fstab
|
|||
|
||||
让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:
|
||||
|
||||
```
|
||||
```shell
|
||||
chattr +a /data1/user_act.log
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ chcon
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chcon [选项]... 环境 文件...
|
||||
chcon [选项]... [-u 用户] [-r 角色] [-l 范围] [-t 类型] 文件...
|
||||
chcon [选项]... --reference=参考文件 文件...
|
||||
|
|
@ -17,7 +17,7 @@ chcon [选项]... --reference=参考文件 文件...
|
|||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-h, --no-dereference:影响符号连接而非引用的文件。
|
||||
--reference=参考文件:使用指定参考文件的安全环境,而非指定值。
|
||||
-R, --recursive:递归处理所有的文件及子目录。
|
||||
|
|
@ -30,7 +30,7 @@ chcon [选项]... --reference=参考文件 文件...
|
|||
|
||||
以下选项是在指定了`-R`选项时被用于设置如何穿越目录结构体系。如果您指定了多于一个选项,那么只有最后一个会生效。
|
||||
|
||||
```
|
||||
```shell
|
||||
-H:如果命令行参数是一个通到目录的符号链接,则遍历符号链接。
|
||||
-L:遍历每一个遇到的通到目录的符号链接。
|
||||
-P:不遍历任何符号链接(默认)。
|
||||
|
|
@ -42,32 +42,32 @@ chcon [选项]... --reference=参考文件 文件...
|
|||
|
||||
如果你想把这个ftp共享给匿名用户的话,需要开启以下:
|
||||
|
||||
```
|
||||
```shell
|
||||
chcon -R -t public_content_t /var/ftp
|
||||
```
|
||||
|
||||
如果你想让你设置的FTP目录可以上传文件的话,SELINUX需要设置:
|
||||
|
||||
```
|
||||
```shell
|
||||
chcon -t public_content_rw_t /var/ftp/incoming
|
||||
```
|
||||
|
||||
允许用户HHTP访问其家目录,该设定限仅于用户的家目录主页:
|
||||
|
||||
```
|
||||
```shell
|
||||
setsebool -P httpd_enable_homedirs 1
|
||||
chcon -R -t httpd_sys_content_t ~user/public_html
|
||||
```
|
||||
|
||||
如果你希望将samba目录共享给其他用户,你需要设置:
|
||||
|
||||
```
|
||||
```shell
|
||||
chcon -t samba_share_t /directory
|
||||
```
|
||||
|
||||
共享rsync目录时:
|
||||
|
||||
```
|
||||
```shell
|
||||
chcon -t public_content_t /directories
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ chfn
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chfn(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-f<真实姓名>或--full-name<真实姓名>:设置真实姓名;
|
||||
-h<家中电话>或--home-phone<家中电话>:设置家中的电话号码;
|
||||
-o<办公地址>或--office<办公地址>:设置办公室的地址;
|
||||
|
|
@ -32,7 +32,7 @@ chfn(选项)(参数)
|
|||
|
||||
范例1,改变finger信息:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost Desktop]# chfn
|
||||
Changing finger information for root.
|
||||
Name [root]: jack
|
||||
|
|
@ -45,7 +45,7 @@ Finger information changed.
|
|||
|
||||
范例2,改变账号真实姓名:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost Desktop]# chfn -f jack
|
||||
Changing finger information for root.
|
||||
Finger information changed.
|
||||
|
|
@ -53,7 +53,7 @@ Finger information changed.
|
|||
|
||||
范例3:
|
||||
|
||||
```
|
||||
```shell
|
||||
shell>> chfn
|
||||
Changing finger information for user
|
||||
Password: [del]
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ chgrp
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chgrp [选项][组群][文件|目录]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-R 递归式地改变指定目录及其下的所有子目录和文件的所属的组
|
||||
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
|
||||
-f或--quiet或——silent:不显示错误信息;
|
||||
|
|
@ -39,12 +39,13 @@ chgrp [选项][组群][文件|目录]
|
|||
|
||||
将`/usr/meng`及其子目录下的所有文件的用户组改为mengxin
|
||||
|
||||
```
|
||||
```shell
|
||||
chgrp -R mengxin /usr/meng
|
||||
```
|
||||
|
||||
更改文件ah的组群所有者为newuser
|
||||
```
|
||||
更改文件ah的组群所有者为 `newuser`
|
||||
|
||||
```shell
|
||||
[root@rhel ~]# chgrp newuser ah
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ chkconfig
|
|||
|
||||
### 语法
|
||||
|
||||
```bash
|
||||
```shell
|
||||
chkconfig(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```bash
|
||||
```shell
|
||||
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
|
||||
--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
|
||||
--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。
|
||||
|
|
@ -48,7 +48,7 @@ chkconfig(选项)
|
|||
|
||||
例如random.init包含三行:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
# chkconfig: 2345 20 80
|
||||
# description: Saves and restores system entropy pool for \
|
||||
# higher quality random number generation.
|
||||
|
|
@ -56,7 +56,7 @@ chkconfig(选项)
|
|||
|
||||
### 实例
|
||||
|
||||
```bash
|
||||
```shell
|
||||
chkconfig --list #列出所有的系统服务。
|
||||
chkconfig --add httpd #增加httpd服务。
|
||||
chkconfig --del httpd #删除httpd服务。
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ chmod(选项)(参数)
|
|||
|
||||
### 选项
|
||||
|
||||
```bash
|
||||
```shell
|
||||
u # 操作对象简称,用户user,文件或目录的所有者。
|
||||
g # 操作对象简称,同组用户group,文件或目录所属群组
|
||||
o # 操作对象简称,其它用户others
|
||||
|
|
@ -65,7 +65,7 @@ Linux用 户分为:拥有者、组群(Group)、其他(other),Linux系统
|
|||
|
||||
linux文件的用户权限的分析图
|
||||
|
||||
```bash
|
||||
```shell
|
||||
-rw-r--r-- 1 user staff 651 Oct 12 12:53 .gitmodules
|
||||
# ↑╰┬╯╰┬╯╰┬╯
|
||||
# ┆ ┆ ┆ ╰┈ 0 其他人
|
||||
|
|
@ -80,7 +80,7 @@ r=读取属性 //值=4
|
|||
w=写入属性 //值=2
|
||||
x=执行属性 //值=1
|
||||
|
||||
```bash
|
||||
```shell
|
||||
chmod u+x,g+w f01 # 为文件f01设置自己可以执行,组员可以写入的权限
|
||||
chmod u=rwx,g=rw,o=r f01
|
||||
chmod 764 f01
|
||||
|
|
@ -89,7 +89,7 @@ chmod a+x f01 # 对文件f01的u,g,o都设置可执行属性
|
|||
|
||||
文件的属主和属组属性设置
|
||||
|
||||
```bash
|
||||
```shell
|
||||
chown user:market f01 # 把文件f01给uesr,添加到market组
|
||||
ll -d f1 查看目录f1的属性
|
||||
```
|
||||
|
|
@ -99,14 +99,14 @@ ll -d f1 查看目录f1的属性
|
|||
|
||||
(1)直接指定路径修改
|
||||
|
||||
```bash
|
||||
```shell
|
||||
chmod -R 755 /home/wwwroot/*
|
||||
```
|
||||
|
||||
(2)手动进入该目录修改权限(并显示详细过程)
|
||||
|
||||
|
||||
```bash
|
||||
```shell
|
||||
cd /home/wwwroot
|
||||
chmod -Rv 755 * #注意:“*”表示通配符,指的是所有文件和文件
|
||||
sudo chmod o+rw /shared #设置文件夹权限以保证其余用户可以访问它。
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ chown
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chown(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
|
||||
-f或--quite或——silent:不显示错误信息;
|
||||
-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
|
||||
|
|
@ -38,7 +38,7 @@ chown(选项)(参数)
|
|||
|
||||
将目录`/usr/meng`及其下面的所有文件、子目录的文件主改成 liu:
|
||||
|
||||
```
|
||||
```shell
|
||||
chown -R liu /usr/meng
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ chpasswd
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chpasswd(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-e:输入的密码是加密后的密文;
|
||||
-h:显示帮助信息并退出;
|
||||
-m:当被支持的密码未被加密时,使用MD5加密代替DES加密。
|
||||
|
|
@ -25,7 +25,7 @@ chpasswd(选项)
|
|||
|
||||
先创建用户密码对应文件,格式为`username:password`,如`abc:abc123`,必须以这种格式来书写,并且不能有空行,保存成文本文件user.txt,然后执行chpasswd命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
chpasswd < user.txt
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@ chroot 的作用就是切换系统的根位置,而这个作用最为明显的
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chroot(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
--help:在线帮助;
|
||||
--version:显示版本信息。
|
||||
```
|
||||
|
|
@ -43,7 +43,7 @@ chroot(选项)(参数)
|
|||
|
||||
**将target作为根目录(运行其中的`/bin/sh`):**
|
||||
|
||||
```
|
||||
```shell
|
||||
chroot target /bin/sh
|
||||
```
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ chroot target /bin/sh
|
|||
|
||||
将target作为根目录(运行其中的`/bin/ls`):
|
||||
|
||||
```
|
||||
```shell
|
||||
chroot target /bin/ls
|
||||
```
|
||||
|
||||
|
|
@ -68,13 +68,13 @@ chroot target /bin/ls
|
|||
|
||||
准备chroot的根目录:
|
||||
|
||||
```
|
||||
```shell
|
||||
mkdir newRoot
|
||||
```
|
||||
|
||||
编译自己的程序:
|
||||
|
||||
```
|
||||
```shell
|
||||
gcc main.c
|
||||
```
|
||||
|
||||
|
|
@ -82,13 +82,13 @@ gcc main.c
|
|||
|
||||
查看程序需要的库:
|
||||
|
||||
```
|
||||
```shell
|
||||
ldd a.out
|
||||
```
|
||||
|
||||
输入之后,输出如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
linux-gate.so.1 = > (0xb8034000)
|
||||
libc.so.6 = > /lib/tls/i686/cmov/libc.so.6 (0xb7eab000)
|
||||
/lib/ld-linux.so.2 (0xb801a000)
|
||||
|
|
@ -96,7 +96,7 @@ libc.so.6 = > /lib/tls/i686/cmov/libc.so.6 (0xb7eab000)
|
|||
|
||||
将程序需要的库和程序拷贝到新根目录下:
|
||||
|
||||
```
|
||||
```shell
|
||||
cp a.out newRoot
|
||||
mkdir newRoot/lib
|
||||
cp /lib/tls/i686/cmov/libc.so.6 newRoot/lib
|
||||
|
|
@ -105,13 +105,13 @@ cp /lib/ld-linux.so.2 newRoot/lib
|
|||
|
||||
这里newRoot内容将如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
a.out lib/
|
||||
```
|
||||
|
||||
使用chroot运行自己的程序:
|
||||
|
||||
```
|
||||
```shell
|
||||
su
|
||||
chroot newRoot /a.out
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ chsh
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
chsh(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-s<shell 名称>或--shell<shell 名称>:更改系统预设的shell环境。;
|
||||
-l或--list-shells:列出目前系统可用的shell清单;
|
||||
-u或--help:在线帮助;
|
||||
|
|
@ -32,7 +32,7 @@ chsh(选项)(参数)
|
|||
|
||||
第一种:
|
||||
|
||||
```
|
||||
```shell
|
||||
[rocrocket@localhost ~]$ chsh -l
|
||||
/bin/sh
|
||||
/bin/bash
|
||||
|
|
@ -42,7 +42,7 @@ chsh(选项)(参数)
|
|||
|
||||
第二种:
|
||||
|
||||
```
|
||||
```shell
|
||||
[rocrocket@localhost ~]$ cat /etc/shells
|
||||
/bin/sh
|
||||
/bin/bash
|
||||
|
|
@ -54,7 +54,7 @@ chsh(选项)(参数)
|
|||
|
||||
**查看当前正在使用的shell:**
|
||||
|
||||
```
|
||||
```shell
|
||||
[rocrocket@localhost ~]$ echo $SHELL
|
||||
/bin/bash
|
||||
```
|
||||
|
|
@ -63,7 +63,7 @@ chsh(选项)(参数)
|
|||
|
||||
**把我的shell改成zsh:**
|
||||
|
||||
```
|
||||
```shell
|
||||
[rocrocket@localhost ~]$ chsh -s /bin/zsh
|
||||
Changing shell for rocrocket.
|
||||
Password:
|
||||
|
|
@ -73,7 +73,7 @@ Shell changed.
|
|||
|
||||
使用chsh加选项`-s`就可以修改登录的shell了!你会发现你现在执行`echo $SHELL`后仍然输出为`/bin/bash`,这是因为你需要重启你的shell才完全投入到zsh怀抱中去。`chsh -s`其实修改的就是`/etc/passwd`文件里和你的用户名相对应的那一行。现在来查看下:
|
||||
|
||||
```
|
||||
```shell
|
||||
[rocrocket@localhost ~]$ cat /etc/passwd|grep ^rocrocket
|
||||
rocrocket:x:500:500:rocrocket,China:/rocrocket/PSB/home:/bin/zsh
|
||||
```
|
||||
|
|
@ -82,7 +82,7 @@ rocrocket:x:500:500:rocrocket,China:/rocrocket/PSB/home:/bin/zsh
|
|||
|
||||
**把shell修改回/bin/bash:**
|
||||
|
||||
```
|
||||
```shell
|
||||
[rocrocket@localhost ~]$ chsh -s /bin/bash
|
||||
Changing shell for rocrocket.
|
||||
Password:
|
||||
|
|
|
|||
|
|
@ -13,13 +13,13 @@ cksum
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cksum(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
--help:在线帮助;
|
||||
--version:显示版本信息。
|
||||
```
|
||||
|
|
@ -32,13 +32,13 @@ cksum(选项)(参数)
|
|||
|
||||
使用cksum命令计算文件"testfile1"的完整性,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
cksum testfile1 #对指定文件进行CRC校验
|
||||
```
|
||||
|
||||
以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:
|
||||
|
||||
```
|
||||
```shell
|
||||
1263453430 78 testfile1 #输出信息
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ clear
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
clear
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@ clock
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
clock [--adjust][--debug][--directisa][--getepoch][--hctosys][--set --date="<日期时间>"]
|
||||
[--setepoch --epoch=< >][--show][--systohc][--test][--utc][--version]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
--adjust 第一次使用"--set"或"--systohc"参数设置硬件时钟,会在/etc目录下产生一个名称为adjtime的文件。当再次使用这两个参数调整硬件时钟,此文件便会记录两次调整间之差异,日后执行clock指令加上"--adjust"参数时,程序会自动根 据记录文件的数值差异,计算出平均值,自动调整硬件时钟的时间。
|
||||
--debug 详细显示指令执行过程,便于排错或了解程序执行的情形。
|
||||
--directisa 告诉clock指令不要通过/dev/rtc设备文件,直接对硬件时钟进行存取。这个参数适用于仅有ISA总线结构的老式电脑。
|
||||
|
|
@ -35,13 +35,13 @@ clock [--adjust][--debug][--directisa][--getepoch][--hctosys][--set --date="<日
|
|||
|
||||
获取当前的时间
|
||||
|
||||
```bash
|
||||
```shell
|
||||
clock # 获取当前的时间
|
||||
```
|
||||
|
||||
显示UTC时间
|
||||
|
||||
```bash
|
||||
```shell
|
||||
clock -utc #显示UTC时间
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@ clockdiff
|
|||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-o:使用IP时间戳选项来测量系统时间差。时间戳只用3个。
|
||||
-o1:使用IP时间戳选项来测量系统时间差。用4个时间戳。如果-o和-o1都没有设置,那么就是用ICMP时间戳来测试系统时间差。
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
lixi@lixi-desktop:~$ ping -T tsandaddr www.ustc.edu.cn -c 1
|
||||
PING www.ustc.edu.cn (202.38.64.9) 56(124) bytes of data.
|
||||
64 bytes from 202.38.64.9: icmp_seq=1 ttl=62 time=0.823 ms
|
||||
|
|
@ -33,13 +33,13 @@ rtt min/avg/max/mdev = 0.823/0.823/0.823/0.000 ms
|
|||
|
||||
首先由上面的得出在RRT不大的时候,几个ICMP时间戳的关系。本地主机和202.38.64.9之间的时间差约为:-857514+248-251=-857517。分别用-o(IP选项中时间戳)和不带选项(ICMP路由时间戳)上述路由的系统时间进行测试。得到的结果:
|
||||
|
||||
```
|
||||
```shell
|
||||
lixi@lixi-desktop:~# ./clockdiff -o 202.38.64.9
|
||||
..................................................
|
||||
host=202.38.64.9 rtt=1(0)ms/1ms delta=-857517ms/-857517ms Wed Dec 17 11:28:30 2008
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
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
|
||||
|
|
@ -47,7 +47,7 @@ host=202.38.64.9 rtt=750(187)ms/0ms delta=-857517ms/-857517ms Wed Dec 17 11:28:3
|
|||
|
||||
两种方法测试的都比较准确。
|
||||
|
||||
```
|
||||
```shell
|
||||
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
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cmp
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cmp(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-c或--print-chars:除了标明差异处的十进制字码之外,一并显示该字符所对应字符;
|
||||
-i<字符数目>或--ignore-initial=<字符数目>:指定一个数目;
|
||||
-l或——verbose:标示出所有不一样的地方;
|
||||
|
|
@ -32,13 +32,13 @@ cmp(选项)(参数)
|
|||
|
||||
使用cmp命令比较文件"testfile"和文件"testfile1"两个文件,则输入下面的命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
cmp testfile testfile1 #比较两个指定的文件
|
||||
```
|
||||
|
||||
在上述指令执行之前,使用cat命令查看两个指定的文件内容,如下所示:
|
||||
|
||||
```
|
||||
```shell
|
||||
cat testfile #查看文件内容
|
||||
Absncn 50 #显示文件“testfile”
|
||||
Asldssja 60
|
||||
|
|
@ -52,7 +52,7 @@ Jslkadjls 85
|
|||
|
||||
然后,再执行cmp命令,并返回比较结果,具体如下所示:
|
||||
|
||||
```
|
||||
```shell
|
||||
cmp testfile testfile1 #比较两个文件
|
||||
testfile testfile1 #有差异:第8字节,第2行
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ col
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
col(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-b:过滤掉所有的控制字符,包括RLF和HRLF;
|
||||
-f:滤掉RLF字符,但允许将HRLF字符呈现出来;
|
||||
-x:以多个空格字符来表示跳格字符;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ colrm
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
colrm(参数)
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -13,13 +13,13 @@ comm
|
|||
|
||||
### 语法
|
||||
|
||||
```bash
|
||||
```shell
|
||||
comm [选项]... 文件1 文件2
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
如果不附带选项,程序会生成三列输出。
|
||||
第一列包含文件1 特有的行,
|
||||
第二列包含文件2 特有的行,
|
||||
|
|
@ -43,7 +43,7 @@ comm [选项]... 文件1 文件2
|
|||
|
||||
文本 `aaa.txt` 内容
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cat aaa.txt
|
||||
aaa
|
||||
bbb
|
||||
|
|
@ -56,7 +56,7 @@ eee
|
|||
|
||||
文本 `bbb.txt` 内容
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cat bbb.txt
|
||||
bbb
|
||||
ccc
|
||||
|
|
@ -68,14 +68,14 @@ jjj
|
|||
|
||||
两个文件之间的比较,如果没有排序需要带上`--nocheck-order`参数, 没有带上参数将会收到提示,此命令重要之功能在于比较。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
comm: 文件2 没有被正确排序
|
||||
comm: 文件1 没有被正确排序
|
||||
```
|
||||
|
||||
比较结果
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# comm --nocheck-order aaa.txt bbb.txt
|
||||
aaa
|
||||
bbb
|
||||
|
|
@ -97,14 +97,14 @@ eee
|
|||
|
||||
有序比较,先通过 sort 将文件内容排序
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# sort aaa.txt > aaa1.txt
|
||||
[root@localhost ~]# sort bbb.txt > bbb1.txt
|
||||
```
|
||||
|
||||
有序比较结果:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# comm aaa1.txt bbb1.txt
|
||||
111
|
||||
222
|
||||
|
|
@ -122,7 +122,7 @@ eee
|
|||
|
||||
打印两个文件的交集,需要删除第一列和第二列:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# comm aaa.txt bbb.txt -1 -2
|
||||
bbb
|
||||
ccc
|
||||
|
|
@ -132,7 +132,7 @@ ccc
|
|||
|
||||
打印出两个文件中不相同的行,需要删除第三列:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# comm aaa.txt bbb.txt -3 | sed 's/^\t//'
|
||||
aaa
|
||||
aaa
|
||||
|
|
@ -153,7 +153,7 @@ jjj
|
|||
|
||||
aaa.txt的差集
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# comm aaa.txt bbb.txt -2 -3
|
||||
aaa
|
||||
ddd
|
||||
|
|
@ -164,7 +164,7 @@ eee
|
|||
|
||||
bbb.txt的差集
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# comm aaa.txt bbb.txt -1 -3
|
||||
aaa
|
||||
hhh
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ command
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
command(参数)
|
||||
```
|
||||
|
||||
|
|
@ -21,13 +21,13 @@ command(参数)
|
|||
|
||||
使用command命令调用执行`echo Linux`,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
command echo Linux #调用执行shell内部指令
|
||||
```
|
||||
|
||||
上面的命令执行后,将调用执行命令`echo Linux`,其执行结果如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
Linux
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ compress
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
compress(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-f:不提示用户,强制覆盖掉目标文件;
|
||||
-c:将结果送到标准输出,无文件被改变;
|
||||
-r:递归的操作方式;
|
||||
|
|
@ -33,31 +33,31 @@ compress(选项)(参数)
|
|||
|
||||
将`/etc/man.config`复到`/tmp` ,并加以压缩
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# cd /tmp
|
||||
[root@localhost tmp]# cp /etc/man.config .
|
||||
[root@localhost tmp]# compress man.config
|
||||
[root@localhost tmp]# ls -l
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
-rw-r--r-- 1 root root 2605 Jul 27 11:43 man.config.Z
|
||||
```
|
||||
|
||||
将刚刚的压缩档解开
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost tmp]# compress -d man.config.Z
|
||||
```
|
||||
|
||||
将 man.config 压缩成另外一个文件来备份
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost tmp]# compress -c man.config > man.config.back.Z
|
||||
[root@localhost tmp]# ll man.config*
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
-rw-r--r-- 1 root root 4506 Jul 27 11:43 man.config
|
||||
-rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ consoletype
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
consoletype
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# consoletype
|
||||
pty
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ convertquota
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
convertquota(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-u:仅转换用户磁盘配额数据文件;
|
||||
-g:仅转换组磁盘配额数据文件;
|
||||
-f:将老的磁盘配额文件转换为新的格式;
|
||||
|
|
@ -30,7 +30,7 @@ convertquota(选项)(参数)
|
|||
|
||||
使用convertquota指令转换指定文件系统`/data`的磁盘配额数据文件。在命令行中输入下面的命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
convertquota -u /data //转换文件系统"/data"上的用户磁盘配额文件
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cp
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cp(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-a:此参数的效果和同时指定"-dpR"参数相同;
|
||||
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
|
||||
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
|
||||
|
|
@ -41,13 +41,13 @@ cp(选项)(参数)
|
|||
|
||||
通常来说,参数 `-r` 也可用更详细的风格 `--recursive`。但是以简短的方式,也可以这么连用 `-ruv`。
|
||||
|
||||
```
|
||||
```shell
|
||||
cp -r -u -v /usr/men/tmp ~/men/tmp
|
||||
```
|
||||
|
||||
版本备份 `--backup=numbered` 参数意思为“我要做个备份,而且是带编号的连续备份”。所以一个备份就是 1 号,第二个就是 2 号,等等。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
$ cp --force --backup=numbered test1.py test1.py
|
||||
$ ls
|
||||
test1.py test1.py.~1~ test1.py.~2~
|
||||
|
|
@ -55,7 +55,7 @@ test1.py test1.py.~1~ test1.py.~2~
|
|||
|
||||
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点`.`或点点`..`的形式。例如,下面的命令将指定文件复制到当前目录下:
|
||||
|
||||
```
|
||||
```shell
|
||||
cp ../mary/homework/assign .
|
||||
```
|
||||
|
||||
|
|
@ -63,25 +63,25 @@ cp ../mary/homework/assign .
|
|||
|
||||
将文件file复制到目录`/usr/men/tmp`下,并改名为file1
|
||||
|
||||
```
|
||||
```shell
|
||||
cp file /usr/men/tmp/file1
|
||||
```
|
||||
|
||||
将目录`/usr/men`下的所有文件及其子目录复制到目录`/usr/zh`中
|
||||
|
||||
```
|
||||
```shell
|
||||
cp -r /usr/men /usr/zh
|
||||
```
|
||||
|
||||
交互式地将目录`/usr/men`中的以m打头的所有.c文件复制到目录`/usr/zh`中
|
||||
|
||||
```
|
||||
```shell
|
||||
cp -i /usr/men m*.c /usr/zh
|
||||
```
|
||||
|
||||
我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
cp aaa/* /bbb
|
||||
# 复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
|
||||
|
||||
|
|
@ -97,14 +97,14 @@ cp -r -a aaa/* /bbb
|
|||
|
||||
递归强制复制目录到指定目录中覆盖已存在文件
|
||||
|
||||
```bash
|
||||
```shell
|
||||
cp -rfb ./* ../backup
|
||||
# 将当前目录下所有文件,复制到当前目录的兄弟目录 backup 文件夹中
|
||||
```
|
||||
|
||||
拷贝目录下的隐藏文件如 `.babelrc`
|
||||
|
||||
```bash
|
||||
```shell
|
||||
cp -r aaa/.* ./bbb
|
||||
# 将 aaa 目录下的,所有`.`开头的文件,复制到 bbb 目录中。
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cpio
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cpio(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-0或--null:接受新增列控制字符,通常配合find指令的“-print0”参数使用;
|
||||
-a或--rest-access-time:重新设置文件的存取时间;
|
||||
-A或--append:附加到已存在的备份文档中,且这个备份文档必须存放在磁盘上,而不能放置于磁带机里;
|
||||
|
|
@ -62,13 +62,13 @@ cpio(选项)
|
|||
|
||||
**将`/etc`下的所有普通文件都备份到`/opt/etc.cpio`,使用以下命令:**
|
||||
|
||||
```
|
||||
```shell
|
||||
find /etc –type f | cpio –ocvB >/opt/etc.cpio
|
||||
```
|
||||
|
||||
**将系统上所有资料备份到磁带机内,使用以下命令:**
|
||||
|
||||
```
|
||||
```shell
|
||||
find / -print | cpio -covB > /dev/st0
|
||||
```
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ find / -print | cpio -covB > /dev/st0
|
|||
|
||||
**查看上例磁带机上备份的文件,使用以下命令:**
|
||||
|
||||
```
|
||||
```shell
|
||||
cpio -icdvt < /dev/st0 > /tmp/st_content
|
||||
```
|
||||
|
||||
|
|
@ -84,7 +84,7 @@ cpio -icdvt < /dev/st0 > /tmp/st_content
|
|||
|
||||
**将示例1中的备份包还原到相应的位置,如果有相同文件进行覆盖,使用以下命令:**
|
||||
|
||||
```
|
||||
```shell
|
||||
cpio –icduv < /opt/etc.cpio
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ crontab
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
crontab(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-e:编辑该用户的计时器设置;
|
||||
-l:列出该用户的计时器设置;
|
||||
-r:删除该用户的计时器设置;
|
||||
|
|
@ -34,7 +34,7 @@ Linux下的任务调度分为两类: **系统任务调度** 和 **用户任务
|
|||
|
||||
`/etc/crontab`文件包括下面几行:
|
||||
|
||||
```
|
||||
```shell
|
||||
SHELL=/bin/bash
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
MAILTO=""HOME=/
|
||||
|
|
@ -50,7 +50,7 @@ MAILTO=""HOME=/
|
|||
|
||||
**用户任务调度:** 用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在`/var/spool/cron`目录中。其文件名与用户名一致,使用者权限文件如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
/etc/cron.deny 该文件中所列用户不允许使用crontab命令
|
||||
/etc/cron.allow 该文件中所列用户允许使用crontab命令
|
||||
/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名
|
||||
|
|
@ -58,7 +58,7 @@ MAILTO=""HOME=/
|
|||
|
||||
crontab文件的含义:用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
minute hour day month week command 顺序:分 时 日 月 周
|
||||
```
|
||||
|
||||
|
|
@ -80,34 +80,34 @@ minute hour day month week command 顺序:分 时 日 月 周
|
|||
|
||||
**crond服务**
|
||||
|
||||
```
|
||||
/sbin/service crond start //启动服务
|
||||
/sbin/service crond stop //关闭服务
|
||||
/sbin/service crond restart //重启服务
|
||||
/sbin/service crond reload //重新载入配置
|
||||
```shell
|
||||
/sbin/service crond start # 启动服务
|
||||
/sbin/service crond stop # 关闭服务
|
||||
/sbin/service crond restart # 重启服务
|
||||
/sbin/service crond reload # 重新载入配置
|
||||
```
|
||||
|
||||
查看crontab服务状态:
|
||||
|
||||
```
|
||||
```shell
|
||||
service crond status
|
||||
```
|
||||
|
||||
手动启动crontab服务:
|
||||
|
||||
```
|
||||
```shell
|
||||
service crond start
|
||||
```
|
||||
|
||||
查看crontab服务是否已设置为开机启动,执行命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
ntsysv
|
||||
```
|
||||
|
||||
加入开机自动启动:
|
||||
|
||||
```
|
||||
```shell
|
||||
chkconfig –level 35 crond on
|
||||
```
|
||||
|
||||
|
|
@ -115,91 +115,91 @@ chkconfig –level 35 crond on
|
|||
|
||||
每1分钟执行一次command
|
||||
|
||||
```
|
||||
```shell
|
||||
* * * * * command
|
||||
```
|
||||
|
||||
每小时的第3和第15分钟执行
|
||||
|
||||
```
|
||||
```shell
|
||||
3,15 * * * * command
|
||||
```
|
||||
|
||||
在上午8点到11点的第3和第15分钟执行
|
||||
|
||||
```
|
||||
```shell
|
||||
3,15 8-11 * * * command
|
||||
```
|
||||
|
||||
每隔两天的上午8点到11点的第3和第15分钟执行
|
||||
|
||||
```
|
||||
```shell
|
||||
3,15 8-11 */2 * * command
|
||||
```
|
||||
|
||||
每个星期一的上午8点到11点的第3和第15分钟执行
|
||||
|
||||
```
|
||||
```shell
|
||||
3,15 8-11 * * 1 command
|
||||
```
|
||||
|
||||
每晚的21:30重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
30 21 * * * /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
每月1、10、22日的4 : 45重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
45 4 1,10,22 * * /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
每周六、周日的1:10重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
10 1 * * 6,0 /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
每天18 : 00至23 : 00之间每隔30分钟重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
0,30 18-23 * * * /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
每星期六的晚上11:00 pm重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
0 23 * * 6 /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
每一小时重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
* */1 * * * /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
晚上11点到早上7点之间,每隔一小时重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
* 23-7/1 * * * /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
每月的4号与每周一到周三的11点重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
0 11 4 * mon-wed /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
一月一号的4点重启smb
|
||||
|
||||
```
|
||||
```shell
|
||||
0 4 1 jan * /etc/init.d/smb restart
|
||||
```
|
||||
|
||||
每小时执行`/etc/cron.hourly`目录内的脚本
|
||||
|
||||
```
|
||||
```shell
|
||||
01 * * * * root run-parts /etc/cron.hourly
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ csplit
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
csplit(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-b<输出格式>或--suffix-format=<输出格式>:预设的输出格式其文件名称为xx00,xx01等,用户可以通过改变<输出格式>来改变输出的文件名;
|
||||
-f<输出字首字符串>或--prefix=<输出字首字符串>:预设的输出字首字符串其文件名为xx00,xx01等,如果制定输出字首字符串为“hello”,则输出的文件名称会变成hello00,hello、01......
|
||||
-k或--keep-files:保留文件,就算发生错误或中断执行,与不能删除已经输出保存的文件;
|
||||
|
|
@ -33,7 +33,7 @@ csplit(选项)(参数)
|
|||
|
||||
示例测试文件 server.log
|
||||
|
||||
```
|
||||
```shell
|
||||
cat server.log
|
||||
SERVER-1
|
||||
[con] 10.10.10.1 suc
|
||||
|
|
@ -54,7 +54,7 @@ SERVER-3
|
|||
|
||||
需要将server.log分割成server1.log、server2.log、server3.log,这些文件的内容分别取自原文件中不同的SERVER部分:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost split]# csplit server.log /SERVER/ -n2 -s {*} -f server -b "%02d.log"; rm server00.log
|
||||
[root@localhost split]# ls
|
||||
server01.log server02.log server03.log server.log
|
||||
|
|
@ -62,7 +62,7 @@ server01.log server02.log server03.log server.log
|
|||
|
||||
**命令详细说明:**
|
||||
|
||||
```
|
||||
```shell
|
||||
/[正则表达式]/ #匹配文本样式,比如/SERVER/,从第一行到包含SERVER的匹配行。
|
||||
{*} #表示根据匹配重复执行分割,直到文件尾停止,使用{整数}的形式指定分割执行的次数。
|
||||
-s #静默模式,不打印其他信息。
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@ cu
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cu [dehnotv][-a<通信端口>][-c<电话号码>][-E<脱离字符>][-I<设置文件>][-l<外围设备代号>]
|
||||
[-s<连线速率>][-x<排错模式>][-z<系统主机>][--help][-nostop][--parity=none][<系统主机>/<电话号码>]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-a<通信端口>或-p<通信端口>或--port<通信端口> 使用指定的通信端口进行连线。
|
||||
-c<电话号码>或--phone<电话号码> 拨打该电话号码。
|
||||
-d 进入排错模式。
|
||||
|
|
@ -41,7 +41,7 @@ cu [dehnotv][-a<通信端口>][-c<电话号码>][-E<脱离字符>][-I<设置文
|
|||
|
||||
与远程主机连接
|
||||
|
||||
```
|
||||
```shell
|
||||
cu -c 0102377765
|
||||
cu -s 38400 9=12015551234
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cupsdisable
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cupsdisable(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-E:当连接到服务器时强制使用加密;
|
||||
-U:指定连接服务器时使用的用户名;
|
||||
-u:指定打印任务所属的用户;
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ cupsenable
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cupsenable(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-E:当连接到服务器时强制使用加密;
|
||||
-U:指定连接服务器时使用的用户名;
|
||||
-u:指定打印任务所属的用户;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ curl
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
curl(选项)(参数)
|
||||
```
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ curl(选项)(参数)
|
|||
|
||||
curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。如果系统没有curl可以使用`yum install curl`安装,也可以下载安装。curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用`--silent`选项。
|
||||
|
||||
```
|
||||
```shell
|
||||
curl URL --silent
|
||||
```
|
||||
|
||||
|
|
@ -133,13 +133,13 @@ curl URL --silent
|
|||
|
||||
使用选项`-O`将下载的数据写入到文件,必须使用文件的绝对地址:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl http://wangchujiang.com/text.iso --silent -O
|
||||
```
|
||||
|
||||
选项`-o`将下载数据写入到指定名称的文件中,并使用`--progress`显示进度条:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl http://wangchujiang.com/test.iso -o filename.iso --progress
|
||||
######################################### 100.0%
|
||||
```
|
||||
|
|
@ -148,7 +148,7 @@ curl http://wangchujiang.com/test.iso -o filename.iso --progress
|
|||
|
||||
curl能够从特定的文件偏移处继续下载,它可以通过指定一个便宜量来下载部分文件:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl URL/File -C 偏移量
|
||||
|
||||
#偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -:
|
||||
|
|
@ -161,7 +161,7 @@ curl -C -URL
|
|||
|
||||
使用`--referer`选项指定参照页字符串:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl --referer http://www.google.com http://wangchujiang.com
|
||||
```
|
||||
|
||||
|
|
@ -169,13 +169,13 @@ curl --referer http://www.google.com http://wangchujiang.com
|
|||
|
||||
使用`--cookie "COKKIES"`选项来指定cookie,多个cookie使用分号分隔:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl http://wangchujiang.com --cookie "user=root;pass=123456"
|
||||
```
|
||||
|
||||
将cookie另存为一个文件,使用`--cookie-jar`选项:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl URL --cookie-jar cookie_file
|
||||
```
|
||||
|
||||
|
|
@ -183,14 +183,14 @@ curl URL --cookie-jar cookie_file
|
|||
|
||||
有些网站访问会提示只能使用IE浏览器来访问,这是因为这些网站设置了检查用户代理,可以使用curl把用户代理设置为IE,这样就可以访问了。使用`--user-agent`或者`-A`选项:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl URL --user-agent "Mozilla/5.0"
|
||||
curl URL -A "Mozilla/5.0"
|
||||
```
|
||||
|
||||
其他HTTP头部信息也可以使用curl来发送,使用`-H`"头部信息" 传递多个头部信息,例如:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl -H "Host:wangchujiang.com" -H "accept-language:zh-cn" URL
|
||||
```
|
||||
|
||||
|
|
@ -198,7 +198,7 @@ curl -H "Host:wangchujiang.com" -H "accept-language:zh-cn" URL
|
|||
|
||||
使用`--limit-rate`限制curl的下载速度:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl URL --limit-rate 50k
|
||||
```
|
||||
|
||||
|
|
@ -206,7 +206,7 @@ curl URL --limit-rate 50k
|
|||
|
||||
使用`--max-filesize`指定可下载的最大文件大小:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl URL --max-filesize bytes
|
||||
```
|
||||
|
||||
|
|
@ -216,7 +216,7 @@ curl URL --max-filesize bytes
|
|||
|
||||
使用curl选项 -u 可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:
|
||||
|
||||
```
|
||||
```shell
|
||||
curl -u user:pwd http://wangchujiang.com
|
||||
curl -u user http://wangchujiang.com
|
||||
```
|
||||
|
|
@ -225,7 +225,7 @@ curl -u user http://wangchujiang.com
|
|||
|
||||
通过`-I`或者`-head`可以只打印出HTTP头部信息:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# curl -I http://wangchujiang.com
|
||||
HTTP/1.1 200 OK
|
||||
Server: nginx/1.2.5
|
||||
|
|
@ -238,7 +238,7 @@ X-Pingback: http://wangchujiang.com/xmlrpc.php
|
|||
|
||||
**get请求**
|
||||
|
||||
```bash
|
||||
```shell
|
||||
curl "http://www.wangchujiang.com" # 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
|
||||
curl -i "http://www.wangchujiang.com" # 显示全部信息
|
||||
curl -l "http://www.wangchujiang.com" # 只显示头部信息
|
||||
|
|
@ -247,19 +247,19 @@ curl -v "http://www.wangchujiang.com" # 显示get请求全过程解析
|
|||
|
||||
**post请求**
|
||||
|
||||
```bash
|
||||
```shell
|
||||
curl -d "param1=value1¶m2=value2" "http://www.wangchujiang.com"
|
||||
```
|
||||
|
||||
**json格式的post请求**
|
||||
|
||||
```bash
|
||||
```shell
|
||||
curl -l -H "Content-type: application/json" -X POST -d '{"phone":"13521389587","password":"test"}' http://wangchujiang.com/apis/users.json
|
||||
```
|
||||
|
||||
**获取本机外网ip**
|
||||
|
||||
```bash
|
||||
```shell
|
||||
curl ipecho.net/plain
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -13,13 +13,13 @@ cut
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
cut(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-b:仅显示行中指定直接范围的内容;
|
||||
-c:仅显示行中指定范围的字符;
|
||||
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
|
||||
|
|
@ -39,7 +39,7 @@ cut(选项)(参数)
|
|||
|
||||
例如有一个学生报表信息,包含 No、Name、Mark、Percent:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cat test.txt
|
||||
No Name Mark Percent
|
||||
01 tom 69 91
|
||||
|
|
@ -50,7 +50,7 @@ No Name Mark Percent
|
|||
|
||||
使用 **-f** 选项提取指定字段(这里的 f 参数可以简单记忆为 `--fields`的缩写):
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cut -f 1 test.txt
|
||||
No
|
||||
01
|
||||
|
|
@ -58,7 +58,7 @@ No
|
|||
03
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cut -f2,3 test.txt
|
||||
Name Mark
|
||||
tom 69
|
||||
|
|
@ -69,18 +69,17 @@ alex 68
|
|||
|
||||
**--complement** 选项提取指定字段之外的列(打印除了第二列之外的列):
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cut -f2 --complement test.txt
|
||||
No Mark Percent
|
||||
01 69 91
|
||||
02 71 87
|
||||
03 68 98
|
||||
|
||||
```
|
||||
|
||||
使用 **-d** 选项指定字段分隔符:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cat test2.txt
|
||||
No;Name;Mark;Percent
|
||||
01;tom;69;91
|
||||
|
|
@ -88,7 +87,7 @@ No;Name;Mark;Percent
|
|||
03;alex;68;98
|
||||
```
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cut -f2 -d";" test2.txt
|
||||
Name
|
||||
tom
|
||||
|
|
@ -113,7 +112,7 @@ cut 命令可以将一串字符作为列来显示,字符字段的记法:
|
|||
|
||||
**示例**
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cat test.txt
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
|
|
@ -125,7 +124,7 @@ abcdefghijklmnopqrstuvwxyz
|
|||
|
||||
打印第 1 个到第 3 个字符:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cut -c1-3 test.txt
|
||||
abc
|
||||
abc
|
||||
|
|
@ -137,7 +136,7 @@ abc
|
|||
|
||||
打印前 2 个字符:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cut -c-2 test.txt
|
||||
ab
|
||||
ab
|
||||
|
|
@ -149,7 +148,7 @@ ab
|
|||
|
||||
打印从第 5 个字符开始到结尾:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# cut -c5- test.txt
|
||||
efghijklmnopqrstuvwxyz
|
||||
efghijklmnopqrstuvwxyz
|
||||
|
|
|
|||
114
command/date.md
114
command/date.md
|
|
@ -11,13 +11,13 @@ date
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
date(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
|
||||
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
|
||||
-u:显示GMT;
|
||||
|
|
@ -31,117 +31,117 @@ date(选项)(参数)
|
|||
|
||||
### 日期格式字符串列表
|
||||
|
||||
```
|
||||
%H 小时,24小时制(00~23)
|
||||
%I 小时,12小时制(01~12)
|
||||
%k 小时,24小时制(0~23)
|
||||
%l 小时,12小时制(1~12)
|
||||
%M 分(00~59)
|
||||
%p 显示出上午或下午
|
||||
%r 时间,12小时制
|
||||
%s 从1970年1月1日0点到目前经历的秒数
|
||||
%S 秒(00~59)
|
||||
%T 时间(24小时制)(hh:mm:ss)
|
||||
%X 显示时间的格式(%H时%M分%S秒)
|
||||
%Z 按字母表排序的时区缩写
|
||||
%a 星期名缩写
|
||||
%A 星期名全称
|
||||
%b 月名缩写
|
||||
%B 月名全称
|
||||
%c 日期和时间
|
||||
%d 按月计的日期(01~31)
|
||||
%D 日期(mm/dd/yy)
|
||||
%h 和%b选项相同
|
||||
%j 一年的第几天(001~366)
|
||||
%m 月份(01~12)
|
||||
%w 一个星期的第几天(0代表星期天)
|
||||
%W 一年的第几个星期(00~53,星期一为第一天)
|
||||
%x 显示日期的格式(mm/dd/yy)
|
||||
%y 年份的最后两个数字(1999则是99)
|
||||
%Y 年份(比如1970、1996等)
|
||||
%C 世纪,通常为省略当前年份的后两位数字
|
||||
%U 一年中的第几周,以周日为每星期第一天
|
||||
%e 按月计的日期,添加空格,等于%_d
|
||||
```shell
|
||||
%H # 小时,24小时制(00~23)
|
||||
%I # 小时,12小时制(01~12)
|
||||
%k # 小时,24小时制(0~23)
|
||||
%l # 小时,12小时制(1~12)
|
||||
%M # 分(00~59)
|
||||
%p # 显示出上午或下午
|
||||
%r # 时间,12小时制
|
||||
%s # 从1970年1月1日0点到目前经历的秒数
|
||||
%S # 秒(00~59)
|
||||
%T # 时间(24小时制)(hh:mm:ss)
|
||||
%X # 显示时间的格式(%H时%M分%S秒)
|
||||
%Z # 按字母表排序的时区缩写
|
||||
%a # 星期名缩写
|
||||
%A # 星期名全称
|
||||
%b # 月名缩写
|
||||
%B # 月名全称
|
||||
%c # 日期和时间
|
||||
%d # 按月计的日期(01~31)
|
||||
%D # 日期(mm/dd/yy)
|
||||
%h # 和%b选项相同
|
||||
%j # 一年的第几天(001~366)
|
||||
%m # 月份(01~12)
|
||||
%w # 一个星期的第几天(0代表星期天)
|
||||
%W # 一年的第几个星期(00~53,星期一为第一天)
|
||||
%x # 显示日期的格式(mm/dd/yy)
|
||||
%y # 年份的最后两个数字(1999则是99)
|
||||
%Y # 年份(比如1970、1996等)
|
||||
%C # 世纪,通常为省略当前年份的后两位数字
|
||||
%U # 一年中的第几周,以周日为每星期第一天
|
||||
%e # 按月计的日期,添加空格,等于%_d
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
格式化输出:
|
||||
|
||||
```
|
||||
```shell
|
||||
date +"%Y-%m-%d"
|
||||
2009-12-07
|
||||
```
|
||||
|
||||
输出昨天日期:
|
||||
|
||||
```
|
||||
```shell
|
||||
date -d "1 day ago" +"%Y-%m-%d"
|
||||
2012-11-19
|
||||
```
|
||||
|
||||
2秒后输出:
|
||||
|
||||
```
|
||||
```shell
|
||||
date -d "2 second" +"%Y-%m-%d %H:%M.%S"
|
||||
2012-11-20 14:21.31
|
||||
```
|
||||
|
||||
传说中的 1234567890 秒:
|
||||
|
||||
```
|
||||
```shell
|
||||
date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"
|
||||
2009-02-13 23:02:30
|
||||
```
|
||||
|
||||
普通转格式:
|
||||
|
||||
```
|
||||
```shell
|
||||
date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
|
||||
2009/12/12 00:00.00
|
||||
```
|
||||
|
||||
apache格式转换:
|
||||
|
||||
```
|
||||
```shell
|
||||
date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
|
||||
2009-12-05 00:00.37
|
||||
```
|
||||
|
||||
格式转换后时间游走:
|
||||
|
||||
```
|
||||
```shell
|
||||
date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
|
||||
2007-12-05 00:00.37
|
||||
```
|
||||
|
||||
加减操作:
|
||||
|
||||
```
|
||||
date +%Y%m%d //显示前天年月日
|
||||
date -d "+1 day" +%Y%m%d //显示前一天的日期
|
||||
date -d "-1 day" +%Y%m%d //显示后一天的日期
|
||||
date -d "-1 month" +%Y%m%d //显示上一月的日期
|
||||
date -d "+1 month" +%Y%m%d //显示下一月的日期
|
||||
date -d "-1 year" +%Y%m%d //显示前一年的日期
|
||||
date -d "+1 year" +%Y%m%d //显示下一年的日期
|
||||
```shell
|
||||
date +%Y%m%d # 显示前天年月日
|
||||
date -d "+1 day" +%Y%m%d # 显示前一天的日期
|
||||
date -d "-1 day" +%Y%m%d # 显示后一天的日期
|
||||
date -d "-1 month" +%Y%m%d # 显示上一月的日期
|
||||
date -d "+1 month" +%Y%m%d # 显示下一月的日期
|
||||
date -d "-1 year" +%Y%m%d # 显示前一年的日期
|
||||
date -d "+1 year" +%Y%m%d # 显示下一年的日期
|
||||
```
|
||||
|
||||
设定时间:
|
||||
|
||||
```
|
||||
date -s //设置当前时间,只有root权限才能设置,其他只能查看
|
||||
date -s 20120523 //设置成20120523,这样会把具体时间设置成空00:00:00
|
||||
date -s 01:01:01 //设置具体时间,不会对日期做更改
|
||||
date -s "01:01:01 2012-05-23" //这样可以设置全部时间
|
||||
date -s "01:01:01 20120523" //这样可以设置全部时间
|
||||
date -s "2012-05-23 01:01:01" //这样可以设置全部时间
|
||||
date -s "20120523 01:01:01" //这样可以设置全部时间
|
||||
```shell
|
||||
date -s # 设置当前时间,只有root权限才能设置,其他只能查看
|
||||
date -s 20120523 # 设置成20120523,这样会把具体时间设置成空00:00:00
|
||||
date -s 01:01:01 # 设置具体时间,不会对日期做更改
|
||||
date -s "01:01:01 2012-05-23" # 这样可以设置全部时间
|
||||
date -s "01:01:01 20120523" # 这样可以设置全部时间
|
||||
date -s "2012-05-23 01:01:01" # 这样可以设置全部时间
|
||||
date -s "20120523 01:01:01" # 这样可以设置全部时间
|
||||
```
|
||||
|
||||
有时需要检查一组命令花费的时间,举例:
|
||||
|
||||
```
|
||||
```shell
|
||||
#!/bin/bash
|
||||
|
||||
start=$(date +%s)
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ dd
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dd(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
bs=<字节数>:将ibs(输入)与obs(输出)设成指定的字节数;
|
||||
cbs=<字节数>:转换时,每次只转换指定的字节数;
|
||||
conv=<关键字>:指定文件转换的方式;
|
||||
|
|
@ -33,7 +33,7 @@ skip=<区块数>:一开始读取时,跳过指定的区块数;
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
|
||||
1+0 records in
|
||||
1+0 records out
|
||||
|
|
@ -64,7 +64,7 @@ skip=<区块数>:一开始读取时,跳过指定的区块数;
|
|||
|
||||
以上命令可以看出dd命令来测试内存操作速度:
|
||||
|
||||
```
|
||||
```shell
|
||||
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
|
||||
```
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ skip=<区块数>:一开始读取时,跳过指定的区块数;
|
|||
|
||||
我们甚至可以使用 /dev/urandom 设备配合 dd 命令 来获取随机字符串。
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# dd if=/dev/urandom bs=1 count=15|base64 -w 0
|
||||
15+0 records in
|
||||
15+0 records out
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ declare
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
declare(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
+/-:"-"可用来指定变量的属性,"+"则是取消变量所设的属性;
|
||||
-f:仅显示函数;
|
||||
r:将变量设置为只读;
|
||||
|
|
@ -31,19 +31,19 @@ shell变量:声明shell变量,格式为“变量名=值”。
|
|||
|
||||
首先使用declare命令定义shell变量"test",并且将其值设置为"wangchujiang.com",输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
declare test='wangchujiang.com' #定义并初始化shell变量
|
||||
```
|
||||
|
||||
上面的命令执行后,再使用echo命令将该shell变量值输出,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
echo $test #输出shell变量的值
|
||||
```
|
||||
|
||||
上面的指令执行后,其输出的结果如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
wangchujiang.com
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ depmod
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
depmod(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-a或--all:分析所有可用的模块;
|
||||
-d或debug:执行排错模式;
|
||||
-e:输出无法参照的符号;
|
||||
|
|
@ -29,7 +29,7 @@ depmod(选项)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
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
|
||||
```
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ depmod -b /home/windsome/EMMA3PF-KernelSource-20080626/install_pos -e -F ./boot/
|
|||
|
||||
编译linux过程及执行depmod的例子:
|
||||
|
||||
```
|
||||
```shell
|
||||
genkernel.sh (at linux-2.6.18_pro500)
|
||||
#######
|
||||
export INSTALL_ROOT_EMMA3PF="/home/windsome/EMMA3PF-KernelSource-20080626/install_pos"
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ df
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
df(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-a或--all:包含全部的文件系统;
|
||||
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
|
||||
-h或--human-readable:以可读性较高的方式来显示信息;
|
||||
|
|
@ -48,7 +48,7 @@ SIZE是一个整数和可选单位(例如:10M是10 * 1024 * 1024)。 单
|
|||
|
||||
查看系统磁盘设备,默认是KB为单位:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@LinServ-1 ~]# df
|
||||
文件系统 1K-块 已用 可用 已用% 挂载点
|
||||
/dev/sda2 146294492 28244432 110498708 21% /
|
||||
|
|
@ -59,7 +59,7 @@ tmpfs 1032204 0 1032204 0% /dev/shm
|
|||
|
||||
使用`-h`选项以KB以上的单位来显示,可读性高:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@LinServ-1 ~]# df -h
|
||||
文件系统 容量 已用 可用 已用% 挂载点
|
||||
/dev/sda2 140G 27G 106G 21% /
|
||||
|
|
@ -70,7 +70,7 @@ tmpfs 1009M 0 1009M 0% /dev/shm
|
|||
|
||||
查看全部文件系统:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@LinServ-1 ~]# df -a
|
||||
文件系统 1K-块 已用 可用 已用% 挂载点
|
||||
/dev/sda2 146294492 28244432 110498708 21% /
|
||||
|
|
@ -85,7 +85,7 @@ none 0 0 0 - /proc/sys/fs/binfmt_misc
|
|||
|
||||
显示 `public` 目录中的可用空间量,如以下输出中所示:
|
||||
|
||||
```bash
|
||||
```shell
|
||||
df public
|
||||
# Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
# /dev/loop0 18761008 15246924 2554392 86% /d Avail
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ dhclient
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dhclient(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
0:指定dhcp客户端监听的端口号;
|
||||
-d:总是以前台方式运行程序;
|
||||
-q:安静模式,不打印任何错误的提示信息;
|
||||
|
|
@ -28,7 +28,7 @@ dhclient(选项)(参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
dhclient -r #释放IP
|
||||
dhclient #获取IP
|
||||
```
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ dhcpd
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dhcpd [选项] [网络接口]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-p <端口> 指定dhcpd监听的端口
|
||||
-f 作为前台进程运行dhcpd
|
||||
-d 启用调试模式
|
||||
|
|
@ -31,7 +31,7 @@ dhcpd [选项] [网络接口]
|
|||
|
||||
对DHCP服务器进行排错。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
[root@localhost ~]# dhcpd
|
||||
InternetSystems Consortium DHCP Server 4.1.1-P1
|
||||
Copyright2004-2010 Internet Systems Consortium.
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ dhcrelay
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dhcrelay [选项] [DHCP服务器]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-c <跳数> 当转发数据包时,dhcrelay丢弃已经达到一个最大跳数的数据包。默认值是10,最大值是255
|
||||
-4 运行dhcrelay命令作为DHCPv4/BOOTP中继代理。这是默认操作模式
|
||||
-6 运行dhcrelay命令作为DHCPv6中继代理
|
||||
|
|
@ -29,7 +29,7 @@ dhcrelay [选项] [DHCP服务器]
|
|||
|
||||
指定DHCP服务器的位置。
|
||||
|
||||
```bash
|
||||
```shell
|
||||
[root@localhost ~]# dhcrelay 192.168.0.2
|
||||
Internet Systems Consortium DHCP Relay Agent4.1.1-P1
|
||||
Copyright 2004-2010 Internet SystemsConsortium.
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ diff
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
diff(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用;
|
||||
-a或——text:diff预设只会逐行比较文本文件;
|
||||
-b或--ignore-space-change:不检查空格字符的不同;
|
||||
|
|
@ -61,13 +61,13 @@ diff(选项)(参数)
|
|||
|
||||
将目录`/usr/li`下的文件"test.txt"与当前目录下的文件"test.txt"进行比较,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
diff /usr/li test.txt #使用diff指令对文件进行比较
|
||||
```
|
||||
|
||||
上面的命令执行后,会将比较后的不同之处以指定的形式列出,如下所示:
|
||||
|
||||
```
|
||||
```shell
|
||||
n1 a n3,n4
|
||||
n1,n2 d n3
|
||||
n1,n2 c n3,n4
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ diff3
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
diff3(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-a:把所有的文件都当做文本文件按照行为单位进行比较,即给定的文件不是文本文件;
|
||||
-A:合并第2个文件和第3个文件之间的不同到第1个文件中,有冲突内容用括号括起来;
|
||||
-B:与选项“-A”功能相同,但是不显示冲突的内容;
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ diffstat
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
diffstat(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
|
||||
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包括了文件的路径;
|
||||
-w:指定要输出时栏位的宽度;
|
||||
|
|
@ -30,7 +30,7 @@ diffstat(选项)(参数)
|
|||
|
||||
将目录"test1"和"test2"下的同名文件"testf.txt"使用diff命令进行比较。然后使用diffstat命令对结果进行统计显示,输入如下命令:
|
||||
|
||||
```
|
||||
```shell
|
||||
diff test1 test2 | diffstat #进行比较结果的统计显示
|
||||
```
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ diff test1 test2 | diffstat #进行比较结果的统计显示
|
|||
|
||||
对于查看文件中的内容,用户可以通过cat命令进行查看即可,具体操作如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
cat test1/testf.txt #查看test1/testf的内容
|
||||
abc
|
||||
def
|
||||
|
|
@ -59,7 +59,7 @@ mno
|
|||
|
||||
从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:
|
||||
|
||||
```
|
||||
```shell
|
||||
testfile | 2 +- #统计信息输出显示
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ dig
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dig(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
@<服务器地址>:指定进行域名解析的域名服务器;
|
||||
-b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
|
||||
-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
|
||||
|
|
@ -36,7 +36,7 @@ dig(选项)(参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# dig www.jsdig.com
|
||||
|
||||
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.1 <<>> www.jsdig.com
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ dircolors
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dircolors(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-b或--sh或--bourne-shell:显示在Boume shell中,将LS_COLORS设为目前预设置的shell指令;
|
||||
-c或--csh或--c-shell:显示在C shell中,将LS_COLORS设为目前预设置的shell指令;
|
||||
-p或--print-database:显示预设置;
|
||||
|
|
@ -29,7 +29,7 @@ dircolors(选项)(参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# dircolors -p
|
||||
# Configuration file for dircolors, a utility to help you set the
|
||||
# LS_COLORS environment variable used by GNU ls with the --color option.
|
||||
|
|
|
|||
|
|
@ -9,20 +9,20 @@ dirname
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dirname(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
--help:显示帮助;
|
||||
--version:显示版本号。
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
dirname //
|
||||
结果为 /
|
||||
|
||||
|
|
|
|||
|
|
@ -9,20 +9,19 @@ dirs
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dirs(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-c:删除目录栈中的所有记录
|
||||
-l:以完整格式显示
|
||||
-p:一个目录一行的方式显示
|
||||
-v:每行一个目录来显示目录栈的内容,每个目录前加上的编号
|
||||
+N:显示从左到右的第n个目录,数字从0开始
|
||||
-N:显示从右到左的第n个日录,数字从0开始
|
||||
|
||||
```
|
||||
|
||||
### 参数
|
||||
|
|
@ -31,7 +30,7 @@ dirs(选项)(参数)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost etc]# dirs
|
||||
/etc
|
||||
```
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ dmesg
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dmesg(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-c:显示信息后,清除ring buffer中的内容;
|
||||
-s<缓冲区大小>:预设置为8196,刚好等于ring buffer的大小;
|
||||
-n:设置记录信息的层级。
|
||||
|
|
@ -23,7 +23,7 @@ dmesg(选项)
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# dmesg | head
|
||||
Linux version 2.6.18-348.6.1.el5 (mockbuild@builder17.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Tue May 21 15:34:22 EDT 2013
|
||||
BIOS-provided physical RAM map:
|
||||
|
|
@ -39,7 +39,7 @@ BIOS-provided physical RAM map:
|
|||
|
||||
查看硬盘基础信息
|
||||
|
||||
```bash
|
||||
```shell
|
||||
dmesg | grep sda
|
||||
|
||||
[ 2.442555] sd 0:0:0:0: [sda] 488281250 512-byte logical blocks: (250 GB/232 GiB)
|
||||
|
|
|
|||
|
|
@ -13,13 +13,13 @@ DMI充当了管理工具和系统层之间接口的角色。它建立了标准
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dmidecode [选项]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-d:(default:/dev/mem)从设备文件读取信息,输出内容与不加参数标准输出相同。
|
||||
-h:显示帮助信息。
|
||||
-s:只显示指定DMI字符串的信息。(string)
|
||||
|
|
@ -116,7 +116,7 @@ dmidecode [选项]
|
|||
|
||||
### 实例
|
||||
|
||||
```bash
|
||||
```shell
|
||||
dmidecode -t 1 # 查看服务器信息
|
||||
dmidecode | grep 'Product Name' # 查看服务器型号
|
||||
dmidecode |grep 'Serial Number' # 查看主板的序列号
|
||||
|
|
@ -133,7 +133,7 @@ cat /proc/scsi/scsi # 查看服务器硬盘信息
|
|||
|
||||
不带选项执行dmidecode命令通常会输出所有的硬件信息。dmidecode命令有个很有用的选项-t,可以按指定类型输出相关信息,假如要获得处理器方面的信息,则可以执行:
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@localhost ~]# dmidecode -t processor
|
||||
# dmidecode 2.11
|
||||
SMBIOS 2.5 present.
|
||||
|
|
@ -221,7 +221,7 @@ Processor Information
|
|||
|
||||
查看内存的插槽数,已经使用多少插槽。每条内存多大,已使用内存多大
|
||||
|
||||
```bash
|
||||
```shell
|
||||
dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range
|
||||
|
||||
# Size: 2048 MB
|
||||
|
|
@ -232,16 +232,15 @@ dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range
|
|||
|
||||
查看内存支持的最大内存容量
|
||||
|
||||
```bash
|
||||
```shell
|
||||
dmidecode|grep -P 'Maximum\s+Capacity'
|
||||
|
||||
# Maximum Capacity: 16 GB
|
||||
|
||||
```
|
||||
|
||||
查看内存的频率
|
||||
|
||||
```bash
|
||||
```shell
|
||||
dmidecode|grep -A16 "Memory Device"
|
||||
|
||||
# Memory Device
|
||||
|
|
@ -288,7 +287,7 @@ dmidecode|grep -A16 "Memory Device"|grep 'Speed'
|
|||
# Speed: 1333 MHz
|
||||
# Speed: Unknown
|
||||
|
||||
```
|
||||
```shell
|
||||
|
||||
|
||||
<!-- Linux命令行搜索引擎:https://jaywcjlove.github.io/linux-command/ -->
|
||||
|
|
|
|||
168
command/dnf.md
168
command/dnf.md
|
|
@ -19,22 +19,22 @@ DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经
|
|||
|
||||
在系统中执行以下命令:
|
||||
|
||||
```
|
||||
# yum install epel-release
|
||||
```shell
|
||||
yum install epel-release
|
||||
```
|
||||
|
||||
或者
|
||||
|
||||
```
|
||||
# yum install epel-release -y
|
||||
```shell
|
||||
yum install epel-release -y
|
||||
```
|
||||
|
||||
其实这里并没有强制使用”-y”的理由,相反的,在不使用”-y”的情况下,用户可以在安装过程中查看到底有哪些东西被安装进了系统。但对于没有这个需求的用户,您可以在 YUM 中使用”-y”参数来自动安装所有东西。
|
||||
|
||||
2、使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。在系统中执行以下命令:
|
||||
|
||||
```
|
||||
# yum install dnf
|
||||
```shell
|
||||
yum install dnf
|
||||
```
|
||||
|
||||
然后, DNF 包管理器就被成功的安装到你的系统中了。接下来,是时候开始我们的教程了!在这个教程中,您将会学到27个用于 DNF 包管理器的命令。使用这些命令,你可以方便有效的管理您系统中的 RPM 软件包。现在,让我们开始学习 DNF 包管理器的27条常用命令吧!
|
||||
|
|
@ -43,8 +43,8 @@ DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经
|
|||
|
||||
用处:该命令用于查看安装在您系统中的 DNF 包管理器的版本
|
||||
|
||||
```
|
||||
# dnf –version
|
||||
```shell
|
||||
dnf –version
|
||||
```
|
||||
|
||||
!Check-DNF-Version
|
||||
|
|
@ -53,259 +53,213 @@ DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经
|
|||
|
||||
用处:该命令用于显示系统中可用的 DNF 软件库
|
||||
|
||||
```shell
|
||||
dnf repolist
|
||||
```
|
||||
# dnf repolist
|
||||
```
|
||||
|
||||
!Check-All-Enabled-Repositories
|
||||
|
||||
**查看系统中可用和不可用的所有的 DNF 软件库**
|
||||
|
||||
用处:该命令用于显示系统中可用和不可用的所有的 DNF 软件库
|
||||
|
||||
```shell
|
||||
dnf repolist all
|
||||
```
|
||||
# dnf repolist all
|
||||
```
|
||||
|
||||
!3
|
||||
|
||||
**列出所有 RPM 包**
|
||||
|
||||
用处:该命令用于列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包
|
||||
|
||||
```shell
|
||||
dnf list
|
||||
```
|
||||
# dnf list
|
||||
```
|
||||
|
||||
!4
|
||||
|
||||
**列出所有安装了的 RPM 包**
|
||||
|
||||
用处:该命令用于列出所有安装了的 RPM 包
|
||||
|
||||
```shell
|
||||
dnf list installed
|
||||
```
|
||||
# dnf list installed
|
||||
```
|
||||
|
||||
!5
|
||||
|
||||
**列出所有可供安装的 RPM 包**
|
||||
|
||||
用处:该命令用于列出来自所有可用软件库的可供安装的软件包
|
||||
|
||||
```shell
|
||||
dnf list available
|
||||
```
|
||||
# dnf list available
|
||||
```
|
||||
|
||||
!6
|
||||
|
||||
**搜索软件库中的 RPM 包**
|
||||
|
||||
用处:当你不知道你想要安装的软件的准确名称时,你可以用该命令来搜索软件包。你需要在”search”参数后面键入软件的部分名称来搜索。(在本例中我们使用”nano”)
|
||||
|
||||
```shell
|
||||
dnf search nano
|
||||
```
|
||||
# dnf search nano
|
||||
```
|
||||
|
||||
!7
|
||||
|
||||
**查找某一文件的提供者**
|
||||
|
||||
用处:当你想要查看是哪个软件包提供了系统中的某一文件时,你可以使用这条命令。(在本例中,我们将查找”/bin/bash”这个文件的提供者)
|
||||
|
||||
```shell
|
||||
dnf provides /bin/bash
|
||||
```
|
||||
# dnf provides /bin/bash
|
||||
```
|
||||
|
||||
!8
|
||||
|
||||
**查看软件包详情**
|
||||
|
||||
用处:当你想在安装某一个软件包之前查看它的详细信息时,这条命令可以帮到你。(在本例中,我们将查看”nano”这一软件包的详细信息)
|
||||
|
||||
```shell
|
||||
dnf info nano
|
||||
```
|
||||
# dnf info nano
|
||||
```
|
||||
|
||||
!9
|
||||
|
||||
**安装软件包**
|
||||
|
||||
用处:使用该命令,系统将会自动安装对应的软件及其所需的所有依赖(在本例中,我们将用该命令安装nano软件)
|
||||
|
||||
```shell
|
||||
dnf install nano
|
||||
```
|
||||
# dnf install nano
|
||||
```
|
||||
|
||||
!10
|
||||
|
||||
**升级软件包**
|
||||
|
||||
用处:该命令用于升级制定软件包(在本例中,我们将用命令升级”systemd”这一软件包)
|
||||
|
||||
```shell
|
||||
dnf update systemd
|
||||
```
|
||||
# dnf update systemd
|
||||
```
|
||||
|
||||
!11
|
||||
|
||||
**检查系统软件包的更新**
|
||||
|
||||
用处:该命令用于检查系统中所有软件包的更新
|
||||
|
||||
```shell
|
||||
dnf check-update
|
||||
```
|
||||
# dnf check-update
|
||||
```
|
||||
|
||||
!12
|
||||
|
||||
**升级所有系统软件包**
|
||||
|
||||
用处:该命令用于升级系统中所有有可用升级的软件包
|
||||
|
||||
```shell
|
||||
dnf update 或 dnf upgrade
|
||||
```
|
||||
# dnf update 或 # dnf upgrade
|
||||
```
|
||||
|
||||
!13
|
||||
|
||||
**删除软件包**
|
||||
|
||||
用处:删除系统中指定的软件包(在本例中我们将使用命令删除”nano”这一软件包)
|
||||
|
||||
```shell
|
||||
dnf remove nano 或 dnf erase nano
|
||||
```
|
||||
# dnf remove nano 或 # dnf erase nano
|
||||
```
|
||||
|
||||
!14
|
||||
|
||||
**删除无用孤立的软件包**
|
||||
|
||||
用处:当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。
|
||||
|
||||
```shell
|
||||
dnf autoremove
|
||||
```
|
||||
# dnf autoremove
|
||||
```
|
||||
|
||||
!15
|
||||
|
||||
**删除缓存的无用软件包**
|
||||
|
||||
用处:在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件。
|
||||
|
||||
```shell
|
||||
dnf clean all
|
||||
```
|
||||
# dnf clean all
|
||||
```
|
||||
|
||||
!16
|
||||
|
||||
**获取有关某条命令的使用帮助**
|
||||
|
||||
用处:该命令用于获取有关某条命令的使用帮助(包括可用于该命令的参数和该命令的用途说明)(本例中我们将使用命令获取有关命令”clean”的使用帮助)
|
||||
|
||||
```shell
|
||||
dnf help clean
|
||||
```
|
||||
# dnf help clean
|
||||
```
|
||||
|
||||
!17
|
||||
|
||||
**查看所有的 DNF 命令及其用途**
|
||||
|
||||
用处:该命令用于列出所有的 DNF 命令及其用途
|
||||
|
||||
```shell
|
||||
dnf help
|
||||
```
|
||||
# dnf help
|
||||
```
|
||||
|
||||
!18
|
||||
|
||||
**查看 DNF 命令的执行历史**
|
||||
|
||||
用处:您可以使用该命令来查看您系统上 DNF 命令的执行历史。通过这个手段您可以知道在自您使用 DNF 开始有什么软件被安装和卸载。
|
||||
|
||||
```shell
|
||||
dnf history
|
||||
```
|
||||
# dnf history
|
||||
```
|
||||
|
||||
!19
|
||||
|
||||
**查看所有的软件包组**
|
||||
|
||||
用处:该命令用于列出所有的软件包组
|
||||
|
||||
```shell
|
||||
dnf grouplist
|
||||
```
|
||||
# dnf grouplist
|
||||
```
|
||||
|
||||
!20
|
||||
|
||||
**安装一个软件包组**
|
||||
|
||||
用处:该命令用于安装一个软件包组(本例中,我们将用命令安装”Educational Software”这个软件包组)
|
||||
|
||||
```shell
|
||||
dnf groupinstall ‘Educational Software’
|
||||
```
|
||||
# dnf groupinstall ‘Educational Software’
|
||||
```
|
||||
|
||||
!21
|
||||
|
||||
**升级一个软件包组中的软件包**
|
||||
|
||||
用处:该命令用于升级一个软件包组中的软件包(本例中,我们将用命令升级”Educational Software”这个软件包组中的软件)
|
||||
|
||||
```shell
|
||||
dnf groupupdate ‘Educational Software’
|
||||
```
|
||||
# dnf groupupdate ‘Educational Software’
|
||||
```
|
||||
|
||||
!22
|
||||
|
||||
**删除一个软件包组**
|
||||
|
||||
用处:该命令用于删除一个软件包组(本例中,我们将用命令删除”Educational Software”这个软件包组)
|
||||
|
||||
```shell
|
||||
dnf groupremove ‘Educational Software’
|
||||
```
|
||||
# dnf groupremove ‘Educational Software’
|
||||
```
|
||||
|
||||
!23
|
||||
|
||||
**从特定的软件包库安装特定的软件**
|
||||
|
||||
用处:该命令用于从特定的软件包库安装特定的软件(本例中我们将使用命令从软件包库 epel 中安装 phpmyadmin 软件包)
|
||||
|
||||
```
|
||||
# dnf –enablerepo=epel install phpmyadmin
|
||||
```shell
|
||||
dnf –enablerepo=epel install phpmyadmin
|
||||
```
|
||||
|
||||
**更新软件包到最新的稳定发行版**
|
||||
|
||||
用处:该命令可以通过所有可用的软件源将已经安装的所有软件包更新到最新的稳定发行版
|
||||
|
||||
```
|
||||
# dnf distro-sync
|
||||
```shell
|
||||
dnf distro-sync
|
||||
```
|
||||
|
||||
**重新安装特定软件包**
|
||||
|
||||
用处:该命令用于重新安装特定软件包(本例中,我们将使用命令重新安装”nano”这个软件包)
|
||||
|
||||
```shell
|
||||
dnf reinstall nano
|
||||
```
|
||||
# dnf reinstall nano
|
||||
```
|
||||
|
||||
!26
|
||||
|
||||
**回滚某个特定软件的版本**
|
||||
|
||||
用处:该命令用于降低特定软件包的版本(如果可能的话)(本例中,我们将使用命令降低”acpid”这个软件包的版本)
|
||||
|
||||
```
|
||||
# dnf downgrade acpid
|
||||
```shell
|
||||
dnf downgrade acpid
|
||||
```
|
||||
|
||||
样例输出:
|
||||
|
||||
```
|
||||
```shell
|
||||
Using metadata from Wed May 20 12:44:59 2015
|
||||
No match for available package: acpid-2.0.19-5.el7.x86_64
|
||||
Error: Nothing to do.
|
||||
|
|
|
|||
|
|
@ -9,17 +9,19 @@ dnsdomainname
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
dnsdomainname(选项)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```shell
|
||||
-v:详细信息模式,输出指令执行的详细信息。
|
||||
```
|
||||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@AY1307311912260196fcZ ~]# dnsdomainname -v
|
||||
gethostname()=`AY1307311912260196fcZ'
|
||||
Resolving `AY1307311912260196fcZ' ...
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ domainname
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
```shell
|
||||
domainname(选项)(参数)
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
```
|
||||
```shell
|
||||
-v:详细信息模式;
|
||||
-F:指定读取域名信息的文件。
|
||||
```
|
||||
|
|
@ -26,7 +26,7 @@ NIS域名:指定要设置的NIS域名。
|
|||
|
||||
### 实例
|
||||
|
||||
```
|
||||
```shell
|
||||
[root@AY1307311912260196fcZ ~]# domainname -v
|
||||
getdomainname()=`(none)'
|
||||
(none)
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue