root 6 years ago
parent 874a89bd26
commit 9af03e7628

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

@ -14,7 +14,7 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
(H) means HTTP/HTTPS only, (F) means FTP only (H) means HTTP/HTTPS only, (F) means FTP only
--anyauth Pick "any" authentication method (H) --anyauth Pick "any" authentication method (H)
-a, --append Append to target file when uploading (F/SFTP) -a, --append 上传时附加到目标文件(F/SFTP)
--basic Use HTTP Basic Authentication (H) --basic Use HTTP Basic Authentication (H)
--cacert FILE CA certificate to verify peer against (SSL) --cacert FILE CA certificate to verify peer against (SSL)
--capath DIR CA directory to verify peer against (SSL) --capath DIR CA directory to verify peer against (SSL)
@ -22,26 +22,26 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL) --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
--ciphers LIST SSL ciphers to use (SSL) --ciphers LIST SSL ciphers to use (SSL)
--compressed Request compressed response (using deflate or gzip) --compressed Request compressed response (using deflate or gzip)
-K, --config FILE Specify which config file to read -K, --config FILE 指定从FILE文件读取配置
--connect-timeout SECONDS Maximum time allowed for connection --connect-timeout SECONDS Maximum time allowed for connection
-C, --continue-at OFFSET Resumed transfer offset -C, --continue-at OFFSET 断点续传
-b, --cookie STRING/FILE String or file to read cookies from (H) -b, --cookie STRING/FILE String or file to read cookies from (H)
-c, --cookie-jar FILE Write cookies to this file after operation (H) -c, --cookie-jar FILE 操作完成后将cookie写入到这个文件中(H)
--create-dirs Create necessary local directory hierarchy --create-dirs Create necessary local directory hierarchy
--crlf Convert LF to CRLF in upload --crlf Convert LF to CRLF in upload
--crlfile FILE Get a CRL list in PEM format from the given file --crlfile FILE Get a CRL list in PEM format from the given file
-d, --data DATA HTTP POST data (H) -d, --data DATA HTTP POST方式传输数据(H)
--data-ascii DATA HTTP POST ASCII data (H) --data-ascii DATA HTTP POST ASCII编码方式传输数据 (H)
--data-binary DATA HTTP POST binary data (H) --data-binary DATA HTTP POST binary编码方式传输数据 (H)
--data-urlencode DATA HTTP POST data url encoded (H) --data-urlencode DATA HTTP POST data url encoded (H)
--delegation STRING GSS-API delegation permission --delegation STRING GSS-API delegation permission
--digest Use HTTP Digest Authentication (H) --digest 使用HTTP数字身份认证(H)
--disable-eprt Inhibit using EPRT or LPRT (F) --disable-eprt 禁止使用EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F) --disable-epsv 禁止使用EPSV (F)
-D, --dump-header FILE Write the headers to this file -D, --dump-header FILE 把header信息写入到FILE文件
--egd-file FILE EGD socket path for random data (SSL) --egd-file FILE 为随机数据设置EGD socket路径 (SSL)
--engine ENGINGE Crypto engine (SSL). "--engine list" for list --engine ENGINGE Crypto engine (SSL). "--engine list" for list
-f, --fail Fail silently (no output at all) on HTTP errors (H) -f, --fail HTTP连接失败时不显示错误 (H)
-F, --form CONTENT Specify HTTP multipart POST data (H) -F, --form CONTENT Specify HTTP multipart POST data (H)
--form-string STRING Specify HTTP multipart POST data (H) --form-string STRING Specify HTTP multipart POST data (H)
--ftp-account DATA Account data string (F) --ftp-account DATA Account data string (F)
@ -49,34 +49,33 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
--ftp-create-dirs Create the remote dirs if not present (F) --ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F) --ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F) --ftp-pasv Use PASV/EPSV instead of PORT (F)
-P, --ftp-port ADR Use PORT with given address instead of PASV (F) -P, --ftp-port ADR 使用端口地址而不是使用PASV (F)
--ftp-skip-pasv-ip Skip the IP address for PASV (F) --ftp-skip-pasv-ip Skip the IP address for PASV (F)
--ftp-pret Send PRET before PASV (for drftpd) (F) --ftp-pret Send PRET before PASV (for drftpd) (F)
--ftp-ssl-ccc Send CCC after authenticating (F) --ftp-ssl-ccc Send CCC after authenticating (F)
--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F) --ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)
--ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F) --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)
-G, --get Send the -d data with a HTTP GET (H) -G, --get Send the -d data with a HTTP GET (H)
-g, --globoff Disable URL sequences and ranges using {} and [] -g, --globoff 禁用网址序列和范围使用 {} and []
-H, --header LINE Custom header to pass to server (H) -H, --header LINE 自定义头消息传递给服务器 (H)
-I, --head Show document info only -I, --head Show document info only
-h, --help This help text
--hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH) --hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH)
-0, --http1.0 Use HTTP 1.0 (H) -0, --http1.0 Use HTTP 1.0 (H)
--ignore-content-length Ignore the HTTP Content-Length header --ignore-content-length Ignore the HTTP Content-Length header
-i, --include Include protocol headers in the output (H/F) -i, --include Include protocol headers in the output (H/F)
-k, --insecure Allow connections to SSL sites without certs (H) -k, --insecure 允许连接不使用证书连接到SSL站点 (H)
--interface INTERFACE Specify network interface/address to use --interface INTERFACE Specify network interface/address to use
-4, --ipv4 Resolve name to IPv4 address -4, --ipv4 Resolve name to IPv4 address
-6, --ipv6 Resolve name to IPv6 address -6, --ipv6 Resolve name to IPv6 address
-j, --junk-session-cookies Ignore session cookies read from file (H) -j, --junk-session-cookies 忽略从文件中读取的session cookie (H)
--keepalive-time SECONDS Interval between keepalive probes --keepalive-time SECONDS Interval between keepalive probes
--key KEY Private key file name (SSL/SSH) --key KEY Private key file name (SSL/SSH)
--key-type TYPE Private key file type (DER/PEM/ENG) (SSL) --key-type TYPE Private key file type (DER/PEM/ENG) (SSL)
--krb LEVEL Enable Kerberos with specified security level (F) --krb LEVEL Enable Kerberos with specified security level (F)
--libcurl FILE Dump libcurl equivalent code of this command line --libcurl FILE Dump libcurl equivalent code of this command line
--limit-rate RATE Limit transfer speed to this rate --limit-rate RATE Limit transfer speed to this rate
-l, --list-only List only names of an FTP directory (F) -l, --list-only 仅列出ftp目录的名称(F)
--local-port RANGE Force use of these local port numbers --local-port RANGE 强制使用RANGE内的本地端口号
-L, --location Follow redirects (H) -L, --location Follow redirects (H)
--location-trusted like --location and send auth to other hosts (H) --location-trusted like --location and send auth to other hosts (H)
-M, --manual Display the full manual -M, --manual Display the full manual
@ -85,18 +84,18 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
--mail-auth AUTH Originator address of the original email --mail-auth AUTH Originator address of the original email
--max-filesize BYTES Maximum file size to download (H/F) --max-filesize BYTES Maximum file size to download (H/F)
--max-redirs NUM Maximum number of redirects allowed (H) --max-redirs NUM Maximum number of redirects allowed (H)
-m, --max-time SECONDS Maximum time allowed for the transfer -m, --max-time SECONDS 设置最大传输时间
--metalink Process given URLs as metalink XML file --metalink Process given URLs as metalink XML file
--negotiate Use HTTP Negotiate Authentication (H) --negotiate Use HTTP Negotiate Authentication (H)
-n, --netrc Must read .netrc for user name and password -n, --netrc 必须从.netrc文件读取用户和密码
--netrc-optional Use either .netrc or URL; overrides -n --netrc-optional Use either .netrc or URL; overrides -n
--netrc-file FILE Set up the netrc filename to use --netrc-file FILE Set up the netrc filename to use
-N, --no-buffer Disable buffering of the output stream -N, --no-buffer 禁用buffer缓存输出
--no-keepalive Disable keepalive use on the connection --no-keepalive Disable keepalive use on the connection
--no-sessionid Disable SSL session-ID reusing (SSL) --no-sessionid Disable SSL session-ID reusing (SSL)
--noproxy List of hosts which do not use proxy --noproxy List of hosts which do not use proxy
--ntlm Use HTTP NTLM authentication (H) --ntlm Use HTTP NTLM authentication (H)
-o, --output FILE Write output to <file> instead of stdout -o, --output FILE 将输出吸入到FILE取代默认输出stdout
--pass PASS Pass phrase for the private key (SSL/SSH) --pass PASS Pass phrase for the private key (SSL/SSH)
--post301 Do not switch to GET after following a 301 redirect (H) --post301 Do not switch to GET after following a 301 redirect (H)
--post302 Do not switch to GET after following a 302 redirect (H) --post302 Do not switch to GET after following a 302 redirect (H)
@ -112,17 +111,17 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
--proxy-ntlm Use NTLM authentication on the proxy (H) --proxy-ntlm Use NTLM authentication on the proxy (H)
-U, --proxy-user USER[:PASSWORD] Proxy user and password -U, --proxy-user USER[:PASSWORD] Proxy user and password
--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port --proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port
-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT) -p, --proxytunnel 使用HTTP代理隧道 (using CONNECT)
--pubkey KEY Public key file name (SSH) --pubkey KEY Public key file name (SSH)
-Q, --quote CMD Send command(s) to server before transfer (F/SFTP) -Q, --quote CMD 传输之前发送命令到服务器 (F/SFTP)
--random-file FILE File for reading random data from (SSL) --random-file FILE File for reading random data from (SSL)
-r, --range RANGE Retrieve only the bytes within a range -r, --range RANGE 仅检索RANGE范围内的字节
--raw Do HTTP "raw", without any transfer decoding (H) --raw Do HTTP "raw", without any transfer decoding (H)
-e, --referer Referer URL (H) -e, --referer Referer URL (H)
-J, --remote-header-name Use the header-provided filename (H) -J, --remote-header-name Use the header-provided filename (H)
-O, --remote-name Write output to a file named as the remote file -O, --remote-name 将输出写入到文件并以远程文件名称作为输出文件的名称
--remote-name-all Use the remote file name for all URLs --remote-name-all Use the remote file name for all URLs
-R, --remote-time Set the remote file's time on the local output -R, --remote-time 输出到本地文件时保留远程文件的时间
-X, --request COMMAND Specify request command to use -X, --request COMMAND Specify request command to use
--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS --resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
--retry NUM Retry request NUM times if transient problems occur --retry NUM Retry request NUM times if transient problems occur
@ -147,7 +146,7 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
--ssl-allow-beast Allow security flaw to improve interop (SSL) --ssl-allow-beast Allow security flaw to improve interop (SSL)
--stderr FILE Where to redirect stderr. - means stdout --stderr FILE Where to redirect stderr. - means stdout
--tcp-nodelay Use the TCP_NODELAY option --tcp-nodelay Use the TCP_NODELAY option
-t, --telnet-option OPT=VAL Set telnet option -t, --telnet-option OPT=VAL 设置telnet选项
--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512) --tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)
-z, --time-cond TIME Transfer based on a time condition -z, --time-cond TIME Transfer based on a time condition
-1, --tlsv1 Use => TLSv1 (SSL) -1, --tlsv1 Use => TLSv1 (SSL)
@ -158,20 +157,20 @@ curl为下载工具。作为一款强力工具curl支持包括HTTP、HTTPS、
--trace-ascii FILE Like --trace but without the hex output --trace-ascii FILE Like --trace but without the hex output
--trace-time Add time stamps to trace/verbose output --trace-time Add time stamps to trace/verbose output
--tr-encoding Request compressed transfer encoding (H) --tr-encoding Request compressed transfer encoding (H)
-T, --upload-file FILE Transfer FILE to destination -T, --upload-file FILE 上传文件FILE
--url URL URL to work with --url URL URL to work with
-B, --use-ascii Use ASCII/text transfer -B, --use-ascii 使用ASCII/text传输
-u, --user USER[:PASSWORD] Server user and password -u, --user USER[:PASSWORD] 设置服务器的用户和密码
--tlsuser USER TLS username --tlsuser USER TLS username
--tlspassword STRING TLS password --tlspassword STRING TLS password
--tlsauthtype STRING TLS authentication type (default SRP) --tlsauthtype STRING TLS authentication type (default SRP)
--unix-socket FILE Connect through this UNIX domain socket --unix-socket FILE Connect through this UNIX domain socket
-A, --user-agent STRING User-Agent to send to server (H) -A, --user-agent STRING 设置User-Agent发送给服务器(H)
-v, --verbose Make the operation more talkative -v, --verbose Make the operation more talkative
-V, --version Show version number and quit -V, --version Show version number and quit
-w, --write-out FORMAT What to output after completion -w, --write-out FORMAT What to output after completion
--xattr Store metadata in extended file attributes --xattr Store metadata in extended file attributes
-q If used as the first parameter disables .curlrc -q 使用时必须作为第一个参数用来关闭.curlrc
``` ```

@ -18,22 +18,7 @@ shell变量声明shell变量格式为“变量名=值”
## 实例 ## 实例
首先使用declare命令定义shell变量"test",并且将其值设置为"man.linuxde.net",输入如下命令: ```bash
declare test='man.linuxde.net' # 定义并初始化test变量
```
declare test='man.linuxde.net' #定义并初始化shell变量
```
上面的命令执行后再使用echo命令将该shell变量值输出输入如下命令
```
echo $test #输出shell变量的值
``` ```
上面的指令执行后,其输出的结果如下:
```
man.linuxde.net
```

@ -27,7 +27,7 @@ dhcpd [选项] [网络接口]
-tf <跟踪输出文件> 指定文件记录DHCP服务器的整个启动状态 -tf <跟踪输出文件> 指定文件记录DHCP服务器的整个启动状态
``` ```
### ##
对DHCP服务器进行排错 对DHCP服务器进行排错

@ -25,7 +25,7 @@ dhcrelay [选项] [DHCP服务器]
-d 强制dhcrelay命令作为前台进程运行 -d 强制dhcrelay命令作为前台进程运行
``` ```
### ##
指定DHCP服务器的位置 指定DHCP服务器的位置

@ -1,7 +1,4 @@
diff3 # diff3
===
比较3个文件不同的地方
## 说明 ## 说明
@ -9,13 +6,7 @@ diff3
## 选项 ## 选项
``` ```markdown
diff3(选项)(参数)
```
```
-a把所有的文件都当做文本文件按照行为单位进行比较即给定的文件不是文本文件 -a把所有的文件都当做文本文件按照行为单位进行比较即给定的文件不是文本文件
-A合并第2个文件和第3个文件之间的不同到第1个文件中有冲突内容用括号括起来 -A合并第2个文件和第3个文件之间的不同到第1个文件中有冲突内容用括号括起来
-B与选项“-A”功能相同但是不显示冲突的内容 -B与选项“-A”功能相同但是不显示冲突的内容
@ -25,10 +16,10 @@ diff3(选项)(参数)
--initial-tab在正常格式的行的文本前输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范 --initial-tab在正常格式的行的文本前输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范
``` ```
### 参数 ## 实例
* 文件1指定要比较的第1个文件 ```bash
* 文件2指定要比较的第2个文件
* 文件3指定要比较的第3个文件 ```

@ -1,7 +1,4 @@
dig # **dig**
===
域名查询工具
## 说明 ## 说明
@ -9,13 +6,7 @@ dig
## 选项 ## 选项
``` ```markdown
dig(选项)(参数)
```
```
@<服务器地址>:指定进行域名解析的域名服务器 @<服务器地址>:指定进行域名解析的域名服务器
-b<ip>当主机具有多个IP地址指定使用本机的哪个IP地址向域名服务器发送域名查询请求 -b<ip>当主机具有多个IP地址指定使用本机的哪个IP地址向域名服务器发送域名查询请求
-f<文件名称>指定dig以批处理的方式运行指定的文件中保存着需要批处理查询的DNS任务信息 -f<文件名称>指定dig以批处理的方式运行指定的文件中保存着需要批处理查询的DNS任务信息
@ -27,39 +18,11 @@ dig(选项)(参数)
-h显示指令帮助信息 -h显示指令帮助信息
``` ```
### 参数
* 主机:指定要查询域名主机
* 查询类型指定DNS查询的类型
* 查询类指定查询DNS的class
* 查询选项:指定查询选项
## 实例 ## 实例
``` ```bash
[root@localhost ~]# dig www.jsdig.com dig www.jsdig.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.1 <<>> www.jsdig.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2115
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;www.jsdig.com. IN A
;; ANSWER SECTION:
www.jsdig.com. 0 IN CNAME host.1.jsdig.com.
host.1.jsdig.com. 0 IN A 100.42.212.8
;; AUTHORITY SECTION:
jsdig.com. 8 IN NS f1g1ns2.dnspod.net.
jsdig.com. 8 IN NS f1g1ns1.dnspod.net.
;; Query time: 0 msec
;; SERVER: 202.96.104.15#53(202.96.104.15)
;; WHEN: Thu Dec 26 11:14:37 2013
;; MSG SIZE rcvd: 121
``` ```

@ -1,144 +1,22 @@
dircolors # dircolors
===
置ls命令在显示目录或文件时所用的色彩
## 说明 ## 说明
**dircolors命令** 设置ls命令在显示目录或文件时所用的色彩。dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或是显示设置LS_COLORS环境变量的命令 **dircolors命令** 设置ls命令在显示目录或文件时所用的色彩。dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或是显示设置
LS_COLORS环境变量的命令
## 选项 ## 选项
```markdown
-b, --sh, --bourne-shell 输出设置LS_COLORS 的Bourne shell 命令
-c, --csh, --c-shell 输出设置LS_COLORS 的C shell 命令
-p, --print-database 输出默认的色彩设置
``` ```
dircolors(选项)(参数)
```
```
-b或--sh或--bourne-shell显示在Boume shell中将LS_COLORS设为目前预设置的shell指令
-c或--csh或--c-shell显示在C shell中将LS_COLORS设为目前预设置的shell指令
-p或--print-database显示预设置
-help显示帮助
-version显示版本信息
```
### 参数
文件:指定用来设置颜色的文件
## 实例 ## 实例
``` ```bash
[root@localhost ~]# dircolors -p 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.
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
# Below, there should be one TERM entry for each termtype that is colorizable
TERM linux
TERM linux-c
TERM mach-color
TERM console
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cygwin
TERM dtterm
TERM putty
TERM xterm
TERM xterm-color
TERM xterm-debian
TERM rxvt
TERM screen
TERM screen-bce
TERM screen-w
TERM vt100
TERM Eterm
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
NORMAL 00 # global default, although everything should be something.
FILE 00 # normal file
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
exec 01;32
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
.tar 01;31 # archives or compressed (bright red)
.tgz 01;31
.arj 01;31
.taz 01;31
.lzh 01;31
.zip 01;31
.z 01;31
.Z 01;31
.gz 01;31
.bz2 01;31
.deb 01;31
.rpm 01;31
.jar 01;31
# image formats
.jpg 01;35
.jpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.png 01;35
.mov 01;35
.mpg 01;35
.mpeg 01;35
.avi 01;35
.fli 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35
# audio formats
.flac 01;35
.mp3 01;35
.mpc 01;35
.ogg 01;35
.wav 01;35
``` ```

@ -1,21 +1,13 @@
dirs # dirs
===
显示目录记录
## 说明 ## 说明
**dirs命令** 显示当前目录栈中的所有记录不带参数的dirs命令显示当前目录栈中的记录。dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录 **dirs命令** 显示当前目录栈中的所有记录不带参数的dirs命令显示当前目录栈中的记录。dirs始终显示当然目录, 再是堆栈中的内容;
即使目录堆栈为空, dirs命令仍然只显示当然目录
## 选项 ## 选项
``` ```markdown
dirs(选项)(参数)
```
```
-c删除目录栈中的所有记录 -c删除目录栈中的所有记录
-l以完整格式显示 -l以完整格式显示
-p一个目录一行的方式显示 -p一个目录一行的方式显示
@ -25,15 +17,10 @@ dirs(选项)(参数)
``` ```
### 参数
目录:显示目录堆叠中的记录
## 实例 ## 实例
``` ```bash
[root@localhost etc]# dirs dirs
/etc
``` ```

@ -1,53 +1,64 @@
dmesg # **dmesg**
===
显示Linux系统启动信息
## 说明 ## 说明
**dmesg命令** 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息可利用dmesg来查看。开机信息保存在`/var/log/dmesg`文件里 **dmesg命令** 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息可利用dmesg来查看。
开机信息保存在`/var/log/dmesg`文件里
## 选项 ## 选项
``` ```markdown
dmesg(选项) -C, --clear 清除内核环形缓冲区(ring butter)
``` -c, --read-clear 读取并清除所有消息
-D, --console-off 禁止向终端打印消息
-d, --show-delta 显示打印消息之间的时间差
-e, --reltime 以易读格式显示本地时间和时间差
-E, --console-on 启用向终端打印消息
-F, --file <文件> 用 文件 代替内核日志缓冲区
-f, --facility <列表> 将输出限制为定义的设施
-H, --human 易读格式输出
-k, --kernel 显示内核消息
-L, --color 显示彩色消息
-l, --level <列表> 限制输出级别
-n, --console-level <级别> 设置打印到终端的消息级别
-P, --nopager 不将输出通过管道传递给分页程序
-r, --raw 打印原生消息缓冲区
-S, --syslog 强制使用 syslog(2) 而非 /dev/kmsg
-s, --buffer-size <大小> 查询内核环形缓冲区所用的缓冲区大小
-T, --ctime 显示易读的时间戳(如果您使用了
SUSPEND/RESUME 则可能不准)
-t, --notime 不打印消息时间戳
-u, --userspace 显示用户空间消息
-w, --follow 等待新消息
-x, --decode 将设施和级别解码为可读的字符串
支持的日志设施:
kern - 内核消息
user - 随机的用户级消息
mail - 邮件系统
daemon - 系统守护进程
auth - 安全/认证消息
syslog - syslogd 内部生成的消息
lpr - 行打印机子系统
news - 网络新闻子系统
``` 支持的日志级别(优先级)
-c显示信息后清除ring buffer中的内容 emerg - 系统无法使用
-s<缓冲区大小>预设置为8196刚好等于ring buffer的大小 alert - 操作必须立即执行
-n设置记录信息的层级 crit - 紧急条件
``` err - 错误条件
warn - 警告条件
## 实例 notice - 正常但重要的条件
info - 信息
debug - 调试级别的消息
``` ```
[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:
BIOS-e820: 0000000000010000 - 000000000009f400 (usable)
BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000007f590000 (usable)
BIOS-e820: 000000007f590000 - 000000007f5e3000 (ACPI NVS)
BIOS-e820: 000000007f5e3000 - 000000007f5f0000 (ACPI data)
BIOS-e820: 000000007f5f0000 - 000000007f600000 (reserved)
BIOS-e820: 00000000e0000000 - 00000000e8000000 (reserved)
```
查看硬盘基础信息 ## 实例
```bash ```bash
dmesg | grep sda dmesg | grep sda # 查看硬盘基础信息
[ 2.442555] sd 0:0:0:0: [sda] 488281250 512-byte logical blocks: (250 GB/232 GiB)
[ 2.442590] sd 0:0:0:0: [sda] Write Protect is off
[ 2.442592] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 2.442607] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.447533] sda: sda1
[ 2.448503] sd 0:0:0:0: [sda] Attached SCSI disk
``` ```

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

@ -2,7 +2,7 @@
## 说明 ## 说明
```info ```markdown
-i安装软件包 -i安装软件包
-r删除软件包 -r删除软件包
-P删除软件包的同时删除其配置文件 -P删除软件包的同时删除其配置文件
@ -13,24 +13,20 @@
--confiugre配置软件包 --confiugre配置软件包
``` ```
### 参数
Deb软件包指定要操作的.deb软件包
## 实例 ## 实例
``` ```bash
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n | 显示所有在deb发布版上安装的包并以KB包大小为序 dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n # 显示所有在deb发布版上安装的包并以KB包大小为序
dpkg -i package.deb #安装包 dpkg -i package.deb #安装包
dpkg -r package #删除包 dpkg -r package #删除包
dpkg -P package #删除包(包括配置文件) dpkg -P package #删除包(包括配置文件)
dpkg -L package #列出与该包关联的文件 dpkg -L package #列出与该包关联的文件
dpkg -l package #显示该包的版本 dpkg -l package #显示该包的版本
dpkg --unpack package.deb #解开deb包的内容 dpkg --unpack package.deb #解开deb包的内容
dpkg -S keyword #搜索所属的包内容 dpkg -S keyword #搜索所属的包内容
dpkg -l #列出当前已安装的包 dpkg -l #列出当前已安装的包
dpkg -c package.deb #列出deb包的内容 dpkg -c package.deb #列出deb包的内容
dpkg --configure package #配置包 dpkg --configure package #配置包
echo -e "$(( $(dpkg -l | wc -l) -5 ))" # 所有已安装的包总数 echo -e "$(( $(dpkg -l | wc -l) -5 ))" # 所有已安装的包总数
``` ```

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

@ -0,0 +1,25 @@
# dumpe2fs
## 说明
**dumpe2fs命令** 转储ext2/ext3/ext4文件系统信息
## 选项
```markdown
-b 打印在文件系统中被保留为错误的块
-o superblock=superblock 检查文件系统时,请使用块超级块。 除非文件系统向导正在检查严重损坏的文件系统的剩余部分,否则通常不需要此选项
-o blocksize=blocksize 检查文件系统时,使用块大小字节的块。 除非文件系统向导正在检查严重损坏的文件系统的剩余部分,否则通常不需要此选项
-f 强制dumpe2fs显示文件系统即使它可能具有dumpe2fs可能不理解的某些文件系统功能标志并且可能导致dumpe2fs的某些显示值得怀疑
-h 仅显示超级块信息,而不显示任何块组描述符详细信息
-i 使用设备作为映像文件的路径名显示e2image创建的映像文件中的文件系统数据
-x 以十六进制格式打印详细的组信息块号
```
## 实例
```bash
```

@ -4,7 +4,8 @@
**export命令** 用于将shell变量输出为环境变量或者将shell函数输出为环境变量 **export命令** 用于将shell变量输出为环境变量或者将shell函数输出为环境变量
一个变量创建时它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时它不会自动得到原为脚本调用者里定义的变量的访问权除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本 一个变量创建时它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时
不会自动得到原为脚本调用者里定义的变量的访问权除非变量已经被显式的设置为可用。export命令可用于传递一个或多个变量的值到任何后续脚本
## 选项 ## 选项
@ -16,30 +17,9 @@
## 实例 ## 实例
一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。查看已经存在的环境变量: ```bash
export # 查看当前已存在所有环境变量
``` ```
[root@localhost ~]# export
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x hostname="localhost"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="zh_CN.UTF-8"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x logname="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x mail="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x pwd="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="192.168.2.111 2705 22"
declare -x SSH_CONNECTION="192.168.2.111 2705 192.168.2.2 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="linux"
declare -x USER="root"
```

@ -1,7 +1,4 @@
expr # **expr**
===
一款表达式计算工具
## 说明 ## 说明
@ -9,45 +6,38 @@ expr
## 选项 ## 选项
```sh ```markdown
用法expr 表达式
 expr 选项
--help 显示此帮助信息并退出
--version 显示版本信息并退出
将表达式的值列印到标准输出,分隔符下面的空行可提升算式优先级 将表达式的值列印到标准输出,分隔符下面的空行可提升算式优先级
可用的表达式有: 可用的表达式有:
ARG1 | ARG2 若ARG1 的值不为0 或者为空则返回ARG1否则返回ARG2 ARG1 | ARG2 若ARG1 的值不为0 或者为空则返回ARG1否则返回ARG2
ARG1 & ARG2 若两边的值都不为0 或为空则返回ARG1否则返回 0 ARG1 & ARG2 若两边的值都不为0 或为空则返回ARG1否则返回 0
ARG1 < ARG2 ARG1 ARG2 ARG1 < ARG2 ARG1 ARG2
ARG1 <= ARG2 ARG1 小于或等于ARG2 ARG1 <= ARG2 ARG1 小于或等于ARG2
ARG1 = ARG2 ARG1 等于ARG2 ARG1 = ARG2 ARG1 等于ARG2
ARG1 != ARG2 ARG1 不等于ARG2 ARG1 != ARG2 ARG1 不等于ARG2
ARG1 >= ARG2 ARG1 大于或等于ARG2 ARG1 >= ARG2 ARG1 大于或等于ARG2
ARG1 > ARG2 ARG1 大于ARG2 ARG1 > ARG2 ARG1 大于ARG2
ARG1 + ARG2 计算 ARG1 与ARG2 相加之和 ARG1 + ARG2 计算 ARG1 与ARG2 相加之和
ARG1 - ARG2 计算 ARG1 与ARG2 相减之差 ARG1 - ARG2 计算 ARG1 与ARG2 相减之差
ARG1 * ARG2 计算 ARG1 与ARG2 相乘之积 ARG1 * ARG2 计算 ARG1 与ARG2 相乘之积
ARG1 / ARG2 计算 ARG1 与ARG2 相除之商 ARG1 / ARG2 计算 ARG1 与ARG2 相除之商
ARG1 % ARG2 计算 ARG1 与ARG2 相除之余数 ARG1 % ARG2 计算 ARG1 与ARG2 相除之余数
字符串 : 表达式 定位字符串中匹配表达式的模式 字符串 : 表达式 定位字符串中匹配表达式的模式
match 字符串 表达式 等于"字符串 :表达式" match 字符串 表达式 等于"字符串 :表达式"
substr 字符串 偏移量 长度 替换字符串的子串,偏移的数值从 1 起计 substr 字符串 偏移量 长度 替换字符串的子串,偏移的数值从 1 起计
index 字符串 字符 在字符串中发现字符的地方建立下标或者标0 index 字符串 字符 在字符串中发现字符的地方建立下标或者标0
length 字符串 字符串的长度 length 字符串 字符串的长度
+ TOKEN interpret TOKEN as a string, even if it is a + TOKEN interpret TOKEN as a string, even if it is a
keyword like 'match' or an operator like '/' keyword like 'match' or an operator like '/'
( EXPRESSION ) value of EXPRESSION ( EXPRESSION ) value of EXPRESSION
请注意有许多运算操作符都可能需要由 shell 先实施转义 请注意有许多运算操作符都可能需要由 shell 先实施转义
如果参与运算的 ARG 自变量都是数字,比较符就会被视作数学符号,否则就是多义的 如果参与运算的 ARG 自变量都是数字,比较符就会被视作数学符号,否则就是多义的
@ -59,25 +49,14 @@ expr
``` ```
```
--help显示指令的帮助信息
--version显示指令版本信息
```
### 参数
表达式:要求值的表达式
## 实例 ## 实例
``` ```bash
expr dfa : '[a-zA-Z]*' # expr也有正则匹配功能。通过指定冒号选项计算字符串中字符数输出为3
result=`expr 2 + 3` result=`expr 2 + 3`
result=$(expr $no1 + 5) result=$(expr $no1 + 5)
expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次
expr dfa : '[a-zA-Z]*' #输出是3
``` ```

@ -1,57 +1,26 @@
fc # **fc**
===
修改历史命令并执行
## 说明 ## 说明
**fc命令** 自动掉用vi编辑器修改已有历史命令当保存时立即执行修改后的命令也可以用来显示历史命令。fc命令编辑历史命令时会自动调用vi编辑器。fc保存文件后会自动执行所编辑过的命令 **fc命令** 自动掉用vi编辑器修改已有历史命令当保存时立即执行修改后的命令也可以用来显示历史命令。fc命令编辑历史命令时
会自动调用vi编辑器。fc保存文件后会自动执行所编辑过的命令
## 选项 ## 选项
``` ```markdown
fc [-e 编辑器名] [-lnr] [起始] [终结] 用法:fc [-e 编辑器名] [-lnr] [起始] [终结] 或 fc -s [模式=替换串] [命令]
fc -s [模式=替换串] [命令]
```
``` -l
-l显示历史命令
-n显示历史命令时不显示编号 -n显示历史命令时不显示编号
-r反序显示历史命令 -r反序显示历史命令
```
### 参数 ```
* 起始指令编号:指定要编辑的起始指令编号
* 结尾指令编号:指定要编辑的结尾指令编号
## 实例 ## 实例
使用该指令显示最近使用的10条历史命令输入如下命令 ```bash
fc -l -10 #显示10条历史命令
``` ```
[root@localhost ~]# fc -l -10 #显示10条历史命令
1039 type -a grep
1040 export
1041 history 10
1042 ulimit -a
1043 shopt
1044 help ls
1045 help env
1046 help short
1047 help shopt
1048 showkey -a
```
第一列信息是历史命令的编号第二列信息是历史命令的具体格式。若用户需要编辑第1040条历史命令时则输入如下命令
```
fc 1040 #编辑第1040条历史命令
```
命令执行成功后将自动调用vi编辑器编辑指定的命令编辑完成后保存会自动执行修改后的命令。当用户在vi编辑器中修改指令并保存后被修改的命令会被自动调用并执行

@ -1,7 +1,4 @@
fmt # fmt
===
读取文件后优化处理并输出
## 说明 ## 说明
@ -9,23 +6,15 @@ fmt
## 选项 ## 选项
``` ```markdown
fmt(选项)(参数) -c --crown-margin 保持前两行的缩进
``` -p, --prefix=字符串 只对以指定字符串开头的行重新格式化,将前缀重新附着到被重新格式化的行上
-s, --split-only 分割过长的行,但不自动补足
-t, --tagged-paragraph indentation of first line different from second
-u, --uniform-spacing one space between words, two after sentences
-w, --width=WIDTH maximum line width (default of 75 columns)
-g, --goal=WIDTH goal width (default of 93% of width)
``` ```
-c或--crown-margin每段前两列缩排
-p<列起始字符串>或-prefix=<列起始字符串>:仅合并含有指定字符串的列,通常运用在程序语言的注解方面
-s或--split-only只拆开字数超出每列字符数的列但不合并字数不足每列字符数的列
-t或--tagged-paragraph每列前两列缩排但第1列和第2列的缩排格式不同
-u或--uniform-spacing每列字符之间都以一个空格字符间隔每个句子之间则两个空格字符分隔
-w<每列字符数>或--width=<每列字符数>或-<每列字符数>:设置每列的最大字符数
```
### 参数
指定要优化格式的文件

@ -6,7 +6,7 @@
## 选项 ## 选项
```bash ```markdown
-b, --bytes Bytes为单位显示内存使用 -b, --bytes Bytes为单位显示内存使用
-k, --kilo KB为单位显示内存使用(默认) -k, --kilo KB为单位显示内存使用(默认)
-m, --mega MB为单位显示内存使用 -m, --mega MB为单位显示内存使用
@ -60,19 +60,18 @@ available 估计可用于启动新应用程序的内存量,而无需交换
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式 为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式
Buffer Cache和Page Cache。前者针对磁盘块的读写后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间 Buffer Cache和Page Cache。前者针对磁盘块的读写后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)
磁盘的操作有逻辑级文件系统和物理级磁盘块这两种Cache就是分别缓存逻辑和物理级数据的 的时间磁盘的操作有逻辑级文件系统和物理级磁盘块这两种Cache就是分别缓存逻辑和物理级数据的
Page cache实际上是针对文件系统的是文件的缓存在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘这种映射关系由
文件系统来完成。当page cache的数据需要刷新时page cache中的数据交给buffer cache因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了没有真正意义上的cache操作
Buffer cache是针对磁盘块的缓存也就是在没有文件系统的情况下直接对磁盘进行操作的数据会缓存到buffer cache中例如文件系统的元数据都会缓存到buffer cache中
简单说来page cache用来缓存文件数据buffer cache用来缓存磁盘数据。在有文件系统的情况下对文件操作那么数据会缓存到page cache如果直接采用dd等工具对磁盘进行读写那么数据会缓存到buffer cache Page cache实际上是针对文件系统的是文件的缓存在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘这种映射关系
由文件系统来完成。当page cache的数据需要刷新时page cache中的数据交给buffer cache因为Buffer Cache就是缓存磁盘块的。但是这种处理
在2.6版本的内核之后就变的很简单了没有真正意义上的cache操作
所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准. Buffer cache是针对磁盘块的缓存也就是在没有文件系统的情况下直接对磁盘进行操作的数据会缓存到buffer cache中例如
文件系统的元数据都会缓存到buffer cache中
如果是应用服务器的话,+buffers/cache,即对应用程序来说free的内存太少了也是该考虑优化程序或加内存了 简单说来page cache用来缓存文件数据buffer cache用来缓存磁盘数据。在有文件系统的情况下对文件操作那么数据会缓存到page cache
如果直接采用dd等工具对磁盘进行读写那么数据会缓存到buffer cache
``` ```

@ -1,7 +1,4 @@
# **fsck** # **fsck**
===
检查并且试图修复文件系统中的错误
## 说明 ## 说明
@ -9,13 +6,7 @@
## 选项 ## 选项
``` ```markdown
fsck(选项)(参数)
```
```
-a自动修复文件系统不询问任何问题 -a自动修复文件系统不询问任何问题
-A依照/etc/fstab配置文件的内容检查文件内所列的全部文件系统 -A依照/etc/fstab配置文件的内容检查文件内所列的全部文件系统
-N不执行指令仅列出实际执行会进行的动作 -N不执行指令仅列出实际执行会进行的动作
@ -26,30 +17,26 @@ fsck(选项)(参数)
-t<文件系统类型>:指定要检查的文件系统类型 -t<文件系统类型>:指定要检查的文件系统类型
-T执行fsck指令时不显示标题信息 -T执行fsck指令时不显示标题信息
-V显示指令执行过程 -V显示指令执行过程
```
### 参数 fsck返回的退出代码是以下条件的总和:
文件系统:指定要查看信息的文件系统 0 No errors
1 Filesystem errors corrected
2 System should be rebooted
4 Filesystem errors left uncorrected
8 Operational error
16 Usage or syntax error
32 Checking canceled by user request
128 Shared-library error
## 实例
linux的文件系统损坏会导致linux不正常关机出错的时候如果系统告诉你是哪一块硬盘的分区有问题比如是`/dev/hda2`,接着用如下的命令去对付它:
```
fsck -y /dev/hda2
``` ```
结束后使用reboot命令重启系统这样就好了 ## 实例
如果不知道时哪个地方出了问题,可以直接: ```bash
fsck -y /dev/hda2 # linux不正常关机可能会导致文件损坏例如用fsck修复/dev/hda2
``` ```
fsck
```
在随后的多个确认对话框中输入`:y`
结束后同样使用reboot命令重启系统这样就好了

@ -1,21 +1,13 @@
ftp # ftp
===
用来设置文件系统相关功能
## 说明 ## 说明
**ftp命令** 用来设置文件系统相关功能。ftp服务器在网上较为常见Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件这里详细介绍Linux ftp命令的一些经常使用的命令相信掌握了这些使用Linux进行ftp操作将会非常容易 **ftp命令** 用来设置文件系统相关功能。ftp服务器在网上较为常见Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件
这里详细介绍Linux ftp命令的一些经常使用的命令相信掌握了这些使用Linux进行ftp操作将会非常容易
## 选项 ## 选项
``` ```markdown
ftp(选项)(参数)
```
```
-d详细显示指令执行过程便于排错或分析程序执行的情况 -d详细显示指令执行过程便于排错或分析程序执行的情况
-i关闭互动模式不询问任何问题 -i关闭互动模式不询问任何问题
-g关闭本地主机文件名称支持特殊字符的扩充特性 -g关闭本地主机文件名称支持特殊字符的扩充特性
@ -23,69 +15,44 @@ ftp(选项)(参数)
-v显示指令执行过程 -v显示指令执行过程
``` ```
### 参数
主机指定要连接的FTP服务器的主机名或ip地址
## 实例 ## 实例
```bash ```markdown
ftp> ascii # 设定以ASCII方式传送文件(缺省值) ftp> ascii # 设定以ASCII方式传送文件(缺省值
ftp> bell # 每完成一次文件传送,报警提示. ftp> bell # 每完成一次文件传送,报警提示
ftp> binary # 设定以二进制方式传送文件. ftp> binary # 设定以二进制方式传送文件
ftp> bye # 终止主机FTP进程,并退出FTP管理方式. ftp> bye # 终止主机FTP进程,并退出FTP管理方式
ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母
ftp> cd # 同UNIX的CD命令. ftp> cd # 同UNIX的CD命令
ftp> cdup # 返回上一级目录. ftp> cdup # 返回上一级目录
ftp> chmod # 改变远端主机的文件权限. ftp> chmod # 改变远端主机的文件权限
ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除
ftp> delete # 删除远端主机中的文件. ftp> delete # 删除远端主机中的文件
ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件
ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中. ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中
ftp> help [command] # 输出命令的解释. ftp> help [command] # 输出命令的解释
ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录
ftp> ls [remote-directory] [local-file] # 同DIR. ftp> ls [remote-directory] [local-file] # 同DIR
ftp> macdef # 定义宏命令. ftp> macdef # 定义宏命令
ftp> mdelete [remote-files] # 删除一批文件. ftp> mdelete [remote-files] # 删除一批文件
ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机. ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机
ftp> mkdir directory-name # 在远端主机中建立目录. ftp> mkdir directory-name # 在远端主机中建立目录
ftp> mput local-files # 将本地主机中一批文件传送至远端主机. ftp> open host [port] # 重新建立一个新的连接
ftp> open host [port] # 重新建立一个新的连接. ftp> prompt # 交互提示模式
ftp> prompt # 交互提示模式. ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中
ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中. ftp> mput local-files # 将本地主机中一批文件传送至远端主机
ftp> pwd # 列出当前远端主机目录. ftp> pwd # 列出当前远端主机目录
ftp> quit # 同BYE. ftp> quit # 同bye、exit
ftp> recv remote-file [local-file] # 同GET. ftp> recv remote-file [local-file] # 同GET
ftp> rename [from] [to] # 改变远端主机中的文件名. ftp> rename [from] [to] # 改变远端主机中的文件名
ftp> rmdir directory-name # 删除远端主机中的目录. ftp> rmdir directory-name # 删除远端主机中的目录
ftp> send local-file [remote-file] # 同PUT. ftp> send local-file [remote-file] # 同PUT
ftp> status # 显示当前FTP的状态. ftp> status # 显示当前FTP的状态
ftp> system # 显示远端主机系统类型. ftp> system # 显示远端主机系统类型
ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机. ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机
ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 commandftp 将显示全部命令的列表 ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 commandftp 将显示全部命令的列表
ftp> ! # 从 ftp 子系统退出到外壳 ftp> ! # 从 ftp 子系统退出到外壳
```
关闭FTP连接
```bash
bye
exit
quit
```
下载文件
```bash
ftp> get readme.txt # 下载 readme.txt 文件
ftp> mget *.txt # 下载
```
上传文件
```bash
ftp> put /path/readme.txt # 上传 readme.txt 文件
ftp> mput *.txt # 可以上传多个文件
``` ```

@ -13,7 +13,7 @@ getenforce
getenforce getenforce
``` ```
### ##
查看当前SELinux的应用模式 查看当前SELinux的应用模式

@ -1 +1,13 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> # halt
## 选项
```markdown
-p --poweroff 关闭机器
--reboot 重启机器
-f --force Force immediate halt/power-off/reboot
-w --wtmp-only 不真正执行halt/power-off/reboot命令,仅写入到wtmp记录
-d --no-wtmp 不写入到wtmp记录
--no-wall Don't send wall message before halt/power-off/reboot
```

@ -1,43 +1,22 @@
help # **help**
===
显示帮助信息
## 说明 ## 说明
**help命令** 用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看 **help命令** 显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看
## 选项 ## 选项
``` ```markdown
help(选项)(参数) -d 显示每个模式的简短描述
``` -m 以类似手册页的格式显示每个模式的描述
-s 仅显示每个模式的简短用法提要
``` ```
-s输出短格式的帮助信息。仅包括命令格式
```
### 参数
内部命令指定需要显示帮助信息的shell内部命令
## 实例 ## 实例
使用help命令显示shell内部shopt命令的帮助信息输入如下命令 ```bash
``` ```
help shopt #获取shopt命令的帮助信息
shopt: shopt [-pqsu] [-o long-option] optname [optname...]
Toggle the values of variables controlling optional behavior.
The -s flag means to enable (set) each OPTNAME; the -u flag
unsets each OPTNAME. The -q flag suppresses output; the exit
status indicates whether each OPTNAME is set or unset. The -o
option restricts the OPTNAMEs to those defined for use with
`set -o'. With no options, or with the -p option, a list of all
settable options is displayed, with an indication of whether or
not each is set.
```

@ -1 +1,27 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> # **history**
## 选项
```markdown
-c 通过删除所有条目来清除历史记录列表
-d offset 删除位置偏移处的历史记录条目
-a 将`新`历史记录行自当前bash会话开始以来输入的历史记录行添加到历史记录文件
-n 将尚未从历史记录文件中读取的历史记录行读取到当前历史记录列表中。 这些是自当前bash会话开始以来附加到历史文件的行
-r 读取历史记录文件的内容,并将其用作当前历史记录
-w 将当前历史记录写入历史记录文件,覆盖历史记录文件的内容
-p 对以下参数执行历史记录替换,并在标准输出上显示结果。 不将结果存储在历史记录列表中。 必须对每个arg报价以禁用常规历史记录扩展
-s 将args作为单个条目存储在历史记录列表中。 在添加args之前将删除历史记录列表中的最后一条命令
如果设置了HISTTIMEFORMAT变量则将与每个历史记录条目关联的时间戳信息写入历史记录文件并用历史记录注释字符标记。 读取历史记录文件时,
以历史记录注释字符开头并紧随其后的数字开头的行将被解释为上一个历史记录行的时间戳。 除非遇到无效的选项,读取或写入历史记录文件时发生错误,
将无效的偏移量作为-d的参数提供或作为-p的参数提供的历史记录扩展失败否则返回值为0
```
## 实例
```bash
history -c # 情况历史记录
```

@ -1,4 +1,4 @@
# hostname # **hostname**
## 说明 ## 说明
@ -18,23 +18,20 @@ Usage: hostname [-b] {hostname|-F file} set host name (from file)
dnsdomainname display dns domain name dnsdomainname display dns domain name
hostname -V|--version|-h|--help print info and exit
Program name: Program name:
{yp,nis,}domainname=hostname -y {yp,nis,}domainname=hostname -y
dnsdomainname=hostname -d dnsdomainname=hostname -d
Program options: -a, --alias 显示主机别名
-a, --alias 显示主机别名 -A, --all-fqdns all long host names (FQDNs)
-A, --all-fqdns all long host names (FQDNs) -b, --boot set default hostname if none available
-b, --boot set default hostname if none available -d, --domain 显示DNS域名
-d, --domain 显示DNS域名 -f, --fqdn, --long 显示FQDN名称
-f, --fqdn, --long 显示FQDN名称 -F, --file read host name or NIS domain name from given file
-F, --file read host name or NIS domain name from given file -i, --ip-address 显示主机的ip地址
-i, --ip-address 显示主机的ip地址 -I, --all-ip-addresses all addresses for the host
-I, --all-ip-addresses all addresses for the host -s, --short 显示短主机名称,在第一个点处截断
-s, --short 显示短主机名称,在第一个点处截断 -y, --yp, --nis 显示NIS/YP域名
-y, --yp, --nis 显示NIS/YP域名
``` ```

@ -0,0 +1,31 @@
# **hostnamectl**
查询或更改系统hostname
## 选项
```markdown
hostnamectl [OPTIONS...] COMMAND ...
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--transient Only set transient hostname
--static Only set static hostname
--pretty Only set pretty hostname
Commands:
status Show current hostname settings
set-hostname NAME Set system hostname
set-icon-name NAME Set icon name for host
set-chassis NAME Set chassis type for host
set-deployment NAME Set deployment environment for host
set-location NAME Set location for host
```
## 实例
```bash
hostnamectl set-hostname NAME # 设置hostname为NAME
```

@ -1,45 +1,34 @@
iconv # iconv
===
转换文件的编码方式
## 说明 ## 说明
**iconv命令** 是用来转换文件的编码方式的比如它可以将UTF8编码的转换成GB18030的编码反过来也行。JDK中也提供了类似的工具native2ascii。Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C函数可以用来在C/C++程序中很方便的转换字符编码这在抓取网页的程序中很有用处而iconv命令在调试此类程序时用得着 **iconv命令** 是用来转换给定文件的编码比如它可以将UTF8编码的转换成GB18030的编码反过来也行。JDK中也提供了类似的工具native2ascii。
Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C函数可以用来在C/C++程序中很方便的转换字符编码,这在抓取网页的程序中很有用处,
而iconv命令在调试此类程序时用得着
## 选项 ## 选项
``` ```markdown
iconv -f encoding [-t encoding] [inputfile]... 输入/输出格式规范:
``` -f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码
```
-f encoding :把字符从encoding编码开始转换。
-t encoding :把字符转换到encoding编码。
-l :列出已知的编码字符集合
-o file :指定输出文件
-c :忽略输出的非法字符
-s :禁止警告信息,但不是错误信息
--verbose :显示进度信息
-f和-t所能指定的合法字符在-l选项的命令里面都列出来了。
```
## 实例 信息:
-l, --list 列举所有已知的字符集
列出当前支持的字符编码:  输出控制:
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息
```
iconv -l
``` ```
将文件file1转码转后文件输出到fil2中  ## 实例
```bash
iconv -l # 列出当前支持的字符编码
iconv file1 -f EUC-JP-MS -t UTF-8 -o file2 # 将文件file1转码转后文件输出到fil2中。没`-o`那么会输出到标准输出
``` ```
iconv file1 -f EUC-JP-MS -t UTF-8 -o file2
```
这里,没`-o`那么会输出到标准输出

@ -77,7 +77,7 @@ Examples:
**Q** 退出info **Q** 退出info
``` ```
**命令** ### 命令
``` ```
**** 显示帮助窗口 **** 显示帮助窗口

@ -1,15 +1,15 @@
inotifywait # **inotifywait**
===
异步文件系统监控机制
## 说明 ## 说明
**Inotify** 一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、删除创建、移动等操作,也就是可以监控文件发生的一切变化。 **Inotify** 一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、
删除创建、移动等操作,也就是可以监控文件发生的一切变化。
**inotify-tools** 是一个C库和一组命令行的工作提供Linux下inotify的简单接口。inotify-tools安装后会得到`inotifywait`和`inotifywatch`这两条命令: **inotify-tools** 是一个C库和一组命令行的工作提供Linux下inotify的简单接口。inotify-tools安装后会得到`inotifywait`和
`inotifywatch`这两条命令:
* **inotifywait命令** 可以用来收集有关文件访问信息Linux发行版一般没有包括这个命令需要安装inotify-tools这个命令还需要将inotify支持编译入Linux内核好在大多数Linux发行版都在内核中启用了inotify * **inotifywait命令** 可以用来收集有关文件访问信息Linux发行版一般没有包括这个命令需要安装inotify-tools这个命令还需要将
inotify支持编译入Linux内核好在大多数Linux发行版都在内核中启用了inotify
* **inotifywatch命令** 用于收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次 * **inotifywatch命令** 用于收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次
开始之前需要检测系统内核是否支持inotify 开始之前需要检测系统内核是否支持inotify
@ -45,58 +45,37 @@ make install
### inotify相关参数 ### inotify相关参数
inotify定义了下列的接口参数可以用来限制inotify消耗kernel memory的大小。由于这些参数都是内存参数因此可以根据应用需求实时的调节其大小 ```markdown
inotify定义了下列的接口参数可以用来限制inotify消耗kernel memory的大小。由于这些参数都是内存参数因此可以根据应用需求实时调节大小
* `/proc/sys/fs/inotify/max_queued_evnets`表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值超出这个值的事件被丢弃但会触发IN_Q_OVERFLOW事件 * `/proc/sys/fs/inotify/max_queued_evnets`表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值超出这个
值的事件被丢弃但会触发IN_Q_OVERFLOW事件
* `/proc/sys/fs/inotify/max_user_instances`表示每一个real user id可创建的inotify instatnces的数量上限 * `/proc/sys/fs/inotify/max_user_instances`表示每一个real user id可创建的inotify instatnces的数量上限
* `/proc/sys/fs/inotify/max_user_watches`表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大需要根据情况适当增加此值的大小 * `/proc/sys/fs/inotify/max_user_watches`表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大需要根据情况
适当增加此值的大小
根据以上在32位或者64位系统都可以执行 根据以上在32位或者64位系统都可以执行
```
echo 104857600 > /proc/sys/fs/inotify/max_user_watches echo 104857600 > /proc/sys/fs/inotify/max_user_watches
echo 'echo 104857600 > /proc/sys/fs/inotify/max_user_watches' >> /etc/rc.local echo 'echo 104857600 > /proc/sys/fs/inotify/max_user_watches' >> /etc/rc.local
```
如果遇到以下错误: 如果遇到以下错误:
inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file:
No such file or directory
``` **解决方法:**
inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory
```
```
**解决方法:**
32位系统ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0 32位系统ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0
64位系统ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0 64位系统ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
``` ```
### inotifywait命令使用 ### inotifywait命令使用
``` ```bash
#!/bin/bash #!/bin/bash
#filename watchdir.sh #filename watchdir.sh
path=$1 path=$1
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T %w %f' -e modify,delete,create,attrib $path /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T %w %f' -e modify,delete,create,attrib $path
执行输出:
./watchdir.sh /data/wsdata/tools/
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swx
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swx
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp
04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp
04/01/13/16:35 /data/wsdata/tools/ 4913
04/01/13/16:35 /data/wsdata/tools/ 4913
04/01/13/16:35 /data/wsdata/tools/ 4913
04/01/13/16:35 /data/wsdata/tools/ j.jsp
04/01/13/16:35 /data/wsdata/tools/ j.jsp
04/01/13/16:35 /data/wsdata/tools/ j.jsp
04/01/13/16:35 /data/wsdata/tools/ j.jsp~
04/01/13/16:35 /data/wsdata/tools/ .j.jsp.swp
``` ```
### inotifywait命令参数 ### inotifywait命令参数
@ -110,84 +89,13 @@ path=$1
#### 可监听的事件 #### 可监听的事件
<table border="0" height="193" style="width: 100%;" width="74"> | 事件 | 描述 |
| :------: | :------: |
<tbody> | access | **访问** ,读取文件 |
| modify | **修改** ,文件内容被修改 |
<tr> | attrib | **属性** ,文件元数据被修改 |
| move | **移动** ,对文件进行移动操作 |
<th>事件</th> | create | **创建** ,生成新文件 |
| open | **打开** ,对文件进行打开操作 |
<th>描述</th> | close | **关闭** ,对文件进行关闭操作 |
| delete | **删除** ,文件被删除 |
</tr>
<tr>
<td>access</td>
<td> **访问** ,读取文件。</td>
</tr>
<tr>
<td>modify</td>
<td> **修改** ,文件内容被修改。</td>
</tr>
<tr>
<td>attrib</td>
<td> **属性** ,文件元数据被修改。</td>
</tr>
<tr>
<td>move</td>
<td> **移动** ,对文件进行移动操作。</td>
</tr>
<tr>
<td>create</td>
<td> **创建** ,生成新文件</td>
</tr>
<tr>
<td>open</td>
<td> **打开** ,对文件进行打开操作。</td>
</tr>
<tr>
<td>close</td>
<td> **关闭** ,对文件进行关闭操作。</td>
</tr>
<tr>
<td>delete</td>
<td> **删除** ,文件被删除。</td>
</tr>
</tbody>
</table>

@ -1,7 +1,4 @@
ipcalc # ipcalc
===
简单的IP地址计算器
## 说明 ## 说明
@ -9,42 +6,28 @@ ipcalc
## 选项 ## 选项
``` ```markdown
ipcalc(选项) -c, --check Validate IP address for specified address family
``` -4, --ipv4 IPv4 address family (default)
-6, --ipv6 IPv6 address family
-b, --broadcast Display calculated broadcast address
-h, --hostname Show hostname determined via DNS
-m, --netmask Display default netmask for IP (class A, B, or C)
-n, --network Display network address
-p, --prefix Display network prefix
-s, --silent Don't ever display error messages
```
-b由给定的IP地址和网络掩码计算出广播地址
-h显示给定UP地址所对应的主机名
-m由给定的IP地址计算器网络掩码
-p显示给定的掩码或IP地址的前缀
-n由给定的IP地址和网络掩码计算网络地址
-s安静模式
--help显示帮助信息
``` ```
## 实例 ## 实例
``` ```bash
[root@localhost ~]# ipcalc -p 192.168.2.1 255.255.255.0 ipcalc -p 192.168.2.1 255.255.255.0 # 输出PREFIX=24
PREFIX=24 ipcalc -n 192.168.2.1 255.255.255.0 # 输出NETWORK=192.168.2.0
ipcalc -h 127.0.0.1 # 输出hostname=localhost.localdomain
[root@localhost ~]# ipcalc -n 192.168.2.1 255.255.255.0 ipcalc -m 192.168.2.1 # 输出NETMASK=255.255.255.0
NETWORK=192.168.2.0 ipcalc -pnbm 192.168.2.1 255.255.255.0 # 输出以上四个选项所有
[root@localhost ~]# ipcalc -h 127.0.0.1
hostname=localhost.localdomain
[root@localhost ~]# ipcalc -m 192.168.2.1
NETMASK=255.255.255.0
[root@localhost ~]# ipcalc -pnbm 192.168.2.1 255.255.255.0
NETMASK=255.255.255.0
PREFIX=24
BROADCAST=192.168.2.255
NETWORK=192.168.2.0
``` ```

@ -1,7 +1,4 @@
iptraf # iptraf
===
实时地监视网卡流量
## 说明 ## 说明
@ -9,12 +6,6 @@ iptraf
## 选项 ## 选项
```
iptraf(选项)
```
``` ```
-i网络接口立即在指定网络接口上开启IP流量监视 -i网络接口立即在指定网络接口上开启IP流量监视
-g立即开始生成网络接口的概要状态信息 -g立即开始生成网络接口的概要状态信息

@ -1,7 +1,4 @@
ispell # ispell
===
检查文件中出现的拼写错误
## 说明 ## 说明
@ -9,12 +6,8 @@ ispell
## 选项 ## 选项
```markdown
``` ```
ispell(参数)
```
### 参数
文件:指定要进行拼写检查的文件

@ -2,7 +2,9 @@
## 说明 ## 说明
**last命令** 用于显示用户最后一次的登录信息。单独执行last命令它会读取`/var/log/wtmp`的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来 **last命令** 用于显示用户最后一次的登录信息。单独执行last命令它会读取`/var/log/wtmp`的文件,并把该给文件的内容记录的登入系统的
用户名单全部显示出来
**lastb命令** Lastb与last相同但默认情况下它显示文件/var/log/btmp的日志其中包含所有错误的登录尝试 **lastb命令** Lastb与last相同但默认情况下它显示文件/var/log/btmp的日志其中包含所有错误的登录尝试
## 选项 ## 选项

@ -1,7 +1,4 @@
less # **less**
===
分屏上下翻页浏览文件内容
## 说明 ## 说明
@ -9,12 +6,6 @@ less
## 选项 ## 选项
```
less(选项)(参数)
```
``` ```
-e文件内容显示完毕后自动退出 -e文件内容显示完毕后自动退出
-f强制显示文件 -f强制显示文件
@ -26,8 +17,3 @@ less(选项)(参数)
-x<数字>将TAB字符显示为指定个数的空格字符 -x<数字>将TAB字符显示为指定个数的空格字符
``` ```
### 参数
文件:指定要分屏显示内容的文件

@ -1,33 +1,25 @@
let # **let**
===
简单的计算器
## 说明 ## 说明
**let命令** 是bash中用于计算的工具提供常用运算符还提供了方幂`**`运算符。在变量的房屋计算中不需要加上`$`来表示变量如果表达式的值是非0那么返回的状态值是0否则返回的状态值是1 **let命令** 是bash中用于计算的工具提供常用运算符还提供了方幂`**`运算符。在变量的房屋计算中不需要加上`$`来表示变量,
如果表达式的值是非0那么返回的状态值是0否则返回的状态值是1
## 选项 ## 选项
``` ```markdown
let arg [arg ...] #arg代表运算式
```
### 用法
自加操作`let no++` 自加操作`let no++`
自减操作`let no--` 自减操作`let no--`
简写形式`let no+=10``let no-=20`,分别等同于`let no=no+10``let no=no-20` 简写形式`let no+=10``let no-=20`,分别等同于`let no=no+10``let no=no-20`
```
## 实例 ## 实例
``` ```bash
#!/bin/bash #!/bin/bash
let a=5+4 b=9-3 let a=5+4 b=9-3
echo $a $b echo $a $b
```
```
#!/bin/bash #!/bin/bash
let "t1 = ((a = 5 + 3, b = 7 - 1, c = 15 - 4))" let "t1 = ((a = 5 + 3, b = 7 - 1, c = 15 - 4))"
echo "t1 = $t1, a = $a, b = $b" echo "t1 = $t1, a = $a, b = $b"

@ -1,7 +1,4 @@
logger # logger
===
在系统日志中记录相应条目
## 说明 ## 说明
@ -9,32 +6,25 @@ logger
## 选项 ## 选项
``` ```markdown
logger [options] [message] -T, --tcp 只使用 TCP
``` -d, --udp 只使用 UDP
-i, --id 同时记录进程 ID
-f, --file <文件> 记录此文件的内容
-h, --help 显示此帮助并退出
-S, --size <num> maximum size for a single message (default 1024)
-n, --server <name> write to this remote syslog server
-P, --port <port> use this port for UDP or TCP connection
-p, --priority <prio> mark given message with this priority
-s, --stderr output message to standard error as well
-t, --tag <标志> 用此标志标记每一行
-u, --socket <套接字> 写入此 Unix 套接字
```
-T, --tcp 使用流连接(TCP)
-d, --udp 使用数据报(UDP)
-i, --id 逐行记录每一次logger的进程ID
-f, --file <file> 记录特定的文件
-h, --help 显示帮助文本并退出
-n, --server <name> 写入指定的远程syslog服务器使用UDP代替内装式syslog的例程
-P, --port <port> 使用指定的UDP端口。默认的端口号是514
-p, --priority <prio> 指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式
比如:" -p local3.info " local3 这个设备的消息级别为 info
默认级别是 "user.notice"
-s, --stderr 输出标准错误到系统日志
-t, --tag <tag> 指定标记记录
-u, --socket <socket> 写入指定的socket而不是到内置系统日志例程
-V, --version 输出版本信息并退出
``` ```
### ## 实例
``` ```bash
logger -p syslog.info "backup.sh is starting" logger -p syslog.info "backup.sh is starting"
``` ```

@ -1,27 +1,16 @@
login # login
===
登录系统或切换用户身份
## 说明 ## 说明
**login命令** 用于给出登录界面可用于重新登录或者切换用户身份也可通过它的功能随时更换登入身份。在Slackware发行版中 您可在命令后面附加欲登入的用户名称它会直接询问密码等待用户输入。当`/etc/nologin`文件存在时系统只root帐号登入系统其他用户一律不准登入 **login命令** 用于给出登录界面可用于重新登录或者切换用户身份也可通过它的功能随时更换登入身份。在Slackware发行版中 可在命令后面
附加欲登入的用户名称,它会直接询问密码,等待用户输入。当`/etc/nologin`文件存在时系统只root帐号登入系统其他用户一律不准登入
## 选项 ## 选项
``` ```markdown
login(选项)(参数) login [ -p ] [ -h 主机 ] [ -H ] [ -f 用户名 | 用户名 ]
```
-p 告诉login指令不销毁环境变量
-h 指定远程服务器的主机名
``` ```
-p告诉login指令不销毁环境变量
-h指定远程服务器的主机名
```
### 参数
用户名:指定登录使用的用户名

@ -1,31 +1,22 @@
logrotate # **logrotate**
===
统日志进行轮转、压缩和删除
## 说明 ## 说明
**logrotate命令** 用于对系统日志进行轮转、压缩和删除也可以将日志发送到指定邮箱。使用logrotate指令可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日每周或每月处理也能在文件太大时立即处理。您必须自行编辑指定配置文件预设的配置文件存放在`/etc/logrotate.conf`文件中 **logrotate命令** 用于对系统日志进行轮转、压缩和删除也可以将日志发送到指定邮箱。使用logrotate指令可让你轻松管理系统所产生的
记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在
`/etc/logrotate.conf`文件中
## 选项 ## 选项
``` ```markdown
logrotate(选项)(参数) -d, --debug Don't do anything, just test (implies -v)
``` -f, --force 强制文件rotate
-m, --mail=command Command to send mail (instead of `/bin/mail')
-s, --state=statefile Path of state file
-v, --verbose Display messages during rotation
-l, --log=STRING Log file
``` ```
-?或--help在线帮助
-d或--debug详细显示指令执行过程便于排错或了解程序执行的情况
-f或--force 强行启动记录文件维护操作纵使logrotate指令认为没有需要亦然
-s<状态文件>或--state=<状态文件>:使用指定的状态文件
-v或--version显示指令执行过程
-usage显示指令基本用法
```
### 参数
配置文件指定lograote指令的配置文件

@ -1,7 +1,4 @@
lsattr # **lsattr**
===
查看文件的第二扩展文件系统属性
## 说明 ## 说明
@ -9,29 +6,20 @@ lsattr
## 选项 ## 选项
``` ```markdown
lsattr(选项)(参数)
```
```
-E可显示设备属性的当前值但这个当前值是从用户设备数据库中获得的而不是从设备直接获得的 -E可显示设备属性的当前值但这个当前值是从用户设备数据库中获得的而不是从设备直接获得的
-D显示属性的名称属性的默认值描述和用户是否可以修改属性值的标志 -D显示属性的名称属性的默认值描述和用户是否可以修改属性值的标志
-R递归的操作方式 -R递归的操作方式
-V显示指令的版本信息 -V显示指令的版本信息
-a列出目录中的所有文件包括隐藏文件 -a列出目录中的所有文件包括隐藏文件
```
lsattr经常使用的几个选项-D-E-R这三个选项不可以一起使用它们是互斥的经常使用的还有-l,-H使用lsattr时必须指出具体的设备名用-l选项指出要显示设备的逻辑名称否则要用-c-s-t等选项唯一的确定某个已存在的设备
### 参数
文件:指定显示文件系统属性的文件名 lsattr经常使用的几个选项-D-E-R这三个选项不可以一起使用它们是互斥的经常使用的还有-l,-H使用lsattr时
必须指出具体的设备名,用-l选项指出要显示设备的逻辑名称否则要用-c-s-t等选项唯一的确定某个已存在的设备
```
## 实例 ## 实例
``` ```bash
lsattr -E -l rmt0 -H lsattr -E -l rmt0 -H
lsattr -EO -l rmt0 lsattr -EO -l rmt0
``` ```

@ -458,7 +458,7 @@ vgrename [选项] [旧卷组路径|旧卷组名称|旧卷组UUID] [新卷组路
-t 启用测试模式 -t 启用测试模式
``` ```
### ##
重命名卷组/dev/vg1为/dev/vg2 重命名卷组/dev/vg1为/dev/vg2

@ -1,8 +1,6 @@
# **man** # **man**
```markdown
```info
用法: man[选项...] [章节] 手册页... 用法: man[选项...] [章节] 手册页...
-C, --config-file=文件 使用该用户设置文件 -C, --config-file=文件 使用该用户设置文件
-d, --debug 输出调试信息 -d, --debug 输出调试信息
@ -35,38 +33,37 @@
--no-subpages don't try subpages, e.g. 'man foo bar' => 'manfoo-bar' --no-subpages don't try subpages, e.g. 'man foo bar' => 'manfoo-bar'
控制格式化的输出: 控制格式化的输出:
-P, --pager=PAGER 使用 PAGER 程序显示输出文本 -P, --pager=PAGER 使用 PAGER 程序显示输出文本
-r, --prompt=字符串 给 less pager 提供一个提示行 -r, --prompt=字符串 给 less pager 提供一个提示行
-7, --ascii 显示某些 latin1 字符的 ASCII 翻译形式 -7, --ascii 显示某些 latin1 字符的 ASCII 翻译形式
-E, --encoding=编码 use selected output encoding -E, --encoding=编码 use selected output encoding
--no-hyphenation, --nh turn off hyphenation --no-hyphenation, --nh turn off hyphenation
--no-justification,--nj turn off justification --no-justification,--nj turn off justification
-p, --preprocessor=字符串 字符串表示要运行哪些预处理器e - [n]eqn, p - pic, t - tbl,g - grap, r - refer, v - vgrind -p, --preprocessor=字符串 字符串表示要运行哪些预处理器e - [n]eqn, p - pic, t - tbl,g - grap, r - refer, v - vgrind
-t, --troff 使用 groff 对手册页排版 -t, --troff 使用 groff 对手册页排版
-T, --troff-device[=设备] 使用 groff 的指定设备 -T, --troff-device[=设备] 使用 groff 的指定设备
-H, --html[=浏览器] 使用 www-browser 或指定浏览器显示 HTML输出 -H, --html[=浏览器] 使用 www-browser 或指定浏览器显示 HTML输出
-X, --gxditview[=分辨率] 使用 groff 并通过 gxditview (X11)来显示:-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12 -X, --gxditview[=分辨率] 使用groff并通过 gxditview (X11)来显示:-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12
-Z, --ditroff 使用 groff 并强制它生成 ditroff -Z, --ditroff 使用 groff 并强制它生成 ditroff
``` ```
```sh
# 数字所代表内容
1用户在shell环境可操作的命令或执行文件
2系统内核可调用的函数与工具等
3一些常用的函数(function)与函数库(library)大部分为C的函数库(libc)
4设备文件说明通常在/dev下的文件
5配置文件或某些文件格式
6游戏(games)
7惯例与协议等如Linux文件系统网络协议ASCII code等说明
8系统管理员可用的管理命令
9跟kernel有关的文件
```
## 实例 ### 数字所代表内容
我们输入`man ls`它会在最左上角显示“LS1在这里“LS”表示手册名称而“1”表示该手册位于第一节章同样我们输`man ifconfig`它会在最左上角显示“IFCONFIG8”。也可以这样输入命令“man [章节号] 手册名称” 1. 用户在shell环境可操作的命令或执行文件
2. 系统内核可调用的函数与工具等
3. 一些常用的函数(function)与函数库(library)大部分为C的函数库(libc)
4. 设备文件说明,通常在/dev下的文件
5. 配置文件或某些文件格式
6. 游戏(games)
7. 惯例与协议等如Linux文件系统网络协议ASCII code等说明
8. 系统管理员可用的管理命令
9. 跟kernel有关的文件
## 实例
```sh ```bash
man -t man | ps2pdf - > man.pdf # 生成一个PDF格式的帮助文件 man -t man | ps2pdf - > man.pdf # 生成一个PDF格式的帮助文件
man 3 sleep # 显示sleep命令的手册并查看库函数sleep man 3 sleep # 显示sleep命令的手册并查看库函数sleep
``` ```

@ -1,27 +1,14 @@
mesg # mesg
===
设置当前终端的写权限
## 说明 ## 说明
**mesg命令** 用于设置当前终端的写权限即是否让其他用户向本终端发信息。将mesg设置y时其他用户可利用write命令将信息直接显示在您的屏幕上 **mesg命令** 用于设置当前终端的写权限即是否让其他用户向本终端发信息。将mesg设置y时其他用户可利用write命令将信息直接显示在您的屏幕上
## 选项
```
mesg(参数)
```
### 参数
y/ny表示运行向当前终端写信息n表示禁止向当前终端写信息
## 实例 ## 实例
``` ```bash
[root@localhost ~]# mesg y #允许系统用户将信息直接显示在你的屏幕上 mesg y # 允许系统用户将信息直接显示在你的屏幕上
[root@localhost ~]# mesg n #不允许系统用户将信息直接显示在你的屏幕上 mesg n # 不允许系统用户将信息直接显示在你的屏幕上
``` ```

@ -1,7 +1,4 @@
mkfs # **mkfs**
===
用于在设备上创建Linux文件系统
## 说明 ## 说明
@ -9,34 +6,23 @@ mkfs
## 选项 ## 选项
``` ```markdown
mkfs(选项)(参数) mkfs [选项] [-t <类型>] [文件系统选项] <设备> [<大小>]
```
-t, --type=<类型> 文件系统类型;若不指定,将使用 ext2
fs-options 实际文件系统构建程序的参数
<设备> 要使用设备的路径
<大小> 要使用设备上的块数
-V, --verbose 解释正在进行的操作;多次指定 -V 将导致空运行(dry-run)
-V, --version 显示版本信息并退出,将 -V 作为 --version 选项时必须是惟一选项
``` ```
fs指定建立文件系统时的参数
-t<文件系统类型>:指定要建立何种文件系统
-v显示版本信息与详细的使用方法
-V显示简要的使用方法
-c在制做档案系统前检查该partition是否有坏轨
```
### 参数
* 文件系统:指定要创建的文件系统对应的设备文件名
* 块数:指定文件系统的磁盘块数
## 实例 ## 实例
在`/dev/hda5`上建一个msdos的档案系统同时检查是否有坏轨存在并且将过程详细列出来 ```bash
mkfs -t ext3 /dev/sda6 # 将sda6分区格式化为ext3格式
``` mkfs -t ext2 /dev/sda7 # 将sda7分区格式化为ext2格式
mkfs -V -t msdos -c /dev/hda5
mkfs -t ext3 /dev/sda6 //将sda6分区格式化为ext3格式
mkfs -t ext2 /dev/sda7 //将sda7分区格式化为ext2格式
``` ```

@ -2,11 +2,12 @@
## 说明 ## 说明
**mkswap命令** 用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的大小但是这个参数是为了向后兼容设置的没有使用的必要一般都将整个文件或者设备作为交换区 **mkswap命令** 用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的
大小,但是这个参数是为了向后兼容设置的,没有使用的必要,一般都将整个文件或者设备作为交换区
## 选项
```markdown
```
-c建立交换区前先检查是否有损坏的区块 -c建立交换区前先检查是否有损坏的区块
-f在SPARC电脑上建立交换区时要加上此参数 -f在SPARC电脑上建立交换区时要加上此参数
-v0建立旧式交换区此为预设值 -v0建立旧式交换区此为预设值
@ -15,86 +16,43 @@
## 实例 ## 实例
**查看系统swap space大小** ```bash
swapon -s # 查看当前的swap空间(file(s)/partition(s)),等价于cat /proc/swaps
```
free -m
total used free shared buffers cached
Mem: 377 180 197 0 19 110
-/+ buffers/cache: 50 327
Swap: 572 0 572
```
**查看当前的swap空间(file(s)/partition(s))**
```
swapon -s
等价于
cat /proc/swaps
``` ```
**添加交换空间** ```bash
# 添加交换空间
添加一个 **交换分区** 或添加一个 **交换文件** 。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件
添加一个交换分区,步骤如下:
使用fdisk来创建交换分区假设 /dev/sdb2 是创建的交换分区),使用 mkswap 命令来设置交换分区:
```
mkswap /dev/sdb2 mkswap /dev/sdb2
```
启用交换分区:
``` # 启用交换分区
swapon /dev/sdb2 swapon /dev/sdb2
```
写入`/etc/fstab`,以便在引导时启用:
``` # 写入`/etc/fstab`,以便在引导时启用
/dev/sdb2 swap swap defaults 0 0 /dev/sdb2 swap swap defaults 0 0
```
添加一个交换文件,步骤如下:
创建大小为512M的交换文件 # 添加一个交换文件步骤如下创建大小为512M的交换文件
```
dd if=/dev/zero of=/swapfile1 bs=1024 count=524288 dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
``` ```
使用mkswap命令来设置交换文件 ```bash
# 添加交换文件
``` # 使用mkswap命令来设置交换文件
mkswap /swapfile1 mkswap /swapfile1
```
启用交换分区: 启用交换分区
```
swapon /swapfile1 swapon /swapfile1
```
写入`/etc/fstab`,以便在引导时启用:
``` # 写入`/etc/fstab`,以便在引导时启用:
/swapfile1 swap swap defaults 0 0 /swapfile1 swap swap defaults 0 0
```
新添了交换分区并启用它之后,请查看`cat /proc/swaps`或free命令的输出来确保交换分区已被启用了
**删除交换空间:**
禁用交换分区:
# 新添了交换分区并启用它之后,查看`cat /proc/swaps`或free命令的输出来确保交换分区已被启用了
``` ```
```bash
# 删除交换空间,禁用交换分区:从`/etc/fstab`中删除项目使用fdisk或yast工具删除分区
swapoff /dev/sdb2 swapoff /dev/sdb2
``` ```
从`/etc/fstab`中删除项目使用fdisk或yast工具删除分区

@ -1,54 +1,42 @@
more # **more**
===
显示文件内容,每次显示一屏
## 说明 ## 说明
**more命令** 是一个基于vi编辑器文本过滤器它以全屏幕的方式按页显示文本文件的内容支持vi中的关键字定位操作。more名单中内置了若干快捷键常用的有H获得帮助信息Enter向下翻滚一行空格向下滚动一屏Q退出命令 **more命令** 是一个基于vi编辑器文本过滤器它以全屏幕的方式按页显示文本文件的内容支持vi中的关键字定位操作。more名单中内置了若干快捷键
常用的有H获得帮助信息Enter向下翻滚一行空格向下滚动一屏Q退出命令
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--XX%)可以用下列不同的方法对提示做出回答: 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--XX%)可以用下列不同的
方法对提示做出回答:
* 按Space键显示文本的下一屏内容 * 按Space键显示文本的下一屏内容
* 按Enier键只显示文本的下一行内容 * 按Enier键只显示文本的下一行内容
* 按斜线符`|`:接着输入一个模式,可以在文本中寻找下一个相匹配的模式 * 按斜线符`|`:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
* 按H键显示帮助屏该屏上有相关的帮助信息 * 按H键显示帮助屏该屏上有相关的帮助信息
* 按B键显示上一屏内容 * 按B键显示上一屏内容
* 按Q键退出rnore命令 * 按Q键退出rnore命令
## 选项 ## 选项
``` ```markdown
more(语法)(参数) -d 显示帮助,而不是响铃
``` -f 统计逻辑行数而不是屏幕行数
-l 抑制换页(form feed)后的暂停
-p 不滚屏,清屏并显示文本
-c 不滚屏,显示文本并清理行尾
-u 抑制下划线
-s 将多个空行压缩为一行
-NUM 指定每屏显示的行数为 NUM
+NUM 从文件第 NUM 行开始显示
+/STRING 从匹配搜索字符串 STRING 的文件位置开始显示
-V 输出版本信息并退出
``` ```
-<数字>:指定每屏显示的行数
-d显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”
-c不进行滚屏操作。每次刷新这个屏幕
-s将多个空行压缩成一行显示
-u禁止下划线
+<数字>:从指定数字的行开始显示
```
### 参数
文件:指定分页显示内容的文件
## 实例 ## 实例
显示文件file的内容但在显示之前先清屏并且在屏幕的最下方显示完核的百分比 ```bash
more -dc file # 显示文件file的内容但在显示之前先清屏并且在屏幕的最下方显示完核的百分比
``` more -c -10 file # 显示文件file的内容每10行显示一次而且在显示之前先清屏
more -dc file
```
显示文件file的内容每10行显示一次而且在显示之前先清屏
```
more -c -10 file
``` ```

@ -21,7 +21,7 @@ named-checkzone [选项] [区域名] [区域文件名]
-c <类别> 指定区域的类别。如果没指定就使用IN -c <类别> 指定区域的类别。如果没指定就使用IN
``` ```
### ##
对区域文件/var/named/192.168.0.rev进行有效性检查和转换 对区域文件/var/named/192.168.0.rev进行有效性检查和转换

@ -1,7 +1,4 @@
nc # **nc**
===
命令用于设置路由器
## 说明 ## 说明
@ -9,14 +6,7 @@ nc
## 选项 ## 选项
``` ```markdown
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>]
[-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
```
```
-g<网关> 设置路由器跃程通信网关最丢哦可设置8个 -g<网关> 设置路由器跃程通信网关最丢哦可设置8个
-G<指向器数目> 设置来源路由指向器其数值为4的倍数 -G<指向器数目> 设置来源路由指向器其数值为4的倍数
-h 在线帮助 -h 在线帮助
@ -35,29 +25,11 @@ nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文
## 实例 ## 实例
TCP端口扫描 ```bash
nc -v -z -w2 192.168.0.3 1-100 # TCP端口扫描,扫描192.168.0.3 的端口 范围是 1-100
nc -u -z -w2 192.168.0.1 1-1000 # 扫描UDP端口,扫描192.168.0.3 的端口 范围是 1-1000
nc -nvv 192.168.0.1 80 # 扫描指定端口,扫描 80端口
``` ```
[root@localhost ~]# nc -v -z -w2 192.168.0.3 1-100
192.168.0.3: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.0.3] 80 (http) open
(UNKNOWN) [192.168.0.3] 23 (telnet) open
(UNKNOWN) [192.168.0.3] 22 (ssh) open
```
扫描192.168.0.3 的端口 范围是 1-100
扫描UDP端口
```
[root@localhost ~]# nc -u -z -w2 192.168.0.1 1-1000 # 扫描192.168.0.3 的端口 范围是 1-1000
```
扫描指定端口
```
[root@localhost ~]# nc -nvv 192.168.0.1 80 # 扫描 80端口
(UNKNOWN) [192.168.0.1] 80 (?) open
y //用户输入
```

@ -1,50 +1,26 @@
nohup # **nohup**
===
将程序以忽略挂起信号的方式运行起来
## 说明 ## 说明
**nohup命令** 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端 **nohup命令** 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到`$HOME/nohup.out`文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向
到`$HOME/nohup.out`文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把
指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符
## 选项 ## 选项
nohup(选项)(参数) ```markdown
If standard input is a terminal, redirect it from /dev/null
If standard output is a terminal, append output to 'nohup.out' if possible,'$HOME/nohup.out' otherwise
If standard error is a terminal, redirect it to standard output
To save output to FILE, use 'nohup COMMAND > FILE
``` ```
--help在线帮助
--version显示版本信息
```
### 参数
程序及选项:要运行的程序及选项
## 实例 ## 实例
使用nohup命令提交作业如果使用nohup命令提交作业那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中除非另外指定了输出文件
```
nohup command > myout.file 2>&1 &
```
在上面的例子中输出被重定向到myout.file文件中
该指令表示不做挂断操作,后台下载
```bash ```bash
nohup wget site.com/file.zip nohup command > myout.file 2>&1 &
```
下面命令,会在同一个目录下生成一个名称为 `nohup.out` 的文件,其中包含了正在运行的程序的输出内容
```bash
nohup ping -c 10 baidu.com
``` ```

@ -1,43 +1,26 @@
nslookup # nslookup
===
查询域名DNS信息的工具
## 说明 ## 说明
**nslookup命令** 是常用域名查询工具就是查DNS信息用的命令 **nslookup命令** 是常用域名查询工具就是查DNS信息用的命令
nslookup4有两种工作模式即“交互模式”和“非交互模式”。在“交互模式”下用户可以向域名服务器查询各类主机、域名的信息或者输出域名中的主机列表。而在“非交互模式”下用户可以针对一个主机或域名仅仅获取特定的名称或所需信息 nslookup4有两种工作模式即“交互模式”和“非交互模式”。在“交互模式”下用户可以向域名服务器查询各类主机、域名的信息或者输出域名中的
主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息
进入交互模式直接输入nslookup命令不加任何参数则直接进入交互模式此时nslookup会连接到默认的域名服务器即`/etc/resolv.conf`的第一个dns地址。或者输入`nslookup -nameserver/ip`。进入非交互模式,就直接输入`nslookup 域名`就可以了 输入nslookup命令直接进入交互模式此时nslookup会连接到默认的域名服务器即`/etc/resolv.conf`的第一个dns地址。或者输入
`nslookup -nameserver/ip`。进入非交互模式,就直接输入`nslookup 域名`就可以
## 选项 ## 选项
``` ```markdown
nslookup(选项)(参数)
```
```
-sil不显示任何警告信息 -sil不显示任何警告信息
``` ```
### 参数
域名:指定要查询域名
## 实例 ## 实例
``` ```bash
[root@localhost ~]# nslookup www.jsdig.com nslookup www.jsdig.com
Server: 202.96.104.15
Address: 202.96.104.15#53
Non-authoritative answer:
www.jsdig.com canonical name = host.1.jsdig.com.
Name: host.1.jsdig.com
Address: 100.42.212.8
``` ```

@ -7,7 +7,8 @@
此 ntpdate 命令使用以下方法进行时间调整: 此 ntpdate 命令使用以下方法进行时间调整:
* 如果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday 子例程设置时钟时间。在引导时间,这是一个首选的方法 * 如果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday 子例程设置时钟时间。在引导时间,这是一个首选的方法
* 如 果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime 子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。 当不是通过运行一个守护程序而是从 cron 命令有规则的运行ntpdate 命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟 * 如 果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime 子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。
当不是通过运行一个守护程序而是从 cron 命令有规则的运行ntpdate 命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟
使用很多服务器可以大幅度改善 ntpdate 命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能 使用很多服务器可以大幅度改善 ntpdate 命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能
@ -17,20 +18,20 @@
## 选项 ## 选项
```bash ```markdown
ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oVersion] [ -pSamples] [ -tTimeOut] Server ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oVersion]
``` [ -pSamples] [ -tTimeOut] Server
| 选项 | 描述 | -aKeyid 使用 Keyid 来认证全部数据包
| :------: | :------: | -b 通过调用 settimeofday 子例程来增加时钟的时间
| -aKeyid | 使用 Keyid 来认证全部数据包。 | -d 指定调试方式。判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口
| -b | 通过调用 settimeofday 子例程来增加时钟的时间。 | -eAuthenticationDelay 指定延迟认证处理的时间秒数
| -d | 指定调试方式。判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口。 | -kKeyFile 当不使用缺省值 /etc/ntp.keys 文件时,为包含密钥的文件指定一个不同的名称。 请参阅文件KeyFile的描述
| -eAuthenticationDelay | 指定延迟认证处理的时间秒数。 | -oVersion 当轮询它的发出数据包时,指定使用的 NTP 版本实现。 Version 的值可以是 123。缺省值是 3
| -kKeyFile | 当不使用缺省值 /etc/ntp.keys 文件时,为包含密钥的文件指定一个不同的名称。 请参阅文件KeyFile的描述。 | -pSamples 指定从每个服务器获取的样本的数目。 Samples 的值在 1 和 8 之间,并包括 1 和 8。它的缺省值是 4
| -oVersion | 当轮询它的发出数据包时,指定使用的 NTP 版本实现。 Version 的值可以是 123。缺省值是 3。 | -s 指定日志操作 syslog 设施的使用,而不是使用标准输出。 当运行 ntpdate 命令和 cron命令时它是很有用的
| -pSamples | 指定从每个服务器获取的样本的数目。 Samples 的值在 1 和 8 之间,并包括 1 和 8。它的缺省值是 4。 | -tTimeOut 指定等待响应的时间。给定 TimeOut 的值四舍五入为 0.2 秒的倍数。缺省值是 1 秒
| -s | 指定日志操作 syslog 设施的使用,而不是使用标准输出。 当运行 ntpdate 命令和 cron命令时它是很有用的。 | -u 指定使用无特权的端口发送数据包。 当在一个对特权端口的输入流量进行阻拦的防火墙后是很有益的, 并希望在防火墙之外和主机同步。
| -tTimeOut | 指定等待响应的时间。给定 TimeOut 的值四舍五入为 0.2 秒的倍数。缺省值是 1 秒。 | 防火墙是一个系统或者计算机,它控制从外网对专用网的访问
| -u | 指定使用无特权的端口发送数据包。 当在一个对特权端口的输入流量进行阻拦的防火墙后是很有益的, 并希望在防火墙之外和主机同步。防火墙是一个系统或者计算机,它控制从外网对专用网的访问。 |
```

@ -84,195 +84,122 @@ openssl x509 -text -noout -in certificate.pem
openssl dhparam -out dhparams.pem -dsaparam 2048 # 生成dhparams.pem文件 openssl dhparam -out dhparams.pem -dsaparam 2048 # 生成dhparams.pem文件
: << comment
制作并信任您自己的证书:
任何人都可以在没有CA帮助的情况下制作自己的证书。 唯一的区别是您自己制作的证书不会被其他任何人信任;然后,您可以使用
localhost.crt和localhost.key配置本地网站服务器并在本地受信任的根列表中安装localhost.crt
如果您希望在开发证书中更加逼真,可以使用(minica)[https://github.com/jsha/minica]生成自己的本地根证书,并颁发由其签名的终
端(又称叶)证书。 然后,您将导入根证书而不是自签名的终端证书;您还可以选择使用带有点的域例如www.localhost将其作为别
名添加到/etc/hosts作为127.0.0.1的别名。这巧妙地改变了浏览器处理cookie存储的方式
comment
# 一步生成crt和key # 一步生成crt和key
openssl req -x509 -out localhost.crt -keyout localhost.key \ openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 -days 3650\ -newkey rsa:2048 -nodes -sha256 \
-subj '/CN=*.19950128.com' -extensions EXT -config <( \ -subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=*.19950128.com\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:*.19950128.com\\ printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\
nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth") nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
```
```bash
# 消息摘要算法应用例子
openssl dgst -sha1 file.txt # 用SHA1算法计算文件file.txt的哈西值输出到stdout
```
用SHA1算法计算文件file.txt的哈西值输出到文件digest.txt
```
# openssl sha1 -out digest.txt file.txt
``` ```
用DSS1(SHA1)算法为文件file.txt签名输出到文件dsasign.bin。签名的private key必须为DSA算法产生的保存在文件dsakey.pem中 ### 消息摘要算法应用例子
``` ```bash
# openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt openssl dgst -sha1 file.txt # 用SHA1算法计算文件file.txt的哈西值输出到stdout
``` openssl sha1 -out digest.txt file.txt # 用SHA1算法计算文件file.txt的哈西值输出到文件digest.txt
用dss1算法验证file.txt的数字签名dsasign.bin验证的private key为DSA算法产生的文件dsakey.pem
``` # 用DSS1(SHA1)算法为文件file.txt签名输出到文件dsasign.bin。签名的private key必须为DSA算法产生的保存在文件dsakey.pem中
# openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt
```
用sha1算法为文件file.txt签名,输出到文件rsasign.bin签名的private key为RSA算法产生的文件rsaprivate.pem # 用dss1算法验证file.txt的数字签名dsasign.bin验证的private key为DSA算法产生的文件dsakey.pem
openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt
``` # 用sha1算法为文件file.txt签名,输出到文件rsasign.bin签名的private key为RSA算法产生的文件rsaprivate.pem
# openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt
```
# 用sha1算法验证file.txt的数字签名rsasign.bin验证的public key为RSA算法生成的rsapublic.pem # 用sha1算法验证file.txt的数字签名rsasign.bin验证的public key为RSA算法生成的rsapublic.pem
openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt
```
# openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt
```
**2、对称加密应用例子**
对称加密应用例子用DES3算法的CBC模式加密文件plaintext.doc加密结果输出到文件ciphertext.bin
```
# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin
```
用DES3算法的OFB模式解密文件ciphertext.bin提供的口令为trousers输出到文件plaintext.doc。注意因为模式不同该命令不能对以上的文件进行解密
```
# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers
``` ```
用Blowfish的CFB模式加密plaintext.doc口令从环境变量PASSWORD中取输出到文件ciphertext.bin ### 对称加密应用例子
```
# openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD
```
给文件ciphertext.bin用base64编码输出到文件base64.txt
```
# openssl base64 -in ciphertext.bin -out base64.txt
```
用RC5算法的CBC模式加密文件plaintext.doc输出到文件ciphertext.binsalt、key和初始化向量(iv)在命令行指定
```
# openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K 89D4B1678D604FAA3DBFFD030A314B29
```
**3、Diffie-Hellman应用例子**
使用生成因子2和随机的1024-bit的素数产生D0ffie-Hellman参数输出保存到文件dhparam.pem
``` ```bash
# openssl dhparam -out dhparam.pem -2 1024 #对称加密应用例子用DES3算法的CBC模式加密文件plaintext.doc加密结果输出到文件ciphertext.bin
``` openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin
从dhparam.pem中读取Diffie-Hell参数以C代码的形式输出到stdout
```
# openssl dhparam -in dhparam.pem -noout -C
```
**4、DSA应用例子应用例子**
生成1024位DSA参数集并输出到文件dsaparam.pem # 用DES3算法的OFB模式解密文件ciphertext.bin提供的口令为trousers输出到文件plaintext.doc。注意因为模式不同该命令不能对以上的文件进行解密
openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers
``` # 用Blowfish的CFB模式加密plaintext.doc口令从环境变量PASSWORD中取输出到文件ciphertext.bin
# openssl dsaparam -out dsaparam.pem 1024 openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD
```
使用参数文件dsaparam.pem生成DSA私钥匙采用3DES加密后输出到文件dsaprivatekey.pem # 给文件ciphertext.bin用base64编码输出到文件base64.txt
openssl base64 -in ciphertext.bin -out base64.txt
# 用RC5算法的CBC模式加密文件plaintext.doc输出到文件ciphertext.binsalt、key和初始化向量(iv)在命令行指定
openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K 89D4B1678D604FAA3DBFFD030A314B29
``` ```
# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem
```
使用私钥匙dsaprivatekey.pem生成公钥匙输出到dsapublickey.pem
``` ### Diffie-Hellman应用例子
# openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem
```
从dsaprivatekey.pem中读取私钥匙解密并输入新口令进行加密然后写回文件dsaprivatekey.pem ```bash
# 使用生成因子2和随机的1024-bit的素数产生D0ffie-Hellman参数输出保存到文件dhparam.pem
openssl dhparam -out dhparam.pem -2 1024
# 从dhparam.pem中读取Diffie-Hell参数以C代码的形式输出到stdout
openssl dhparam -in dhparam.pem -noout -C
``` ```
# openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin
```
**5、RSA应用例子**
产生1024位RSA私匙用3DES加密它口令为trousers输出到文件rsaprivatekey.pem ### DSA应用例子应用例子
```
# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024
```
从文件rsaprivatekey.pem读取私匙用口令trousers解密生成的公钥匙输出到文件rsapublickey.pem ```bash
# 生成1024位DSA参数集并输出到文件dsaparam.pem
openssl dsaparam -out dsaparam.pem 1024
``` # 使用参数文件dsaparam.pem生成DSA私钥匙采用3DES加密后输出到文件dsaprivatekey.pem
# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem
```
用公钥匙rsapublickey.pem加密文件plain.txt输出到文件cipher.txt # 使用私钥匙dsaprivatekey.pem生成公钥匙输出到dsapublickey.pem
openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem
``` # 从dsaprivatekey.pem中读取私钥匙解密并输入新口令进行加密然后写回文件dsaprivatekey.pem
# openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin
``` ```
使用私钥匙rsaprivatekey.pem解密密文cipher.txt输出到文件plain.txt ### RSA应用例子
``` ```bash
# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt # 产生1024位RSA私匙用3DES加密它口令为trousers输出到文件rsaprivatekey.pem
``` openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024
用私钥匙rsaprivatekey.pem给文件plain.txt签名输出到文件signature.bin # 从文件rsaprivatekey.pem读取私匙用口令trousers解密生成的公钥匙输出到文件rsapublickey.pem
openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem
``` # 用公钥匙rsapublickey.pem加密文件plain.txt输出到文件cipher.txt
# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt
```
用公钥匙rsapublickey.pem验证签名signature.bin输出到文件plain.txt # 使用私钥匙rsaprivatekey.pem解密密文cipher.txt输出到文件plain.txt
openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt
``` # 用私钥匙rsaprivatekey.pem给文件plain.txt签名输出到文件signature.bin
# openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin
```
从X.509证书文件cert.pem中获取公钥匙用3DES加密mail.txt输出到文件mail.enc # 用公钥匙rsapublickey.pem验证签名signature.bin输出到文件plain.txt
openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain
``` # 从X.509证书文件cert.pem中获取公钥匙用3DES加密mail.txt输出到文件mail.enc
# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem
```
从X.509证书文件cert.pem中获取接收人的公钥匙用私钥匙key.pem解密S/MIME消息mail.enc结果输出到文件mail.txt # 从X.509证书文件cert.pem中获取接收人的公钥匙用私钥匙key.pem解密S/MIME消息mail.enc结果输出到文件mail.txt
openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt
``` # cert.pem为X.509证书文件用私匙key,pem为mail.txt签名证书被包含在S/MIME消息中输出到文件mail.sgn
# openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn
```
cert.pem为X.509证书文件用私匙key,pem为mail.txt签名证书被包含在S/MIME消息中输出到文件mail.sgn
``` # 验证S/MIME消息mail.sgn输出到文件mail.txt签名者的证书应该作为S/MIME消息的一部分包含在mail.sgn中
# openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn openssl smime -verify -in mail.sgn -out mail.txt
``` ```
验证S/MIME消息mail.sgn输出到文件mail.txt签名者的证书应该作为S/MIME消息的一部分包含在mail.sgn中
```
# openssl smime -verify -in mail.sgn -out mail.txt
```
制作并信任您自己的证书:
任何人都可以在没有CA帮助的情况下制作自己的证书。 唯一的区别是您自己制作的证书不会被其他任何人信任;然后,您可以使用
localhost.crt和localhost.key配置本地网站服务器并在本地受信任的根列表中安装localhost.crt
如果您希望在开发证书中更加逼真,可以使用(minica)[https://github.com/jsha/minica]生成自己的本地根证书,并颁发由其签名的终
端(又称叶)证书。 然后,您将导入根证书而不是自签名的终端证书;您还可以选择使用带有点的域例如www.localhost将其作为别
名添加到/etc/hosts作为127.0.0.1的别名。这巧妙地改变了浏览器处理cookie存储的方式
openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

@ -1,21 +1,13 @@
patch # **patch**
===
为开放源代码软件安装补丁程序
## 说明 ## 说明
**patch命令** 被用于为开放源代码软件安装补丁程序。让用户利用设置修补文件的方式修改更新原始文件。如果一次仅修改一个文件可直接在命令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件这也是Linux系统核心的升级方法之一 **patch命令** 被用于为开放源代码软件安装补丁程序。让用户利用设置修补文件的方式,修改,更新原始文件。如果一次仅修改一个文件,可直接在命令
列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件这也是Linux系统核心的升级方法之一
## 选项 ## 选项
``` ```markdown
patch(选项)(参数)
```
```
-b或--backup备份每一个原始文件 -b或--backup备份每一个原始文件
-B<备份字首字符串>或--prefix=<备份字首字符串>:设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称 -B<备份字首字符串>或--prefix=<备份字首字符串>:设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称
-c或--context把修补数据解译成关联性的差异 -c或--context把修补数据解译成关联性的差异
@ -50,9 +42,5 @@ patch(选项)(参数)
--verbose详细显示指令的执行过程 --verbose详细显示指令的执行过程
``` ```
### 参数
* 原文件:指定需要打补丁的原始文件
* 补丁文件:指定补丁文件

@ -4,9 +4,9 @@
**pidof命令** 用于查找指定名称的进程的进程号id号 **pidof命令** 用于查找指定名称的进程的进程号id号
## 选项
```sh ```markdown
-s仅返回一个进程pid号 -s仅返回一个进程pid号
-c仅显示具有相同“root”目录的进程 -c仅显示具有相同“root”目录的进程
-x显示由脚本开启的进程 -x显示由脚本开启的进程
@ -15,13 +15,6 @@
## 实例 ## 实例
```sh ```bash
pidof nginx pidof nginx # 查询nginx进程pid
13312 5371
pidof crond
1509
pidof init
1
``` ```

@ -1,7 +1,4 @@
pstree # pstree
===
以树状图的方式展现进程之间的派生关系
## 说明 ## 说明
@ -9,13 +6,7 @@ pstree
## 选项 ## 选项
``` ```markdown
pstree(选项)
```
```
-a显示每个程序的完整指令包含路径参数或是常驻服务的标示 -a显示每个程序的完整指令包含路径参数或是常驻服务的标示
-c不使用精简标示法 -c不使用精简标示法
-G使用VT100终端机的列绘图字符 -G使用VT100终端机的列绘图字符
@ -31,28 +22,12 @@ pstree(选项)
## 实例 ## 实例
显示当前所有进程的进程号和进程id
```
pstree -p
```
显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示
```bash ```bash
pstree -a pstree -p # 显示当前所有进程的进程号和进程id
``` pstree -a # 显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示
pstree -p | grep ssh # 获取 SSH 会话的 PID
获取 SSH 会话的 PID
```
pstree -p | grep ssh
# |-sshd(1221)-+-sshd(2768)---bash(2770)-+-grep(2810)
# | `-sshd(2807)---sshd(2808)
``` ```
从上方的输出中,你可以看到 sshd 进程与分支的树形图。sshd 的主进程是 sshd1221另两个分支分别为 sshd2768 和 sshd2807

@ -1,29 +1,22 @@
pv # pv
## 说明 ## 说明
**pv命令** Pipe Viewer 的简称由Andrew Wood 开发。意思是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间 **pv命令** Pipe Viewer 的简称由Andrew Wood 开发。意思是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间,
完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间
## 下载安装 ## 下载安装
```bash ```bash
# Debian 系的操作系统,如 Ubuntu sudo apt-get install pv# Debian
sudo apt-get install pv yum install pv # RedHat
# RedHat系的则这样
yum install pv
``` ```
## 选项 ## 选项
```bash ```markdown
pv(选项)(参数)
pv [OPTION] [FILE]... pv [OPTION] [FILE]...
```
```
-p, --progress show progress bar -p, --progress show progress bar
-t, --timer show elapsed time -t, --timer show elapsed time
-e, --eta show estimated time of arrival (completion) -e, --eta show estimated time of arrival (completion)
@ -61,38 +54,26 @@ pv [OPTION] [FILE]...
-d, --watchfd PID[:FD] watch file FD opened by process PID -d, --watchfd PID[:FD] watch file FD opened by process PID
-h, --help 显示帮助
-V, --version 显示版本信息
``` ```
## 实例 ## 实例
我们(在 linux 上使用命令行的用户)的大多数使用场景都会用到的命令是从一个 USB 驱动器拷贝电影文件到你的电脑。如果你使用 cp 来完成上面的任务,你会什么情况都不清楚,直到整个复制过程结束或者出错
```bash ```bash
# 复制文件会有进度 # 复制文件会有进度
linux [master●] % pv ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso > ~/Desktop/CentOS-7-x86_64-Minimal-1511.iso linux [master●] % pv ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso > ~/Desktop/CentOS-7-x86_64-Minimal-1511.iso
# 下面输入信息
552MiB 0:00:02 [ 212MiB/s] [==================> ] 91% ETA 0:00:00
# -L 可以让你修改 pv 命令的传输速率 # -L 可以让你修改 pv 命令的传输速率,使用 -L 选项来限制传输速率为2MB/s
# 使用 -L 选项来限制传输速率为2MB/s
pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv > ./Desktop/fnf.mkv pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv > ./Desktop/fnf.mkv
```
```bash
# 字符一个个匀速在命令行中显示出来 # 字符一个个匀速在命令行中显示出来
echo "Tecmint[dot]com is a community of Linux Nerds and Geeks" | pv -qL 10 echo "Tecmint[dot]com is a community of Linux Nerds and Geeks" | pv -qL 10
# 压缩文件展示进度信息 # 压缩文件展示进度信息
pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip > ./Desktop/fnf.log.gz pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip > ./Desktop/fnf.log.gz
# 用 dd 命令将 iso 写入磁盘pv来实现进度条的显示 # 用 dd 命令将 iso 写入磁盘pv来实现进度条的显示
sudo pv -cN source < /Users/kacperwang/Downloads/CentOS-7-x86_64-Everything-1511.iso | sudo dd of=/dev/disk2 bs=4m sudo pv -cN source < /Users/kacperwang/Downloads/CentOS-7-x86_64-Everything-1511.iso | sudo dd of=/dev/disk2 bs=4m
## 显示下面进度
source: 5.2GiB 5:11:41 [ 503KiB/s] [=====================> ] 71% ETA 2:01:56
``` ```

@ -1,7 +1,4 @@
rename # **rename**
===
用字符串替换的方式批量改变文件名
## 说明 ## 说明
@ -9,68 +6,44 @@ rename
## 选项 ## 选项
``` ```markdown
rename(参数) rename [选项] 表达式 替换文件...
```
### 参数
``` -v, --verbose 解释正在进行的操作
原字符串:将文件名需要替换的字符串 -s, --symlink 在符号链接上执行
目标字符串:将文件名中含有的原字符替换成目标字符串
文件:指定要改变文件名的文件列表
``` ```
## 实例 ## 实例
将main1.c重命名为main.c ```bash
rename main1.c main.c main1.c # 将main1.c重命名为main.c
```
rename main1.c main.c main1.c
``` ```
**rename支持通配符** **rename支持通配符**
```
? 可替代单个字符 ? 可替代单个字符
* 可替代多个字符 * 可替代多个字符
[charset] 可替代charset集中的任意单个字符 [charset] 可替代charset集中的任意单个字符
```
文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278 文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278
如果使用`rename foo foo0 foo?`会把foo1到foo9的文件重命名为foo01到foo09重命名的文件只是有4个字符长度名称的文件文件名中的foo被替换为foo0 如果使用`rename foo foo0 foo?`会把foo1到foo9的文件重命名为foo01到foo09重命名的文件只是有4个字符长度名称的文件foo被替换为foo0
如果使用`rename foo foo0 foo??`foo01到foo99的所有文件都被重命名为foo001到foo099只重命名5个字符长度名称的文件文件名中的foo被替换为foo0 如果使用`rename foo foo0 foo??`foo01到foo99的所有文件都被重命名为foo001到foo099只重命名5个字符长度名称的文件foo被替换为foo0
如果使用`rename foo foo0 foo*`foo001到foo278的所有文件都被重命名为foo0001到foo0278所有以foo开头的文件都被重命名 如果使用`rename foo foo0 foo*`foo001到foo278的所有文件都被重命名为foo0001到foo0278所有以foo开头的文件都被重命名
如果使用`rename foo0 foo foo0[2]*`从foo0200到foo0278的所有文件都被重命名为foo200到foo278文件名中的foo0被替换为foo 如果使用`rename foo0 foo foo0[2]*`从foo0200到foo0278的所有文件都被重命名为foo200到foo278文件名中的foo0被替换为foo
**rename支持正则表达式** **rename支持正则表达式**
字母的替换
``` ```bash
rename "s/AA/aa/" * //把文件名中的AA替换成aa rename "s/AA/aa/" * # 把文件名中的AA替换成aa
``` rename "s//.html//.php/" * # 把.html 后缀的改成 .php后缀
rename "s/$//.txt/" * # 把所有的文件名都以txt结尾
rename "s//.txt//" * # 把所有以.txt结尾的文件名的.txt删掉
修改文件的后缀
```
rename "s//.html//.php/" * //把.html 后缀的改成 .php后缀
```
批量添加文件后缀
```
rename "s/$//.txt/" * //把所有的文件名都以txt结尾
```
批量删除文件名
```
rename "s//.txt//" * //把所有以.txt结尾的文件名的.txt删掉
``` ```

@ -1,7 +1,4 @@
resize # resize
===
命令设置终端机视窗的大小
## 说明 ## 说明
@ -9,13 +6,7 @@ resize
## 选项 ## 选项
``` ```markdown
resize [-cu][-s <列数> <行数>]
```
```
-c  就算用户环境并非C Shell也用C Shell指令改变视窗大小 -c  就算用户环境并非C Shell也用C Shell指令改变视窗大小
-s <列数> <行数>  设置终端机视窗的垂直高度和水平宽度 -s <列数> <行数>  设置终端机视窗的垂直高度和水平宽度
-u  就算用户环境并非Bourne Shell也用Bourne Shell指令改变视窗大小 -u  就算用户环境并非Bourne Shell也用Bourne Shell指令改变视窗大小
@ -23,30 +14,11 @@ resize [-cu][-s <列数> <行数>]
## 实例 ## 实例
使用 C shell ```bash
resize -c # 使用 C shell
``` resize -u # 使用 Bourne shell
[root@localhost ~]# resize -c resize -s 80 160 # 设置指定大小
set noglob;
setenv COLUMNS '99';
setenv LINES '34';
unset noglob;
```
使用 Bourne shell
```
[root@localhost ~]# resize -u
COLUMNS=99;
LINES=34;
export COLUMNS LINES;
```
设置指定大小
```
[root@localhost ~]# resize -s 80 160
``` ```

@ -1,71 +1,35 @@
route # route
===
显示并设置Linux中静态路由表
## 说明 ## 说明
**route命令** 用来显示并设置Linux内核中的网络路由表route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信需要一台连接两个网络的路由器或者同时位于两个网络的网关来实现 **route命令** 用来显示并设置Linux内核中的网络路由表route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信需要一台连接
两个网络的路由器,或者同时位于两个网络的网关来实现
在Linux系统中设置路由通常是为了解决以下问题该Linux系统在一个局域网中局域网中有一个网关能够让机器访问Internet那么就需要将这台机器的ip地址设置为Linux机器的默认路由。要注意的是直接在命令行下执行route命令来添加路由不会永久保存当网卡重启或者机器重启之后该路由就失效了可以在`/etc/rc.local`中添加route命令来保证该路由设置永久有效 在Linux系统中设置路由通常是为了解决以下问题该Linux系统在一个局域网中局域网中有一个网关能够让机器访问Internet那么就需要将这台
机器的ip地址设置为Linux机器的默认路由。要注意的是直接在命令行下执行route命令来添加路由不会永久保存当网卡重启或者机器重启之后
路由就失效了;可以在`/etc/rc.local`中添加route命令来保证该路由设置永久有效
## 选项 ## 选项
``` ```markdown
route(选项)(参数) -v, --verbose be verbose
``` -n, --numeric 不执行DNS反向查找直接显示数字形式的IP地址
-e, --extend display other/more information
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
``` Add 增加指定的路由记录
-A设置地址类型 Del 删除指定的路由记录
-C打印将Linux核心的路由缓存 Target 目的网络或目的主机
-v详细信息模式 gw 设置默认网关
-n不执行DNS反向查找直接显示数字形式的IP地址 mss 设置TCP的最大区块长度MSS单位MB
-enetstat格式显示路由表 window 指定通过路由表的TCP连接的TCP窗口大小
-net到一个网络的路由表 dev 路由记录所表示的网络接口
-host到一个主机的路由表
```
### 参数
```
Add增加指定的路由记录
Del删除指定的路由记录
Target目的网络或目的主机
gw设置默认网关
mss设置TCP的最大区块长度MSS单位MB
window指定通过路由表的TCP连接的TCP窗口大小
dev路由记录所表示的网络接口
``` ```
## 实例 ## 实例
**显示当前路由:** 输出详解其中Flags为路由标志标记当前网络节点的状态Flags标志说明
```
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
112.124.12.0    *               255.255.252.0   U     0      0        0 eth1
10.160.0.0      *               255.255.240.0   U     0      0        0 eth0
192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
default         112.124.15.247  0.0.0.0         UG    0      0        0 eth1
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
112.124.12.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1
10.160.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
192.168.0.0 10.160.15.247 255.255.0.0 UG 0 0 0 eth0
172.16.0.0 10.160.15.247 255.240.0.0 UG 0 0 0 eth0
10.0.0.0 10.160.15.247 255.0.0.0 UG 0 0 0 eth0
0.0.0.0 112.124.15.247 0.0.0.0 UG 0 0 0 eth1
```
其中Flags为路由标志标记当前网络节点的状态Flags标志说明
* U Up表示此路由当前为启动状态 * U Up表示此路由当前为启动状态
* H Host表示此网关为一主机 * H Host表示此网关为一主机
@ -75,28 +39,17 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
* M Modified此路由是由路由守护程序或导向器动态修改 * M Modified此路由是由路由守护程序或导向器动态修改
* ! 表示此路由当前为关闭状态 * ! 表示此路由当前为关闭状态
**添加网关/设置网关:** ```bash
route # 显示当前路由
``` route -n
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一条到达244.0.0.0的路由 route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 # 添加网关/设置网关,增加一条到达244.0.0.0的路由
``` route add -net 224.0.0.0 netmask 240.0.0.0 reject # 屏蔽一条路由,增加一条屏蔽的路由目的地址为224.x.x.x将被拒绝
**屏蔽一条路由:** # 删除路由记录
```
route add -net 224.0.0.0 netmask 240.0.0.0 reject #增加一条屏蔽的路由目的地址为224.x.x.x将被拒绝
```
**删除路由记录:**
```
route del -net 224.0.0.0 netmask 240.0.0.0 route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject route del -net 224.0.0.0 netmask 240.0.0.0 reject
```
**删除和添加设置默认网关:**
``` # 删除和添加设置默认网关
route del default gw 192.168.120.240 route del default gw 192.168.120.240
route add default gw 192.168.120.240 route add default gw 192.168.120.240
``` ```

@ -1,7 +1,4 @@
rpmdb # rpmdb
===
初始化和重建RPM数据库
## 说明 ## 说明
@ -9,13 +6,7 @@ rpmdb
## 选项 ## 选项
``` ```markdown
rpmdb(选项)
```
```
--initdb初始化RPM数据库 --initdb初始化RPM数据库
--rebuilddb从已安装的包头文件反向重建RPM数据库 --rebuilddb从已安装的包头文件反向重建RPM数据库
``` ```

@ -1,7 +1,4 @@
rpmverify # rpmverify
===
验证已安装的RPM软件包的正确性
## 说明 ## 说明
@ -9,13 +6,7 @@ rpmverify
## 选项 ## 选项
``` ```markdown
rpmverify(选项)
```
```
-Va验证所有软件包 -Va验证所有软件包
-V<软件包>f验证指定软件包 -V<软件包>f验证指定软件包
--nomd5不验证软件包的md5摘要 --nomd5不验证软件包的md5摘要

@ -17,12 +17,23 @@ rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
对应于以上六种命令格式rsync有六种不同的工作模式 对应于以上六种命令格式rsync有六种不同的工作模式
1. 同步本地目录。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:`rsync -a /data /backup` * 同步本地目录。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式
2. 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:`rsync -avz *.c foo:src` 如:`rsync -a /data /backup`
3. 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:`rsync -avz foo:src/bar /data`
4. 拉取从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:`rsync -av root@192.168.78.192::www /databack` * 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式
5. 推送从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:`rsync -av /databack root@192.168.78.192::www` 如:`rsync -avz *.c foo:src`
6. 列远程机的文件列表。这类似于rsync传输不过只要在命令中省略掉本地机信息即可。如`rsync -v rsync://192.168.78.192/www`
* 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式
如:`rsync -avz foo:src/bar /data`
* 拉取从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式
如:`rsync -av root@192.168.78.192::www /databack`
* 推送从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式
如:`rsync -av /databack root@192.168.78.192::www`
* 列远程机的文件列表。这类似于rsync传输不过只要在命令中省略掉本地机信息即可
如:`rsync -v rsync://192.168.78.192/www`
``` ```
```markdown ```markdown
@ -32,7 +43,7 @@ rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理 -r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息 -R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀 -b, --backup 创建备份就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀
--backup-dir 将备份文件(如~filename)存放在在目录下 --backup-dir 将备份文件(如~filename)存放在在目录下
-suffix=SUFFIX 定义备份文件前缀 -suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新也就是跳过所有已经存在于DST并且文件时间晚于要备份的文件不覆盖更新的文件 -u, --update 仅仅进行更新也就是跳过所有已经存在于DST并且文件时间晚于要备份的文件不覆盖更新的文件
@ -90,106 +101,25 @@ rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
## 实例 ## 实例
windows下rsync权限注意事项密码文件执行chmod 600 rsync.passwd,用当前用户执行chown 用户名 rsync.passwd
### 使用SSH方式rsync进行同步 ### 使用SSH方式rsync进行同步
```bash ```bash
rsync -vzrtopg --progress -e ssh --delete work@172.16.78.192:/www/* /databack/experiment/rsync rsync -vzrtopg --progress -e ssh --delete work@172.16.78.192:/www/* /databack/experiment/rsync
windows权限注意事项
密码文件执行chmod 600 rsync.passwd,用当前用户执行chown 用户名 rsync.passwd
``` ```
### 后台服务方式 ### 后台服务方式
启动rsync服务编辑`/etc/xinetd.d/rsync`文件,将其中的`disable=yes`改为`disable=no`并重启xinetd服务如下 ```markdown
# 默认安装好rsync程序后配置文件为“/etc/rsyncd.conf”
```sh
vim /etc/xinetd.d/rsync
#default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync {
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
```
```sh
/etc/init.d/xinetd restart
停止 xinetd [确定]
启动 xinetd [确定]
```
创建配置文件默认安装好rsync程序后并不会自动创建rsync的主配置文件需要手工来创建其主配置文件为“/etc/rsyncd.conf”创建该文件并插入如下内容
```sh
vi /etc/rsyncd.conf
uid=root
gid=root
max connections=4
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
secrets file=/etc/rsyncd.passwd
hosts deny=172.16.78.0/22
[www]
comment= backup web
path=/www
read only = no
exclude=test
auth users=work
``` ```
创建密码文件采用这种方式不能使用系统用户对客户端进行认证所以需要创建一个密码文件其格式为“username:password”用户名可以和密码可以随便定义最好不要和系统帐户一致同时要把创建的密码文件权限设置为600这在前面的模块参数做了详细介绍 ```bash
# 创建密码文件,用户名可以和密码可以随便定义,服务端需要user:pass形式客户端只需要pass就行
```sh
echo "work:abc123" > /etc/rsyncd.passwd echo "work:abc123" > /etc/rsyncd.passwd
chmod 600 /etc/rsyncd.passwd chmod 600 /etc/rsyncd.passwd
```
备份,完成以上工作,现在就可以对数据进行备份了,如下:
```sh
rsync -avz --progress --delete work@172.16.78.192::www /databack/experiment/rsync
Password:
receiving file list ...
6 files to consider
./ files...
a
0 100% 0.00kB/s 528:20:41 (1, 50.0% of 6)
b
67 100% 65.43kB/s 0:00:00 (2, 66.7% of 6)
c
0 100% 0.00kB/s 528:20:41 (3, 83.3% of 6)
dd
100663296 100% 37.49MB/s 0:00:02 (4, 100.0% of 6)
sent 172 bytes received 98276 bytes 17899.64 bytes/sec
total size is 150995011 speedup is 1533.75
```
当服务器的数据出现问题时那么这时就需要通过客户端的数据对服务端进行恢复但前提是服务端允许客户端有写入权限否则也不能在客户端直接对服务端进行恢复使用rsync对数据进行恢复的方法如下
```sh
rsync -avz --progress /databack/experiment/rsync/ work@172.16.78.192::www
Password:
building file list ...
6 files to consider
./
a
b
67 100% 0.00kB/s 0:00:00 (2, 66.7% of 6)
c
sent 258 bytes received 76 bytes 95.43 bytes/sec
total size is 150995011 speedup is 452080.87
``` ```

@ -17,7 +17,7 @@
--follow-symlinks 直接修改文件时跟随软链接 --follow-symlinks 直接修改文件时跟随软链接
-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied) -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
-c, --copy use copy instead of rename when shuffling files in -i mode -c, --copy use copy instead of rename when shuffling files in -i mode
-b, --binary does nothing; for compatibility with WIN32/CYGWIN/MSDOS/EMX (open files in binary mode (CR+LFs are not treated specially)) -b, --binary 什么也不做用于与WIN32/CYGWIN/MSDOS/EMX兼容(二进制模式下的打开文件(CR+LF换行符未被特殊对待))
-l N, --line-length=N 指定“l”命令的换行期望长度 -l N, --line-length=N 指定“l”命令的换行期望长度
--posix 关闭所有 GNU 扩展 --posix 关闭所有 GNU 扩展
-r, --regexp-extended 在脚本中使用扩展正则表达式 -r, --regexp-extended 在脚本中使用扩展正则表达式
@ -32,7 +32,7 @@ sed脚本。其他非选项参数被视为输入文件如果没有输入文
### sed命令 ### sed命令
```markdown ```
a\ 在当前行下面插入文本 a\ 在当前行下面插入文本
i\ 在当前行上面插入文本 i\ 在当前行上面插入文本
c\ 把选定的行改为新的文本 c\ 把选定的行改为新的文本

@ -1,58 +1,19 @@
service # **service**
===
控制系统服务的实用工具
## 说明 ## 说明
**service命令** 是Redhat Linux兼容的发行版中用来控制系统服务的实用工具它以启动、停止、重新启动和关闭系统服务还可以显示所有系统服务当前状态 **service命令** 是Redhat Linux兼容的发行版中用来控制系统服务的实用工具它以启动、停止、重新启动和关闭系统服务显示所有系统服务当前状态
## 选项 ## 选项
``` ```markdown
service(选项)(参数)
```
```
-h显示帮助信息
--status-all显示所服务的状态 --status-all显示所服务的状态
``` ```
### 参数
* 服务名:自动要控制的服务名,即`/etc/init.d`目录下的脚本文件名
* 控制命令:系统服务脚本支持的控制命令
## 实例 ## 实例
当修改了主机名、ip地址等信息时经常需要把网络重启使之生效 ```bash
```
service network status
配置设备:
lo eth0
当前的活跃设备:
lo eth0
service network restart
正在关闭接口 eth0 [ 确定 ]
关闭环回接口: [ 确定 ]
设置网络参数: [ 确定 ]
弹出环回接口: [ 确定 ]
弹出界面 eth0 [ 确定 ]
```
重启mysql
```
service mysqld status
mysqld (pid 1638) 正在运行...
service mysqld restart
停止 MySQL [ 确定 ]
启动 MySQL [ 确定 ]
``` ```

@ -1,21 +1,12 @@
sftp # sftp
===
交互式的文件传输程序
## 说明 ## 说明
**sftp命令** 是一款交互式的文件传输程序,命令运行和使用方式与ftp命令相似是,sftp命令对传输的所有信息使用ssh加密它还支持公钥认证和压缩等功能 **sftp命令** 交互式的文件传输程序命令运行和使用方式与ftp命令相似但sftp命令对传输的所有信息使用ssh加密它还支持公钥认证和压缩等功能
## 选项 ## 选项
``` ```markdown
sftp(选项)(参数)
```
```
-B指定传输文件时缓冲区的大小 -B指定传输文件时缓冲区的大小
-l使用ssh协议版本1 -l使用ssh协议版本1
-b指定批处理文件 -b指定批处理文件
@ -26,8 +17,4 @@ sftp(选项)(参数)
-v升高日志等级 -v升高日志等级
``` ```
### 参数
目标主机指定sftp服务器ip地址或者主机名

@ -1,7 +1,4 @@
sleep # **sleep**
===
将目前动作延迟一段时间
## 说明 ## 说明
@ -9,31 +6,23 @@ sleep
## 选项 ## 选项
``` ```markdown
sleep(参数)
```
### 参数
时间:指定要暂停时间的长度
时间长度,后面可接 s、m、h 或 d其中 s 为秒m 为 分钟h 为小时d 为日数 时间长度,后面可接 s、m、h 或 d其中 s 为秒m 为 分钟h 为小时d 为日数
```
## 实例 ## 实例
有时在写一些以循环方式运行的监控脚本设置时间间隔是必不可少的下面是一个Shell进度条的脚本演示在脚本中生成延时 ```bash
# 有时在写一些以循环方式运行的监控脚本设置时间间隔是必不可少的下面是一个Shell进度条的脚本演示在脚本中生成延时
```
#!/bin/bash #!/bin/bash
b='' b=''
for ((i=0;$i<=100;i++)) for ((i=0;$i<=100;i++))
do do
printf "Progress:[%-100s]%d%%\r" $b $i printf "Progress:[%-100s]%d%%\r" $b $i
sleep 0.1 sleep 0.1
b=#$b b==#$b
done done
echo
``` ```

@ -1,24 +1,13 @@
source # **source**
===
在当前Shell环境中从指定文件读取和执行命令命令返回退出状态
## 说明 ## 说明
**source命令** 在当前Shell环境中从指定文件读取和执行命令命令返回退出状态 **source命令** 在当前Shell环境中从指定文件读取和执行命令命令返回退出状态
## 选项 ## 实例
```
source [文件名] [参数]
```
### 例子
读取和执行/root/.bash_profile文件
```bash ```bash
[root@localhost ~]# source ~/.bash_profile source ~/.bash_profile # 读取和执行/root/.bash_profile文件
``` ```

@ -1,208 +0,0 @@
ss
===
获取socket统计信息iproute2 包附带的另一个工具,允许你查询 socket 的有关统计信息
## 说明
**ss命令** 用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息而且比netstat更快速更高效
当服务器的socket连接数量变得非常大时无论是使用netstat命令还是直接`cat /proc/net/tcp`执行速度都会很慢。可能你不会有切身的感受但请相信我当服务器维持的连接达到上万个的时候使用netstat等于浪费 生命而用ss才是节省时间
天下武功唯快不破。ss快的秘诀在于它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块可以获得Linux 内核中第一手的信息这就确保了ss的快捷高效。当然如果你的系统中没有tcp_diagss也可以正常运行只是效率会变得稍慢
## 选项
```
ss [参数]
ss [参数] [过滤]
```
```
-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve 解析主机名
-a, --all 显示所有套接字sockets
-l, --listening 显示监听状态的套接字sockets
-o, --options 显示计时器信息
-e, --extended 显示详细的套接字sockets信息
-m, --memory 显示套接字socket的内存使用情况
-p, --processes 显示使用套接字socket的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字socket使用概况
-4, --ipv4 仅显示IPv4的套接字sockets
-6, --ipv6 仅显示IPv6的套接字sockets
-0, --packet 显示 PACKET 套接字socket
-t, --tcp 仅显示 TCP套接字sockets
-u, --udp 仅显示 UCP套接字sockets
-d, --dccp 仅显示 DCCP套接字sockets
-w, --raw 仅显示 RAW套接字sockets
-x, --unix 仅显示 Unix套接字sockets
-f, --family=FAMILY 显示 FAMILY类型的套接字socketsFAMILY可选支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 将原始TCP套接字sockets信息转储到文件
-F, --filter=FILE 从文件中都去过滤器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
```
## 实例
```bash
ss -t -a # 显示TCP连接
ss -s # 显示 Sockets 摘要
ss -l # 列出所有打开的网络连接端口
ss -pl # 查看进程使用的socket
ss -lp | grep 3306 # 找出打开套接字/端口应用程序
ss -u -a 显示所有UDP Sockets
ss -o state established '( dport = :smtp or sport = :smtp )' # 显示所有状态为established的SMTP连接
ss -o state established '( dport = :http or sport = :http )' # 显示所有状态为Established的HTTP连接
ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24 # 列举出处于 FIN-WAIT-1状态的源端口为 80或者 443目标网络为 193.233.7/24所有 tcp套接字
# ss 和 netstat 效率对比
time netstat -at
time ss
# 匹配远程地址和端口号
# ss dst ADDRESS_PATTERN
ss dst 192.168.1.5
ss dst 192.168.119.113:http
ss dst 192.168.119.113:smtp
ss dst 192.168.119.113:443
# 匹配本地地址和端口号
# ss src ADDRESS_PATTERN
ss src 192.168.119.103
ss src 192.168.119.103:http
ss src 192.168.119.103:80
ss src 192.168.119.103:smtp
ss src 192.168.119.103:25
```
**将本地或者远程端口和一个数比较**
```bash
# ss dport OP PORT 远程端口和一个数比较
# ss sport OP PORT 本地端口和一个数比较
# OP 可以代表以下任意一个:
# <= or le : 小于或等于端口号
# >= or ge : 大于或等于端口号
# == or eq : 等于端口号
# != or ne : 不等于端口号
# < or gt :
# > or lt : 大于端口号
ss sport = :http
ss dport = :http
ss dport \> :1024
ss sport \> :1024
ss sport \< :32000
ss sport eq :22
ss dport != :22
ss state connected sport = :http
ss \( sport = :http or sport = :https \)
ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24
```
**用TCP 状态过滤Sockets**
```bash
ss -4 state closing
# ss -4 state FILTER-NAME-HERE
# ss -6 state FILTER-NAME-HERE
# FILTER-NAME-HERE 可以代表以下任何一个:
# established、 syn-sent、 syn-recv、 fin-wait-1、 fin-wait-2、 time-wait、 closed、 close-wait、 last-ack、 listen、 closing、
# all : 所有以上状态
# connected : 除了listen and closed的所有状态
# synchronized :所有已连接的状态除了syn-sent
# bucket : 显示状态为maintained as minisockets,如time-wait和syn-recv.
# big : 和bucket相反.
```
**显示ICP连接**
```
[root@localhost ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 0 *:3306 *:*
LISTEN 0 0 *:http *:*
LISTEN 0 0 *:ssh *:*
LISTEN 0 0 127.0.0.1:smtp *:*
ESTAB 0 0 112.124.15.130:42071 42.156.166.25:http
ESTAB 0 0 112.124.15.130:ssh 121.229.196.235:33398
```
**显示 Sockets 摘要**
```
[root@localhost ~]# ss -s
Total: 172 (kernel 189)
TCP: 10 (estab 2, closed 4, orphaned 0, synrecv 0, timewait 0/0), ports 5
Transport Total ip IPv6
* 189 - -
RAW 0 0 0
UDP 5 5 0
TCP 6 6 0
INET 11 11 0
FRAG 0 0 0
```
列出当前的established, closed, orphaned and waiting TCP sockets
**列出所有打开的网络连接端口**
```
[root@localhost ~]# ss -l
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 *:3306 *:*
0 0 *:http *:*
0 0 *:ssh *:*
0 0 127.0.0.1:smtp *:*
```
**查看进程使用的socket**
```
[root@localhost ~]# ss -pl
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 *:3306 *:* users:(("mysqld",1718,10))
0 0 *:http *:* users:(("nginx",13312,5),("nginx",13333,5))
0 0 *:ssh *:* users:(("sshd",1379,3))
0 0 127.0.0.1:smtp *:* us
```
**找出打开套接字/端口应用程序**
```
[root@localhost ~]# ss -pl | grep 3306
0 0 *:3306 *:* users:(("mysqld",1718,10))
```
**显示所有UDP Sockets**
```
[root@localhost ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:syslog *:*
UNCONN 0 0 112.124.15.130:ntp *:*
UNCONN 0 0 10.160.7.81:ntp *:*
UNCONN 0 0 127.0.0.1:ntp *:*
UNCONN 0 0 *:ntp *:*
```
#### 出所有端口为 22ssh的连接
```bash
ss state all sport = :ssh
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 *:ssh *:*
tcp ESTAB 0 0 192.168.0.136:ssh 192.168.0.102:46540
tcp LISTEN 0 128 :::ssh :::*
```

@ -1,7 +1,4 @@
ssh-add # **ssh-add**
===
把专用密钥添加到ssh-agent的高速缓存中
## 说明 ## 说明
@ -9,15 +6,11 @@ ssh-add
## 选项 ## 选项
``` ```markdown
ssh-add [-cDdLlXx] [-t life] [file ...] ssh-add [-cDdLlXx] [-t life] [file ...]
ssh-add -s pkcs11 ssh-add -s pkcs11
ssh-add -e pkcs11 ssh-add -e pkcs11
```
```
-D删除ssh-agent中的所有密钥. -D删除ssh-agent中的所有密钥.
-d从ssh-agent中的删除密钥 -d从ssh-agent中的删除密钥
-e pkcs11删除PKCS#11共享库pkcs1提供的钥匙 -e pkcs11删除PKCS#11共享库pkcs1提供的钥匙
@ -31,22 +24,10 @@ ssh-add -e pkcs11
## 实例 ## 实例
1、把专用密钥添加到 ssh-agent 的高速缓存中: ```bash
ssh-add ~/.ssh/id_dsa # 把专用密钥添加到 ssh-agent 的高速缓存中
``` ssh-add -d ~/.ssh/id_xxx.pub # 从ssh-agent中删除密钥
ssh-add ~/.ssh/id_dsa ssh-add -l # 查看ssh-agent中的密钥
```
2、从ssh-agent中删除密钥
```
ssh-add -d ~/.ssh/id_xxx.pub
```
3、查看ssh-agent中的密钥
```
ssh-add -l
``` ```

@ -1,24 +1,19 @@
ssh-agent # ssh-agent
===
ssh密钥管理器
## 说明 ## 说明
**ssh-agent命令** 是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证 **ssh-agent命令** 是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动所有其他窗口或程序则以客户端
程序的身份启动并加入到ssh-agent程序中。通过使用环境变量可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证
其实ssh-agent就是一个密钥管理器运行ssh-agent以后使用ssh-add将私钥交给ssh-agent保管其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程 其实ssh-agent就是一个密钥管理器运行ssh-agent以后使用ssh-add将私钥交给ssh-agent保管其他程序需要身份验证的时候可以将验证申请
交给ssh-agent来完成整个认证过程
## 选项 ## 选项
``` ```markdown
ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]] ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]]
ssh-agent [-c | -s] -k ssh-agent [-c | -s] -k
```
```
-a bind_addressbind the agent to the UNIX-domain socket bind_address. -a bind_addressbind the agent to the UNIX-domain socket bind_address.
-c生成C-shell风格的命令输出 -c生成C-shell风格的命令输出
-d调试模式 -d调试模式
@ -29,12 +24,9 @@ ssh-agent [-c | -s] -k
## 实例 ## 实例
运行ssh-agent ```bash
```
ssh-agent
``` ```
运行ssh-agent它会打印出来它使用的环境和变量

@ -1,31 +1,22 @@
ssh-copy-id # **ssh-copy-id**
===
把本地的ssh公钥文件安装到远程主机对应的账户下
## 说明 ## 说明
**ssh-copy-id命令** 可以把本地主机的公钥复制到远程主机的authorized_keys文件上ssh-copy-id命令也会给远程主机的用户主目录home和`~/.ssh`, 和`~/.ssh/authorized_keys`设置合适的权限 **ssh-copy-id命令** 可以把本地主机的公钥复制到远程主机的authorized_keys文件上ssh-copy-id命令也会给远程主机的
用户主目录home和`~/.ssh`, 和`~/.ssh/authorized_keys`设置合适的权限
## 选项 ## 选项
``` ```markdown
ssh-copy-id [-i [identity_file]] [user@]machine ssh-copy-id [-i [identity_file]] [user@]machine
```
```
-i指定公钥文件 -i指定公钥文件
``` ```
## 实例 ## 实例
1、把本地的ssh公钥文件安装到远程主机对应的账户下 ```bash
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server # 把本地的ssh公钥文件安装到远程主机对应的账户下
```
ssh-copy-id user@server
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
``` ```

@ -1,7 +1,4 @@
ssh-keygen # **ssh-keygen**
===
为ssh生成、管理和转换认证密钥
## 说明 ## 说明
@ -9,48 +6,30 @@ ssh-keygen
## 选项 ## 选项
``` ```markdown
ssh-keygen(选项) 用法: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
```
```
-b指定密钥长度
-e读取openssh的私钥或者公钥文件
-C添加注释
-f指定用来保存密钥的文件名
-i读取未加密的ssh-v2兼容的私钥/公钥文件然后在标准输出设备上显示openssh兼容的私钥/公钥
-l显示公钥文件的指纹数据
-N提供一个新密语
-P提供密语
-q静默模式
-t指定要创建的密钥类型
```
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
[-N new_passphrase] [-C comment] [-f output_keyfile] [-N new_passphrase] [-C comment] [-f output_keyfile]
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
ssh-keygen -i [-m key_format] [-f input_keyfile] ssh-keygen -i [-m key_format] [-f input_keyfile]
ssh-keygen -e [-m key_format] [-f input_keyfile] ssh-keygen -e [-m key_format] [-f input_keyfile]
ssh-keygen -y [-f input_keyfile] ssh-keygen -y [-f input_keyfile]
ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile] ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
ssh-keygen -B [-f input_keyfile] ssh-keygen -B [-f input_keyfile]
ssh-keygen -D pkcs11 ssh-keygen -D pkcs11
ssh-keygen -F hostname [-f known_hosts_file] [-l] ssh-keygen -F hostname [-f known_hosts_file] [-l]
ssh-keygen -H [-f known_hosts_file] ssh-keygen -H [-f known_hosts_file]
ssh-keygen -R hostname [-f known_hosts_file] ssh-keygen -R hostname [-f known_hosts_file]
ssh-keygen -r hostname [-f input_keyfile] [-g] ssh-keygen -r hostname [-f input_keyfile] [-g]
ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point] ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines] ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
[-j start_line] [-K checkpt] [-W generator] [-j start_line] [-K checkpt] [-W generator]
ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals] ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
[-O option] [-V validity_interval] [-z serial_number] file ... [-O option] [-V validity_interval] [-z serial_number] file ...
ssh-keygen -L [-f input_keyfile] ssh-keygen -L [-f input_keyfile]
ssh-keygen -A ssh-keygen -A
ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
file ... file ...
ssh-keygen -Q -f krl_file file ... ssh-keygen -Q -f krl_file file ...

@ -1,7 +1,4 @@
ssh-keyscan # **ssh-keyscan**
===
收集主机公钥的使用工具
## 说明 ## 说明
@ -9,13 +6,10 @@ ssh-keyscan
## 选项 ## 选项
``` ```markdown
ssh-keyscan(选项)(参数) 用法ssh-keyscan [-46cHv] [-f file] [-p port] [-T timeout] [-t type]
``` [host | addrlist namelist] ...
```
-4强制使用IPv4地址 -4强制使用IPv4地址
-6强制使用IPv6地址 -6强制使用IPv6地址
-f从指定文件中读取“地址列表/名字列表” -f从指定文件中读取“地址列表/名字列表”
@ -25,8 +19,5 @@ ssh-keyscan(选项)(参数)
-v信息模式打印调试信息 -v信息模式打印调试信息
``` ```
### 参数
主机列表:指定要收集公钥的主机列表

@ -13,10 +13,10 @@ sudo - 以其他用户身份执行一条命令
sudo -h | -K | -k | -V sudo -h | -K | -k | -V
sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user] sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command] sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [<command>] sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value]
[-i|-s] [<command>]
sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ... sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...
选项:
-A, --askpass 使用助手程序进行密码提示 -A, --askpass 使用助手程序进行密码提示
-b, --background 在后台运行命令 -b, --background 在后台运行命令
-C, --close-from=num 关闭所有 >= num 的文件描述符 -C, --close-from=num 关闭所有 >= num 的文件描述符

@ -1,7 +1,4 @@
sum # sum
===
计算文件的校验码和显示块数
## 说明 ## 说明
@ -9,28 +6,15 @@ sum
## 选项 ## 选项
``` ```markdown
sum(选项)(参数)
```
```
-r使用BSD的校验和算法块大小为1k -r使用BSD的校验和算法块大小为1k
-s使用system V的校验和算法块大小为512字节 -s使用system V的校验和算法块大小为512字节
``` ```
### 参数
文件列表:需要计算和与磁盘块数的文件列表
## 实例 ## 实例
计算文件校验码: ```bash
sum insert.sql # 计算文件校验码
```
[root@localhost ~]# sum insert.sql
00827 12
``` ```

@ -1,7 +1,4 @@
swapoff # swapoff
===
关闭指定的交换空间
## 说明 ## 说明
@ -9,26 +6,15 @@ swapoff
## 选项 ## 选项
``` ```markdown
swapoff(选项)(参数)
```
```
-a关闭配置文件“/etc/fstab”中所有的交换空间 -a关闭配置文件“/etc/fstab”中所有的交换空间
``` ```
### 参数
交换空间:指定需要激活的交换空间,可以是交换文件和交换分区,如果是交换分区则指定交换分区对应的设备文件
## 实例 ## 实例
关闭交换分区 ```bash
swapoff /dev/sda2 # 关闭交换分区
``` ```
swapoff /dev/sda2
```

@ -1,7 +1,4 @@
swapon # swapon
===
激活Linux系统中交换空间
## 说明 ## 说明
@ -9,13 +6,7 @@ swapon
## 选项 ## 选项
``` ```markdown
swapon(选项)(参数)
```
```
-a将/etc/fstab文件中所有设置为swap的设备启动为交换区 -a将/etc/fstab文件中所有设置为swap的设备启动为交换区
-h显示帮助 -h显示帮助
-p<优先顺序>:指定交换区的优先顺序 -p<优先顺序>:指定交换区的优先顺序
@ -23,19 +14,13 @@ swapon(选项)(参数)
-V显示版本信息 -V显示版本信息
``` ```
### 参数
交换空间:指定需要激活的交换空间,可以是交换文件和交换分区,如果是交换分区则指定交换分区对应的设备文件
## 实例 ## 实例
``` ```bash
mkswap -c /dev/hdb4 -c是检查有无坏块 mkswap -c /dev/hdb4 # -c是检查有无坏块
swapon -v /dev/hdb4 swapon -v /dev/hdb4
swapon -s swapon -s
Filename type Size Used Priority
/dev/hda5 partition 506008 96 -1
/dev/hdb4 partition 489972 0 -2
``` ```

@ -2,19 +2,23 @@
## 说明 ## 说明
**sync命令** 强迫将已更改的数据写入磁盘并更新超级块。在Linux/Unix系统中在文件或数据处理过程中一般先放到内存缓冲区中等到适当的时候再写入磁盘以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令系统会自动执行update或bdflush操作将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时才需手动执行sync命令 **sync命令** 强迫将已更改的数据写入磁盘并更新超级块。在Linux/Unix系统中在文件或数据处理过程中一般先放到内存缓冲区中等到适当的时候
再写入磁盘以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令系统会自动执行update
或bdflush操作将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时才需手动执行sync命令
## buffer与cache ## buffer与cache
* buffer为了解决写磁盘的效率 * buffer为了解决写磁盘的效率
* cache为了解决读磁盘的效率 * cache为了解决读磁盘的效率
linux系统为了提高读写磁盘的效率会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中而是先写入这块buffer中了。此时如果重启系统就可能造成数据丢失 linux系统为了提高读写磁盘的效率会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中而是先写入这块buffer中了。此时如果重启
系统,就可能造成数据丢失
sync命令用来flush文件系统buffer这样数据才会真正的写到磁盘中并且buffer才能够释放出来flush就是用来清空buffer。sync命令会强制将数据写入磁盘中并释放该数据对应的buffer所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘 sync命令用来flush文件系统buffer这样数据才会真正的写到磁盘中并且buffer才能够释放出来flush就是用来清空buffer。sync命令会强制将数据
写入磁盘中并释放该数据对应的buffer所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘
如果不去手动的输入sync命令来真正的去写磁盘linux系统也会周期性的去sync数据 如果不去手动的输入sync命令来真正的去写磁盘linux系统也会周期性的去sync数据
```sh ```bash
sync; echo 3 > /proc/sys/vm/drop_caches # 清空Linux Buffer Cache sync; echo 3 > /proc/sys/vm/drop_caches # 清空Linux Buffer Cache
``` ```

@ -2,13 +2,18 @@
## 说明 ## 说明
**syslog** 是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序守护进程和内核提供了访问系统的日志信息。因此任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息 ```markdown
**syslog** 是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序守护进程和内核提供了访问系统的日志信息。
因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息
几乎所有的网络设备都可以通过syslog协议将日志信息以用户数据报协议(UDP)方式传送到远端服务器远端接收日志服务器必须通过syslogd监听UDP 端口514并根据 syslog.conf配置文件中的配置处理本机接收访问系统的日志信息把指定的事件写入特定文件中供后台数据库管理和响应之用。意味着可以让任何事件都登录到一台或多台服务器上以备后台数据库用off-line(离线) 方法分析远端设备的事件 几乎所有的网络设备都可以通过syslog协议将日志信息以用户数据报协议(UDP)方式传送到远端服务器远端接收日志服务器必须通过syslogd监听UDP
端口514并根据 syslog.conf配置文件中的配置处理本机接收访问系统的日志信息把指定的事件写入特定文件中供后台数据库管理和响应之用。
意味着可以让任何事件都登录到一台或多台服务器上以备后台数据库用off-line(离线) 方法分析远端设备的事件
通常syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息 通常syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息
此 rsyslogd 后台进程负责搜集来自应用程序与核心的服务消息,然后送至日志档内 (通常保存在 /var/log/ 文件夹内)。遵守 /etc/rsyslog.conf 配置文件的要求 rsyslogd后台进程负责搜集应用程序与核心的服务消息然后送至日志档内(通常保存在 /var/log/ 文件夹内)。遵守/etc/rsyslog.conf配置文件的要求
每个日志信息都和应用子系统相关联文档中称为“facility” 每个日志信息都和应用子系统相关联文档中称为“facility”
auth 和 authpriv用于授权 auth 和 authpriv用于授权
cron源于任务调度服务 cron 和 atd cron源于任务调度服务 cron 和 atd
@ -31,30 +36,19 @@ warn警告潜在的错误
notice正常情况但是该消息很重要 notice正常情况但是该消息很重要
info提供信息 info提供信息
debug调试消息 debug调试消息
### 使用方法
在/var/log中创建并写入日志信息是由syslog协议处理的是由守护进程sylogd负责执行。每个标准的进程都可以用syslog记录日志。可以使用logger命令通过syslogd记录日志
要向syslog文件/var/log/messages中记录日志信息
``` ```
logger this is a test log line
输出: ## 实例
tail -n 1 messages
Jan 5 10:07:03 localhost root: this is a test log line
``` ```bash
# 在/var/log中创建并写入日志信息是由syslog协议处理的是由守护进程sylogd负责执行。每个标准的进程都可以用syslog记录日志。可以使用
# logger命令通过syslogd记录日志
如果要记录特定的标记tag可以使用 logger this is a test log line # 向syslog文件/var/log/messages中记录日志信息
``` logger -t TAG this is a test log line # 记录特定的标记tag可以使用
logger -t TAG this is a test log line
输出:
tail -n 1 messages
Jan 5 10:37:14 localhost TAG: this is a test log line
``` ```

@ -1,299 +1,203 @@
systemctl # **systemctl**
===
系统服务管理器指令
## 说明 ## 说明
**systemctl命令** 是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起 **systemctl命令** 是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起
<table> ## 选项
<tbody> ```markdown
--system Connect to system manager
<tr> -H --host=[USER@]HOST
Operate on remote host
<td>任务</td> -M --machine=CONTAINER
Operate on local container
<td>旧指令</td> -t --type=TYPE List units of a particular type
--state=STATE List units with particular LOAD or SUB or ACTIVE state
<td>新指令</td> -p --property=NAME Show only properties by this name
-a --all Show all loaded units/properties, including dead/empty
</tr> ones. To list all units installed on the system, use
the 'list-unit-files' command instead.
<tr> -l --full Don't ellipsize unit names on output
-r --recursive Show unit list of host and local containers
<td>使某服务自动启动</td> --reverse Show reverse dependencies with 'list-dependencies'
--job-mode=MODE Specify how to deal with already queued jobs, when
<td>chkconfig --level 3 httpd on</td> queueing a new job
--show-types When showing sockets, explicitly show their type
<td>systemctl enable httpd.service</td> -i --ignore-inhibitors
When shutting down or sleeping, ignore inhibitors
</tr> --kill-who=WHO Who to send signal to
-s --signal=SIGNAL Which signal to send
<tr> --now Start or stop unit in addition to enabling or disabling it
-q --quiet Suppress output
<td>使某服务不自动启动</td> --no-block Do not wait until operation finished
--no-wall Don't send wall message before halt/power-off/reboot
<td>chkconfig --level 3 httpd off</td> --no-reload Don't reload daemon after en-/dis-abling unit files
--no-legend Do not print a legend (column headers and hints)
<td>systemctl disable httpd.service</td> --no-pager Do not pipe output into a pager
--no-ask-password
</tr> Do not ask for system passwords
--global Enable/disable unit files globally
<tr> --runtime Enable unit files only temporarily until next reboot
-f --force When enabling unit files, override existing symlinks
<td>检查服务状态</td> When shutting down, execute action immediately
--preset-mode= Apply only enable, only disable, or all presets
<td>service httpd status</td> --root=PATH Enable unit files in the specified root directory
-n --lines=INTEGER Number of journal entries to show
<td>systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)</td> -o --output=STRING Change journal output mode (short, short-iso,
short-precise, short-monotonic, verbose,
</tr> export, json, json-pretty, json-sse, cat)
--plain Print unit dependencies as a list instead of a tree
<tr>
Unit Commands:
<td>显示所有已启动的服务</td> list-units [PATTERN...] List loaded units
list-sockets [PATTERN...] List loaded sockets ordered by address
<td>chkconfig --list</td> list-timers [PATTERN...] List loaded timers ordered by next elapse
start NAME... Start (activate) one or more units
<td>systemctl list-units --type=service</td> stop NAME... Stop (deactivate) one or more units
reload NAME... Reload one or more units
</tr> restart NAME... Start or restart one or more units
try-restart NAME... Restart one or more units if active
<tr> reload-or-restart NAME... Reload one or more units if possible,
otherwise start or restart
<td>启动某服务</td> reload-or-try-restart NAME... Reload one or more units if possible,
otherwise restart if active
<td>service httpd start</td> isolate NAME Start one unit and stop all others
kill NAME... Send signal to processes of a unit
<td>systemctl start httpd.service</td> is-active PATTERN... Check whether units are active
is-failed PATTERN... Check whether units are failed
</tr> status [PATTERN...|PID...] Show runtime status of one or more units
show [PATTERN...|JOB...] Show properties of one or more
<tr> units/jobs or the manager
cat PATTERN... Show files and drop-ins of one or more units
<td>停止某服务</td> set-property NAME ASSIGNMENT... Sets one or more properties of a unit
help PATTERN...|PID... Show manual for one or more units
<td>service httpd stop</td> reset-failed [PATTERN...] Reset failed state for all, one, or more
units
<td>systemctl stop httpd.service</td> list-dependencies [NAME] Recursively show units which are required
or wanted by this unit or by which this
</tr> unit is required or wanted
<tr> Unit File Commands:
list-unit-files [PATTERN...] List installed unit files
<td>重启某服务</td> enable NAME... Enable one or more unit files
disable NAME... Disable one or more unit files
<td>service httpd restart</td> reenable NAME... Reenable one or more unit files
preset NAME... Enable/disable one or more unit files
<td>systemctl restart httpd.service</td> based on preset configuration
preset-all Enable/disable all unit files based on
</tr> preset configuration
is-enabled NAME... Check whether unit files are enabled
</tbody> mask NAME... Mask one or more units
unmask NAME... Unmask one or more units
</table> link PATH... Link one or more units files into
the search path
## 实例 add-wants TARGET NAME... Add 'Wants' dependency for the target
on specified one or more units
1.启动nfs服务 add-requires TARGET NAME... Add 'Requires' dependency for the target
on specified one or more units
``` edit NAME... Edit one or more unit files
systemctl start nfs-server.service get-default Get the name of the default target
``` set-default NAME Set the default target
2.设置开机自启动 Machine Commands:
list-machines [PATTERN...] List local containers and host
Job Commands:
list-jobs [PATTERN...] List jobs
cancel [JOB...] Cancel all, one, or more jobs
Snapshot Commands:
snapshot [NAME] Create a snapshot
delete NAME... Remove one or more snapshots
Environment Commands:
show-environment Dump environment
set-environment NAME=VALUE... Set one or more environment variables
unset-environment NAME... Unset one or more environment variables
import-environment [NAME...] Import all or some environment variables
Manager Lifecycle Commands:
daemon-reload Reload systemd manager configuration
daemon-reexec Reexecute systemd manager
System Commands:
is-system-running Check whether system is fully running
default Enter system default mode
rescue Enter system rescue mode
emergency Enter system emergency mode
halt Shut down and halt the system
poweroff Shut down and power-off the system
reboot [ARG] Shut down and reboot the system
kexec Shut down and reboot the system with kexec
exit Request user instance exit
switch-root ROOT [INIT] Change to a different root file system
suspend Suspend the system
hibernate Hibernate the system
hybrid-sleep Hibernate and suspend the system
``` ```
systemctl enable nfs-server.service
```
3.停止开机自启动
```
systemctl disable nfs-server.service
```
4.查看服务当前状态
```
systemctl status nfs-server.service
```
5.重新启动某服务
``` ## 实例
systemctl restart nfs-server.service
```
6.查看所有已启动的服务
```
systemctl list -units --type=service
```
开启防火墙22端口
```
iptables -I INPUT -p tcp --dport 22 -j accept
```
如果仍然有问题就可能是SELinux导致的 ```bash
systemctl reboot # 重启系统
systemctl poweroff # 关闭系统,切断电源
systemctl halt # 关机
systemctl suspend # 暂停系统
systemctl hibernate # 休眠系统
systemctl hybrid-sleep # 让系统进入交互式休眠状态
systemctl rescue # 启动进入救援状态(单用户状态)
systemctl list-units --type=service # 查看所有服务单元
关闭SElinux systemd-analyze blame # 显示瀑布状的启动过程流
systemd-analyze critical-chain atd.service # 显示指定服务的启动流
修改`/etc/selinux/config`文件中的`SELINUX=””`为disabled然后重启 localectl set-locale LANG=en_GB.utf8 localectl set-keymap en_GB # 设置本地化参数
彻底关闭防火墙: timedatectl list-timezones # 显示所有可用的时区
```
sudo systemctl status firewalld.service
sudo systemctl stop firewalld.service          
sudo systemctl disable firewalld.service
```
```sh
1.systemctl
# 重启系统
systemctl reboot
# 关闭系统,切断电源
systemctl poweroff
# CPU停止工作
systemctl halt
# 暂停系统
systemctl suspend
# 让系统进入冬眠状态
systemctl hibernate
# 让系统进入交互式休眠状态
systemctl hybrid-sleep
# 启动进入救援状态(单用户状态)
systemctl rescue
2.systemd-analyze
# 查看启动耗时
systemd-analyze
# 查看每个服务的启动耗时
systemd-analyze blame
# 显示瀑布状的启动过程流
systemd-analyze critical-chain
# 显示指定服务的启动流
systemd-analyze critical-chain atd.service
3.hostnamectl
# 显示当前主机的信息
hostnamectl
# 设置主机名
hostnamectl set-hostname rhel7
4.localectl
# 查看本地化设置
localectl
# 设置本地化参数
localectl set-locale LANG=en_GB.utf8 localectl set-keymap en_GB
5.timedatectl
# 查看当前时区设置
timedatectl
# 显示所有可用的时区
timedatectl list-timezones
# 设置当前时区 # 设置当前时区
timedatectl set-timezone America/New_York timedatectl set-timezone America/New_York
timedatectl set-time YYYY-MM-DD timedatectl set-time YYYY-MM-DD
timedatectl set-time HH:MM:SS timedatectl set-time HH:MM:SS
6.loginctl
# 列出当前session
loginctl list-sessions
# 列出当前登录用户
loginctl list-users
# 列出显示指定用户的信息
loginctl show-user ruanyf
# 列出正在运行的 Unit
systemctl list-units
# 列出所有Unit包括没有找到配置文件的或者启动失败的
systemctl list-units --all
# 列出所有没有运行的 Unit
systemctl list-units --all --state=inactive
# 列出所有加载失败的 Unit
systemctl list-units --failed
# 列出所有正在运行的、类型为 service 的 Unit
systemctl list-units --type=service
除了systemctl status ,还有三个查询状态方法,主要是脚本内部的判断语句使用
# 显示某个 Unit 是否正在运行
systemctl is-active application.service
# 显示某个 Unit 是否处于启动失败状态
systemctl is-failed application.service
# 显示某个 Unit 服务是否建立了启动链接
systemctl is-enabled application.service
```
### 常用systemctl命令 loginctl list-sessions # 列出当前session
loginctl list-users # 列出当前登录用户
loginctl show-user ruanyf # 列出显示指定用户的信息
systemctl is-active application.service # 显示某个 Unit 是否正在运行
systemctl is-failed application.service # 显示某个 Unit 是否处于启动失败状态
systemctl is-enabled application.service # 显示某个 Unit 服务是否建立了启动链接
systemctl daemon-reload # 重载所有修改过的配置文件
systemctl show httpd.service # 显示某个 Unit 的所有底层参数
systemctl set-property httpd.service CPUShares=500 # 设置某个 Unit 的指定属性
systemctl list-dependencies nginx.service # 列出一个unit的所有依赖
systemctl list-unit-files # 列出所有systemctl配置文件
systemctl list-unit-files --type=service # 列出指定类型的配置文件
systemctl list-unit-files --type=target # 查看当前系统的所有 Target
systemctl list-dependencies multi-user.target # 查看一个 Target 包含的所有 Unit
systemctl get-default # 查看启动时的默认 Target
systemctl set-default multi-user.target # 设置启动时的默认 Target
journalctl -k # 查看内核日志(不显示应用日志)
journalctl -b -0 # 查看系统本次启动的日志
journalctl -b -1 # 查看上一次启动的日志(需更改设置)
```sh
# 立即启动一个服务
systemctl start apache.service
# 立即停止一个服务
systemctl stop apache.service
# 重启一个服务
systemctl restart apache.service
# 杀死一个服务的所有子进程
systemctl kill apache.service
# 重新加载一个服务的配置文件
systemctl reload apache.service
# 重载所有修改过的配置文件
systemctl daemon-reload
# 显示某个 Unit 的所有底层参数
$ systemctl show httpd.service
# 显示某个 Unit 的指定属性的值
$ systemctl show -p CPUShares httpd.service
# 设置某个 Unit 的指定属性
systemctl set-property httpd.service CPUShares=500
# 列出一个unit的所有依赖
systemctl list-dependencies nginx.service
# 列出所有systemctl配置文件
systemctl list-unit-files
# 列出指定类型的配置文件
systemctl list-unit-files --type=service
# 查看当前系统的所有 Target
$ systemctl list-unit-files --type=target
# 查看一个 Target 包含的所有 Unit
$ systemctl list-dependencies multi-user.target
# 查看启动时的默认 Target
$ systemctl get-default
# 设置启动时的默认 Target
systemctl set-default multi-user.target
# 查看所有日志(默认情况下 ,只保存本次启动的日志)
journalctl
# 查看内核日志(不显示应用日志)
journalctl -k
# 查看系统本次启动的日志
journalctl -b
journalctl -b -0
# 查看上一次启动的日志(需更改设置)
journalctl -b -1
# 查看指定时间的日志 # 查看指定时间的日志
journalctl --since="2012-10-30 18:17:16" journalctl --since="2012-10-30 18:17:16"
journalctl --since "20 min ago" journalctl --since "20 min ago"
journalctl --since yesterday journalctl --since yesterday
journalctl --since "2015-01-10" --until "2015-01-11 03:00" journalctl --since 09:00 --until "1 hour ago" journalctl --since "2015-01-10" --until "2015-01-11 03:00" journalctl --since 09:00 --until "1 hour ago"
# 显示尾部的最新10行日志 journalctl -n 20 # 显示尾部指定行数的日志
journalctl -n journalctl -f # 实时滚动显示最新日志
# 显示尾部指定行数的日志 journalctl _PID=1 # 查看指定进程的日志
journalctl -n 20 journalctl _UID=33 --since today # 查看指定用户的日志
# 实时滚动显示最新日志 journalctl -u nginx.service --since today # 查看某个 Unit 的日志
journalctl -f journalctl -u nginx.service -f # 实时滚动显示某个 Unit 的最新日志
# 查看指定服务的日志 journalctl -u nginx.service -u php-fpm.service --since today # 合并显示多个 Unit 的日志
journalctl /usr/lib/systemd/systemd
# 查看指定进程的日志 journalctl -p err -b
journalctl _PID=1
# 查看某个路径的脚本的日志
journalctl /usr/bin/bash
# 查看指定用户的日志
journalctl _UID=33 --since today
# 查看某个 Unit 的日志
journalctl -u nginx.service
journalctl -u nginx.service --since today
# 实时滚动显示某个 Unit 的最新日志
journalctl -u nginx.service -f
# 合并显示多个 Unit 的日志
journalctl -u nginx.service -u php-fpm.service --since today
# 查看指定优先级及其以上级别的日志共有8级 # 查看指定优先级及其以上级别的日志共有8级
0: emerg 0: emerg
1: alert 1: alert
@ -303,18 +207,12 @@ journalctl -u nginx.service -u php-fpm.service --since today
5: notice 5: notice
6: info 6: info
7: debug 7: debug
journalctl -p err -b
# 日志默认分页输出,--no-pager 改为正常的标准输出 journalctl --no-pager # 日志默认分页输出,--no-pager 改为正常的标准输出
journalctl --no-pager journalctl -b -u nginx.service -o json # 以 JSON 格式(单行)输出
# 以 JSON 格式(单行)输出 journalctl -b -u nginx.serviceqq -o json-pretty # 以 JSON 格式(多行)输出,可读性更好
journalctl -b -u nginx.service -o json journalctl --disk-usage # 显示日志占据的硬盘空间
# 以 JSON 格式(多行)输出,可读性更好 journalctl --vacuum-size=1G # 指定日志文件占据的最大空间
journalctl -b -u nginx.serviceqq -o json-pretty journalctl --vacuum-time=1years # 指定日志文件保存多久
# 显示日志占据的硬盘空间
journalctl --disk-usage
# 指定日志文件占据的最大空间
journalctl --vacuum-size=1G
# 指定日志文件保存多久
journalctl --vacuum-time=1years
``` ```

@ -1,7 +1,4 @@
systool # systool
===
显示基于总线、类和拓扑显示系统中设备的信息
## 说明 ## 说明
@ -9,13 +6,7 @@ systool
## 选项 ## 选项
``` ```markdown
systool(选项)(参数)
```
```
-a显示被请求资源的属性 -a显示被请求资源的属性
-b<总线>:显示指定总线的信息 -b<总线>:显示指定总线的信息
-c<class>:显示指定类的信息 -c<class>:显示指定类的信息
@ -29,176 +20,11 @@ systool(选项)(参数)
-P显示设备的父类 -P显示设备的父类
``` ```
### 参数
设备:指定要查看信息的设备名称
## 实例 ## 实例
``` ```bash
[root@localhost ~]# systool systool
Supported sysfs buses:
acpi
i2c
ide
pci_express
pci
pcmcia
platform
pnp
scsi
serio
usb
Supported sysfs classes:
backlight
cpuid
dma_v3
firmware
graphics
hidraw
hwmon
i2c-adapter
input
leds
mem
misc
msr
net
pci_bus
pcmcia_socket
printer
raw
sas_device
sas_end_device
sas_expander
sas_host
sas_phy
sas_port
scsi_device
scsi_disk
scsi_generic
scsi_host
sound
tty
usb_device
usb_endpoint
usb_host
vc
vtconsole
Supported sysfs devices:
acpi
pci0000:00
platform
pnp0
sequencer2
sequencer
seq
system
timer
Supported sysfs modules:
8250
acpi_memhotplug
ac
asus_acpi
ata_piix
auth_rpcgss
backlight
battery
button
cifs
cpufreq
crypto_api
dell_wmi
dm_log
dm_mem_cache
dm_message
dm_mirror
dm_mod
dm_multipath
dm_raid45
dm_region_hash
dock
e1000e
edac_mc
ehci_hcd
exportfs
ext3
hwmon
i2c_core
i2c_ec
i2c_i801
i7core_edac
i8042
ip_conntrack_netbios_ns
ip_conntrack
ip_tables
iptable_filter
ipv6
it821x
jbd
joydev
keyboard
libata
lockd
lp
md_mod
mousedev
mpt2sas
nfnetlink
nfs_acl
nfsd
nls_utf8
ohci_hcd
parport_pc
parport
pci_hotplug
pcmcia
pcmcia_core
pcspkr
piix
power_meter
printk
processor
psmouse
rsrc_nonstatic
sbs
scsi_dh
scsi_mod
scsi_transport_sas
sd_mod
serio_raw
sg
shpchp
snd_hda_intel
snd_hwdep
snd_mixer_oss
snd_page_alloc
snd_pcm_oss
snd_pcm
snd_seq_device
snd_seq_dummy
snd_seq_midi_event
snd_seq_oss
snd_seq
snd_timer
snd
soundcore
sunrpc
tcp_bic
tpm_bios
tpm_tis
tpm
uhci_hcd
usbcore
usbhid
video
wmi
x_tables
xfrm_nalgo
xt_limit
xt_state
xt_tcpudp
yenta_socket
``` ```

@ -1,7 +1,4 @@
tac # **tac**
===
将文件已行为单位的反序输出
## 说明 ## 说明
@ -9,19 +6,12 @@ tac
## 选项 ## 选项
``` ```markdown
tac(选项)(参数) -b, --before 在行前而非行尾添加分隔标志
``` -r, --regex 将分隔标志视作正则表达式来解析
-s, --separator=字符串 使用指定字符串代替换行作为分隔标志
``` ```
-a或——append将内容追加到文件的末尾
-i或——ignore-interrupts忽略中断信号
```
### 参数
文件列表:指定要保存内容的文件列表

@ -9,14 +9,30 @@
K值后缀b表示512b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,GB 1000*1000*1000, K值后缀b表示512b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,GB 1000*1000*1000,
G 1024*1024*1024, and so on for T, P, E, Z, Y G 1024*1024*1024, and so on for T, P, E, Z, Y
## 选项
```markdown ```markdown
--c, --bytes=K 输出文件尾部的第KK为整数个字节内容 -c, --bytes=K 输出最后K个字节或使用-c + K输出从每个文件的第K个字节开始的字节
-f, --follow[={name|descriptor}] 显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效 -f, --follow[={name|descriptor}]
-F与选项“-follow=name --retry"连用时功能相同 output appended data as the file grows;
-n, --lines=K 输出文件的尾部NN位数字行内容 an absent option argument means 'descriptor'
--pid=<进程号> :与“-f”选项连用当指定的进程号的进程终止后自动退出tail命令 -F same as --follow=name --retry
-q或——quiet或——silent当有多个文件参数时不输出各个文件名 -n, --lines=K output the last K lines, instead of the last 10;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用指定监视文件变化时间隔的秒数 or use -n +K to output starting with the Kth
--max-unchanged-stats=N
with --follow=name, reopen a FILE which has not
changed size after N (default 5) iterations
to see if it has been unlinked or renamed
(this is the usual case of rotated log files);
with inotify, this option is rarely useful
--pid=PID with -f, terminate after process ID, PID dies
-q, --quiet, --silent never output headers giving file names
--retry keep trying to open a file if it is inaccessible
-s, --sleep-interval=N with -f, sleep for approximately N seconds
(default 1.0) between iterations;
with inotify and --pid=P, check process P at
least once every N seconds
``` ```
## 实例 ## 实例

@ -1,38 +1,28 @@
tailf # **tailf**
===
在屏幕上显示指定文件的末尾若干行内容,通常用于日志文件的跟踪输出
## 说明 ## 说明
tailf命令几乎等同于`tail -f`,严格说来应该与`tail --follow=name`更相似些。当文件改名之后它也能继续跟踪特别适合于日志文件的跟踪follow the growth of a log file。与`tail -f`不同的是如果文件不增长它不会去访问磁盘文件。tailf特别适合那些便携机上跟踪日志文件因为它能省电因为减少了磁盘访问。tailf命令不是个脚本而是一个用C代码编译后的二进制执行文件某些Linux安装之后没有这个命令 tailf命令几乎等同于`tail -f`,严格说来应该与`tail --follow=name`更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪
follow the growth of a log file。与`tail -f`不同的是如果文件不增长它不会去访问磁盘文件。tailf特别适合那些便携机上跟踪
日志文件因为它能省电因为减少了磁盘访问。tailf命令不是个脚本而是一个用C代码编译后的二进制执行文件某些Linux安装之后没有这个命令
tailf和tail -f的区别 tailf和tail -f的区别
1. tailf 总是从文件开头一点一点的读, 而tail -f 则是从文件尾部开始读 1. tailf 总是从文件开头一点一点的读, 而tail -f 则是从文件尾部开始读
2. tailf check文件增长时使用的是文件名 用stat系统调用而tail -f 则使用的是已打开的文件描述符; 注tail 也可以做到类似跟踪文件名的效果; 但是tail总是使用fstat系统调用而不是stat系统调用结果就是默认情况下当tail的文件被偷偷删除时tail是不知道的而tailf是知道的 2. tailf check文件增长时使用的是文件名 用stat系统调用而tail -f 则使用的是已打开的文件描述符tail也可以做到类似跟踪文件名的
效果; 但tail总是使用fstat系统调用而不是stat系统调用默认情况下当tail的文件被偷偷删除时tail是不知道的而tailf是知道的
## 选项 ## 选项
```bash ```markdown
tailf logfile # 动态跟踪日志文件logfile最初的时候打印文件的最后10行内容
```
```bash
-n, --lines NUMBER # 输出最后数行 -n, --lines NUMBER # 输出最后数行
-NUMBER # 与NUMBER相同 `-n NUMBER' -NUMBER # 与NUMBER相同 `-n NUMBER'
-V, --version # 输出版本信息并退出
-h, --help # 显示帮助并退出
```
### 参数
目标:指定目标日志 ```
## 实例 ## 实例
```
```bash
tailf log/WEB.LOG tailf log/WEB.LOG
tailf -n 5 log2014.log # 显示文件最后5行内容 tailf -n 5 log2014.log # 显示文件最后5行内容
``` ```

@ -1,22 +1,9 @@
talk # talk
===
让用户和其他用户聊天
## 说明 ## 说明
**talk命令** 是talk服务器的客户端工具通过talk命令可以让用户和其他用户聊天。linux中talk命令参数程序的使用很简单只要知道交谈对象的地址就可以邀请对方交谈 **talk命令** 是talk服务器的客户端工具通过talk命令可以让用户和其他用户聊天。linux中talk命令参数程序的使用很简单
只要知道交谈对象的地址,就可以邀请对方交谈
## 选项
```
talk(参数)
```
### 参数
* 用户:指定聊天的用户
* 终端:指定用户的终端
## 实例 ## 实例

@ -1,7 +1,4 @@
tee # tee
===
把数据重定向到给定文件和屏幕上
## 说明 ## 说明
@ -9,55 +6,22 @@ tee
! !
存在缓存机制每1024个字节将输出一次。若从管道接收输入数据应该是缓冲区满才将数据转存到指定的文件中。若文件内容不到1024个字节则接收完从标准输入设备读入的数据后将刷新一次缓冲区并转存数据到指定文件 存在缓存机制每1024个字节将输出一次。若从管道接收输入数据应该是缓冲区满才将数据转存到指定的文件中。
若文件内容不到1024个字节则接收完从标准输入设备读入的数据后将刷新一次缓冲区并转存数据到指定文件
## 选项 ## 选项
``` ```markdown
tee(选项)(参数) -a, --append 内容追加到给定的文件而非覆盖
``` -i, --ignore-interrupts 忽略中断信号
``` ```
-a向文件中重定向时使用追加模式
-i忽略中断interrupt信号
```
### 参数
文件:指定输出重定向的文件 ## 选项
在终端打印stdout同时重定向到文件中 ```bash
ls | tee out.txt # 在终端打印stdout同时重定向到文件中
``` ```
ls | tee out.txt
1.sh
1.txt
2.txt
eee.tst
EEE.tst
one
out.txt
string2
www.pdf
WWW.pdf
WWW.pef
```
```
[root@localhost text]# ls | tee out.txt | cat -n
1 1.sh
2 1.txt
3 2.txt
4 eee.tst
5 EEE.tst
6 one
7 out.txt
8 string2
9 www.pdf
10 WWW.pdf
11 WWW.pef
```

@ -1,21 +1,17 @@
telnet # **telnet**
===
登录远程主机和管理
## 说明 ## 说明
**telnet命令** 用于登录远程主机对远程主机进行管理。telnet因为采用明文传送报文安全性不好很多Linux服务器都不开放telnet服务而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录因此弄清楚telnet客户端的使用方式仍是很有必要的 **telnet命令** 用于登录远程主机对远程主机进行管理。telnet因为采用明文传送报文安全性不好很多Linux服务器都不开放telnet服务
而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录因此弄清楚telnet客户端的使用方式仍是很有必要的
## 选项 ## 选项
``` ```markdown
telnet(选项)(参数) 用法telnet [-4] [-6] [-8] [-E] [-L] [-S tos] [-a] [-c] [-d] [-e char] [-l user]
``` [-n tracefile] [-b hostalias ] [-r]
[host-name [port]]
```
-8允许使用8位字符资料包括输入与输出 -8允许使用8位字符资料包括输入与输出
-a尝试自动登入远端系统 -a尝试自动登入远端系统
-b<主机别名>:使用别名指定远端主机名称 -b<主机别名>:使用别名指定远端主机名称
@ -36,102 +32,11 @@ telnet(选项)(参数)
-X<认证形态>:关闭指定的认证形态 -X<认证形态>:关闭指定的认证形态
``` ```
### 参数
* 远程主机:指定要登录进行管理的远程主机
* 端口指定TELNET协议使用的端口号
## 实例 ## 实例
``` ```bash
$ telnet 192.168.2.10 telnet 192.168.2.10
Trying 192.168.2.10...
Connected to 192.168.2.10 (192.168.2.10).
Escape character is '^]'.
localhost (Linux release 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:44 EST 2012) (1)
login: root
Password:
Login incorrect
```
一般情况下不允许root从远程登录可以先用普通账号登录然后再用su -切到root用户
```
$ telnet 192.168.188.132
Trying 192.168.188.132...
telnet: connect to address 192.168.188.132: Connection refused
telnet: Unable to connect to remote host
```
处理这种情况方法:
1. 确认ip地址是否正确
1. 确认ip地址对应的主机是否已经开机
1. 如果主机已经启动确认路由设置是否设置正确使用route命令查看
1. 如果主机已经启动确认主机上是否开启了telnet服务使用netstat命令查看TCP的23端口是否有LISTEN状态的行
1. 如果主机已经启动telnet服务确认防火墙是否放开了23端口的访问使用iptables-save查看
**启动telnet服务**
```
service xinetd restart
```
配置参数,通常的配置如下:
```
service telnet
{
disable = no #启用
flags = REUSE #socket可重用
socket_type = stream #连接方式为TCP
wait = no #为每个请求启动一个进程
user = root #启动服务的用户为root
server = /usr/sbin/in.telnetd #要激活的进程
log_on_failure += USERID #登录失败时记录登录用户名
}
```
如果要配置允许登录的客户端列表,加入
```
only_from = 192.168.0.2 #只允许192.168.0.2登录
```
如果要配置禁止登录的客户端列表,加入
```
no_access = 192.168.0.{2,3,4} #禁止192.168.0.2、192.168.0.3、192.168.0.4登录
```
如果要设置开放时段,加入
```
access_times = 9:00-12:00 13:00-17:00 # 每天只有这两个时段开放服务我们的上班时间P
```
如果你有两个IP地址一个是私网的IP地址如192.168.0.2一个是公网的IP地址如218.75.74.83如果你希望用户只能从私网来登录telnet服务那么加入
```
bind = 192.168.0.2
```
各配置项具体的含义和语法可参考xined配置文件属性说明man xinetd.conf
配置端口修改services文件
```
# vi /etc/services
```
找到以下两句
```
telnet 23/tcp
telnet 23/udp
```
如果前面有#字符就去掉它。telnet的默认端口是23这个端口也是黑客端口扫描的主要对象因此最好将这个端口修改掉修改的方法很简单就是将23这个数字修改掉改成大一点的数字比如61123。注意1024以下的端口号是internet保留的端口号因此最好不要用还应该注意不要与其它服务的端口冲突。
启动服务:
```
service xinetd restart
``` ```

@ -2,7 +2,8 @@
## 实例 ## 实例
当测试一个程序或比较不同算法时执行时间是非常重要的一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令使用这个命令可以统计时间消耗。例如time command 当测试一个程序或比较不同算法时执行时间是非常重要的一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令使用这个命令可以
统计时间消耗。例如time command
```sh ```sh
real 0m0.009s real 0m0.009s
@ -16,9 +17,10 @@ sys 0m0.007s
3sys时间是指花费在内核模式中的CPU时间代表在内核中执系统调用所花费的时间这也是真正由进程使用的CPU时间 3sys时间是指花费在内核模式中的CPU时间代表在内核中执系统调用所花费的时间这也是真正由进程使用的CPU时间
``` ```
shell内建也有一个time命令当运行time时候是调用的系统内建命令应为系统内建的功能有限所以需要时间其他功能需要使用time命令可执行二进制文件`/usr/bin/time` shell内建也有一个time命令当运行time时候是调用的系统内建命令应为系统内建的功能有限所以需要时间其他功能需要使用time命令可执行
二进制文件`/usr/bin/time`
```sh ```bash
/usr/bin/time -o outfile.txt ls # 使用`-o`选项将执行时间写入到文件中 /usr/bin/time -o outfile.txt ls # 使用`-o`选项将执行时间写入到文件中
/usr/bin/time -a -o outfile.txt ls # 使用`-a`选项追加信息 /usr/bin/time -a -o outfile.txt ls # 使用`-a`选项追加信息
/usr/bin/time -f "time: %U" ls # 使用`-f`选项格式化时间输出 /usr/bin/time -f "time: %U" ls # 使用`-f`选项格式化时间输出

@ -1,7 +1,4 @@
tree # **tree**
===
树状图列出目录的内容
## 说明 ## 说明
@ -9,13 +6,7 @@ tree
## 选项 ## 选项
``` ```markdown
tree(选项)(参数)
```
```bash
------- 列表选项 ------- ------- 列表选项 -------
-a # 显示所有文件和目录 -a # 显示所有文件和目录
-d # 先是目录名称而非文件 -d # 先是目录名称而非文件
@ -68,42 +59,18 @@ tree(选项)(参数)
-T string # Replace the default HTML title and H1 header with string. -T string # Replace the default HTML title and H1 header with string.
--nolinks # Turn off hyperlinks in HTML output. --nolinks # Turn off hyperlinks in HTML output.
---- 杂项选项 ---- ---- 杂项选项 ----
--version # 输入版本信息
--help # 打印使用帮助信息
-- # Options processing terminator. -- # Options processing terminator.
``` ```
### 参数
目录执行tree指令它会列出指定目录下的所有文件包括子目录里的文件
## 实例 ## 实例
列出目录`/private/` 第一级文件名
```bash
tree /private/ -L 1
/private/
├── etc
├── tftpboot
├── tmp
└── var
```
忽略文件夹
```bash ```bash
tree /private/ -L 1 # 列出目录`/private/` 第一级文件名
tree -I node_modules # 忽略当前目录文件夹node_modules tree -I node_modules # 忽略当前目录文件夹node_modules
tree -P node_modules # 列出当前目录文件夹node_modules的目录结构 tree -P node_modules # 列出当前目录文件夹node_modules的目录结构
tree -P node_modules -L 2 # 显示目录node_modules两层的目录树结构 tree -P node_modules -L 2 # 显示目录node_modules两层的目录树结构
tree -L 2 > /home/www/tree.txt # 当前目录结果存到 tree.txt 文件中 tree -L 2 > /home/www/tree.txt # 当前目录结果存到 tree.txt 文件中
``` tree -I 'node_modules|icon|font' -L 2 # 忽略多个文件夹
忽略多个文件夹
```bash
tree -I 'node_modules|icon|font' -L 2
``` ```

@ -19,7 +19,7 @@ tty [选项]
-s 什么也不显示,只返回退出状态值 -s 什么也不显示,只返回退出状态值
``` ```
### ##
显示连接到当前标准输入的终端设备文件名 显示连接到当前标准输入的终端设备文件名

@ -1,7 +1,4 @@
type # type
===
显示指定命令的类型
## 说明 ## 说明
@ -9,60 +6,27 @@ type
命令类型: 命令类型:
* alias别名 * alias别名
* keyword关键字Shell保留字 * keyword关键字Shell保留字
* function函数Shell函数 * function函数Shell函数
* builtin内建命令Shell内建命令 * builtin内建命令Shell内建命令
* file文件磁盘文件外部命令 * file文件磁盘文件外部命令
* unfound没有找到 * unfound没有找到
## 选项 ## 选项
``` ```markdown
type(选项)(参数)
```
```
-t输出“file”、“alias”或者“builtin”分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令” -t输出“file”、“alias”或者“builtin”分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令”
-p如果给出的指令为外部指令则显示其绝对路径 -p如果给出的指令为外部指令则显示其绝对路径
-a在环境变量“PATH”指定的路径中显示给定指令的信息包括命令别名 -a在环境变量“PATH”指定的路径中显示给定指令的信息包括命令别名
``` ```
### 参数
指令:要显示类型的指令
## 实例 ## 实例
``` ```bash
[root@localhost ~]# type ls type ls
ls is aliased to `ls --color=tty' type -a cd
type -a grep
[root@localhost ~]# type cd
cd is a shell builtin
[root@localhost ~]# type date
date is /bin/date
[root@localhost ~]# type mysql
mysql is /usr/bin/mysql
[root@localhost ~]# type nginx
-bash: type: nginx: not found
[root@localhost ~]# type if
if is a shell keyword
[root@localhost ~]# type which
which is aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]# type -a cd
cd is a shell builtin
[root@localhost ~]# type -a grep
grep is /bin/grep
``` ```

@ -1,55 +1,30 @@
umask # **umask**
===
用来设置限制新建文件权限的掩码
## 说明 ## 说明
**umask命令** 用来设置限制新建文件权限的掩码。当新文件被创建时其最初的权限由文件创建掩码决定。用户每次注册进入系统时umask命令都被执行 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值新的权限将会把旧的覆盖掉 **umask命令** 用来设置限制新建文件权限的掩码。当新文件被创建时其最初的权限由文件创建掩码决定。用户每次注册进入系统时umask命令都
被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值新的权限将会把旧的覆盖掉
umask 0022中第一零表示特殊权限位后三位表示用户权限位也是权限掩码值777-022=755 默认创建目录的权限 umask 0022中第一零表示特殊权限位后三位表示用户权限位也是权限掩码值777-022=755 默认创建目录的权限
但是实际上创建文件的权限是644666-022因此引出一个linux权限规则的问题 但是实际上创建文件的权限是644666-022因此引出一个linux权限规则的问题
缺省创建的文件不能授予可执行X权限目的防止恶意攻击和病毒哈这只是安全的一个小小小方面 缺省创建的文件不能授予可执行X权限目的防止恶意攻击和病毒哈这只是安全的一个小小小方面
## 选项 ## 选项
``` ```markdown
umask(选项)(参数) 用法:umask [-p] [-S] [模式]
```
```
-p输出的权限掩码可直接作为指令来执行 -p输出的权限掩码可直接作为指令来执行
-S以符号方式输出权限掩码 -S以符号方式输出权限掩码
``` ```
### 参数
权限掩码:指定权限掩码
## 实例 ## 实例
利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如可以使用下面的命令创建掩码使得组用户的写权限其他用户的读、写和执行权限都被取消 ```bash
# umask命令可以指定哪些权限在新文件的默认权限中被删除。例如:将组用户的写权限,其他用户的读、写和执行权限都被取消
```
umask u=, g=w, o=rwx umask u=, g=w, o=rwx
umask -s # 检查新创建文件的默认权限
``` ```
执行该命令以后,对于下面创建的新文件,其文件主的权限未做任何改变,而组用户没有写权限,其他用户的所有权限都被取消
应注意:操作符“=”在umask命令和chmod命令中的作用恰恰相反。在chmod命令中利用它来设置指定的权限而其余权限则被删除但是在umask命令中它将在原有权限的基础上删除指定的权限
不能直接利用umask命令创建一个可执行的文件用户只能在其后利用chmod命令使它具有执行权限。假设执行了命令`umask u=, g=w, o=rwx`虽然在命令行中没有删去文件主和组用户的执行权限但默认的文件权限还是640即 rw-r-----而不是750(rwxr-x---)。但是,如果创建的是目录或者通过编译程序创建的一个可执行文件,将不受此限制。在这种情况 下,会设置文件的执行权限
也可以使用八进制数值来设置mode。由于在umask中所指定的权限是要从文件中删除的所以如果该文件原来的初始化权限是777那么执行命令umask 022以后该文件的权限将变为755如果该文件原来的初始化权限是666那么该文件的权限将变为644
可以使用下面的命令检查新创建文件的默认权限:
```
umask -s
```
选项-s表示以字符形式显示当前的掩码。如果直接输入umask命令不带任何参数那么将以八进制形式显示当前的掩码。系统默认的掩码是0022

@ -1,42 +1,21 @@
unalias # unalias
===
删除由alias设置的别名
## 说明 ## 说明
**unalias命令** 用来取消命令别名是为shell内建命令。如果需要取消任意一个命令别名则使用该命令别名作为指令的参数选项即可。如果使用`-a`选项,则表示取消所有已经存在的命令别名 **unalias命令** 用来取消命令别名是为shell内建命令。如果需要取消任意一个命令别名则使用该命令别名作为指令的参数选项即可。
如果使用`-a`选项,则表示取消所有已经存在的命令别名
## 选项 ## 选项
``` ```markdown
unalias(选项)(参数)
```
```
-a取消所有命令别名 -a取消所有命令别名
``` ```
### 参数
命令别名:指定要取消的命令别名
## 实例 ## 实例
使用unalias命令将已经设置的命令别名"cc"取消,输入如下命令: ```bash
unalias cc # 使用unalias命令将已经设置的命令别名"cc"取消
``` ```
unalias cc #取消已经设置的命令别名
```
上面的命令执行后,系统会将指定的命令别名取消掉。如果用户再使用该命令别名时,系统将提示如下信息:
```
ccno input files
```
因此,当使用该指令将命令别名取消后,将不能够再进行使用。否则,将出现错误提示

@ -1,7 +1,4 @@
uncompress # uncompress
===
用来解压.Z文件
## 说明 ## 说明
@ -9,34 +6,16 @@ uncompress
## 选项 ## 选项
``` ```markdown
uncompress(选项)(参数)
```
```
-f不提示用户强制覆盖掉目标文件 -f不提示用户强制覆盖掉目标文件
-c将结果送到标准输出无文件被改变 -c将结果送到标准输出无文件被改变
-r递归的操作方式 -r递归的操作方式
``` ```
### 参数
文件:指定要压缩的“.Z”压缩包
## 实例 ## 实例
先创建一个.Z压缩文件 ```bash
uncompress FileName.Z # 解压
```
compress FileName
```
解压:
```
uncompress FileName.Z
``` ```

@ -1,27 +1,8 @@
unlink # unlink
===
系统调用函数unlink去删除指定的文件
## 说明 ## 说明
**unlink命令** 用于系统调用函数unlink去删除指定的文件。和rm命令作用一样都是删除文件 **unlink命令** 用于系统调用函数unlink去删除指定的文件。和rm命令作用一样都是删除文件
## 选项
```
unlink(选项)(参数)
```
```
--help显示帮助
--version显示版本号
```
### 参数
文件:指定要删除的文件

@ -1,7 +1,4 @@
unset # **unset**
===
删除指定的shell变量或函数
## 说明 ## 说明
@ -9,29 +6,14 @@ unset
## 选项 ## 选项
``` ```markdown
unset(选项)(参数)
```
```
-f仅删除函数 -f仅删除函数
-v仅删除变量 -v仅删除变量
``` ```
### 参数
shell变量或函数指定要删除的shell变量或shell函数
## 实例 ## 实例
使用unset命令将前面所创建的环境变量mylove及其对应的值进行删除输入如下命令 ```bash
unset -v mylove # 使用unset命令将前面所创建的环境变量mylove及其对应的值进行删除
``` ```
unset -v mylove #删除指定的环境变量
```
执行以上命令后系统将删除指定的环境变量。用户可以使用env命令和grep命令对其进行查询。已经删除的环境变量再次使用指令查询时将出现查询不到指定环境变量的输出信息

@ -1,7 +1,4 @@
unzip # **unzip**
===
用于解压缩由zip命令压缩的压缩包
## 说明 ## 说明
@ -9,13 +6,7 @@ unzip
## 选项 ## 选项
``` ```markdown
unzip(选项)(参数)
```
```
-c将解压缩的结果显示到屏幕上并对字符做适当的转换 -c将解压缩的结果显示到屏幕上并对字符做适当的转换
-f更新现有的文件 -f更新现有的文件
-l显示压缩文件内所包含的文件 -l显示压缩文件内所包含的文件
@ -40,36 +31,40 @@ unzip(选项)(参数)
-d<目录>:指定文件解压缩后所要存储的目录 -d<目录>:指定文件解压缩后所要存储的目录
-x<文件>:指定不要处理.zip压缩文件中的哪些文件 -x<文件>:指定不要处理.zip压缩文件中的哪些文件
-Zunzip-Z等于执行zipinfo指令 -Zunzip-Z等于执行zipinfo指令
```
### 参数
压缩包:指定要解压的“.zip”压缩包
## 实例
将压缩文件text.zip在当前目录下解压缩 Default action is to extract files in list, except those in xlist, to exdir;
file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).
```
unzip test.zip -p extract files to pipe, no messages -l list files (short format)
``` -f freshen existing files, create none -t test compressed archive data
-u update files, create if necessary -z display archive comment only
将压缩文件text.zip在指定目录`/tmp`下解压缩如果已有相同的文件存在要求unzip命令不覆盖原先的文件 -v list verbosely/show version info -T timestamp archive to latest
-x exclude files that follow (in xlist) -d extract files into exdir
``` modifiers:
unzip -n test.zip -d /tmp -n never overwrite existing files -q quiet mode (-qq => quieter)
-o overwrite files WITHOUT prompting -a auto-convert any text files
-j junk paths (do not make directories) -aa treat ALL files as text
-U use escapes for all non-ASCII Unicode -UU ignore any Unicode fields
-C match filenames case-insensitively -L make (some) names lowercase
-X restore UID/GID info -V retain VMS version numbers
-K keep setuid/setgid/tacky permissions -M pipe through "more" pager
-O CHARSET specify a character encoding for DOS, Windows and OS/2 archives
-I CHARSET specify a character encoding for UNIX and other archives
See "unzip -hh" or unzip.txt for more help. Examples:
unzip data1 -x joe => extract all files except joe from zipfile data1.zip
unzip -p foo | more => send contents of foo.zip via pipe into program more
unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newe
``` ```
查看压缩文件目录,但不解压 ## 实例
```
unzip -v test.zip
```
将压缩文件test.zip在指定目录`/tmp`下解压缩如果已有相同的文件存在要求unzip命令覆盖原先的文件 ```bash
unzip test.zip # 将压缩文件text.zip在当前目录下解压缩
unzip -n test.zip -d /tmp # 将压缩文件text.zip在指定目录`/tmp`下解压缩如果已有相同的文件存在要求unzip命令不覆盖原先的文件
unzip -v test.zip # 查看压缩文件目录,但不解压
unzip -o test.zip -d tmp/ # 将压缩文件test.zip在指定目录`/tmp`下解压缩,如果已有相同的文件存在,覆盖原先的文件
``` ```
unzip -o test.zip -d tmp/
```

@ -1,30 +1,14 @@
users # users
===
显示当前登录系统的所有用户
## 说明 ## 说明
**users命令** 用于显示当前登录系统的所有用户的用户列表。每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数 **users命令** 显示当前登录系统的所有用户。每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数
## 选项
```
users(选项)
```
```
--help显示命令的帮助信息
--version显示命令的版本信息
```
## 实例 ## 实例
``` ```bash
[root@localhost ~]# users # 根据文件判断输出当前有谁正登录在系统上。如果文件未予指定,则使用/var/run/utmp/var/log/wtmp 是通用的相关文件
root root
``` ```

@ -22,7 +22,7 @@ uupick [-v][-I<配置文件>][-s<主机>][-x<层级>][--help]
--help 显示帮助 --help 显示帮助
``` ```
### ##
处理由主机localhost传送过来的文件。在命令行直接输入如下命令 处理由主机localhost传送过来的文件。在命令行直接输入如下命令

@ -217,10 +217,10 @@ wget--limit-rate=300k http://www.jsdig.com/testfile.zip # wget限速下载
wget -bc http://www.jsdig.com/testfile.zip # -b进行后台下载-c实现断点续传 wget -bc http://www.jsdig.com/testfile.zip # -b进行后台下载-c实现断点续传
wget -m -p --convert-links -P ./LOCAL URL # 下载整个网站到本地 wget -m -p --convert-links -P ./LOCAL URL # 下载整个网站到本地
wget --mirror http://www.example.com/ # 镜像站点
cd path && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html # cd到目录中下载指定网页及其相关的文件使其可完全浏览 cd path && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html # cd到目录中下载指定网页及其相关的文件使其可完全浏览
wget --user-agent="Mozilla/5.0" http://www.jsdig.com/testfile.zip # 伪装代理名称下载 wget --user-agent="Mozilla/5.0" http://www.jsdig.com/testfile.zip # 伪装代理名称下载
wget -me robots=off -U "Mozilla/5.0" http://www.example.com/ wget -me robots=off -U "Mozilla/5.0" http://www.example.com/
wget --mirror http://www.example.com/ # 更新网站的本地拷贝可以方便地用于cron
wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/ # 批量下载文件到当前目录中 wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/ # 批量下载文件到当前目录中
wget --tries=40 URL # 增加重试次数 wget --tries=40 URL # 增加重试次数
wget -i filelist.txt # 下载多个文件 wget -i filelist.txt # 下载多个文件

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

Loading…
Cancel
Save