diff --git a/Linux_man_cn/clear.md b/Linux_man_cn/clear.md index 0d75ace..3c4d080 100644 --- a/Linux_man_cn/clear.md +++ b/Linux_man_cn/clear.md @@ -1,20 +1,12 @@ -clear -=== - -清除当前屏幕终端上的任何信息 +# clear ## 说明 **clear命令** 用于清除当前屏幕终端上的任何信息 -## 选项 +## 实例 -``` +```bash clear ``` -## 实例 - -直接输入clear命令当前终端上的任何信息就可被清除 - - diff --git a/Linux_man_cn/curl.md b/Linux_man_cn/curl.md index 4415300..aeb1f25 100644 --- a/Linux_man_cn/curl.md +++ b/Linux_man_cn/curl.md @@ -14,7 +14,7 @@ curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、 (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) --a, --append Append to target file when uploading (F/SFTP) +-a, --append 上传时附加到目标文件(F/SFTP) --basic Use HTTP Basic Authentication (H) --cacert FILE CA certificate to verify peer against (SSL) --capath DIR CA directory to verify peer against (SSL) @@ -22,26 +22,26 @@ curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、 --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL) --ciphers LIST SSL ciphers to use (SSL) --compressed Request compressed response (using deflate or gzip) --K, --config FILE Specify which config file to read +-K, --config FILE 指定从FILE文件读取配置 --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) --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 --crlf Convert LF to CRLF in upload --crlfile FILE Get a CRL list in PEM format from the given file --d, --data DATA HTTP POST data (H) - --data-ascii DATA HTTP POST ASCII data (H) - --data-binary DATA HTTP POST binary data (H) +-d, --data DATA HTTP POST方式传输数据(H) + --data-ascii DATA HTTP POST ASCII编码方式传输数据 (H) + --data-binary DATA HTTP POST binary编码方式传输数据 (H) --data-urlencode DATA HTTP POST data url encoded (H) --delegation STRING GSS-API delegation permission - --digest Use HTTP Digest Authentication (H) - --disable-eprt Inhibit using EPRT or LPRT (F) - --disable-epsv Inhibit using EPSV (F) --D, --dump-header FILE Write the headers to this file - --egd-file FILE EGD socket path for random data (SSL) + --digest 使用HTTP数字身份认证(H) + --disable-eprt 禁止使用EPRT or LPRT (F) + --disable-epsv 禁止使用EPSV (F) +-D, --dump-header FILE 把header信息写入到FILE文件 + --egd-file FILE 为随机数据设置EGD socket路径 (SSL) --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) --form-string STRING Specify HTTP multipart POST data (H) --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-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F) --ftp-pasv Use PASV/EPSV instead of PORT (F) --P, --ftp-port ADR Use PORT with given address instead of PASV (F) +-P, --ftp-port ADR 使用端口地址而不是使用PASV (F) --ftp-skip-pasv-ip Skip the IP address for PASV (F) --ftp-pret Send PRET before PASV (for drftpd) (F) --ftp-ssl-ccc Send CCC after authenticating (F) --ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F) --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F) -G, --get Send the -d data with a HTTP GET (H) --g, --globoff Disable URL sequences and ranges using {} and [] --H, --header LINE Custom header to pass to server (H) +-g, --globoff 禁用网址序列和范围使用 {} and [] +-H, --header LINE 自定义头消息传递给服务器 (H) -I, --head Show document info only --h, --help This help text --hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH) -0, --http1.0 Use HTTP 1.0 (H) --ignore-content-length Ignore the HTTP Content-Length header -i, --include Include protocol headers in the output (H/F) --k, --insecure Allow connections to SSL sites without certs (H) +-k, --insecure 允许连接不使用证书连接到SSL站点 (H) --interface INTERFACE Specify network interface/address to use -4, --ipv4 Resolve name to IPv4 address -6, --ipv6 Resolve name to IPv6 address --j, --junk-session-cookies Ignore session cookies read from file (H) +-j, --junk-session-cookies 忽略从文件中读取的session cookie (H) --keepalive-time SECONDS Interval between keepalive probes --key KEY Private key file name (SSL/SSH) --key-type TYPE Private key file type (DER/PEM/ENG) (SSL) --krb LEVEL Enable Kerberos with specified security level (F) --libcurl FILE Dump libcurl equivalent code of this command line --limit-rate RATE Limit transfer speed to this rate --l, --list-only List only names of an FTP directory (F) - --local-port RANGE Force use of these local port numbers +-l, --list-only 仅列出ftp目录的名称(F) + --local-port RANGE 强制使用RANGE内的本地端口号 -L, --location Follow redirects (H) --location-trusted like --location and send auth to other hosts (H) -M, --manual Display the full manual @@ -85,18 +84,18 @@ curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、 --mail-auth AUTH Originator address of the original email --max-filesize BYTES Maximum file size to download (H/F) --max-redirs NUM Maximum number of redirects allowed (H) --m, --max-time SECONDS Maximum time allowed for the transfer +-m, --max-time SECONDS 设置最大传输时间 --metalink Process given URLs as metalink XML file --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-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-sessionid Disable SSL session-ID reusing (SSL) --noproxy List of hosts which do not use proxy --ntlm Use HTTP NTLM authentication (H) --o, --output FILE Write output to instead of stdout +-o, --output FILE 将输出吸入到FILE取代默认输出stdout --pass PASS Pass phrase for the private key (SSL/SSH) --post301 Do not switch to GET after following a 301 redirect (H) --post302 Do not switch to GET after following a 302 redirect (H) @@ -112,17 +111,17 @@ curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、 --proxy-ntlm Use NTLM authentication on the proxy (H) -U, --proxy-user USER[:PASSWORD] Proxy user and password --proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port --p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT) +-p, --proxytunnel 使用HTTP代理隧道 (using CONNECT) --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) --r, --range RANGE Retrieve only the bytes within a range +-r, --range RANGE 仅检索RANGE范围内的字节 --raw Do HTTP "raw", without any transfer decoding (H) -e, --referer Referer URL (H) -J, --remote-header-name Use the header-provided filename (H) --O, --remote-name Write output to a file named as the remote file +-O, --remote-name 将输出写入到文件并以远程文件名称作为输出文件的名称 --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 --resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS --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) --stderr FILE Where to redirect stderr. - means stdout --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) -z, --time-cond TIME Transfer based on a time condition -1, --tlsv1 Use => TLSv1 (SSL) @@ -158,20 +157,20 @@ curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、 --trace-ascii FILE Like --trace but without the hex output --trace-time Add time stamps to trace/verbose output --tr-encoding Request compressed transfer encoding (H) --T, --upload-file FILE Transfer FILE to destination +-T, --upload-file FILE 上传文件FILE --url URL URL to work with --B, --use-ascii Use ASCII/text transfer --u, --user USER[:PASSWORD] Server user and password +-B, --use-ascii 使用ASCII/text传输 +-u, --user USER[:PASSWORD] 设置服务器的用户和密码 --tlsuser USER TLS username --tlspassword STRING TLS password --tlsauthtype STRING TLS authentication type (default SRP) --unix-socket FILE Connect through this UNIX domain socket --A, --user-agent STRING User-Agent to send to server (H) +-A, --user-agent STRING 设置User-Agent发送给服务器(H) -v, --verbose Make the operation more talkative -V, --version Show version number and quit -w, --write-out FORMAT What to output after completion --xattr Store metadata in extended file attributes --q If used as the first parameter disables .curlrc +-q 使用时必须作为第一个参数用来关闭.curlrc ``` diff --git a/Linux_man_cn/declare.md b/Linux_man_cn/declare.md index 7f39cbb..1cbb867 100644 --- a/Linux_man_cn/declare.md +++ b/Linux_man_cn/declare.md @@ -18,22 +18,7 @@ shell变量:声明shell变量,格式为“变量名=值” ## 实例 -首先使用declare命令定义shell变量"test",并且将其值设置为"man.linuxde.net",输入如下命令: - -``` -declare test='man.linuxde.net' #定义并初始化shell变量 -``` - -上面的命令执行后,再使用echo命令将该shell变量值输出,输入如下命令: - -``` -echo $test #输出shell变量的值 +```bash +declare test='man.linuxde.net' # 定义并初始化test变量 ``` -上面的指令执行后,其输出的结果如下: - -``` -man.linuxde.net -``` - - diff --git a/Linux_man_cn/dhcpd.md b/Linux_man_cn/dhcpd.md index 58a8ae7..40519ff 100644 --- a/Linux_man_cn/dhcpd.md +++ b/Linux_man_cn/dhcpd.md @@ -27,7 +27,7 @@ dhcpd [选项] [网络接口] -tf <跟踪输出文件> 指定文件记录DHCP服务器的整个启动状态 ``` -### 例子 +## 实例 对DHCP服务器进行排错 diff --git a/Linux_man_cn/dhcrelay.md b/Linux_man_cn/dhcrelay.md index 9bada80..6d83b3e 100644 --- a/Linux_man_cn/dhcrelay.md +++ b/Linux_man_cn/dhcrelay.md @@ -25,7 +25,7 @@ dhcrelay [选项] [DHCP服务器] -d 强制dhcrelay命令作为前台进程运行 ``` -### 例子 +## 实例 指定DHCP服务器的位置 diff --git a/Linux_man_cn/diff3.md b/Linux_man_cn/diff3.md index bd5afe0..b504a68 100644 --- a/Linux_man_cn/diff3.md +++ b/Linux_man_cn/diff3.md @@ -1,7 +1,4 @@ -diff3 -=== - -比较3个文件不同的地方 +# diff3 ## 说明 @@ -9,13 +6,7 @@ diff3 ## 选项 -``` -diff3(选项)(参数) -``` - - - -``` +```markdown -a:把所有的文件都当做文本文件按照行为单位进行比较,即给定的文件不是文本文件 -A:合并第2个文件和第3个文件之间的不同到第1个文件中,有冲突内容用括号括起来 -B:与选项“-A”功能相同,但是不显示冲突的内容 @@ -25,10 +16,10 @@ diff3(选项)(参数) --initial-tab:在正常格式的行的文本前,输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范 ``` -### 参数 +## 实例 -* 文件1:指定要比较的第1个文件 -* 文件2:指定要比较的第2个文件 -* 文件3:指定要比较的第3个文件 +```bash + +``` diff --git a/Linux_man_cn/dig.md b/Linux_man_cn/dig.md index cb50f0f..738cc0f 100644 --- a/Linux_man_cn/dig.md +++ b/Linux_man_cn/dig.md @@ -1,7 +1,4 @@ -dig -=== - -域名查询工具 +# **dig** ## 说明 @@ -9,13 +6,7 @@ dig ## 选项 -``` -dig(选项)(参数) -``` - - - -``` +```markdown @<服务器地址>:指定进行域名解析的域名服务器 -b:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求 -f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息 @@ -27,39 +18,11 @@ dig(选项)(参数) -h:显示指令帮助信息 ``` -### 参数 - -* 主机:指定要查询域名主机 -* 查询类型:指定DNS查询的类型 -* 查询类:指定查询DNS的class -* 查询选项:指定查询选项 - ## 实例 -``` -[root@localhost ~]# 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. +```bash +dig www.jsdig.com -;; 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 ``` diff --git a/Linux_man_cn/dircolors.md b/Linux_man_cn/dircolors.md index 7f801ee..4eefabc 100644 --- a/Linux_man_cn/dircolors.md +++ b/Linux_man_cn/dircolors.md @@ -1,144 +1,22 @@ -dircolors -=== - -置ls命令在显示目录或文件时所用的色彩 +# dircolors ## 说明 -**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:显示版本信息 -``` - -### 参数 - -文件:指定用来设置颜色的文件 ## 实例 -``` -[root@localhost ~]# dircolors -p -# Configuration file for dircolors, a utility to help you set the -# LS_COLORS environment variable used by GNU ls with the --color option. -# 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 +```bash +dircolors -p ``` diff --git a/Linux_man_cn/dirs.md b/Linux_man_cn/dirs.md index 91a64a7..0f1a33d 100644 --- a/Linux_man_cn/dirs.md +++ b/Linux_man_cn/dirs.md @@ -1,21 +1,13 @@ -dirs -=== - -显示目录记录 +# dirs ## 说明 -**dirs命令** 显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)。dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录 +**dirs命令** 显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)。dirs始终显示当然目录, 再是堆栈中的内容; +即使目录堆栈为空, dirs命令仍然只显示当然目录 ## 选项 -``` -dirs(选项)(参数) -``` - - - -``` +```markdown -c:删除目录栈中的所有记录 -l:以完整格式显示 -p:一个目录一行的方式显示 @@ -25,15 +17,10 @@ dirs(选项)(参数) ``` -### 参数 - -目录:显示目录堆叠中的记录 - ## 实例 -``` -[root@localhost etc]# dirs -/etc +```bash +dirs ``` diff --git a/Linux_man_cn/dmesg.md b/Linux_man_cn/dmesg.md index 10580de..900c4f6 100644 --- a/Linux_man_cn/dmesg.md +++ b/Linux_man_cn/dmesg.md @@ -1,53 +1,64 @@ -dmesg -=== - -显示Linux系统启动信息 +# **dmesg** ## 说明 -**dmesg命令** 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在`/var/log/dmesg`文件里 +**dmesg命令** 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。 +开机信息保存在`/var/log/dmesg`文件里 ## 选项 -``` -dmesg(选项) -``` +```markdown +-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中的内容 --s<缓冲区大小>:预设置为8196,刚好等于ring buffer的大小 --n:设置记录信息的层级 -``` - -## 实例 +支持的日志级别(优先级): + emerg - 系统无法使用 + alert - 操作必须立即执行 + 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 -dmesg | grep sda +```bash +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 ``` diff --git a/Linux_man_cn/dos2unix.md b/Linux_man_cn/dos2unix.md index c515606..4a41777 100644 --- a/Linux_man_cn/dos2unix.md +++ b/Linux_man_cn/dos2unix.md @@ -1,21 +1,15 @@ -dos2unix -=== - -将DOS格式文本文件转换成Unix格式 +# dos2unix ## 说明 -**dos2unix命令** 用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以`\r\n`作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示`^M`,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令 +**dos2unix命令** 用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是 +以`\r\n`作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。DOS格式的文本文件在 +Linux底下,用较低版本的vi打开时行尾会显示`^M`,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,。而Unix格式的文本文件 +在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令 ## 选项 -``` -dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...] -``` - - - -``` +```markdown -k:保持输出文件的日期不变 -q:安静模式,不提示任何警告信息 -V:查看版本 @@ -24,38 +18,13 @@ dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...] -n:写入到新文件 ``` -### 参数 - -参数:需要转换到文件 - ## 实例 -最简单的用法就是dos2unix直接跟上文件名: - -``` -dos2unix 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 +```bash +dos2unix file # 将dos文件file转换为unix文件 +dos2unix -n oldfile newfile # 转换为新文件时保留源文件 +dos2unix -k -o file1 file2 file3 # 转换多个文件,-o选项可省略 +dos2unix -k file # 转换时保持文件时间戳不变 ``` diff --git a/Linux_man_cn/dpkg.md b/Linux_man_cn/dpkg.md index 8782fe8..35e21e7 100644 --- a/Linux_man_cn/dpkg.md +++ b/Linux_man_cn/dpkg.md @@ -2,7 +2,7 @@ ## 说明 -```info +```markdown -i:安装软件包 -r:删除软件包 -P:删除软件包的同时删除其配置文件 @@ -13,24 +13,20 @@ --confiugre:配置软件包 ``` -### 参数 - -Deb软件包:指定要操作的.deb软件包 - ## 实例 -``` -dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n | 显示所有在deb发布版上安装的包,并以KB包大小为序 -dpkg -i package.deb #安装包 -dpkg -r package #删除包 -dpkg -P package #删除包(包括配置文件) -dpkg -L package #列出与该包关联的文件 -dpkg -l package #显示该包的版本 -dpkg --unpack package.deb #解开deb包的内容 -dpkg -S keyword #搜索所属的包内容 -dpkg -l #列出当前已安装的包 -dpkg -c package.deb #列出deb包的内容 -dpkg --configure package #配置包 +```bash +dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n # 显示所有在deb发布版上安装的包,并以KB包大小为序 +dpkg -i package.deb #安装包 +dpkg -r package #删除包 +dpkg -P package #删除包(包括配置文件) +dpkg -L package #列出与该包关联的文件 +dpkg -l package #显示该包的版本 +dpkg --unpack package.deb #解开deb包的内容 +dpkg -S keyword #搜索所属的包内容 +dpkg -l #列出当前已安装的包 +dpkg -c package.deb #列出deb包的内容 +dpkg --configure package #配置包 echo -e "$(( $(dpkg -l | wc -l) -5 ))" # 所有已安装的包总数 ``` diff --git a/Linux_man_cn/dump.md b/Linux_man_cn/dump.md deleted file mode 100644 index fae5368..0000000 --- a/Linux_man_cn/dump.md +++ /dev/null @@ -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可以实现无人值守备份 - - diff --git a/Linux_man_cn/dumpe2fs.md b/Linux_man_cn/dumpe2fs.md index e69de29..01cb119 100644 --- a/Linux_man_cn/dumpe2fs.md +++ b/Linux_man_cn/dumpe2fs.md @@ -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 + +``` + + diff --git a/Linux_man_cn/export.md b/Linux_man_cn/export.md index 5cea744..56bba25 100644 --- a/Linux_man_cn/export.md +++ b/Linux_man_cn/export.md @@ -4,7 +4,8 @@ **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" -``` diff --git a/Linux_man_cn/expr.md b/Linux_man_cn/expr.md index bd8e61b..6a2168e 100644 --- a/Linux_man_cn/expr.md +++ b/Linux_man_cn/expr.md @@ -1,7 +1,4 @@ -expr -=== - -一款表达式计算工具 +# **expr** ## 说明 @@ -9,45 +6,38 @@ expr ## 选项 -```sh - -用法:expr 表达式 - 或:expr 选项 - - --help 显示此帮助信息并退出 - --version 显示版本信息并退出 - +```markdown 将表达式的值列印到标准输出,分隔符下面的空行可提升算式优先级 可用的表达式有: - 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 字符串 表达式 等于"字符串 :表达式" - substr 字符串 偏移量 长度 替换字符串的子串,偏移的数值从 1 起计 - index 字符串 字符 在字符串中发现字符的地方建立下标,或者标0 - length 字符串 字符串的长度 - + TOKEN interpret TOKEN as a string, even if it is a - keyword like 'match' or an operator like '/' +match 字符串 表达式 等于"字符串 :表达式" +substr 字符串 偏移量 长度 替换字符串的子串,偏移的数值从 1 起计 +index 字符串 字符 在字符串中发现字符的地方建立下标,或者标0 +length 字符串 字符串的长度 ++ TOKEN interpret TOKEN as a string, even if it is a + keyword like 'match' or an operator like '/' - ( EXPRESSION ) value of EXPRESSION +( EXPRESSION ) value of EXPRESSION 请注意有许多运算操作符都可能需要由 shell 先实施转义 如果参与运算的 ARG 自变量都是数字,比较符就会被视作数学符号,否则就是多义的 @@ -59,25 +49,14 @@ expr ``` - - -``` ---help:显示指令的帮助信息 ---version:显示指令版本信息 -``` - -### 参数 - -表达式:要求值的表达式 - ## 实例 -``` +```bash +expr dfa : '[a-zA-Z]*' # expr也有正则匹配功能。通过指定冒号选项计算字符串中字符数,输出为3 + result=`expr 2 + 3` result=$(expr $no1 + 5) -expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次 -expr dfa : '[a-zA-Z]*' #输出是3 ``` diff --git a/Linux_man_cn/fc.md b/Linux_man_cn/fc.md index 2c3c6f8..594d26a 100644 --- a/Linux_man_cn/fc.md +++ b/Linux_man_cn/fc.md @@ -1,57 +1,26 @@ -fc -=== - -修改历史命令并执行 +# **fc** ## 说明 -**fc命令** 自动掉用vi编辑器修改已有历史命令,当保存时立即执行修改后的命令,也可以用来显示历史命令。fc命令编辑历史命令时,会自动调用vi编辑器。fc保存文件后,会自动执行所编辑过的命令 +**fc命令** 自动掉用vi编辑器修改已有历史命令,当保存时立即执行修改后的命令,也可以用来显示历史命令。fc命令编辑历史命令时, +会自动调用vi编辑器。fc保存文件后,会自动执行所编辑过的命令 ## 选项 -``` -fc [-e 编辑器名] [-lnr] [起始] [终结] -fc -s [模式=替换串] [命令] -``` - - +```markdown +用法:fc [-e 编辑器名] [-lnr] [起始] [终结] 或 fc -s [模式=替换串] [命令] -``` --l:显示历史命令 +-l: -n:显示历史命令时,不显示编号 -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编辑器中修改指令并保存后,被修改的命令会被自动调用并执行 - diff --git a/Linux_man_cn/fmt.md b/Linux_man_cn/fmt.md index ac4268e..79112c1 100644 --- a/Linux_man_cn/fmt.md +++ b/Linux_man_cn/fmt.md @@ -1,7 +1,4 @@ -fmt -=== - -读取文件后优化处理并输出 +# fmt ## 说明 @@ -9,23 +6,15 @@ fmt ## 选项 -``` -fmt(选项)(参数) -``` - - +```markdown +-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=<每列字符数>或-<每列字符数>:设置每列的最大字符数 -``` - -### 参数 - -指定要优化格式的文件 diff --git a/Linux_man_cn/free.md b/Linux_man_cn/free.md index 1079851..b8df282 100644 --- a/Linux_man_cn/free.md +++ b/Linux_man_cn/free.md @@ -6,7 +6,7 @@ ## 选项 -```bash +```markdown -b, --bytes Bytes为单位显示内存使用 -k, --kilo KB为单位显示内存使用(默认) -m, --mega MB为单位显示内存使用 @@ -60,19 +60,18 @@ available 估计可用于启动新应用程序的内存量,而无需交换 为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式: -Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间 -磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的 - -Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由 -文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作 - -Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中 +Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents) +的时间磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种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 ``` diff --git a/Linux_man_cn/fsck.md b/Linux_man_cn/fsck.md index 4ff1d9c..a142696 100644 --- a/Linux_man_cn/fsck.md +++ b/Linux_man_cn/fsck.md @@ -1,7 +1,4 @@ # **fsck** -=== - -检查并且试图修复文件系统中的错误 ## 说明 @@ -9,13 +6,7 @@ ## 选项 -``` -fsck(选项)(参数) -``` - - - -``` +```markdown -a:自动修复文件系统,不询问任何问题 -A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统 -N:不执行指令,仅列出实际执行会进行的动作 @@ -26,30 +17,26 @@ fsck(选项)(参数) -t<文件系统类型>:指定要检查的文件系统类型 -T:执行fsck指令时,不显示标题信息 -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命令重启系统这样就好了! diff --git a/Linux_man_cn/ftp.md b/Linux_man_cn/ftp.md index 6ffa375..0e9e771 100644 --- a/Linux_man_cn/ftp.md +++ b/Linux_man_cn/ftp.md @@ -1,21 +1,13 @@ -ftp -=== - -用来设置文件系统相关功能 +# ftp ## 说明 -**ftp命令** 用来设置文件系统相关功能。ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易 +**ftp命令** 用来设置文件系统相关功能。ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件, +这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易 ## 选项 -``` -ftp(选项)(参数) -``` - - - -``` +```markdown -d:详细显示指令执行过程,便于排错或分析程序执行的情况 -i:关闭互动模式,不询问任何问题 -g:关闭本地主机文件名称支持特殊字符的扩充特性 @@ -23,69 +15,44 @@ ftp(选项)(参数) -v:显示指令执行过程 ``` -### 参数 - -主机:指定要连接的FTP服务器的主机名或ip地址 - ## 实例 -```bash -ftp> ascii # 设定以ASCII方式传送文件(缺省值) -ftp> bell # 每完成一次文件传送,报警提示. -ftp> binary # 设定以二进制方式传送文件. -ftp> bye # 终止主机FTP进程,并退出FTP管理方式. -ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. -ftp> cd # 同UNIX的CD命令. -ftp> cdup # 返回上一级目录. -ftp> chmod # 改变远端主机的文件权限. -ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. -ftp> delete # 删除远端主机中的文件. -ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. -ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中. -ftp> help [command] # 输出命令的解释. -ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. -ftp> ls [remote-directory] [local-file] # 同DIR. -ftp> macdef # 定义宏命令. -ftp> mdelete [remote-files] # 删除一批文件. -ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机. -ftp> mkdir directory-name # 在远端主机中建立目录. -ftp> mput local-files # 将本地主机中一批文件传送至远端主机. -ftp> open host [port] # 重新建立一个新的连接. -ftp> prompt # 交互提示模式. -ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中. -ftp> pwd # 列出当前远端主机目录. -ftp> quit # 同BYE. -ftp> recv remote-file [local-file] # 同GET. -ftp> rename [from] [to] # 改变远端主机中的文件名. -ftp> rmdir directory-name # 删除远端主机中的目录. -ftp> send local-file [remote-file] # 同PUT. -ftp> status # 显示当前FTP的状态. -ftp> system # 显示远端主机系统类型. -ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机. +```markdown +ftp> ascii # 设定以ASCII方式传送文件(缺省值 +ftp> bell # 每完成一次文件传送,报警提示 +ftp> binary # 设定以二进制方式传送文件 +ftp> bye # 终止主机FTP进程,并退出FTP管理方式 +ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母 +ftp> cd # 同UNIX的CD命令 +ftp> cdup # 返回上一级目录 +ftp> chmod # 改变远端主机的文件权限 +ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除 +ftp> delete # 删除远端主机中的文件 +ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件 +ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中 +ftp> help [command] # 输出命令的解释 +ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录 +ftp> ls [remote-directory] [local-file] # 同DIR +ftp> macdef # 定义宏命令 +ftp> mdelete [remote-files] # 删除一批文件 +ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机 +ftp> mkdir directory-name # 在远端主机中建立目录 +ftp> open host [port] # 重新建立一个新的连接 +ftp> prompt # 交互提示模式 +ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中 +ftp> mput local-files # 将本地主机中一批文件传送至远端主机 +ftp> pwd # 列出当前远端主机目录 +ftp> quit # 同bye、exit +ftp> recv remote-file [local-file] # 同GET +ftp> rename [from] [to] # 改变远端主机中的文件名 +ftp> rmdir directory-name # 删除远端主机中的目录 +ftp> send local-file [remote-file] # 同PUT +ftp> status # 显示当前FTP的状态 +ftp> system # 显示远端主机系统类型 +ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机 ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,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 # 可以上传多个文件 ``` diff --git a/Linux_man_cn/getenforce.md b/Linux_man_cn/getenforce.md index 31de6b6..25284e6 100644 --- a/Linux_man_cn/getenforce.md +++ b/Linux_man_cn/getenforce.md @@ -13,7 +13,7 @@ getenforce getenforce ``` -### 例子 +## 实例 查看当前SELinux的应用模式 diff --git a/Linux_man_cn/halt.md b/Linux_man_cn/halt.md index 9b8ebe0..5cdde14 100644 --- a/Linux_man_cn/halt.md +++ b/Linux_man_cn/halt.md @@ -1 +1,13 @@ - \ No newline at end of file +# 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 + +``` \ No newline at end of file diff --git a/Linux_man_cn/help.md b/Linux_man_cn/help.md index 4787bf4..120a3b8 100644 --- a/Linux_man_cn/help.md +++ b/Linux_man_cn/help.md @@ -1,43 +1,22 @@ -help -=== - -显示帮助信息 +# **help** ## 说明 -**help命令** 用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看 +**help命令** 显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看 ## 选项 -``` -help(选项)(参数) -``` - - +```markdown +-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. -``` diff --git a/Linux_man_cn/history.md b/Linux_man_cn/history.md index 13dce28..6ad0623 100644 --- a/Linux_man_cn/history.md +++ b/Linux_man_cn/history.md @@ -1 +1,27 @@ - \ No newline at end of file +# **history** + +## 选项 + +```markdown +-c 通过删除所有条目来清除历史记录列表 +-d offset 删除位置偏移处的历史记录条目 +-a 将`新`历史记录行(自当前bash会话开始以来输入的历史记录行)添加到历史记录文件 +-n 将尚未从历史记录文件中读取的历史记录行读取到当前历史记录列表中。 这些是自当前bash会话开始以来附加到历史文件的行 +-r 读取历史记录文件的内容,并将其用作当前历史记录 +-w 将当前历史记录写入历史记录文件,覆盖历史记录文件的内容 +-p 对以下参数执行历史记录替换,并在标准输出上显示结果。 不将结果存储在历史记录列表中。 必须对每个arg报价以禁用常规历史记录扩展 +-s 将args作为单个条目存储在历史记录列表中。 在添加args之前,将删除历史记录列表中的最后一条命令 + +如果设置了HISTTIMEFORMAT变量,则将与每个历史记录条目关联的时间戳信息写入历史记录文件,并用历史记录注释字符标记。 读取历史记录文件时, +以历史记录注释字符开头并紧随其后的数字开头的行将被解释为上一个历史记录行的时间戳。 除非遇到无效的选项,读取或写入历史记录文件时发生错误, +将无效的偏移量作为-d的参数提供或作为-p的参数提供的历史记录扩展失败,否则返回值为0 +``` + +## 实例 + +```bash +history -c # 情况历史记录 +``` + + + diff --git a/Linux_man_cn/hostname.md b/Linux_man_cn/hostname.md index b4c576c..d523137 100644 --- a/Linux_man_cn/hostname.md +++ b/Linux_man_cn/hostname.md @@ -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 - hostname -V|--version|-h|--help print info and exit - Program name: {yp,nis,}domainname=hostname -y dnsdomainname=hostname -d -Program options: - -a, --alias 显示主机别名 - -A, --all-fqdns all long host names (FQDNs) - -b, --boot set default hostname if none available - -d, --domain 显示DNS域名 - -f, --fqdn, --long 显示FQDN名称 - -F, --file read host name or NIS domain name from given file - -i, --ip-address 显示主机的ip地址 - -I, --all-ip-addresses all addresses for the host - -s, --short 显示短主机名称,在第一个点处截断 - -y, --yp, --nis 显示NIS/YP域名 +-a, --alias 显示主机别名 +-A, --all-fqdns all long host names (FQDNs) +-b, --boot set default hostname if none available +-d, --domain 显示DNS域名 +-f, --fqdn, --long 显示FQDN名称 +-F, --file read host name or NIS domain name from given file +-i, --ip-address 显示主机的ip地址 +-I, --all-ip-addresses all addresses for the host +-s, --short 显示短主机名称,在第一个点处截断 +-y, --yp, --nis 显示NIS/YP域名 ``` diff --git a/Linux_man_cn/hostnamectl.md b/Linux_man_cn/hostnamectl.md new file mode 100644 index 0000000..3601e1d --- /dev/null +++ b/Linux_man_cn/hostnamectl.md @@ -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 +``` diff --git a/Linux_man_cn/iconv.md b/Linux_man_cn/iconv.md index 57643cb..df0099b 100644 --- a/Linux_man_cn/iconv.md +++ b/Linux_man_cn/iconv.md @@ -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命令在调试此类程序时用得着 ## 选项 -``` -iconv -f encoding [-t encoding] [inputfile]... -``` - - - -``` --f encoding :把字符从encoding编码开始转换。 --t encoding :把字符转换到encoding编码。 --l :列出已知的编码字符集合 --o file :指定输出文件 --c :忽略输出的非法字符 --s :禁止警告信息,但不是错误信息 ---verbose :显示进度信息 --f和-t所能指定的合法字符在-l选项的命令里面都列出来了。 -``` +```markdown +输入/输出格式规范: + -f, --from-code=名称 原始文本编码 + -t, --to-code=名称 输出编码 -## 实例 +信息: + -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`那么会输出到标准输出 diff --git a/Linux_man_cn/info.md b/Linux_man_cn/info.md index 478f7ea..c8bebe9 100644 --- a/Linux_man_cn/info.md +++ b/Linux_man_cn/info.md @@ -77,7 +77,7 @@ Examples: **Q:** 退出info ``` - **命令** +### 命令 ``` **?** 显示帮助窗口 diff --git a/Linux_man_cn/inotifywait.md b/Linux_man_cn/inotifywait.md index ca80250..59a5b9b 100644 --- a/Linux_man_cn/inotifywait.md +++ b/Linux_man_cn/inotifywait.md @@ -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 事件发生多少次 开始之前需要检测系统内核是否支持inotify: @@ -45,58 +45,37 @@ make install ### 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_watches`表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大,需要根据情况,适当增加此值的大小 +* `/proc/sys/fs/inotify/max_user_watches`表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大,需要根据情况, +适当增加此值的大小 根据以上在32位或者64位系统都可以执行: -``` echo 104857600 > /proc/sys/fs/inotify/max_user_watches 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 64位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0 ``` ### inotifywait命令使用 -``` +```bash #!/bin/bash #filename watchdir.sh path=$1 /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命令参数 @@ -110,84 +89,13 @@ path=$1 #### 可监听的事件 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
事件描述
access **访问** ,读取文件。
modify **修改** ,文件内容被修改。
attrib **属性** ,文件元数据被修改。
move **移动** ,对文件进行移动操作。
create **创建** ,生成新文件
open **打开** ,对文件进行打开操作。
close **关闭** ,对文件进行关闭操作。
delete **删除** ,文件被删除。
- - +| 事件 | 描述 | +| :------: | :------: | +| access | **访问** ,读取文件 | +| modify | **修改** ,文件内容被修改 | +| attrib | **属性** ,文件元数据被修改 | +| move | **移动** ,对文件进行移动操作 | +| create | **创建** ,生成新文件 | +| open | **打开** ,对文件进行打开操作 | +| close | **关闭** ,对文件进行关闭操作 | +| delete | **删除** ,文件被删除 | diff --git a/Linux_man_cn/ipcalc.md b/Linux_man_cn/ipcalc.md index 93d4449..a70f0f3 100644 --- a/Linux_man_cn/ipcalc.md +++ b/Linux_man_cn/ipcalc.md @@ -1,7 +1,4 @@ -ipcalc -=== - -简单的IP地址计算器 +# ipcalc ## 说明 @@ -9,42 +6,28 @@ ipcalc ## 选项 -``` -ipcalc(选项) -``` +```markdown +-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:显示帮助信息 ``` ## 实例 -``` -[root@localhost ~]# ipcalc -p 192.168.2.1 255.255.255.0 -PREFIX=24 - -[root@localhost ~]# ipcalc -n 192.168.2.1 255.255.255.0 -NETWORK=192.168.2.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 +```bash +ipcalc -p 192.168.2.1 255.255.255.0 # 输出: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 +ipcalc -m 192.168.2.1 # 输出:NETMASK=255.255.255.0 +ipcalc -pnbm 192.168.2.1 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 ``` diff --git a/Linux_man_cn/iptraf.md b/Linux_man_cn/iptraf.md index 4ae7b51..27a8cee 100644 --- a/Linux_man_cn/iptraf.md +++ b/Linux_man_cn/iptraf.md @@ -1,7 +1,4 @@ -iptraf -=== - -实时地监视网卡流量 +# iptraf ## 说明 @@ -9,12 +6,6 @@ iptraf ## 选项 -``` -iptraf(选项) -``` - - - ``` -i网络接口:立即在指定网络接口上开启IP流量监视 -g:立即开始生成网络接口的概要状态信息 diff --git a/Linux_man_cn/ispell.md b/Linux_man_cn/ispell.md index 005a101..7eaa47e 100644 --- a/Linux_man_cn/ispell.md +++ b/Linux_man_cn/ispell.md @@ -1,7 +1,4 @@ -ispell -=== - -检查文件中出现的拼写错误 +# ispell ## 说明 @@ -9,12 +6,8 @@ ispell ## 选项 +```markdown ``` -ispell(参数) -``` - -### 参数 -文件:指定要进行拼写检查的文件 diff --git a/Linux_man_cn/last.md b/Linux_man_cn/last.md index 7e1869b..cfb34af 100644 --- a/Linux_man_cn/last.md +++ b/Linux_man_cn/last.md @@ -2,7 +2,9 @@ ## 说明 -**last命令** 用于显示用户最后一次的登录信息。单独执行last命令,它会读取`/var/log/wtmp`的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来 +**last命令** 用于显示用户最后一次的登录信息。单独执行last命令,它会读取`/var/log/wtmp`的文件,并把该给文件的内容记录的登入系统的 +用户名单全部显示出来 + **lastb命令** Lastb与last相同,但默认情况下它显示文件/var/log/btmp的日志,其中包含所有错误的登录尝试 ## 选项 diff --git a/Linux_man_cn/less.md b/Linux_man_cn/less.md index ccc8a5f..7d7fe98 100644 --- a/Linux_man_cn/less.md +++ b/Linux_man_cn/less.md @@ -1,7 +1,4 @@ -less -=== - -分屏上下翻页浏览文件内容 +# **less** ## 说明 @@ -9,12 +6,6 @@ less ## 选项 -``` -less(选项)(参数) -``` - - - ``` -e:文件内容显示完毕后,自动退出 -f:强制显示文件 @@ -26,8 +17,3 @@ less(选项)(参数) -x<数字>:将TAB字符显示为指定个数的空格字符 ``` -### 参数 - -文件:指定要分屏显示内容的文件 - - diff --git a/Linux_man_cn/let.md b/Linux_man_cn/let.md index d4041e4..baa5c61 100644 --- a/Linux_man_cn/let.md +++ b/Linux_man_cn/let.md @@ -1,33 +1,25 @@ -let -=== - -简单的计算器 +# **let** ## 说明 -**let命令** 是bash中用于计算的工具,提供常用运算符还提供了方幂`**`运算符。在变量的房屋计算中不需要加上`$`来表示变量,如果表达式的值是非0,那么返回的状态值是0;否则,返回的状态值是1 +**let命令** 是bash中用于计算的工具,提供常用运算符还提供了方幂`**`运算符。在变量的房屋计算中不需要加上`$`来表示变量, +如果表达式的值是非0,那么返回的状态值是0;否则,返回的状态值是1 ## 选项 -``` -let arg [arg ...] #arg代表运算式 -``` - -### 用法 - +```markdown 自加操作`let no++` 自减操作`let no--` 简写形式`let no+=10`,`let no-=20`,分别等同于`let no=no+10,``let no=no-20` +``` ## 实例 -``` +```bash #!/bin/bash let a=5+4 b=9-3 echo $a $b -``` -``` #!/bin/bash let "t1 = ((a = 5 + 3, b = 7 - 1, c = 15 - 4))" echo "t1 = $t1, a = $a, b = $b" diff --git a/Linux_man_cn/logger.md b/Linux_man_cn/logger.md index 7c7c3ea..1153167 100644 --- a/Linux_man_cn/logger.md +++ b/Linux_man_cn/logger.md @@ -1,7 +1,4 @@ -logger -=== - -在系统日志中记录相应条目 +# logger ## 说明 @@ -9,32 +6,25 @@ logger ## 选项 -``` -logger [options] [message] -``` - - +```markdown +-T, --tcp 只使用 TCP +-d, --udp 只使用 UDP +-i, --id 同时记录进程 ID +-f, --file <文件> 记录此文件的内容 +-h, --help 显示此帮助并退出 +-S, --size maximum size for a single message (default 1024) +-n, --server write to this remote syslog server +-P, --port use this port for UDP or TCP connection +-p, --priority 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 记录特定的文件 - -h, --help 显示帮助文本并退出 - -n, --server 写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程 - -P, --port 使用指定的UDP端口。默认的端口号是514 - -p, --priority 指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式 - 比如:" -p local3.info " local3 这个设备的消息级别为 info - 默认级别是 "user.notice" - -s, --stderr 输出标准错误到系统日志 - -t, --tag 指定标记记录 - -u, --socket 写入指定的socket,而不是到内置系统日志例程 - -V, --version 输出版本信息并退出 ``` -### 例子 +## 实例 -``` +```bash logger -p syslog.info "backup.sh is starting" ``` diff --git a/Linux_man_cn/login.md b/Linux_man_cn/login.md index 073f9bf..206520b 100644 --- a/Linux_man_cn/login.md +++ b/Linux_man_cn/login.md @@ -1,27 +1,16 @@ -login -=== - -登录系统或切换用户身份 +# login ## 说明 -**login命令** 用于给出登录界面,可用于重新登录或者切换用户身份,也可通过它的功能随时更换登入身份。在Slackware发行版中 ,您可在命令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当`/etc/nologin`文件存在时,系统只root帐号登入系统,其他用户一律不准登入 +**login命令** 用于给出登录界面,可用于重新登录或者切换用户身份,也可通过它的功能随时更换登入身份。在Slackware发行版中 ,可在命令后面 +附加欲登入的用户名称,它会直接询问密码,等待用户输入。当`/etc/nologin`文件存在时,系统只root帐号登入系统,其他用户一律不准登入 ## 选项 -``` -login(选项)(参数) -``` - - +```markdown +login [ -p ] [ -h 主机 ] [ -H ] [ -f 用户名 | 用户名 ] +-p 告诉login指令不销毁环境变量 +-h 指定远程服务器的主机名 ``` --p:告诉login指令不销毁环境变量 --h:指定远程服务器的主机名 -``` - -### 参数 - -用户名:指定登录使用的用户名 - diff --git a/Linux_man_cn/logrotate.md b/Linux_man_cn/logrotate.md index a04fea4..0232597 100644 --- a/Linux_man_cn/logrotate.md +++ b/Linux_man_cn/logrotate.md @@ -1,31 +1,22 @@ -logrotate -=== - -统日志进行轮转、压缩和删除 +# **logrotate** ## 说明 -**logrotate命令** 用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在`/etc/logrotate.conf`文件中 +**logrotate命令** 用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的 +记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在 +`/etc/logrotate.conf`文件中 ## 选项 -``` -logrotate(选项)(参数) -``` - - +```markdown +-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指令的配置文件 diff --git a/Linux_man_cn/lsattr.md b/Linux_man_cn/lsattr.md index 9e3177b..238f09c 100644 --- a/Linux_man_cn/lsattr.md +++ b/Linux_man_cn/lsattr.md @@ -1,7 +1,4 @@ -lsattr -=== - -查看文件的第二扩展文件系统属性 +# **lsattr** ## 说明 @@ -9,29 +6,20 @@ lsattr ## 选项 -``` -lsattr(选项)(参数) -``` - - - -``` +```markdown -E:可显示设备属性的当前值,但这个当前值是从用户设备数据库中获得的,而不是从设备直接获得的 -D:显示属性的名称,属性的默认值,描述和用户是否可以修改属性值的标志 -R:递归的操作方式 -V:显示指令的版本信息 -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 -EO -l rmt0 ``` diff --git a/Linux_man_cn/lvm.md b/Linux_man_cn/lvm.md index 51ebe25..9bca841 100644 --- a/Linux_man_cn/lvm.md +++ b/Linux_man_cn/lvm.md @@ -458,7 +458,7 @@ vgrename [选项] [旧卷组路径|旧卷组名称|旧卷组UUID] [新卷组路 -t 启用测试模式 ``` -### 例子 +## 实例 重命名卷组/dev/vg1为/dev/vg2 diff --git a/Linux_man_cn/man.md b/Linux_man_cn/man.md index d91e991..e0e8b58 100644 --- a/Linux_man_cn/man.md +++ b/Linux_man_cn/man.md @@ -1,8 +1,6 @@ # **man** - - -```info +```markdown 用法: man[选项...] [章节] 手册页... -C, --config-file=文件 使用该用户设置文件 -d, --debug 输出调试信息 @@ -35,38 +33,37 @@ --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 提供一个提示行 - -7, --ascii 显示某些 latin1 字符的 ASCII 翻译形式 - -E, --encoding=编码 use selected output encoding - --no-hyphenation, --nh turn off hyphenation - --no-justification,--nj turn off justification - -p, --preprocessor=字符串 字符串表示要运行哪些预处理器:e - [n]eqn, p - pic, t - tbl,g - grap, r - refer, v - vgrind - -t, --troff 使用 groff 对手册页排版 - -T, --troff-device[=设备] 使用 groff 的指定设备 - -H, --html[=浏览器] 使用 www-browser 或指定浏览器显示 HTML输出 - -X, --gxditview[=分辨率] 使用 groff 并通过 gxditview (X11)来显示:-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12 - -Z, --ditroff 使用 groff 并强制它生成 ditroff + -7, --ascii 显示某些 latin1 字符的 ASCII 翻译形式 + -E, --encoding=编码 use selected output encoding + --no-hyphenation, --nh turn off hyphenation + --no-justification,--nj turn off justification + -p, --preprocessor=字符串 字符串表示要运行哪些预处理器:e - [n]eqn, p - pic, t - tbl,g - grap, r - refer, v - vgrind + -t, --troff 使用 groff 对手册页排版 + -T, --troff-device[=设备] 使用 groff 的指定设备 + -H, --html[=浏览器] 使用 www-browser 或指定浏览器显示 HTML输出 + -X, --gxditview[=分辨率] 使用groff并通过 gxditview (X11)来显示:-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12 + -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`,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输`man ifconfig`它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“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 3 sleep # 显示sleep命令的手册并查看库函数sleep ``` diff --git a/Linux_man_cn/mesg.md b/Linux_man_cn/mesg.md index 4af6283..5806bfb 100644 --- a/Linux_man_cn/mesg.md +++ b/Linux_man_cn/mesg.md @@ -1,27 +1,14 @@ -mesg -=== - -设置当前终端的写权限 +# mesg ## 说明 **mesg命令** 用于设置当前终端的写权限,即是否让其他用户向本终端发信息。将mesg设置y时,其他用户可利用write命令将信息直接显示在您的屏幕上 -## 选项 - -``` -mesg(参数) -``` - -### 参数 - -y/n:y表示运行向当前终端写信息,n表示禁止向当前终端写信息 - ## 实例 -``` -[root@localhost ~]# mesg y #允许系统用户将信息直接显示在你的屏幕上 -[root@localhost ~]# mesg n #不允许系统用户将信息直接显示在你的屏幕上 +```bash +mesg y # 允许系统用户将信息直接显示在你的屏幕上 +mesg n # 不允许系统用户将信息直接显示在你的屏幕上 ``` diff --git a/Linux_man_cn/mkfs.md b/Linux_man_cn/mkfs.md index 2a159ae..1456c5c 100644 --- a/Linux_man_cn/mkfs.md +++ b/Linux_man_cn/mkfs.md @@ -1,7 +1,4 @@ -mkfs -=== - -用于在设备上创建Linux文件系统 +# **mkfs** ## 说明 @@ -9,34 +6,23 @@ mkfs ## 选项 -``` -mkfs(选项)(参数) -``` +```markdown +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的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来: - -``` -mkfs -V -t msdos -c /dev/hda5 - -mkfs -t ext3 /dev/sda6 //将sda6分区格式化为ext3格式 -mkfs -t ext2 /dev/sda7 //将sda7分区格式化为ext2格式 +```bash +mkfs -t ext3 /dev/sda6 # 将sda6分区格式化为ext3格式 +mkfs -t ext2 /dev/sda7 # 将sda7分区格式化为ext2格式 ``` diff --git a/Linux_man_cn/mkswap.md b/Linux_man_cn/mkswap.md index 9075f6c..fdc4559 100644 --- a/Linux_man_cn/mkswap.md +++ b/Linux_man_cn/mkswap.md @@ -2,11 +2,12 @@ ## 说明 -**mkswap命令** 用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的大小,但是这个参数是为了向后兼容设置的,没有使用的必要,一般都将整个文件或者设备作为交换区 +**mkswap命令** 用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的 +大小,但是这个参数是为了向后兼容设置的,没有使用的必要,一般都将整个文件或者设备作为交换区 +## 选项 - -``` +```markdown -c:建立交换区前,先检查是否有损坏的区块 -f:在SPARC电脑上建立交换区时,要加上此参数 -v0:建立旧式交换区,此为预设值 @@ -15,86 +16,43 @@ ## 实例 - **查看系统swap space大小:** - -``` -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 +swapon -s # 查看当前的swap空间(file(s)/partition(s)),等价于cat /proc/swaps ``` - **添加交换空间** - -添加一个 **交换分区** 或添加一个 **交换文件** 。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件 - -添加一个交换分区,步骤如下: - -使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区),使用 mkswap 命令来设置交换分区: - -``` +```bash +# 添加交换空间 mkswap /dev/sdb2 -``` - -启用交换分区: -``` +# 启用交换分区 swapon /dev/sdb2 -``` - -写入`/etc/fstab`,以便在引导时启用: -``` +# 写入`/etc/fstab`,以便在引导时启用 /dev/sdb2 swap swap defaults 0 0 -``` - -添加一个交换文件,步骤如下: -创建大小为512M的交换文件: - -``` +# 添加一个交换文件,步骤如下:创建大小为512M的交换文件: dd if=/dev/zero of=/swapfile1 bs=1024 count=524288 ``` -使用mkswap命令来设置交换文件: - -``` +```bash +# 添加交换文件 +# 使用mkswap命令来设置交换文件 mkswap /swapfile1 -``` -启用交换分区: - -``` +启用交换分区 swapon /swapfile1 -``` - -写入`/etc/fstab`,以便在引导时启用: -``` +# 写入`/etc/fstab`,以便在引导时启用: /swapfile1 swap swap defaults 0 0 -``` - -新添了交换分区并启用它之后,请查看`cat /proc/swaps`或free命令的输出来确保交换分区已被启用了 - - **删除交换空间:** - -禁用交换分区: +# 新添了交换分区并启用它之后,查看`cat /proc/swaps`或free命令的输出来确保交换分区已被启用了 ``` + +```bash +# 删除交换空间,禁用交换分区:从`/etc/fstab`中删除项目,使用fdisk或yast工具删除分区 swapoff /dev/sdb2 + ``` -从`/etc/fstab`中删除项目,使用fdisk或yast工具删除分区 diff --git a/Linux_man_cn/more.md b/Linux_man_cn/more.md index ffbe212..ebcbbcf 100644 --- a/Linux_man_cn/more.md +++ b/Linux_man_cn/more.md @@ -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键:显示文本的下一屏内容 -* 按Enier键:只显示文本的下一行内容 -* 按斜线符`|`:接着输入一个模式,可以在文本中寻找下一个相匹配的模式 -* 按H键:显示帮助屏,该屏上有相关的帮助信息 -* 按B键:显示上一屏内容 -* 按Q键:退出rnore命令 +* 按Space键:显示文本的下一屏内容 +* 按Enier键:只显示文本的下一行内容 +* 按斜线符`|`:接着输入一个模式,可以在文本中寻找下一个相匹配的模式 +* 按H键:显示帮助屏,该屏上有相关的帮助信息 +* 按B键:显示上一屏内容 +* 按Q键:退出rnore命令 ## 选项 -``` -more(语法)(参数) -``` - - +```markdown +-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的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比 - -``` -more -dc file -``` - -显示文件file的内容,每10行显示一次,而且在显示之前先清屏 - -``` -more -c -10 file +```bash +more -dc file # 显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比 +more -c -10 file # 显示文件file的内容,每10行显示一次,而且在显示之前先清屏 ``` diff --git a/Linux_man_cn/named-checkzone.md b/Linux_man_cn/named-checkzone.md index 76e9337..a745ea1 100644 --- a/Linux_man_cn/named-checkzone.md +++ b/Linux_man_cn/named-checkzone.md @@ -21,7 +21,7 @@ named-checkzone [选项] [区域名] [区域文件名] -c <类别> 指定区域的类别。如果没指定就使用IN ``` -### 例子 +## 实例 对区域文件/var/named/192.168.0.rev进行有效性检查和转换 diff --git a/Linux_man_cn/nc.md b/Linux_man_cn/nc.md index a5ac3d8..daf55d8 100644 --- a/Linux_man_cn/nc.md +++ b/Linux_man_cn/nc.md @@ -1,7 +1,4 @@ -nc -=== - -命令用于设置路由器 +# **nc** ## 说明 @@ -9,14 +6,7 @@ nc ## 选项 -``` -nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>] -[-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] -``` - - - -``` +```markdown -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个 -G<指向器数目> 设置来源路由指向器,其数值为4的倍数 -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 //用户输入 -``` diff --git a/Linux_man_cn/nohup.md b/Linux_man_cn/nohup.md index 2192d60..3447c7e 100644 --- a/Linux_man_cn/nohup.md +++ b/Linux_man_cn/nohup.md @@ -1,50 +1,26 @@ -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 -nohup wget site.com/file.zip -``` - -下面命令,会在同一个目录下生成一个名称为 `nohup.out` 的文件,其中包含了正在运行的程序的输出内容 +nohup command > myout.file 2>&1 & -```bash -nohup ping -c 10 baidu.com ``` - diff --git a/Linux_man_cn/nslookup.md b/Linux_man_cn/nslookup.md index 49aca1b..d9c7d05 100644 --- a/Linux_man_cn/nslookup.md +++ b/Linux_man_cn/nslookup.md @@ -1,43 +1,26 @@ -nslookup -=== - -查询域名DNS信息的工具 +# nslookup ## 说明 **nslookup命令** 是常用域名查询工具,就是查DNS信息用的命令 -nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息 +nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的 +主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息 -进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即`/etc/resolv.conf`的第一个dns地址)。或者输入`nslookup -nameserver/ip`。进入非交互模式,就直接输入`nslookup 域名`就可以了 +输入nslookup命令直接进入交互模式,此时nslookup会连接到默认的域名服务器(即`/etc/resolv.conf`的第一个dns地址)。或者输入 +`nslookup -nameserver/ip`。进入非交互模式,就直接输入`nslookup 域名`就可以 ## 选项 -``` -nslookup(选项)(参数) -``` - - - -``` +```markdown -sil:不显示任何警告信息 ``` -### 参数 - -域名:指定要查询域名 - ## 实例 -``` -[root@localhost ~]# 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 +```bash +nslookup www.jsdig.com + ``` diff --git a/Linux_man_cn/ntpdate.md b/Linux_man_cn/ntpdate.md index cff07e8..01841c2 100644 --- a/Linux_man_cn/ntpdate.md +++ b/Linux_man_cn/ntpdate.md @@ -7,7 +7,8 @@ 此 ntpdate 命令使用以下方法进行时间调整: * 如果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday 子例程设置时钟时间。在引导时间,这是一个首选的方法 -* 如 果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime 子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。 当不是通过运行一个守护程序而是从 cron 命令有规则的运行ntpdate 命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟 +* 如 果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime 子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。 +当不是通过运行一个守护程序而是从 cron 命令有规则的运行ntpdate 命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟 使用很多服务器可以大幅度改善 ntpdate 命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能 @@ -17,20 +18,20 @@ ## 选项 -```bash -ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oVersion] [ -pSamples] [ -tTimeOut] Server -``` - -| 选项 | 描述 | -| :------: | :------: | -| -aKeyid | 使用 Keyid 来认证全部数据包。 | -| -b | 通过调用 settimeofday 子例程来增加时钟的时间。 | -| -d | 指定调试方式。判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口。 | -| -eAuthenticationDelay | 指定延迟认证处理的时间秒数。 | -| -kKeyFile | 当不使用缺省值 /etc/ntp.keys 文件时,为包含密钥的文件指定一个不同的名称。 请参阅文件KeyFile的描述。 | -| -oVersion | 当轮询它的发出数据包时,指定使用的 NTP 版本实现。 Version 的值可以是 1,2,3。缺省值是 3。 | -| -pSamples | 指定从每个服务器获取的样本的数目。 Samples 的值在 1 和 8 之间,并包括 1 和 8。它的缺省值是 4。 | -| -s | 指定日志操作 syslog 设施的使用,而不是使用标准输出。 当运行 ntpdate 命令和 cron命令时,它是很有用的。 | -| -tTimeOut | 指定等待响应的时间。给定 TimeOut 的值四舍五入为 0.2 秒的倍数。缺省值是 1 秒。 | -| -u | 指定使用无特权的端口发送数据包。 当在一个对特权端口的输入流量进行阻拦的防火墙后是很有益的, 并希望在防火墙之外和主机同步。防火墙是一个系统或者计算机,它控制从外网对专用网的访问。 | +```markdown +ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oVersion] +[ -pSamples] [ -tTimeOut] Server + +-aKeyid 使用 Keyid 来认证全部数据包 +-b 通过调用 settimeofday 子例程来增加时钟的时间 +-d 指定调试方式。判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口 +-eAuthenticationDelay 指定延迟认证处理的时间秒数 +-kKeyFile 当不使用缺省值 /etc/ntp.keys 文件时,为包含密钥的文件指定一个不同的名称。 请参阅文件KeyFile的描述 +-oVersion 当轮询它的发出数据包时,指定使用的 NTP 版本实现。 Version 的值可以是 1,2,3。缺省值是 3 +-pSamples 指定从每个服务器获取的样本的数目。 Samples 的值在 1 和 8 之间,并包括 1 和 8。它的缺省值是 4 +-s 指定日志操作 syslog 设施的使用,而不是使用标准输出。 当运行 ntpdate 命令和 cron命令时,它是很有用的 +-tTimeOut 指定等待响应的时间。给定 TimeOut 的值四舍五入为 0.2 秒的倍数。缺省值是 1 秒 +-u 指定使用无特权的端口发送数据包。 当在一个对特权端口的输入流量进行阻拦的防火墙后是很有益的, 并希望在防火墙之外和主机同步。 + 防火墙是一个系统或者计算机,它控制从外网对专用网的访问 +``` diff --git a/Linux_man_cn/openssl.md b/Linux_man_cn/openssl.md index 276ed70..b2e8fee 100644 --- a/Linux_man_cn/openssl.md +++ b/Linux_man_cn/openssl.md @@ -84,195 +84,122 @@ openssl x509 -text -noout -in certificate.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 openssl req -x509 -out localhost.crt -keyout localhost.key \ - -newkey rsa:2048 -nodes -sha256 -days 3650\ - -subj '/CN=*.19950128.com' -extensions EXT -config <( \ -printf "[dn]\nCN=*.19950128.com\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:*.19950128.com\\ -nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth") -``` - -```bash -# 消息摘要算法应用例子 -openssl dgst -sha1 file.txt # 用SHA1算法计算文件file.txt的哈西值,输出到stdout: - -``` - -用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt: + -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") -``` -# openssl sha1 -out digest.txt file.txt ``` -用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin。签名的private key必须为DSA算法产生的,保存在文件dsakey.pem中 +### 消息摘要算法应用例子 -``` -# openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt -``` - -用dss1算法验证file.txt的数字签名dsasign.bin,验证的private key为DSA算法产生的文件dsakey.pem +```bash +openssl dgst -sha1 file.txt # 用SHA1算法计算文件file.txt的哈西值,输出到stdout: +openssl sha1 -out digest.txt file.txt # 用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt: -``` -# openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt -``` +# 用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin。签名的private key必须为DSA算法产生的,保存在文件dsakey.pem中 +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 -``` -# openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt -``` +# 用sha1算法为文件file.txt签名,输出到文件rsasign.bin,签名的private key为RSA算法产生的文件rsaprivate.pem +openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt # 用sha1算法验证file.txt的数字签名rsasign.bin,验证的public key为RSA算法生成的rsapublic.pem - -``` -# 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 +openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt ``` -用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.bin,salt、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 +### 对称加密应用例子 -``` -# openssl dhparam -out dhparam.pem -2 1024 -``` - -从dhparam.pem中读取Diffie-Hell参数,以C代码的形式,输出到stdout - -``` -# openssl dhparam -in dhparam.pem -noout -C -``` - - **4、DSA应用例子应用例子** +```bash +#对称加密应用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin +openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin -生成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 -``` -# openssl dsaparam -out dsaparam.pem 1024 -``` +# 用Blowfish的CFB模式加密plaintext.doc,口令从环境变量PASSWORD中取,输出到文件ciphertext.bin +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.bin,salt、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 -``` -# openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem -``` +### Diffie-Hellman应用例子 -从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 - -``` -# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024 -``` +### DSA应用例子应用例子 -从文件rsaprivatekey.pem读取私匙,用口令trousers解密,生成的公钥匙输出到文件rsapublickey.pem +```bash +# 生成1024位DSA参数集,并输出到文件dsaparam.pem +openssl dsaparam -out dsaparam.pem 1024 -``` -# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem -``` +# 使用参数文件dsaparam.pem生成DSA私钥匙,采用3DES加密后输出到文件dsaprivatekey.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 -``` -# openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt +# 从dsaprivatekey.pem中读取私钥匙,解密并输入新口令进行加密,然后写回文件dsaprivatekey.pem +openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin ``` -使用私钥匙rsaprivatekey.pem解密密文cipher.txt,输出到文件plain.txt +### RSA应用例子 -``` -# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt -``` +```bash +# 产生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 -``` -# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin -``` +# 用公钥匙rsapublickey.pem加密文件plain.txt,输出到文件cipher.txt +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 -``` -# openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain -``` +# 用私钥匙rsaprivatekey.pem给文件plain.txt签名,输出到文件signature.bin +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 -``` -# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem -``` +# 从X.509证书文件cert.pem中获取公钥匙,用3DES加密mail.txt,输出到文件mail.enc +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 -``` -# 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 +# cert.pem为X.509证书文件,用私匙key,pem为mail.txt签名,证书被包含在S/MIME消息中,输出到文件mail.sgn +openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn -``` -# openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn +# 验证S/MIME消息mail.sgn,输出到文件mail.txt,签名者的证书应该作为S/MIME消息的一部分包含在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") - diff --git a/Linux_man_cn/patch.md b/Linux_man_cn/patch.md index 95b1a24..0ebfaf8 100644 --- a/Linux_man_cn/patch.md +++ b/Linux_man_cn/patch.md @@ -1,21 +1,13 @@ -patch -=== - -为开放源代码软件安装补丁程序 +# **patch** ## 说明 -**patch命令** 被用于为开放源代码软件安装补丁程序。让用户利用设置修补文件的方式,修改,更新原始文件。如果一次仅修改一个文件,可直接在命令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一 +**patch命令** 被用于为开放源代码软件安装补丁程序。让用户利用设置修补文件的方式,修改,更新原始文件。如果一次仅修改一个文件,可直接在命令 +列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一 ## 选项 -``` -patch(选项)(参数) -``` - - - -``` +```markdown -b或--backup:备份每一个原始文件 -B<备份字首字符串>或--prefix=<备份字首字符串>:设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称 -c或--context:把修补数据解译成关联性的差异 @@ -50,9 +42,5 @@ patch(选项)(参数) --verbose:详细显示指令的执行过程 ``` -### 参数 - -* 原文件:指定需要打补丁的原始文件 -* 补丁文件:指定补丁文件 diff --git a/Linux_man_cn/pidof.md b/Linux_man_cn/pidof.md index ce5278a..5f2c720 100644 --- a/Linux_man_cn/pidof.md +++ b/Linux_man_cn/pidof.md @@ -4,9 +4,9 @@ **pidof命令** 用于查找指定名称的进程的进程号id号 - +## 选项 -```sh +```markdown -s:仅返回一个进程pid号 -c:仅显示具有相同“root”目录的进程 -x:显示由脚本开启的进程 @@ -15,13 +15,6 @@ ## 实例 -```sh -pidof nginx -13312 5371 - -pidof crond -1509 - -pidof init -1 +```bash +pidof nginx # 查询nginx进程pid ``` diff --git a/Linux_man_cn/pstree.md b/Linux_man_cn/pstree.md index 189b845..8193826 100644 --- a/Linux_man_cn/pstree.md +++ b/Linux_man_cn/pstree.md @@ -1,7 +1,4 @@ -pstree -=== - -以树状图的方式展现进程之间的派生关系 +# pstree ## 说明 @@ -9,13 +6,7 @@ pstree ## 选项 -``` -pstree(选项) -``` - - - -``` +```markdown -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示 -c:不使用精简标示法 -G:使用VT100终端机的列绘图字符 @@ -31,28 +22,12 @@ pstree(选项) ## 实例 -显示当前所有进程的进程号和进程id - -``` -pstree -p -``` - -显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示 - ```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 的主进程是 sshd(1221),另两个分支分别为 sshd(2768) 和 sshd(2807) - diff --git a/Linux_man_cn/pv.md b/Linux_man_cn/pv.md index b1762c3..f77ae26 100644 --- a/Linux_man_cn/pv.md +++ b/Linux_man_cn/pv.md @@ -1,29 +1,22 @@ -pv +# pv ## 说明 -**pv命令** Pipe Viewer 的简称,由Andrew Wood 开发。意思是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间 +**pv命令** Pipe Viewer 的简称,由Andrew Wood 开发。意思是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间, +完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间 ## 下载安装 ```bash -# Debian 系的操作系统,如 Ubuntu -sudo apt-get install pv - -# RedHat系的则这样: -yum install pv +sudo apt-get install pv# Debian +yum install pv # RedHat ``` ## 选项 -```bash -pv(选项)(参数) +```markdown pv [OPTION] [FILE]... -``` - - -``` -p, --progress show progress bar -t, --timer show elapsed time -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 --h, --help 显示帮助 --V, --version 显示版本信息 ``` ## 实例 -我们(在 linux 上使用命令行的用户)的大多数使用场景都会用到的命令是从一个 USB 驱动器拷贝电影文件到你的电脑。如果你使用 cp 来完成上面的任务,你会什么情况都不清楚,直到整个复制过程结束或者出错 - ```bash # 复制文件会有进度 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 选项来限制传输速率为2MB/s +# -L 可以让你修改 pv 命令的传输速率,使用 -L 选项来限制传输速率为2MB/s 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 # 压缩文件展示进度信息 pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip > ./Desktop/fnf.log.gz - # 用 dd 命令将 iso 写入磁盘,pv来实现进度条的显示 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 + ``` diff --git a/Linux_man_cn/rename.md b/Linux_man_cn/rename.md index 5dd2381..f61fc8c 100644 --- a/Linux_man_cn/rename.md +++ b/Linux_man_cn/rename.md @@ -1,7 +1,4 @@ -rename -=== - -用字符串替换的方式批量改变文件名 +# **rename** ## 说明 @@ -9,68 +6,44 @@ rename ## 选项 -``` -rename(参数) -``` - -### 参数 +```markdown +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集中的任意单个字符 -``` 文件夹中有这些文件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 foo0 foo foo0[2]*`,从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo - **rename支持正则表达式** - -字母的替换 +**rename支持正则表达式** -``` -rename "s/AA/aa/" * //把文件名中的AA替换成aa -``` +```bash +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删掉 ``` diff --git a/Linux_man_cn/resize.md b/Linux_man_cn/resize.md index 14a733f..4c272d2 100644 --- a/Linux_man_cn/resize.md +++ b/Linux_man_cn/resize.md @@ -1,7 +1,4 @@ -resize -=== - -命令设置终端机视窗的大小 +# resize ## 说明 @@ -9,13 +6,7 @@ resize ## 选项 -``` -resize [-cu][-s <列数> <行数>] -``` - - - -``` +```markdown -c  就算用户环境并非C Shell,也用C Shell指令改变视窗大小 -s <列数> <行数>  设置终端机视窗的垂直高度和水平宽度 -u  就算用户环境并非Bourne Shell,也用Bourne Shell指令改变视窗大小 @@ -23,30 +14,11 @@ resize [-cu][-s <列数> <行数>] ## 实例 -使用 C shell - -``` -[root@localhost ~]# resize -c -set noglob; -setenv COLUMNS '99'; -setenv LINES '34'; -unset noglob; -``` - - -使用 Bourne shell - -``` -[root@localhost ~]# resize -u -COLUMNS=99; -LINES=34; -export COLUMNS LINES; -``` +```bash +resize -c # 使用 C shell +resize -u # 使用 Bourne shell +resize -s 80 160 # 设置指定大小 -设置指定大小 - -``` -[root@localhost ~]# resize -s 80 160 ``` diff --git a/Linux_man_cn/route.md b/Linux_man_cn/route.md index c4a34d5..f56e1d3 100644 --- a/Linux_man_cn/route.md +++ b/Linux_man_cn/route.md @@ -1,71 +1,35 @@ -route -=== - -显示并设置Linux中静态路由表 +# route ## 说明 -**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命令来保证该路由设置永久有效 ## 选项 -``` -route(选项)(参数) -``` - - +```markdown +-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 -``` --A:设置地址类型 --C:打印将Linux核心的路由缓存 --v:详细信息模式 --n:不执行DNS反向查找,直接显示数字形式的IP地址 --e:netstat格式显示路由表 --net:到一个网络的路由表 --host:到一个主机的路由表 -``` - -### 参数 - -``` -Add:增加指定的路由记录 -Del:删除指定的路由记录 -Target:目的网络或目的主机 -gw:设置默认网关 -mss:设置TCP的最大区块长度(MSS),单位MB -window:指定通过路由表的TCP连接的TCP窗口大小 -dev:路由记录所表示的网络接口 +Add 增加指定的路由记录 +Del 删除指定的路由记录 +Target 目的网络或目的主机 +gw 设置默认网关 +mss 设置TCP的最大区块长度(MSS),单位MB +window 指定通过路由表的TCP连接的TCP窗口大小 +dev 路由记录所表示的网络接口 ``` ## 实例 - **显示当前路由:** - -``` -[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标志说明: +输出详解:其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明: * U Up表示此路由当前为启动状态 * H Host,表示此网关为一主机 @@ -75,28 +39,17 @@ Destination Gateway Genmask Flags Metric Ref Use Iface * M Modified,此路由是由路由守护程序或导向器动态修改 * ! 表示此路由当前为关闭状态 - **添加网关/设置网关:** - -``` -route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一条到达244.0.0.0的路由 -``` +```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 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 reject -``` - - **删除和添加设置默认网关:** -``` +# 删除和添加设置默认网关 route del default gw 192.168.120.240 route add default gw 192.168.120.240 ``` diff --git a/Linux_man_cn/rpmdb.md b/Linux_man_cn/rpmdb.md index c57e040..789c033 100644 --- a/Linux_man_cn/rpmdb.md +++ b/Linux_man_cn/rpmdb.md @@ -1,7 +1,4 @@ -rpmdb -=== - -初始化和重建RPM数据库 +# rpmdb ## 说明 @@ -9,13 +6,7 @@ rpmdb ## 选项 -``` -rpmdb(选项) -``` - - - -``` +```markdown --initdb:初始化RPM数据库 --rebuilddb:从已安装的包头文件,反向重建RPM数据库 ``` diff --git a/Linux_man_cn/rpmverify.md b/Linux_man_cn/rpmverify.md index 5f87c55..60a920b 100644 --- a/Linux_man_cn/rpmverify.md +++ b/Linux_man_cn/rpmverify.md @@ -1,7 +1,4 @@ -rpmverify -=== - -验证已安装的RPM软件包的正确性 +# rpmverify ## 说明 @@ -9,13 +6,7 @@ rpmverify ## 选项 -``` -rpmverify(选项) -``` - - - -``` +```markdown -Va:验证所有软件包 -V<软件包>f:验证指定软件包 --nomd5:不验证软件包的md5摘要 diff --git a/Linux_man_cn/rsync.md b/Linux_man_cn/rsync.md index af5275b..1846dc9 100644 --- a/Linux_man_cn/rsync.md +++ b/Linux_man_cn/rsync.md @@ -17,12 +17,23 @@ rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] 对应于以上六种命令格式,rsync有六种不同的工作模式: -1. 同步本地目录。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:`rsync -a /data /backup` -2. 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:`rsync -avz *.c foo:src` -3. 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:`rsync -avz foo:src/bar /data` -4. 拉取:从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:`rsync -av root@192.168.78.192::www /databack` -5. 推送:从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:`rsync -av /databack root@192.168.78.192::www` -6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:`rsync -v rsync://192.168.78.192/www` +* 同步本地目录。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式 + 如:`rsync -a /data /backup` + +* 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式 + 如:`rsync -avz *.c foo:src` + +* 使用一个远程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 @@ -32,7 +43,7 @@ rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, --recursive 对子目录以递归模式处理 -R, --relative 使用相对路径信息 --b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀 +-b, --backup 创建备份就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀 --backup-dir 将备份文件(如~filename)存放在在目录下 -suffix=SUFFIX 定义备份文件前缀 -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进行同步 ```bash 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服务,如下: - -```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 -} -``` +```markdown +# 默认安装好rsync程序后,配置文件为“/etc/rsyncd.conf” -```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,这在前面的模块参数做了详细介绍 - -```sh +```bash +# 创建密码文件,用户名可以和密码可以随便定义,服务端需要user:pass形式,客户端只需要pass就行 echo "work:abc123" > /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 ``` \ No newline at end of file diff --git a/Linux_man_cn/sed.md b/Linux_man_cn/sed.md index 0957834..ce6e5ff 100644 --- a/Linux_man_cn/sed.md +++ b/Linux_man_cn/sed.md @@ -17,7 +17,7 @@ --follow-symlinks 直接修改文件时跟随软链接 -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 --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”命令的换行期望长度 --posix 关闭所有 GNU 扩展 -r, --regexp-extended 在脚本中使用扩展正则表达式 @@ -32,7 +32,7 @@ sed脚本。其他非选项参数被视为输入文件,如果没有输入文 ### sed命令 -```markdown +``` a\ 在当前行下面插入文本 i\ 在当前行上面插入文本 c\ 把选定的行改为新的文本 diff --git a/Linux_man_cn/service.md b/Linux_man_cn/service.md index 3394c14..2eb0bd3 100644 --- a/Linux_man_cn/service.md +++ b/Linux_man_cn/service.md @@ -1,58 +1,19 @@ -service -=== - -控制系统服务的实用工具 +# **service** ## 说明 -**service命令** 是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态 +**service命令** 是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,显示所有系统服务当前状态 ## 选项 -``` -service(选项)(参数) -``` - - - -``` --h:显示帮助信息 +```markdown --status-all:显示所服务的状态 ``` -### 参数 - -* 服务名:自动要控制的服务名,即`/etc/init.d`目录下的脚本文件名 -* 控制命令:系统服务脚本支持的控制命令 - ## 实例 -当修改了主机名、ip地址等信息时,经常需要把网络重启使之生效 - -``` -service network status -配置设备: -lo eth0 -当前的活跃设备: -lo eth0 - -service network restart -正在关闭接口 eth0: [ 确定 ] -关闭环回接口: [ 确定 ] -设置网络参数: [ 确定 ] -弹出环回接口: [ 确定 ] -弹出界面 eth0: [ 确定 ] -``` - -重启mysql - -``` -service mysqld status -mysqld (pid 1638) 正在运行... +```bash -service mysqld restart -停止 MySQL: [ 确定 ] -启动 MySQL: [ 确定 ] ``` diff --git a/Linux_man_cn/sftp.md b/Linux_man_cn/sftp.md index b8dc453..dcdf638 100644 --- a/Linux_man_cn/sftp.md +++ b/Linux_man_cn/sftp.md @@ -1,21 +1,12 @@ -sftp -=== - -交互式的文件传输程序 +# sftp ## 说明 -**sftp命令** 是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能 +**sftp命令** 交互式的文件传输程序,命令运行和使用方式与ftp命令相似,但sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能 ## 选项 -``` -sftp(选项)(参数) -``` - - - -``` +```markdown -B:指定传输文件时缓冲区的大小 -l:使用ssh协议版本1 -b:指定批处理文件 @@ -26,8 +17,4 @@ sftp(选项)(参数) -v:升高日志等级 ``` -### 参数 - -目标主机:指定sftp服务器ip地址或者主机名 - diff --git a/Linux_man_cn/sleep.md b/Linux_man_cn/sleep.md index d521036..7162ac3 100644 --- a/Linux_man_cn/sleep.md +++ b/Linux_man_cn/sleep.md @@ -1,7 +1,4 @@ -sleep -=== - -将目前动作延迟一段时间 +# **sleep** ## 说明 @@ -9,31 +6,23 @@ sleep ## 选项 -``` -sleep(参数) -``` - -### 参数 - -时间:指定要暂停时间的长度 - +```markdown 时间长度,后面可接 s、m、h 或 d,其中 s 为秒,m 为 分钟,h 为小时,d 为日数 +``` ## 实例 -有时在写一些以循环方式运行的监控脚本,设置时间间隔是必不可少的,下面是一个Shell进度条的脚本演示在脚本中生成延时 - -``` +```bash +# 有时在写一些以循环方式运行的监控脚本,设置时间间隔是必不可少的,下面是一个Shell进度条的脚本演示在脚本中生成延时 #!/bin/bash b='' for ((i=0;$i<=100;i++)) - do - printf "Progress:[%-100s]%d%%\r" $b $i - sleep 0.1 - b=#$b - done -echo + do + printf "Progress:[%-100s]%d%%\r" $b $i + sleep 0.1 + b==#$b +done ``` diff --git a/Linux_man_cn/source.md b/Linux_man_cn/source.md index f20cd68..f4fa9e9 100644 --- a/Linux_man_cn/source.md +++ b/Linux_man_cn/source.md @@ -1,24 +1,13 @@ -source -=== - -在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态 +# **source** ## 说明 **source命令** 在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态 -## 选项 - -``` -source [文件名] [参数] -``` - -### 例子 - -读取和执行/root/.bash_profile文件 +## 实例 ```bash -[root@localhost ~]# source ~/.bash_profile +source ~/.bash_profile # 读取和执行/root/.bash_profile文件 ``` diff --git a/Linux_man_cn/ss.md b/Linux_man_cn/ss.md deleted file mode 100644 index 5bd6226..0000000 --- a/Linux_man_cn/ss.md +++ /dev/null @@ -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_diag,ss也可以正常运行,只是效率会变得稍慢 - -## 选项 - -``` -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类型的套接字(sockets),FAMILY可选,支持 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 *:* -``` - -#### 出所有端口为 22(ssh)的连接 - -```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 :::* -``` - - - diff --git a/Linux_man_cn/ssh-add.md b/Linux_man_cn/ssh-add.md index 15a35b1..2a5aa00 100644 --- a/Linux_man_cn/ssh-add.md +++ b/Linux_man_cn/ssh-add.md @@ -1,7 +1,4 @@ -ssh-add -=== - -把专用密钥添加到ssh-agent的高速缓存中 +# **ssh-add** ## 说明 @@ -9,15 +6,11 @@ ssh-add ## 选项 -``` +```markdown ssh-add [-cDdLlXx] [-t life] [file ...] ssh-add -s pkcs11 ssh-add -e pkcs11 -``` - - -``` -D:删除ssh-agent中的所有密钥. -d:从ssh-agent中的删除密钥 -e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙 @@ -31,22 +24,10 @@ ssh-add -e pkcs11 ## 实例 -1、把专用密钥添加到 ssh-agent 的高速缓存中: - -``` -ssh-add ~/.ssh/id_dsa -``` - -2、从ssh-agent中删除密钥: - -``` -ssh-add -d ~/.ssh/id_xxx.pub -``` - -3、查看ssh-agent中的密钥: - -``` -ssh-add -l +```bash +ssh-add ~/.ssh/id_dsa # 把专用密钥添加到 ssh-agent 的高速缓存中 +ssh-add -d ~/.ssh/id_xxx.pub # 从ssh-agent中删除密钥 +ssh-add -l # 查看ssh-agent中的密钥 ``` diff --git a/Linux_man_cn/ssh-agent.md b/Linux_man_cn/ssh-agent.md index f98bb0f..d2ab4fb 100644 --- a/Linux_man_cn/ssh-agent.md +++ b/Linux_man_cn/ssh-agent.md @@ -1,24 +1,19 @@ -ssh-agent -=== - -ssh密钥管理器 +# ssh-agent ## 说明 -**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] -k -``` - - -``` -a bind_address:bind the agent to the UNIX-domain socket bind_address. -c:生成C-shell风格的命令输出 -d:调试模式 @@ -29,12 +24,9 @@ ssh-agent [-c | -s] -k ## 实例 -运行ssh-agent: +```bash -``` -ssh-agent ``` -运行ssh-agent,它会打印出来它使用的环境和变量 diff --git a/Linux_man_cn/ssh-copy-id.md b/Linux_man_cn/ssh-copy-id.md index ac123b2..6a20b56 100644 --- a/Linux_man_cn/ssh-copy-id.md +++ b/Linux_man_cn/ssh-copy-id.md @@ -1,31 +1,22 @@ -ssh-copy-id -=== - -把本地的ssh公钥文件安装到远程主机对应的账户下 +# **ssh-copy-id** ## 说明 -**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 -``` - - -``` -i:指定公钥文件 ``` ## 实例 -1、把本地的ssh公钥文件安装到远程主机对应的账户下: - -``` -ssh-copy-id user@server -ssh-copy-id -i ~/.ssh/id_rsa.pub user@server +```bash +ssh-copy-id -i ~/.ssh/id_rsa.pub user@server # 把本地的ssh公钥文件安装到远程主机对应的账户下 ``` diff --git a/Linux_man_cn/ssh-keygen.md b/Linux_man_cn/ssh-keygen.md index a57f2ff..0c29c0a 100644 --- a/Linux_man_cn/ssh-keygen.md +++ b/Linux_man_cn/ssh-keygen.md @@ -1,7 +1,4 @@ -ssh-keygen -=== - -为ssh生成、管理和转换认证密钥 +# **ssh-keygen** ## 说明 @@ -9,48 +6,30 @@ ssh-keygen ## 选项 -``` -ssh-keygen(选项) -``` - - - -``` --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] +```markdown +用法: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile] - ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] - ssh-keygen -i [-m key_format] [-f input_keyfile] - ssh-keygen -e [-m key_format] [-f input_keyfile] - ssh-keygen -y [-f input_keyfile] - ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile] - ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] - ssh-keygen -B [-f input_keyfile] - ssh-keygen -D pkcs11 - ssh-keygen -F hostname [-f known_hosts_file] [-l] - ssh-keygen -H [-f known_hosts_file] - ssh-keygen -R hostname [-f known_hosts_file] - ssh-keygen -r hostname [-f input_keyfile] [-g] - 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] - [-j start_line] [-K checkpt] [-W generator] - ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals] - [-O option] [-V validity_interval] [-z serial_number] file ... - ssh-keygen -L [-f input_keyfile] - ssh-keygen -A - ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] - file ... - ssh-keygen -Q -f krl_file file ... +ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] +ssh-keygen -i [-m key_format] [-f input_keyfile] +ssh-keygen -e [-m key_format] [-f input_keyfile] +ssh-keygen -y [-f input_keyfile] +ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile] +ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] +ssh-keygen -B [-f input_keyfile] +ssh-keygen -D pkcs11 +ssh-keygen -F hostname [-f known_hosts_file] [-l] +ssh-keygen -H [-f known_hosts_file] +ssh-keygen -R hostname [-f known_hosts_file] +ssh-keygen -r hostname [-f input_keyfile] [-g] +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] + [-j start_line] [-K checkpt] [-W generator] +ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals] + [-O option] [-V validity_interval] [-z serial_number] file ... +ssh-keygen -L [-f input_keyfile] +ssh-keygen -A +ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] + file ... +ssh-keygen -Q -f krl_file file ... diff --git a/Linux_man_cn/ssh-keyscan.md b/Linux_man_cn/ssh-keyscan.md index 6ff2024..35b67ee 100644 --- a/Linux_man_cn/ssh-keyscan.md +++ b/Linux_man_cn/ssh-keyscan.md @@ -1,7 +1,4 @@ -ssh-keyscan -=== - -收集主机公钥的使用工具 +# **ssh-keyscan** ## 说明 @@ -9,13 +6,10 @@ ssh-keyscan ## 选项 -``` -ssh-keyscan(选项)(参数) -``` - - +```markdown +用法:ssh-keyscan [-46cHv] [-f file] [-p port] [-T timeout] [-t type] + [host | addrlist namelist] ... -``` -4:强制使用IPv4地址 -6:强制使用IPv6地址 -f:从指定文件中读取“地址列表/名字列表” @@ -25,8 +19,5 @@ ssh-keyscan(选项)(参数) -v:信息模式,打印调试信息 ``` -### 参数 - -主机列表:指定要收集公钥的主机列表 diff --git a/Linux_man_cn/sudo.md b/Linux_man_cn/sudo.md index 43a434f..60d56e7 100644 --- a/Linux_man_cn/sudo.md +++ b/Linux_man_cn/sudo.md @@ -13,10 +13,10 @@ sudo - 以其他用户身份执行一条命令 sudo -h | -K | -k | -V 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 [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [] +sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] + [-i|-s] [] sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ... -选项: -A, --askpass 使用助手程序进行密码提示 -b, --background 在后台运行命令 -C, --close-from=num 关闭所有 >= num 的文件描述符 diff --git a/Linux_man_cn/sum.md b/Linux_man_cn/sum.md index 0670c64..6744478 100644 --- a/Linux_man_cn/sum.md +++ b/Linux_man_cn/sum.md @@ -1,7 +1,4 @@ -sum -=== - -计算文件的校验码和显示块数 +# sum ## 说明 @@ -9,28 +6,15 @@ sum ## 选项 -``` -sum(选项)(参数) -``` - - - -``` +```markdown -r:使用BSD的校验和算法,块大小为1k -s:使用system V的校验和算法,块大小为512字节 ``` -### 参数 - -文件列表:需要计算和与磁盘块数的文件列表 - ## 实例 -计算文件校验码: - -``` -[root@localhost ~]# sum insert.sql -00827 12 +```bash +sum insert.sql # 计算文件校验码 ``` diff --git a/Linux_man_cn/swapoff.md b/Linux_man_cn/swapoff.md index 59fbce7..d4257b0 100644 --- a/Linux_man_cn/swapoff.md +++ b/Linux_man_cn/swapoff.md @@ -1,7 +1,4 @@ -swapoff -=== - -关闭指定的交换空间 +# swapoff ## 说明 @@ -9,26 +6,15 @@ swapoff ## 选项 -``` -swapoff(选项)(参数) -``` - - - -``` +```markdown -a:关闭配置文件“/etc/fstab”中所有的交换空间 ``` -### 参数 - -交换空间:指定需要激活的交换空间,可以是交换文件和交换分区,如果是交换分区则指定交换分区对应的设备文件 - ## 实例 -关闭交换分区 +```bash +swapoff /dev/sda2 # 关闭交换分区 ``` -swapoff /dev/sda2 -``` diff --git a/Linux_man_cn/swapon.md b/Linux_man_cn/swapon.md index 1b28476..83447b6 100644 --- a/Linux_man_cn/swapon.md +++ b/Linux_man_cn/swapon.md @@ -1,7 +1,4 @@ -swapon -=== - -激活Linux系统中交换空间 +# swapon ## 说明 @@ -9,13 +6,7 @@ swapon ## 选项 -``` -swapon(选项)(参数) -``` - - - -``` +```markdown -a:将/etc/fstab文件中所有设置为swap的设备,启动为交换区 -h:显示帮助 -p<优先顺序>:指定交换区的优先顺序 @@ -23,19 +14,13 @@ swapon(选项)(参数) -V:显示版本信息 ``` -### 参数 - -交换空间:指定需要激活的交换空间,可以是交换文件和交换分区,如果是交换分区则指定交换分区对应的设备文件 - ## 实例 -``` -mkswap -c /dev/hdb4 (-c是检查有无坏块) +```bash +mkswap -c /dev/hdb4 # -c是检查有无坏块 swapon -v /dev/hdb4 swapon -s -Filename type Size Used Priority -/dev/hda5 partition 506008 96 -1 -/dev/hdb4 partition 489972 0 -2 + ``` diff --git a/Linux_man_cn/sync.md b/Linux_man_cn/sync.md index d1006de..5a1469b 100644 --- a/Linux_man_cn/sync.md +++ b/Linux_man_cn/sync.md @@ -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:为了解决读磁盘的效率 -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数据 -```sh +```bash sync; echo 3 > /proc/sys/vm/drop_caches # 清空Linux Buffer Cache ``` \ No newline at end of file diff --git a/Linux_man_cn/syslog.md b/Linux_man_cn/syslog.md index fb5e102..c70ba80 100644 --- a/Linux_man_cn/syslog.md +++ b/Linux_man_cn/syslog.md @@ -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 如何根据设备和信息重要级别来报告信息 -此 rsyslogd 后台进程负责搜集来自应用程序与核心的服务消息,然后送至日志档内 (通常保存在 /var/log/ 文件夹内)。遵守 /etc/rsyslog.conf 配置文件的要求 +rsyslogd后台进程负责搜集应用程序与核心的服务消息,然后送至日志档内(通常保存在 /var/log/ 文件夹内)。遵守/etc/rsyslog.conf配置文件的要求 + 每个日志信息都和应用子系统相关联(文档中称为“facility”): auth 和 authpriv:用于授权 cron:源于任务调度服务, cron 和 atd @@ -31,30 +36,19 @@ warn:警告(潜在的错误) notice:正常情况,但是该消息很重要 info:提供信息 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 +logger -t TAG this is a test log line # 记录特定的标记(tag)可以使用 -输出: -tail -n 1 messages -Jan 5 10:37:14 localhost TAG: this is a test log line ``` + diff --git a/Linux_man_cn/systemctl.md b/Linux_man_cn/systemctl.md index cdb3f4a..a08a5ee 100644 --- a/Linux_man_cn/systemctl.md +++ b/Linux_man_cn/systemctl.md @@ -1,299 +1,203 @@ -systemctl -=== - -系统服务管理器指令 +# **systemctl** ## 说明 **systemctl命令** 是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
任务旧指令新指令
使某服务自动启动chkconfig --level 3 httpd onsystemctl enable httpd.service
使某服务不自动启动chkconfig --level 3 httpd offsystemctl disable httpd.service
检查服务状态service httpd statussystemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务chkconfig --listsystemctl list-units --type=service
启动某服务service httpd startsystemctl start httpd.service
停止某服务service httpd stopsystemctl stop httpd.service
重启某服务service httpd restartsystemctl restart httpd.service
- -## 实例 - -1.启动nfs服务 - -``` -systemctl start nfs-server.service -``` - -2.设置开机自启动 - +## 选项 + +```markdown + --system Connect to system manager +-H --host=[USER@]HOST + Operate on remote host +-M --machine=CONTAINER + Operate on local container +-t --type=TYPE List units of a particular type + --state=STATE List units with particular LOAD or SUB or ACTIVE state +-p --property=NAME Show only properties by this name +-a --all Show all loaded units/properties, including dead/empty + ones. To list all units installed on the system, use + the 'list-unit-files' command instead. +-l --full Don't ellipsize unit names on output +-r --recursive Show unit list of host and local containers + --reverse Show reverse dependencies with 'list-dependencies' + --job-mode=MODE Specify how to deal with already queued jobs, when + queueing a new job + --show-types When showing sockets, explicitly show their type +-i --ignore-inhibitors + When shutting down or sleeping, ignore inhibitors + --kill-who=WHO Who to send signal to +-s --signal=SIGNAL Which signal to send + --now Start or stop unit in addition to enabling or disabling it +-q --quiet Suppress output + --no-block Do not wait until operation finished + --no-wall Don't send wall message before halt/power-off/reboot + --no-reload Don't reload daemon after en-/dis-abling unit files + --no-legend Do not print a legend (column headers and hints) + --no-pager Do not pipe output into a pager + --no-ask-password + Do not ask for system passwords + --global Enable/disable unit files globally + --runtime Enable unit files only temporarily until next reboot +-f --force When enabling unit files, override existing symlinks + When shutting down, execute action immediately + --preset-mode= Apply only enable, only disable, or all presets + --root=PATH Enable unit files in the specified root directory +-n --lines=INTEGER Number of journal entries to show +-o --output=STRING Change journal output mode (short, short-iso, + short-precise, short-monotonic, verbose, + export, json, json-pretty, json-sse, cat) + --plain Print unit dependencies as a list instead of a tree + +Unit Commands: + list-units [PATTERN...] List loaded units + list-sockets [PATTERN...] List loaded sockets ordered by address + list-timers [PATTERN...] List loaded timers ordered by next elapse + start NAME... Start (activate) one or more units + stop NAME... Stop (deactivate) one or more units + reload NAME... Reload one or more units + restart NAME... Start or restart one or more units + try-restart NAME... Restart one or more units if active + reload-or-restart NAME... Reload one or more units if possible, + otherwise start or restart + reload-or-try-restart NAME... Reload one or more units if possible, + otherwise restart if active + isolate NAME Start one unit and stop all others + kill NAME... Send signal to processes of a unit + is-active PATTERN... Check whether units are active + is-failed PATTERN... Check whether units are failed + status [PATTERN...|PID...] Show runtime status of one or more units + show [PATTERN...|JOB...] Show properties of one or more + units/jobs or the manager + cat PATTERN... Show files and drop-ins of one or more units + set-property NAME ASSIGNMENT... Sets one or more properties of a unit + help PATTERN...|PID... Show manual for one or more units + reset-failed [PATTERN...] Reset failed state for all, one, or more + units + list-dependencies [NAME] Recursively show units which are required + or wanted by this unit or by which this + unit is required or wanted + +Unit File Commands: + list-unit-files [PATTERN...] List installed unit files + enable NAME... Enable one or more unit files + disable NAME... Disable one or more unit files + reenable NAME... Reenable one or more unit files + preset NAME... Enable/disable one or more unit files + based on preset configuration + preset-all Enable/disable all unit files based on + preset configuration + is-enabled NAME... Check whether unit files are enabled + mask NAME... Mask one or more units + unmask NAME... Unmask one or more units + 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 + add-requires TARGET NAME... Add 'Requires' dependency for the target + on specified one or more units + edit NAME... Edit one or more unit files + get-default Get the name of the default target + set-default NAME Set the default target + +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-time YYYY-MM-DD 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 "20 min ago" journalctl --since yesterday journalctl --since "2015-01-10" --until "2015-01-11 03:00" journalctl --since 09:00 --until "1 hour ago" -# 显示尾部的最新10行日志 -journalctl -n -# 显示尾部指定行数的日志 -journalctl -n 20 -# 实时滚动显示最新日志 -journalctl -f -# 查看指定服务的日志 -journalctl /usr/lib/systemd/systemd -# 查看指定进程的日志 -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 +journalctl -n 20 # 显示尾部指定行数的日志 +journalctl -f # 实时滚动显示最新日志 +journalctl _PID=1 # 查看指定进程的日志 +journalctl _UID=33 --since today # 查看指定用户的日志 +journalctl -u nginx.service --since today # 查看某个 Unit 的日志 +journalctl -u nginx.service -f # 实时滚动显示某个 Unit 的最新日志 +journalctl -u nginx.service -u php-fpm.service --since today # 合并显示多个 Unit 的日志 + +journalctl -p err -b # 查看指定优先级(及其以上级别)的日志,共有8级 0: emerg 1: alert @@ -303,18 +207,12 @@ journalctl -u nginx.service -u php-fpm.service --since today 5: notice 6: info 7: debug -journalctl -p err -b -# 日志默认分页输出,--no-pager 改为正常的标准输出 -journalctl --no-pager -# 以 JSON 格式(单行)输出 -journalctl -b -u nginx.service -o json -# 以 JSON 格式(多行)输出,可读性更好 -journalctl -b -u nginx.serviceqq -o json-pretty -# 显示日志占据的硬盘空间 -journalctl --disk-usage -# 指定日志文件占据的最大空间 -journalctl --vacuum-size=1G -# 指定日志文件保存多久 -journalctl --vacuum-time=1years + +journalctl --no-pager # 日志默认分页输出,--no-pager 改为正常的标准输出 +journalctl -b -u nginx.service -o json # 以 JSON 格式(单行)输出 +journalctl -b -u nginx.serviceqq -o json-pretty # 以 JSON 格式(多行)输出,可读性更好 +journalctl --disk-usage # 显示日志占据的硬盘空间 +journalctl --vacuum-size=1G # 指定日志文件占据的最大空间 +journalctl --vacuum-time=1years # 指定日志文件保存多久 ``` diff --git a/Linux_man_cn/systool.md b/Linux_man_cn/systool.md index 46c612c..df04d7d 100644 --- a/Linux_man_cn/systool.md +++ b/Linux_man_cn/systool.md @@ -1,7 +1,4 @@ -systool -=== - -显示基于总线、类和拓扑显示系统中设备的信息 +# systool ## 说明 @@ -9,13 +6,7 @@ systool ## 选项 -``` -systool(选项)(参数) -``` - - - -``` +```markdown -a:显示被请求资源的属性 -b<总线>:显示指定总线的信息 -c:显示指定类的信息 @@ -29,176 +20,11 @@ systool(选项)(参数) -P:显示设备的父类 ``` -### 参数 - -设备:指定要查看信息的设备名称 - ## 实例 -``` -[root@localhost ~]# 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 +```bash +systool + ``` diff --git a/Linux_man_cn/tac.md b/Linux_man_cn/tac.md index 52e5b53..e0d9e8a 100644 --- a/Linux_man_cn/tac.md +++ b/Linux_man_cn/tac.md @@ -1,7 +1,4 @@ -tac -=== - -将文件已行为单位的反序输出 +# **tac** ## 说明 @@ -9,19 +6,12 @@ tac ## 选项 -``` -tac(选项)(参数) -``` - - +```markdown +-b, --before 在行前而非行尾添加分隔标志 +-r, --regex 将分隔标志视作正则表达式来解析 +-s, --separator=字符串 使用指定字符串代替换行作为分隔标志 ``` --a或——append:将内容追加到文件的末尾 --i或——ignore-interrupts:忽略中断信号 -``` - -### 参数 -文件列表:指定要保存内容的文件列表 diff --git a/Linux_man_cn/tail.md b/Linux_man_cn/tail.md index 578fc7e..2ccc363 100644 --- a/Linux_man_cn/tail.md +++ b/Linux_man_cn/tail.md @@ -9,14 +9,30 @@ K值后缀:b表示512,b 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 +## 选项 + ```markdown ---c, --bytes=K :输出文件尾部的第K(K为整数)个字节内容 --f, --follow[={name|descriptor}] :显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效 --F:与选项“-follow=name --retry"连用时功能相同 --n, --lines=K :输出文件的尾部N(N位数字)行内容 ---pid=<进程号> :与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 --q或——quiet或——silent:当有多个文件参数时,不输出各个文件名 --s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数 +-c, --bytes=K 输出最后K个字节;或使用-c + K输出从每个文件的第K个字节开始的字节 +-f, --follow[={name|descriptor}] + output appended data as the file grows; + an absent option argument means 'descriptor' +-F same as --follow=name --retry +-n, --lines=K output the last K lines, instead of the last 10; + 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 + ``` ## 实例 diff --git a/Linux_man_cn/tailf.md b/Linux_man_cn/tailf.md index cac864f..29fdd12 100644 --- a/Linux_man_cn/tailf.md +++ b/Linux_man_cn/tailf.md @@ -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的区别 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 -tailf logfile # 动态跟踪日志文件logfile,最初的时候打印文件的最后10行内容 -``` - - - -```bash +```markdown -n, --lines NUMBER # 输出最后数行 -NUMBER # 与NUMBER相同 `-n NUMBER' --V, --version # 输出版本信息并退出 --h, --help # 显示帮助并退出 -``` - -### 参数 -目标:指定目标日志 +``` ## 实例 -``` + +```bash tailf log/WEB.LOG tailf -n 5 log2014.log # 显示文件最后5行内容 ``` diff --git a/Linux_man_cn/talk.md b/Linux_man_cn/talk.md index 0b75bc9..935b93d 100644 --- a/Linux_man_cn/talk.md +++ b/Linux_man_cn/talk.md @@ -1,22 +1,9 @@ -talk -=== - -让用户和其他用户聊天 +# talk ## 说明 -**talk命令** 是talk服务器的客户端工具,通过talk命令可以让用户和其他用户聊天。linux中talk命令参数程序的使用很简单,只要知道交谈对象的地址,就可以邀请对方交谈 - -## 选项 - -``` -talk(参数) -``` - -### 参数 - -* 用户:指定聊天的用户 -* 终端:指定用户的终端 +**talk命令** 是talk服务器的客户端工具,通过talk命令可以让用户和其他用户聊天。linux中talk命令参数程序的使用很简单, +只要知道交谈对象的地址,就可以邀请对方交谈 ## 实例 diff --git a/Linux_man_cn/tee.md b/Linux_man_cn/tee.md index ef9810a..e80aeaf 100644 --- a/Linux_man_cn/tee.md +++ b/Linux_man_cn/tee.md @@ -1,7 +1,4 @@ -tee -=== - -把数据重定向到给定文件和屏幕上 +# tee ## 说明 @@ -9,55 +6,22 @@ tee ! -存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到1024个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件 +存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。 +若文件内容不到1024个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件 ## 选项 -``` -tee(选项)(参数) -``` - - +```markdown +-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 -``` diff --git a/Linux_man_cn/telnet.md b/Linux_man_cn/telnet.md index 1c31c74..6c55c13 100644 --- a/Linux_man_cn/telnet.md +++ b/Linux_man_cn/telnet.md @@ -1,21 +1,17 @@ -telnet -=== - -登录远程主机和管理 +# **telnet** ## 说明 -**telnet命令** 用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的 +**telnet命令** 用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务, +而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的 ## 选项 -``` -telnet(选项)(参数) -``` - - +```markdown +用法: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位字符资料,包括输入与输出 -a:尝试自动登入远端系统 -b<主机别名>:使用别名指定远端主机名称 @@ -36,102 +32,11 @@ telnet(选项)(参数) -X<认证形态>:关闭指定的认证形态 ``` -### 参数 - -* 远程主机:指定要登录进行管理的远程主机 -* 端口:指定TELNET协议使用的端口号 - ## 实例 -``` -$ 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 -``` +```bash +telnet 192.168.2.10 -各配置项具体的含义和语法可参考xined配置文件属性说明(man xinetd.conf) - -配置端口,修改services文件: - -``` -# vi /etc/services -``` - -找到以下两句 - -``` -telnet 23/tcp -telnet 23/udp -``` - -如果前面有#字符,就去掉它。telnet的默认端口是23,这个端口也是黑客端口扫描的主要对象,因此最好将这个端口修改掉,修改的方法很简单,就是将23这个数字修改掉,改成大一点的数字,比如61123。注意,1024以下的端口号是internet保留的端口号,因此最好不要用,还应该注意不要与其它服务的端口冲突。 - -启动服务: -``` -service xinetd restart ``` diff --git a/Linux_man_cn/time.md b/Linux_man_cn/time.md index c4db1dd..333401c 100644 --- a/Linux_man_cn/time.md +++ b/Linux_man_cn/time.md @@ -2,7 +2,8 @@ ## 实例 -当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗。例如:time command +当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令,使用这个命令可以 +统计时间消耗。例如:time command ```sh real 0m0.009s @@ -16,9 +17,10 @@ sys 0m0.007s 3:sys时间是指花费在内核模式中的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 -a -o outfile.txt ls # 使用`-a`选项追加信息 /usr/bin/time -f "time: %U" ls # 使用`-f`选项格式化时间输出 diff --git a/Linux_man_cn/tree.md b/Linux_man_cn/tree.md index 1da5997..b394866 100644 --- a/Linux_man_cn/tree.md +++ b/Linux_man_cn/tree.md @@ -1,7 +1,4 @@ -tree -=== - -树状图列出目录的内容 +# **tree** ## 说明 @@ -9,13 +6,7 @@ tree ## 选项 -``` -tree(选项)(参数) -``` - - - -```bash +```markdown ------- 列表选项 ------- -a # 显示所有文件和目录 -d # 先是目录名称而非文件 @@ -68,42 +59,18 @@ tree(选项)(参数) -T string # Replace the default HTML title and H1 header with string. --nolinks # Turn off hyperlinks in HTML output. ---- 杂项选项 ---- ---version # 输入版本信息 ---help # 打印使用帮助信息 -- # Options processing terminator. ``` -### 参数 - -目录:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件 - - ## 实例 -列出目录`/private/` 第一级文件名 - -```bash -tree /private/ -L 1 -/private/ -├── etc -├── tftpboot -├── tmp -└── var -``` - -忽略文件夹 - ```bash +tree /private/ -L 1 # 列出目录`/private/` 第一级文件名 tree -I node_modules # 忽略当前目录文件夹node_modules tree -P node_modules # 列出当前目录文件夹node_modules的目录结构 tree -P node_modules -L 2 # 显示目录node_modules两层的目录树结构 tree -L 2 > /home/www/tree.txt # 当前目录结果存到 tree.txt 文件中 -``` - -忽略多个文件夹 - -```bash -tree -I 'node_modules|icon|font' -L 2 +tree -I 'node_modules|icon|font' -L 2 # 忽略多个文件夹 ``` diff --git a/Linux_man_cn/tty.md b/Linux_man_cn/tty.md index c093e5c..c61a0e0 100644 --- a/Linux_man_cn/tty.md +++ b/Linux_man_cn/tty.md @@ -19,7 +19,7 @@ tty [选项] -s 什么也不显示,只返回退出状态值 ``` -### 例子 +## 实例 显示连接到当前标准输入的终端设备文件名 diff --git a/Linux_man_cn/type.md b/Linux_man_cn/type.md index 47ea78d..285ea42 100644 --- a/Linux_man_cn/type.md +++ b/Linux_man_cn/type.md @@ -1,7 +1,4 @@ -type -=== - -显示指定命令的类型 +# type ## 说明 @@ -9,60 +6,27 @@ type 命令类型: -* alias:别名 -* keyword:关键字,Shell保留字 -* function:函数,Shell函数 -* builtin:内建命令,Shell内建命令 -* file:文件,磁盘文件,外部命令 -* unfound:没有找到 +* alias:别名 +* keyword:关键字,Shell保留字 +* function:函数,Shell函数 +* builtin:内建命令,Shell内建命令 +* file:文件,磁盘文件,外部命令 +* unfound:没有找到 ## 选项 -``` -type(选项)(参数) -``` - - - -``` +```markdown -t:输出“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令” -p:如果给出的指令为外部指令,则显示其绝对路径 -a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名 ``` -### 参数 - -指令:要显示类型的指令 - ## 实例 -``` -[root@localhost ~]# type ls -ls is aliased to `ls --color=tty' - -[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 +```bash +type ls +type -a cd +type -a grep ``` diff --git a/Linux_man_cn/umask.md b/Linux_man_cn/umask.md index 8bf4e88..d09cae7 100644 --- a/Linux_man_cn/umask.md +++ b/Linux_man_cn/umask.md @@ -1,55 +1,30 @@ -umask -=== - -用来设置限制新建文件权限的掩码 +# **umask** ## 说明 -**umask命令** 用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉 +**umask命令** 用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都 +被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉 umask 0022中第一零表示特殊权限位,后三位表示用户权限位,也是权限掩码值;777-022=755 默认创建目录的权限 但是实际上创建文件的权限是644(666-022),因此引出一个linux权限规则的问题: 缺省创建的文件不能授予可执行X权限;目的防止恶意攻击和病毒哈,这只是安全的一个小小小方面 ## 选项 -``` -umask(选项)(参数) -``` +```markdown +用法:umask [-p] [-S] [模式] - - -``` -p:输出的权限掩码可直接作为指令来执行 -S:以符号方式输出权限掩码 ``` -### 参数 - -权限掩码:指定权限掩码 - ## 实例 -利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,使得组用户的写权限,其他用户的读、写和执行权限都被取消: - -``` +```bash +# umask命令可以指定哪些权限在新文件的默认权限中被删除。例如:将组用户的写权限,其他用户的读、写和执行权限都被取消 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 diff --git a/Linux_man_cn/unalias.md b/Linux_man_cn/unalias.md index 315b6de..b9a3b98 100644 --- a/Linux_man_cn/unalias.md +++ b/Linux_man_cn/unalias.md @@ -1,42 +1,21 @@ -unalias -=== - -删除由alias设置的别名 +# unalias ## 说明 -**unalias命令** 用来取消命令别名,是为shell内建命令。如果需要取消任意一个命令别名,则使用该命令别名作为指令的参数选项即可。如果使用`-a`选项,则表示取消所有已经存在的命令别名 +**unalias命令** 用来取消命令别名,是为shell内建命令。如果需要取消任意一个命令别名,则使用该命令别名作为指令的参数选项即可。 +如果使用`-a`选项,则表示取消所有已经存在的命令别名 ## 选项 -``` -unalias(选项)(参数) -``` - - - -``` +```markdown -a:取消所有命令别名 ``` -### 参数 - -命令别名:指定要取消的命令别名 - ## 实例 -使用unalias命令将已经设置的命令别名"cc"取消,输入如下命令: +```bash +unalias cc # 使用unalias命令将已经设置的命令别名"cc"取消 ``` -unalias cc #取消已经设置的命令别名 -``` - -上面的命令执行后,系统会将指定的命令别名取消掉。如果用户再使用该命令别名时,系统将提示如下信息: - -``` -cc:no input files -``` - -因此,当使用该指令将命令别名取消后,将不能够再进行使用。否则,将出现错误提示 diff --git a/Linux_man_cn/uncompress.md b/Linux_man_cn/uncompress.md index 09031bf..9a08e8b 100644 --- a/Linux_man_cn/uncompress.md +++ b/Linux_man_cn/uncompress.md @@ -1,7 +1,4 @@ -uncompress -=== - -用来解压.Z文件 +# uncompress ## 说明 @@ -9,34 +6,16 @@ uncompress ## 选项 -``` -uncompress(选项)(参数) -``` - - - -``` +```markdown -f:不提示用户,强制覆盖掉目标文件 -c:将结果送到标准输出,无文件被改变 -r:递归的操作方式 ``` -### 参数 - -文件:指定要压缩的“.Z”压缩包 - ## 实例 -先创建一个.Z压缩文件 - -``` -compress FileName -``` - -解压: - -``` -uncompress FileName.Z +```bash +uncompress FileName.Z # 解压 ``` diff --git a/Linux_man_cn/unlink.md b/Linux_man_cn/unlink.md index 01ec6d6..3793b7f 100644 --- a/Linux_man_cn/unlink.md +++ b/Linux_man_cn/unlink.md @@ -1,27 +1,8 @@ -unlink -=== - -系统调用函数unlink去删除指定的文件 +# unlink ## 说明 **unlink命令** 用于系统调用函数unlink去删除指定的文件。和rm命令作用一样,都是删除文件 -## 选项 - -``` -unlink(选项)(参数) -``` - - - -``` ---help:显示帮助 ---version:显示版本号 -``` - -### 参数 - -文件:指定要删除的文件 diff --git a/Linux_man_cn/unset.md b/Linux_man_cn/unset.md index 2e46618..9359876 100644 --- a/Linux_man_cn/unset.md +++ b/Linux_man_cn/unset.md @@ -1,7 +1,4 @@ -unset -=== - -删除指定的shell变量或函数 +# **unset** ## 说明 @@ -9,29 +6,14 @@ unset ## 选项 -``` -unset(选项)(参数) -``` - - - -``` +```markdown -f:仅删除函数 -v:仅删除变量 ``` -### 参数 - -shell变量或函数:指定要删除的shell变量或shell函数 - ## 实例 -使用unset命令将前面所创建的环境变量mylove及其对应的值进行删除,输入如下命令: - +```bash +unset -v mylove # 使用unset命令将前面所创建的环境变量mylove及其对应的值进行删除 ``` -unset -v mylove #删除指定的环境变量 -``` - -执行以上命令后,系统将删除指定的环境变量。用户可以使用env命令和grep命令对其进行查询。已经删除的环境变量再次使用指令查询时,将出现查询不到指定环境变量的输出信息 - diff --git a/Linux_man_cn/unzip.md b/Linux_man_cn/unzip.md index d1ea527..178cf36 100644 --- a/Linux_man_cn/unzip.md +++ b/Linux_man_cn/unzip.md @@ -1,7 +1,4 @@ -unzip -=== - -用于解压缩由zip命令压缩的压缩包 +# **unzip** ## 说明 @@ -9,13 +6,7 @@ unzip ## 选项 -``` -unzip(选项)(参数) -``` - - - -``` +```markdown -c:将解压缩的结果显示到屏幕上,并对字符做适当的转换 -f:更新现有的文件 -l:显示压缩文件内所包含的文件 @@ -40,36 +31,40 @@ unzip(选项)(参数) -d<目录>:指定文件解压缩后所要存储的目录 -x<文件>:指定不要处理.zip压缩文件中的哪些文件 -Z:unzip-Z等于执行zipinfo指令 -``` - -### 参数 - -压缩包:指定要解压的“.zip”压缩包 - -## 实例 -将压缩文件text.zip在当前目录下解压缩 - -``` -unzip test.zip -``` - -将压缩文件text.zip在指定目录`/tmp`下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件 - -``` -unzip -n test.zip -d /tmp +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). + + -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 + -v list verbosely/show version info -T timestamp archive to latest + -x exclude files that follow (in xlist) -d extract files into exdir +modifiers: + -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/ -``` diff --git a/Linux_man_cn/users.md b/Linux_man_cn/users.md index 6b54b92..aae3a9b 100644 --- a/Linux_man_cn/users.md +++ b/Linux_man_cn/users.md @@ -1,30 +1,14 @@ -users -=== - -显示当前登录系统的所有用户 +# users ## 说明 -**users命令** 用于显示当前登录系统的所有用户的用户列表。每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数 - -## 选项 - -``` -users(选项) -``` - - - -``` ---help:显示命令的帮助信息 ---version:显示命令的版本信息 -``` +**users命令** 显示当前登录系统的所有用户。每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数 ## 实例 -``` -[root@localhost ~]# users -root root +```bash +# 根据文件判断输出当前有谁正登录在系统上。如果文件未予指定,则使用/var/run/utmp,/var/log/wtmp 是通用的相关文件 + ``` diff --git a/Linux_man_cn/uupick.md b/Linux_man_cn/uupick.md index 12ca174..b7a3bcc 100644 --- a/Linux_man_cn/uupick.md +++ b/Linux_man_cn/uupick.md @@ -22,7 +22,7 @@ uupick [-v][-I<配置文件>][-s<主机>][-x<层级>][--help] --help 显示帮助 ``` -### 例子 +## 实例 处理由主机localhost传送过来的文件。在命令行直接输入如下命令: diff --git a/Linux_man_cn/wget.md b/Linux_man_cn/wget.md index 023d85d..b39e0c8 100644 --- a/Linux_man_cn/wget.md +++ b/Linux_man_cn/wget.md @@ -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 -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到目录中下载指定网页及其相关的文件使其可完全浏览 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 --mirror http://www.example.com/ # 更新网站的本地拷贝可以方便地用于cron wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/ # 批量下载文件到当前目录中 wget --tries=40 URL # 增加重试次数 wget -i filelist.txt # 下载多个文件 diff --git a/Linux_man_cn/whereis.md b/Linux_man_cn/whereis.md index 476eba4..ce03054 100644 --- a/Linux_man_cn/whereis.md +++ b/Linux_man_cn/whereis.md @@ -1,7 +1,4 @@ -whereis -=== - -查找二进制程序、代码等相关文件路径 +# whereis ## 说明 @@ -9,17 +6,14 @@ whereis whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息 -和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新 +和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍 +的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时 +一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库 +文件没有被更新 ## 选项 -``` -whereis(选项)(参数) -``` - - - -``` +```markdown -b:只查找二进制文件 -B<目录>:只在设置的目录下查找二进制文件 -f:不显示文件名前的路径名称 @@ -30,38 +24,15 @@ whereis(选项)(参数) -u:查找不包含指定类型的文件 ``` -### 参数 - -指令名:要查找的二进制程序、源文件和man手册页的指令名 - ## 实例 -将相关的文件都查找出来 - -``` -[root@localhost ~]# whereis tomcat -tomcat: - -[root@localhost ~]# whereis svn -svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz -``` - -说明:tomcat没安装,找不出来,svn安装找出了很多相关文件 - -只将二进制文件查找出来  - -``` -[root@localhost ~]# whereis -b svn -svn: /usr/bin/svn /usr/local/svn - -[root@localhost ~]# whereis -m svn -svn: /usr/share/man/man1/svn.1.gz - -[root@localhost ~]# whereis -s svn -svn: +```bash +whereis svn +whereis -b svn # 只将二进制文件查找出来  +whereis -m svn # 查出说明文档路径 +whereis -s svn # 查找source源文件 ``` -说明:`whereis -m svn`查出说明文档路径,`whereis -s svn`找source源文件 diff --git a/Linux_man_cn/whoami.md b/Linux_man_cn/whoami.md index dc20738..9022f59 100644 --- a/Linux_man_cn/whoami.md +++ b/Linux_man_cn/whoami.md @@ -1,33 +1,13 @@ -whoami -=== - -打印当前有效的用户名称 +# **whoami** ## 说明 **whoami命令** 用于打印当前有效的用户名称,相当于执行`id -un`命令 -## 选项 - -``` -whoami(选项) -``` - - - -``` ---help:在线帮助 ---version:显示版本信息 -``` - ## 实例 -``` -[root@localhost ~]# whoami -root +```bash -[root@localhost ~]# id -un -root ``` diff --git a/Linux_man_cn/xargs.md b/Linux_man_cn/xargs.md index f0b712d..116c178 100644 --- a/Linux_man_cn/xargs.md +++ b/Linux_man_cn/xargs.md @@ -1,216 +1,68 @@ -xargs -=== - -给其他命令传递参数的一个过滤器 -### 语法 - -```sh -xargs [OPTION]... COMMAND INITIAL-ARGS... -Run COMMAND with arguments INITIAL-ARGS and more arguments read from input. - -Mandatory arguments to long options are mandatory for short options too. -Non-mandatory arguments are indicated by [square brackets] - -0, --null Items are separated by a null, not whitespace. - Disables quote and backslash processing - -a, --arg-file=FILE Read arguments from FILE, not standard input - -d, --delimiter=CHARACTER Input items are separated by CHARACTER, not by - blank space. Disables quote and backslash - processing - -E END If END occurs as a line of input, the rest of - the input is ignored. - -e [END], --eof[=END] Equivalent to -E END if END is specified. - Otherwise, there is no end-of-file string - --help Print a summary of the options to xargs. - -I R same as --replace=R (R must be specified) - -i,--replace=[R] Replace R in initial arguments with names - read from standard input. If R is - unspecified, assume {} - -L,-l, --max-lines=MAX-LINES Use at most MAX-LINES nonblank input lines per - command line - -l Use at most one nonblank input line per - command line - -n, --max-args=MAX-ARGS Use at most MAX-ARGS arguments per command - line - -P, --max-procs=MAX-PROCS Run up to max-procs processes at a time - -p, --interactive Prompt before running commands - --process-slot-var=VAR Set environment variable VAR in child - processes - -r, --no-run-if-empty If there are no arguments, run no command. - If this option is not given, COMMAND will be - run at least once. - -s, --max-chars=MAX-CHARS Limit commands to MAX-CHARS at most - --show-limits Show limits on command-line length. - -t, --verbose Print commands before executing them - --version Print the version number - -x, --exit Exit if the size (see -s) is exceeded - -``` +# **xargs** ## 说明 -**xargs命令** 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一 - -### xargs命令用法 - -xargs用作替换工具,读取输入数据重新格式化后输出 - -定义一个测试文件,内有多行文本数据: - -``` -cat test.txt - -a b c d e f g -h i j k l m n -o p q -r s t -u v w x y z - -``` - -多行输入单行输出: - -``` -cat test.txt | xargs - -a b c d e f g h i j k l m n o p q r s t u v w x y z -``` - - **-n选项** 多行输出: - -``` -cat test.txt | xargs -n3 - -a b c -d e f -g h i -j k l -m n o -p q r -s t u -v w x -y z -``` - - **-d选项** 可以自定义一个定界符: - -``` -echo "nameXnameXnameXname" | xargs -dX - -name name name name -``` - -结合 **-n选项** 使用: - -``` -echo "nameXnameXnameXname" | xargs -dX -n2 +**xargs命令** 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者 +stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo, +空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令 +的重要组件之一 -name name -name name -``` - - **读取stdin,将格式化后的参数传递给命令** - -假设一个命令为 sk.sh 和一个保存参数的文件arg.txt: - -``` -#!/bin/bash -#sk.sh命令内容,打印出所有参数 - -echo $* - -``` - -arg.txt文件内容: - -``` -cat arg.txt +## 选项 -aaa -bbb -ccc - -``` - -xargs的一个 **选项-I** ,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次: - -``` -cat arg.txt | xargs -I {} ./sk.sh -p {} -l - --p aaa -l --p bbb -l --p ccc -l - -``` - -```sh -# 复制所有图片文件到 /data/images 目录 -ls *.jpg | xargs -n1 -I cp {} /data/images - - - -``` - - **xargs结合find使用** - -用rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long. 用xargs去避免这个问题: +```markdown +xargs [OPTION]... COMMAND INITIAL-ARGS... +Run COMMAND with arguments INITIAL-ARGS and more arguments read from input. -``` +非强制性参数以[方括号]表示 + +-0, --null Items are separated by a null, not whitespace. + Disables quote and backslash processing +-a, --arg-file=FILE Read arguments from FILE, not standard input +-d, --delimiter=CHARACTER Input items are separated by CHARACTER, not by + blank space. Disables quote and backslash + processing +-E END If END occurs as a line of input, the rest of + the input is ignored. +-e [END], --eof[=END] Equivalent to -E END if END is specified. + Otherwise, there is no end-of-file string +--help Print a summary of the options to xargs. +-I R same as --replace=R (R must be specified) +-i,--replace=[R] Replace R in initial arguments with names + read from standard input. If R is + unspecified, assume {} +-L,-l, --max-lines=MAX-LINES Use at most MAX-LINES nonblank input lines per + command line +-l Use at most one nonblank input line per + command line +-n, --max-args=MAX-ARGS Use at most MAX-ARGS arguments per command + line +-P, --max-procs=MAX-PROCS Run up to max-procs processes at a time +-p, --interactive Prompt before running commands +--process-slot-var=VAR Set environment variable VAR in child + processes +-r, --no-run-if-empty If there are no arguments, run no command. + If this option is not given, COMMAND will be + run at least once. +-s, --max-chars=MAX-CHARS Limit commands to MAX-CHARS at most +--show-limits Show limits on command-line length. +-t, --verbose Print commands before executing them +--version Print the version number +-x, --exit Exit if the size (see -s) is exceeded + +``` + +## 实例 + +```bash +cat test.txt | xargs -n3 # 多行输出 +echo "nameXnameXnameXname" | xargs -dX # -d选项自定义一个定界符 +echo "nameXnameXnameXname" | xargs -dX -n2 # 读取stdin,将格式化后的参数传递给命令 +ls *.jpg | xargs -n1 -I cp {} /data/images # 复制所有图片文件到 /data/images 目录 find . -type f -name "*.log" -print0 | xargs -0 rm -f -``` - -xargs -0将\0作为定界符 +find . -type f -name "*.php" -print0 | xargs -0 wc -l # 统计一个源代码目录中所有php文件的行数 +find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz # 查找所有的jpg 文件,并且压缩它们 +cat url-list.txt | xargs wget -c # list.txt包含了很多下载的URL,使用xargs下载所有链接 -统计一个源代码目录中所有php文件的行数: - -``` -find . -type f -name "*.php" -print0 | xargs -0 wc -l -``` - -查找所有的jpg 文件,并且压缩它们: - -``` -find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz - -``` - - **xargs其他应用** - -假如你有一个文件包含了很多你希望下载的URL,你能够使用xargs下载所有链接: - -``` -cat url-list.txt | xargs wget -c - -``` - -### 子Shell(Subshells) - -运行一个shell脚本时会启动另一个命令解释器.,就好像你的命令是在命令行提示下被解释的一样,类似于批处理文件里的一系列命令。每个shell脚本有效地运行在父shell(parent shell)的一个子进程里。这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程 - -``` -cmd1 | ( cmd2; cmd3; cmd4 ) | cmd5 -``` - -如果cmd2 是cd /,那么就会改变子Shell的工作目录,这种改变只是局限于子shell内部,cmd5则完全不知道工作目录发生的变化。子shell是嵌在圆括号()内部的命令序列,子Shell内部定义的变量为局部变量 - -子shell可用于为一组命令设定临时的环境变量: - -``` -COMMAND1 -COMMAND2 -COMMAND3 -( - IFS=: - PATH=/bin - unset TERMINFO - set -C - shift 5 - COMMAND4 - COMMAND5 - exit 3 # 只是从子shell退出 -) -# 父shell不受影响,变量值没有更改 -COMMAND6 -COMMAND7 ``` diff --git a/Linux_man_cn/xz.md b/Linux_man_cn/xz.md index 492f652..e380b0f 100644 --- a/Linux_man_cn/xz.md +++ b/Linux_man_cn/xz.md @@ -2,18 +2,15 @@ ## 说明 -**xz命令** XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils +**xz命令** XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 +gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 +WINDOWS平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils ## 选项 -```info -xz(选项)(参数) +```markdown xz [OPTION]... [FILE]... -``` - - -```bash -z, --compress 强制压缩 -d, --decompress, --uncompress force decompression @@ -36,55 +33,13 @@ xz [OPTION]... [FILE]... -V, --version 显示版本号并退出 ``` -### 参数 - -* 源文件:指定连接的源文件 -* 目标文件:指定源文件的目标连接文件 - ## 实例 -压缩一个文件 test.txt,压缩成功后生成 test.txt.xz, 原文件会被删除 - -```bash -$ xz test.txt -$ ls test.txt* - -test.txt.xz -``` - -解压 test.txt.xz 文件,并使用参数 -k 保持原文件不被删除 - -```bash -$ xz -d -k test.txt.xz -$ ls test.txt* - -test.txt.xz test.txt -``` - -使用参数 -l 显示 .xz 文件的基本信息。基本信息包括压缩率、数据完整性验证方式等。也可以和参数 -v 或 -vv 配合显示更详尽的信息 - -```bash -xz -l index.txt.xz -# Strms Blocks Compressed Uncompressed Ratio Check Filename -# 1 1 768 B 1,240 B 0.619 CRC64 index.txt. -``` - -使用参数 -0, -1, -2, … -6, … -9 或参数 --fast, --best 设定压缩率。xz 命令的默认为 -6 ,对于大多数系统来说,甚至是一些较旧的系统,-4 … -6 压缩率预设值都不错的表现 - -``` -$ xz -k7 xz_pipe_decomp_mini.c -$ xz -k --fast xz_pipe_decomp_mini.c -``` - -使用参数 -H 显示 xz 命令所有 options. 参数 -H 比使用参数 --help 显示的内容更详细 - -``` -$ xz -H | more -``` - -借助 xargs 命令并行压缩多文件。下面的命令行可以将 /var/log 目录下所有的扩展名为 .log 的文件压缩。通过 xargs 命令同时运行多个 xz 进行压缩 - ```bash -# 运行此命令须有 root 权限 -find /var/log -type f -iname "*.log" -print0 | xargs -P4 -n16 xz -T1 +xz test.txt # 压缩一个文件 test.txt,压缩成功后生成 test.txt.xz, 原文件会被删除 +xz -d -k test.txt.xz # 解压 test.txt.xz 文件,并使用参数 -k 保持原文件不被删除 +xz -l index.txt.xz # 显示压缩文件基本信息,包括压缩率、完整性验证等,可以与-v和-vv一起使用显示更详细信息 +xz -k7 xz_pipe_decomp_mini.c # 使用参数-0...-9或参数--fast,--best设定压缩率。默认为-6 +xz -H | more # 使用参数 -H 显示 xz 命令所有 options. 参数 -H 比使用参数 --help 显示的内容更详细 +find /var/log -type f -iname "*.log" -print0 | xargs -P4 -n16 xz -T1 # 借助 xargs 命令并行压缩多文件,运行此命令须有 root 权限 ``` diff --git a/Linux_man_cn/yes.md b/Linux_man_cn/yes.md index 9bfc105..189a25e 100644 --- a/Linux_man_cn/yes.md +++ b/Linux_man_cn/yes.md @@ -1,7 +1,4 @@ -yes -=== - -重复打印指定字符串 +# yes ## 说明 @@ -9,28 +6,14 @@ yes ## 选项 -``` -yes(参数) -``` - -### 参数 +```markdown -字符串:指定要重复打印的字符串 +``` ## 实例 -``` -[root@localhost ~]# yes testline - -testline -testline -testline -testline -testline -testline -testline -testline -...一直重复打印 testline,按Ctrl+C结束 +```bash +yes testline # 重复打印 testline,按Ctrl+C结束 ``` diff --git a/Linux_man_cn/zip.md b/Linux_man_cn/zip.md index 33be777..16c2471 100644 --- a/Linux_man_cn/zip.md +++ b/Linux_man_cn/zip.md @@ -1,7 +1,4 @@ -zip -=== - -可以用来解压缩文件 +# **zip** ## 说明 @@ -9,13 +6,7 @@ zip ## 选项 -``` -zip(选项)(参数) -``` - - - -``` +```markdown -A:调整可执行的自动解压缩文件 -b<工作目录>:指定暂时存放文件的目录 -c:替每个被压缩的文件加上注释 @@ -50,45 +41,36 @@ zip(选项)(参数) -z:替压缩文件加上注释 -$:保存第一个被压缩文件所在磁盘的卷册名称 -<压缩效率>:压缩效率是一个介于1~9的数值 -``` -### 参数 +zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] + The default action is to add or replace zipfile entries from list, which + can include the special name - to compress standard input. + If zipfile and list are omitted, zip compresses stdin to stdout. + -f freshen: only changed files -u update: only changed or new files + -d delete entries in zipfile -m move into zipfile (delete OS files) + -r recurse into directories -j junk (don't record) directory names + -0 store only -l convert LF to CR LF (-ll CR LF to LF) + -1 compress faster -9 compress better + -q quiet operation -v verbose operation/print version info + -c add one-line comments -z add zipfile comment + -@ read names from stdin -o make zipfile as old as latest entry + -x exclude the following names -i include only the following names + -F fix zipfile (-FF try harder) -D do not add directory entries + -A adjust self-extracting exe -J junk zipfile prefix (unzipsfx) + -T test zipfile integrity -X eXclude eXtra file attributes + -y store symbolic links as the link instead of the referenced file + -e encrypt -n don't compress these suffixes + -h2 show more help -* zip压缩包:指定要创建的zip压缩包 -* 文件列表:指定要压缩的文件列表 - -## 实例 - -将`/home/Blinux/html/`这个目录下所有文件和文件夹打包为当前目录下的html.zip: ``` -zip -q -r html.zip /home/Blinux/html -``` - -上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果: -``` -zip -q -r html.zip html -``` - -比如现在我的html目录下,我操作的zip压缩命令是: - -``` -zip -q -r html.zip * -``` - -### 问题解决 - -CentOS7中命令找不到 - -``` --Bash: Unzip: Command Not Found -``` +## 实例 -解决方法 - ```bash -yum install -y unzip zip +yum install -y unzip zip # yum安装 +zip -q -r html.zip /home/Blinux/html # 将/home/Blinux/html/目录下所有文件和文件夹打包到当前目录下的html.zip + ``` diff --git a/Linux_man_cn/zipinfo.md b/Linux_man_cn/zipinfo.md index f1a037a..c16be90 100644 --- a/Linux_man_cn/zipinfo.md +++ b/Linux_man_cn/zipinfo.md @@ -1,7 +1,4 @@ -zipinfo -=== - -用来列出压缩文件信息 +# zipinfo ## 说明 @@ -9,13 +6,7 @@ zipinfo ## 选项 -``` -zipinfo(选项)(参数) -``` - - - -``` +```markdown -1:只列出文件名称 -2:此参数的效果和指定“-1”参数类似,但可搭配“-h”,“-t”和“-z”参数使用 -h:只列出压缩文件的文件名称 @@ -28,10 +19,21 @@ zipinfo(选项)(参数) -v:详细显示压缩文件内每一个文件的信息 -x<范本样式>:不列出符合条件的文件的信息 -z:如果压缩文件内含有注释,就将注释显示出来 -``` -### 参数 +main listing-format options: -s short Unix "ls -l" format (def.) + -1 filenames ONLY, one per line -m medium Unix "ls -l" format + -2 just filenames but allow -h/-t/-z -l long Unix "ls -l" format + -v verbose, multi-page format +miscellaneous options: + -h print header line -t print totals for listed files or for all + -z print zipfile comment -TM print file times in sortable decimal format + -CJ be case-insensitive 20 April 2009 -U use escapes for all non-ASCII Unicode + -x exclude filenames that follow from listing + -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives + -I CHARSET specify a character encoding for UNIX and other archives + + +``` -文件:指定zip格式的压缩包 diff --git a/Linux_man_cn/znew.md b/Linux_man_cn/znew.md index c7d6ccc..10c569b 100644 --- a/Linux_man_cn/znew.md +++ b/Linux_man_cn/znew.md @@ -1,7 +1,4 @@ -znew -=== - -将.Z压缩包重新转化为gzip命令压缩的.gz压缩包 +# znew ## 说明 @@ -9,23 +6,15 @@ znew ## 选项 -``` -znew(选项)(参数) -``` - - +```markdown +-f 强制执行转换操作,即是目标“.gz”已经存在 +-t 删除原文件前测试新文件 +-v 显示文件名和每个文件的压缩比 +-9 Use the slowest compression method (optimal compression) +-P 使用管道完成转换操作,以降低磁盘空间使用 +-K 当“.Z”文件比“.gz”文件小时,保留“.Z”文件; implies -t ``` --f:强制执行转换操作,即是目标“.gz”已经存在 --t:删除原文件前测试新文件 --v:显示文件名和每个文件的压缩比 --9:食用油花的压缩比,速度较慢 --P:使用管道完成转换操作,以降低磁盘空间使用 --K:当“.Z”文件比“.gz”文件小时,保留“.Z”文件 -``` - -### 参数 -文件:指定compress指令压缩生成的“.Z”压缩包