标签为 "Win/nix" 的存档

Linux 使用的几个技巧

摘录了两个我常用的,详细的去IBM“懒惰” Linux 管理员的 10 个关键技巧 查看吧,

技巧 1:卸载无响应的 DVD 驱动器
# eject
将得到以下消息:
umount: /media/cdrom: device is busy
在释放该设备之前,让我们找出谁在使用它。
# fuser /media/cdrom
进程正在运行,无法弹出磁盘其实是我们的错误。
现在,如果您是根用户,可以随意终止进程:
# fuser -k /media/cdrom
现在终于可以卸载驱动器了:
# eject

技巧 2:恢复出现问题的屏幕
# cat /bin/cat
终端就想垃圾一样。输入的所有内容非常零乱。那么该怎么做呢?
输入 reset。
# reset
现在屏幕恢复正常了。

可以从精通命令行的人那里学习很多技巧。最好的学习方式是:

* 与其他人一起工作。共享屏幕会话并观察其他人是如何工作的 —— 您会发现新的做事方法。可能需要谦虚一点,让其他人引导,不过通常可以学到很多东西。
* 阅读手册页。认真阅读手册页,即使是熟知的命令,也能获得更深的见解。例如,您以前可能根本不知道可以使用 awk 进行网络编程。
* 解决问题。作为系统管理员,总是要解决问题,不管是您还是其他人引起的问题。这就是经验,经验可以使您更优秀、更高效。

我希望至少有一个技巧能帮助您学习到您不知道的知识。像这样的基本技巧可以使您更高效,并且能增长经验,但最重要的是,技巧可以让您有更多的空闲时间去做自己感兴趣的事情,比如玩电子游戏。最好的管理员比较悠闲,因为他们不喜欢工作。他们能找到完成任务的最快方法,并且能快速完成任务,从而保持休闲的生活。

Grep 命令学习

grep简介

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

更多详细介绍:
man grep

常用到的用法:(需要和其他的命令组合使用)
1、grep遍历整个目录级子目录的所有文件
find . |xagrs grep words

2、仅列出当前目录下的所有目录
# ls -l | grep “^d”
drwxr-xr-x 5 iekilcom iekilcom 152 Mar 10 2007 awstats/
drwxr-xr-x 7 iekilcom iekilcom 608 May 5 10:19 backup/

3、仅列出当前目录下的所有文件
#ls -l | grep “^[^d]”
-rw——- 1 iekilcom iekilcom 16288 Jun 28 19:01 .bash_history
-rw-r–r– 1 iekilcom iekilcom 24 Feb 3 2007 .bash_logout

4、仅列出当前目录下符合“d…..x..x”权限的目录
# ls -l|grep “^d…..x..x”

drwxr-xr-x 5 iekilcom iekilcom 152 Mar 10 2007 awstats/
drwxr-xr-x 7 iekilcom iekilcom 608 May 5 10:19 backup/

视频: Compiz Fusion 新插件 Stackswitch

来自:
http://linuxtoy.org/archives/compiz-fusion-new-plugin-stackswitch.html

Stackswitch 是由 onestone 为 Compiz Fusion 所开发的另一个窗口切换插件。该插件允许用户通过移位和缩放来更加容易的切换在桌面上打开的所有窗口。观看下面的视频,你将清楚地了解 Stackswitch 的表现及优势。

视频: Compiz Fusion 新插件 Stackswitch

如果你对此插件感兴趣,那么可以通过 git 来获取其源代码:

git clone git://anongit.compiz-fusion.org/fusion/plugins/stackswitch

man curl

curl是一个利用URL语法在命令行方式下工作的文件传输工具。

curl 用法请参考curl –help 或者man curl

是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
curl是瑞典curl组织开发的,您可以访问http://curl.haxx.se/获取它的源代码和相关说明。

1. 访问页面

curl http://www.iekil.com

2. 保存页面

参数 -o
curl -o page.html http://www.iekil.com

3. 使用代理

参数 -x
curl -x 123.45.67.89:1080 -o page.html http://www.iekil.com

4. 指定浏览器信息

参数 -A
curl -A “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)” http://www.iekil.com

服务器端接到访问的要求,会认为你是一个运行在Windows 2000上的IE6.0

太多了 ,具体的看资料或者man吧
资料:
简单用法:http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2311073I23001
几点心得:http://blog.istef.info/2006/01/26/php-libcurl/
跟我从头学习CURL: http://www.tangg.net/viewnews_3848.htm
man curl

curl(1) Curl Manual curl(1)

NAME
curl – transfer a URL

SYNOPSIS
curl [options] [URL...]

DESCRIPTION
curl is a tool to transfer data from or to a server, using one of the supported protocols (HTTP, HTTPS, FTP, FTPS,
GOPHER, DICT, TELNET, LDAP or FILE). The command is designed to work without user interaction.

curl offers a busload of useful tricks like proxy support, user authentication, ftp upload, HTTP post, SSL (https:)
connections, cookies, file transfer resume and more. As you will see below, the amount of features will make your
head spin!

curl is powered by libcurl for all transfer-related features. See libcurl(3) for details.

URL
The URL syntax is protocol dependent. You’ll find a detailed description in RFC 2396.

curl(1) Curl Manual curl(1)
head spin!

curl is powered by libcurl for all transfer-related features. See libcurl(3) for details.

URL
The URL syntax is protocol dependent. You’ll find a detailed description in RFC 2396.

You can specify multiple URLs or parts of URLs by writing part sets within braces as in:

http://site.{one,two,three}.com

or you can get sequences of alphanumeric series by using [] as in:

ftp://ftp.numericals.com/file1-100.txt
ftp://ftp.numericals.com/file001-100.txt (with leading zeros)
ftp://ftp.letters.com/filea-z.txt

No nesting of the sequences is supported at the moment, but you can use several ones next to each other:

http://any.org/archive1996-1999/vol1-4/part{a,b,c}.html

You can specify multiple URLs or parts of URLs by writing part sets within braces as in:

http://site.{one,two,three}.com

or you can get sequences of alphanumeric series by using [] as in:

ftp://ftp.numericals.com/file1-100.txt
ftp://ftp.numericals.com/file001-100.txt (with leading zeros)
ftp://ftp.letters.com/filea-z.txt

No nesting of the sequences is supported at the moment, but you can use several ones next to each other:

http://any.org/archive1996-1999/vol1-4/part{a,b,c}.html

You can specify any amount of URLs on the command line. They will be fetched in a sequential manner in the speci-
fied order.

Curl will attempt to re-use connections for multiple file transfers, so that getting many files from the same
server will not do multiple connects / handshakes. This improves speed. Of course this is only done on files speci-
fied on a single command line and cannot be used between separate curl invokes.

OPTIONS
-a/–append
(FTP) When used in an FTP upload, this will tell curl to append to the target file instead of overwriting
it. If the file doesn’t exist, it will be created.

If this option is used twice, the second one will disable append mode again.

-A/–user-agent
(HTTP) Specify the User-Agent string to send to the HTTP server. Some badly done CGIs fail if its not set to
“Mozilla/4.0″. To encode blanks in the string, surround the string with single quote marks. This can also
be set with the -H/–header option of course.

If this option is set more than once, the last one will be the one that’s used.

–anyauth
(HTTP) Tells curl to figure out authentication method by itself, and use the most secure one the remote site
claims it supports. This is done by first doing a request and checking the response-headers, thus inducing
an extra network round-trip. This is used instead of setting a specific authentication method, which you can
do with –basic, –digest, –ntlm, and –negotiate. (Added in 7.10.6)

If this option is used several times, the following occurrences make no difference.

-b/–cookie
(HTTP) Pass the data to the HTTP server as a cookie. It is supposedly the data previously received from the
server in a “Set-Cookie:” line. The data should be in the format “NAME1=VALUE1; NAME2=VALUE2″.

If no ‘=’ letter is used in the line, it is treated as a filename to use to read previously stored cookie
lines from, which should be used in this session if they match. Using this method also activates the “cookie
parser” which will make curl record incoming cookies too, which may be handy if you’re using this in combi-
nation with the -L/–location option. The file format of the file to read cookies from should be plain HTTP
headers or the Netscape/Mozilla cookie file format.

NOTE that the file specified with -b/–cookie is only used as input. No cookies will be stored in the file.
To store cookies, use the -c/–cookie-jar option or you could even save the HTTP headers to a file using
-D/–dump-header!

If this option is set more than once, the last one will be the one that’s used.

-B/–use-ascii
Use ASCII transfer when getting an FTP file or LDAP info. For FTP, this can also be enforced by using an URL
that ends with “;type=A”. This option causes data sent to stdout to be in text mode for win32 systems.

If this option is used twice, the second one will disable ASCII usage.

–basic
(HTTP) Tells curl to use HTTP Basic authentication. This is the default and this option is usually point-
less, unless you use it to override a previously set option that sets a different authentication method
(such as –ntlm, –digest and –negotiate). (Added in 7.10.6)

If this option is used several times, the following occurrences make no difference.

–ciphers (SSL) Specifies which ciphers to use in the connection. The list of ciphers must be using valid ciphers.
Read up on SSL cipher list details on this URL: http://www.openssl.org/docs/apps/ciphers.html

If this option is used several times, the last one will override the others.

–compressed
(HTTP) Request a compressed response using one of the algorithms libcurl supports, and return the uncom-
pressed document. If this option is used and the server sends an unsupported encoding, Curl will report an
error.

If this option is used several times, each occurrence will toggle it on/off.

–connect-timeout
Maximum time in seconds that you allow the connection to the server to take. This only limits the connec-
tion phase, once curl has connected this option is of no more use. See also the -m/–max-time option.

If this option is used several times, the last one will be used.

-c/–cookie-jar
Specify to which file you want curl to write all cookies after a completed operation. Curl writes all cook-
ies previously read from a specified file as well as all cookies received from remote server(s). If no cook-
ies are known, no file will be written. The file will be written using the Netscape cookie file format. If
you set the file name to a single dash, “-”, the cookies will be written to stdout.

NOTE If the cookie jar can’t be created or written to, the whole curl operation won’t fail or even report an
error clearly. Using -v will get a warning displayed, but that is the only visible feedback you get about
this possibly lethal situation.

If this option is used several times, the last specfied file name will be used.

-C/–continue-at
Continue/Resume a previous file transfer at the given offset. The given offset is the exact number of bytes
that will be skipped counted from the beginning of the source file before it is transfered to the destina-
tion. If used with uploads, the ftp server command SIZE will not be used by curl.

Use “-C -” to tell curl to automatically find out where/how to resume the transfer. It then uses the given
output/input files to figure that out.

If this option is used several times, the last one will be used.

–create-dirs
When used in conjunction with the -o option, curl will create the necessary local directory hierarchy as
needed. This option creates the dirs mentioned with the -o option, nothing else. If the -o file name uses no
dir or if the dirs it mentions already exist, no dir will be created.

To create remote directories when using FTP, try –ftp-create-dirs.

–crlf (FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390).

If this option is used twice, the second will again disable crlf converting.

-d/–data
(HTTP) Sends the specified data in a POST request to the HTTP server, in a way that can emulate as if a user
has filled in a HTML form and pressed the submit button. Note that the data is sent exactly as specified
with no extra processing (with all newlines cut off). The data is expected to be “url-encoded”. This will
cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare
to -F/–form. If this option is used more than once on the same command line, the data pieces specified will
be merged together with a separating &-letter. Thus, using ‘-d name=daniel -d skill=lousy’ would generate a
post chunk that looks like ‘name=daniel&skill=lousy’.

If you start the data with the letter @, the rest should be a file name to read the data from, or – if you
want curl to read the data from stdin. The contents of the file must already be url-encoded. Multiple files
can also be specified. Posting data from a file named ‘foobar’ would thus be done with –data @foobar”.

To post data purely binary, you should instead use the –data-binary option.

-d/–data is the same as –data-ascii.

If this option is used several times, the ones following the first will append data.

–data-ascii
(HTTP) This is an alias for the -d/–data option.

If this option is used several times, the ones following the first will append data.

–data-binary
(HTTP) This posts data in a similar manner as –data-ascii does, although when using this option the entire
context of the posted data is kept as-is. If you want to post a binary file without the strip-newlines fea-
ture of the –data-ascii option, this is for you.

If this option is used several times, the ones following the first will append data.

–digest
(HTTP) Enables HTTP Digest authentication. This is a authentication that prevents the password from being
sent over the wire in clear text. Use this in combination with the normal -u/–user option to set user name
and password. See also –ntlm, –negotiate and –anyauth for related options. (Added in curl 7.10.6)

If this option is used several times, the following occurrences make no difference.

–disable-eprt
(FTP) Tell curl to disable the use of the EPRT and LPRT commands when doing active FTP transfers. Curl will
normally always first attempt to use EPRT, then LPRT before using PORT, but with this option, it will use
PORT right away. EPRT and LPRT are extensions to the original FTP protocol, may not work on all servers but
enable more functionality in a better way than the traditional PORT command. (Aded in 7.10.5)

If this option is used several times, each occurrence will toggle this on/off.

–disable-epsv
(FTP) Tell curl to disable the use of the EPSV command when doing passive FTP transfers. Curl will normally
always first attempt to use EPSV before PASV, but with this option, it will not try using EPSV.

If this option is used several times, each occurrence will toggle this on/off.

-D/–dump-header
Write the protocol headers to the specified file.

This option is handy to use when you want to store the headers that a HTTP site sends to you. Cookies from
the headers could then be read in a second curl invoke by using the -b/–cookie option! The -c/–cookie-jar
option is however a better way to store cookies.

When used on FTP, the ftp server response lines are considered being “headers” and thus are saved there.

If this option is used several times, the last one will be used.

-e/–referer
(HTTP) Sends the “Referer Page” information to the HTTP server. This can also be set with the -H/–header
flag of course. When used with -L/–location you can append “;auto” to the referer URL to make curl auto-
matically set the previous URL when it follows a Location: header. The “;auto” string can be used alone,
even if you don’t set an initial referer.

If this option is used several times, the last one will be used.

–environment
(RISC OS ONLY) Sets a range of environment variables, using the names the -w option supports, to easier
allow extraction of useful information after having run curl.

If this option is used several times, each occurrence will toggle this on/off.

–egd-file
(HTTPS) Specify the path name to the Entropy Gathering Daemon socket. The socket is used to seed the random
engine for SSL connections. See also the –random-file option.

-E/–cert
(HTTPS) Tells curl to use the specified certificate file when getting a file with HTTPS. The certificate
must be in PEM format. If the optional password isn’t specified, it will be queried for on the terminal.
Note that this certificate is the private key and the private certificate concatenated!

If this option is used several times, the last one will be used.

–cert-type
(SSL) Tells curl what certificate type the provided certificate is in. PEM, DER and ENG are recognized
types.

If this option is used several times, the last one will be used.

–cacert
(HTTPS) Tells curl to use the specified certificate file to verify the peer. The file may contain multiple
CA certificates. The certificate(s) must be in PEM format.

curl recognizes the environment variable named ‘CURL_CA_BUNDLE’ if that is set, and uses the given path as a
path to a CA cert bundle. This option overrides that variable.

The windows version of curl will automatically look for a CA certs file named ?curl-ca-bundle.crt?, either
in the same directory as curl.exe, or in the Current Working Directory, or in any folder along your PATH.

If this option is used several times, the last one will be used.

–capath
(HTTPS) Tells curl to use the specified certificate directory to verify the peer. The certificates must be
in PEM format, and the directory must have been processed using the c_rehash utility supplied with openssl.
Using –capath can allow curl to make https connections much more efficiently than using –cacert if the
–cacert file contains many CA certificates.

If this option is used several times, the last one will be used.

-f/–fail
(HTTP) Fail silently (no output at all) on server errors. This is mostly done like this to better enable
scripts etc to better deal with failed attempts. In normal cases when a HTTP server fails to deliver a docu-
ment, it returns a HTML document stating so (which often also describes why and more). This flag will pre-
vent curl from outputting that and fail silently instead.

If this option is used twice, the second will again disable silent failure.

–ftp-create-dirs
(FTP) When an FTP URL/operation uses a path that doesn’t currently exist on the server, the standard behav-
ior of curl is to fail. Using this option, curl will instead attempt to create missing directories. (Added
in 7.10.7)

If this option is used twice, the second will again disable silent failure.

–ftp-pasv
(FTP) Use PASV when transfering. PASV is the internal default behavior, but using this option can be used to
override a previos –ftp-port option. (Added in 7.11.0)

If this option is used twice, the second will again disable silent failure.

–ftp-ssl
(FTP) Make the FTP connection switch to use SSL/TLS. (Added in 7.11.0)

If this option is used twice, the second will again disable silent failure.

-F/–form
(HTTP) This lets curl emulate a filled in form in which a user has pressed the submit button. This causes
curl to POST data using the content-type multipart/form-data according to RFC1867. This enables uploading of
binary files etc. To force the ‘content’ part to be be a file, prefix the file name with an @ sign. To just
get the content part from a file, prefix the file name with the letter <. The difference between @ and < is
then that @ makes a file get attached in the post as a file upload, while the < makes a text field and just
get the contents for that text field from a file.

Example, to send your password file to the server, where 'password' is the name of the form-field to which
/etc/passwd will be the input:

curl -F password=@/etc/passwd http://www.mypasswords.com

To read the file's content from stdin insted of a file, use - where the file name should've been. This goes
for both @ and < constructs.

You can also tell curl what Content-Type to use for the file upload part, by using 'type=', in a manner sim-
ilar to:

curl -F "web=@index.html;type=text/html" url.com

See further examples and details in the MANUAL.

This option can be used multiple times.

-g/--globoff
This option switches off the "URL globbing parser". When you set this option, you can specify URLs that con-
tain the letters {}[] without having them being interpreted by curl itself. Note that these letters are not
normal legal URL contents but they should be encoded according to the URI standard.

-G/--get
When used, this option will make all data specified with -d/--data or --data-binary to be used in a HTTP GET
request instead of the POST request that otherwise would be used. The data will be appended to the URL with
a '?' separator.

If used in combination with -I, the POST data will instead be appended to the URL with a HEAD request.

If used multiple times, nothing special happens.

-h/--help
Usage help.

-H/--header
(HTTP) Extra header to use when getting a web page. You may specify any number of extra headers. Note that
if you should add a custom header that has the same name as one of the internal ones curl would use, your
externally set header will be used instead of the internal one. This allows you to make even trickier stuff
than curl would normally do. You should not replace internally set headers without knowing perfectly well
what you’re doing. Replacing an internal header with one without content on the right side of the colon will
prevent that header from appearing.

See also the -A/–user-agent and -e/–referer options.

This option can be used multiple times to add/replace/remove multiple headers.

-i/–include
(HTTP) Include the HTTP-header in the output. The HTTP-header includes things like server-name, date of the
document, HTTP-version and more…

If this option is used twice, the second will again disable header include.

–interface
Perform an operation using a specified interface. You can enter interface name, IP address or host name. An
example could look like:

curl –interface eth0:1 http://www.netscape.com/

If this option is used several times, the last one will be used.

-I/–head
(HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature the command HEAD which this uses to get
nothing but the header of a document. When used on a FTP or FILE file, curl displays the file size and last
modification time only.

If this option is used twice, the second will again disable header only.

-j/–junk-session-cookies
(HTTP) When curl is told to read cookies from a given file, this option will make it discard all “session
cookies”. This will basicly have the same effect as if a new session is started. Typical browsers always
discard session cookies when they’re closed down. (Added in 7.9.7)

If this option is used several times, each occurrence will toggle this on/off.

-k/–insecure
(SSL) This option explicitly allows curl to perform “insecure” SSL connections and transfers. Starting with
curl 7.10, all SSL connections will be attempted to be made secure by using the CA certificate bundle
installed by default. This makes all connections considered “insecure” to fail unless -k/–insecure is used.

If this option is used twice, the second time will again disable it.

–key
(SSL) Private key file name. Allows you to provide your private key in this separate file.

If this option is used several times, the last one will be used.

–key-type
(SSL) Private key file type. Specify which type your –key provided private key is. DER, PEM and ENG are
supported.

If this option is used several times, the last one will be used.

–krb4
(FTP) Enable kerberos4 authentication and use. The level must be entered and should be one of ‘clear’,
‘safe’, ‘confidential’ or ‘private’. Should you use a level that is not one of these, ‘private’ will instead
be used.

This option requiures that the library was built with kerberos4 support. This is not very common. Use
-V/–version to see if your curl supports it.

If this option is used several times, the last one will be used.

-K/–config
Specify which config file to read curl arguments from. The config file is a text file in which command line
arguments can be written which then will be used as if they were written on the actual command line. Options
and their parameters must be specified on the same config file line. If the parameter is to contain white
spaces, the parameter must be inclosed within quotes. If the first column of a config line is a ‘#’ charac-
ter, the rest of the line will be treated as a comment.

Specify the filename as ‘-’ to make curl read the file from stdin.

Note that to be able to specify a URL in the config file, you need to specify it using the –url option, and
not by simply writing the URL on its own line. So, it could look similar to this:

url = “http://curl.haxx.se/docs/”

This option can be used multiple times.

–limit-rate
Specify the maximum transfer rate you want curl to use. This feature is useful if you have a limited pipe
and you’d like your transfer not use your entire bandwidth.

The given speed is measured in bytes/second, unless a suffix is appended. Appending ‘k’ or ‘K’ will count
the number as kilobytes, ‘m’ or M’ makes it megabytes while ‘g’ or ‘G’ makes it gigabytes. Examples: 200K,
3m and 1G.

If you are also using the -Y/–speed-limit option, that option will take precedence and might cripple the
rate-limiting slightly, to help keeping the speed-limit logic working.

This option was introduced in curl 7.10.

If this option is used several times, the last one will be used.

-l/–list-only
(FTP) When listing an FTP directory, this switch forces a name-only view. Especially useful if you want to
machine-parse the contents of an FTP directory since the normal directory view doesn’t use a standard look
or format.

This option causes an FTP NLST command to be sent. Some FTP servers list only files in their response to
NLST; they do not include subdirectories and symbolic links.

If this option is used twice, the second will again disable list only.

-L/–location
(HTTP/HTTPS) If the server reports that the requested page has a different location (indicated with the
header line Location:) this flag will let curl attempt to reattempt the get on the new place. If used
together with -i/–include or -I/–head, headers from all requested pages will be shown. If authentication
is used, curl will only send its credentials to the initial host, so if a redirect takes curl to a different
host, it won’t intercept the user+password. See also –location-trusted on how to change this.

If this option is used twice, the second will again disable location following.

–location-trusted
(HTTP/HTTPS) Like -L/–location, but will allow sending the name + password to all hosts that the site may
redirect to. This may or may not introduce a security breach if the site redirects you do a site to which
you’ll send your authentication info (which is plaintext in the case of HTTP Basic authentication).

If this option is used twice, the second will again disable location following.

–max-filesize
Specify the maximum size (in bytes) of a file to download. If the file requested is larger than this value,
the transfer will not start and curl will return with exit code 63.

NOTE: The file size is not always known prior to download, and for such files this option has no effect even
if the file transfer ends up being larger than this given limit. This concerns both FTP and HTTP transfers.

-m/–max-time
Maximum time in seconds that you allow the whole operation to take. This is useful for preventing your
batch jobs from hanging for hours due to slow networks or links going down. This doesn’t work fully in
win32 systems. See also the –connect-timeout option.

If this option is used several times, the last one will be used.

-M/–manual
Manual. Display the huge help text.

-n/–netrc
Makes curl scan the .netrc file in the user’s home directory for login name and password. This is typically
used for ftp on unix. If used with http, curl will enable user authentication. See netrc(4) or ftp(1) for
details on the file format. Curl will not complain if that file hasn’t the right permissions (it should not
be world nor group readable). The environment variable “HOME” is used to find the home directory.

A quick and very simple example of how to setup a .netrc to allow curl to ftp to the machine host.domain.com
with user name ‘myself’ and password

machine host.domain.com login myself password secret

If this option is used twice, the second will again disable netrc usage.

–netrc-optional
Very similar to –netrc, but this option makes the .netrc usage optional and not mandatory as the –netrc
does.

–negotiate
(HTTP) Enables GSS-Negotiate authentication. The GSS-Negotiate method was designed by Microsoft and is used
in their web aplications. It is primarily meant as a support for Kerberos5 authentication but may be also
used along with another authentication methods. For more information see IETF draft draft-brezak-spnego-
http-04.txt. (Added in 7.10.6)

This option requiures that the library was built with GSSAPI support. This is not very common. Use -V/–ver-
sion to see if your version supports GSS-Negotiate.

If this option is used several times, the following occurrences make no difference.

-N/–no-buffer
Disables the buffering of the output stream. In normal work situations, curl will use a standard buffered
output stream that will have the effect that it will output the data in chunks, not necessarily exactly when
the data arrives. Using this option will disable that buffering.

If this option is used twice, the second will again switch on buffering.

–ntlm (HTTP) Enables NTLM authentication. The NTLM authentication method was designed by Microsoft and is used by
IIS web servers. It is a proprietary protocol, reversed engineered by clever people and implemented in curl
based on their efforts. This kind of behavior should not be endorsed, you should encourage everyone who uses
NTLM to switch to a public and documented authentication method instead. Such as Digest. (Added in 7.10.6)

If you want to enable NTLM for your proxy authentication, then use –proxy-ntlm.

This option requiures that the library was built with SSL support. Use -V/–version to see if your curl sup-
ports NTLM.

If this option is used several times, the following occurrences make no difference.

-o/–output
Write output to instead of stdout. If you are using {} or [] to fetch multiple documents, you can use
‘#’ followed by a number in the specifier. That variable will be replaced with the current string for
the URL being fetched. Like in:

curl http://{one,two}.site.com -o “file_#1.txt”

or use several variables like:

curl http://{site,host}.host[1-5].com -o “#1_#2″

You may use this option as many times as you have number of URLs.

See also the –create-dirs option to create the local directories dynamically.

-O/–remote-name
Write output to a local file named like the remote file we get. (Only the file part of the remote file is
used, the path is cut off.)

You may use this option as many times as you have number of URLs.

–pass (SSL) Pass phrase for the private key

If this option is used several times, the last one will be used.

–proxy-basic
Tells curl to use HTTP Basic authentication when communicating with the given proxy. Use –basic for
enabling HTTP Basic with a remote host. Basic is the default authentication method curl uses with proxies.

If this option is used twice, the second will again disable proxy HTTP Basic authentication.

–proxy-digest
Tells curl to use HTTP Digest authentication when communicating with the given proxy. Use –digest for
enabling HTTP Digest with a remote host.

If this option is used twice, the second will again disable proxy HTTP Digest.

–proxy-ntlm
Tells curl to use HTTP NTLM authentication when communicating with the given proxy. Use –ntlm for enabling
NTLM with a remote host.

If this option is used twice, the second will again disable proxy HTTP NTLM.

-p/–proxytunnel
When an HTTP proxy is used (-x/–proxy), this option will cause non-HTTP protocols to attempt to tunnel
through the proxy instead of merely using it to do HTTP-like operations. The tunnel approach is made with
the HTTP proxy CONNECT request and requires that the proxy allows direct connect to the remote port number
curl wants to tunnel through to.

If this option is used twice, the second will again disable proxy tunnel.

-P/–ftp-port

(FTP) Reverses the initiator/listener roles when connecting with ftp. This switch makes Curl use the PORT
command instead of PASV. In practice, PORT tells the server to connect to the client’s specified address and
port, while PASV asks the server for an ip address and port to connect to.
should be one of:

interface
i.e “eth0″ to specify which interface’s IP address you want to use (Unix only)

IP address
i.e “192.168.10.1″ to specify exact IP number

host name
i.e “my.host.domain” to specify machine

– (any single-letter string) to make it pick the machine’s default

If this option is used several times, the last one will be used. Disable the use of PORT with –ftp-pasv. Disable
the attempt to use the EPRT command instead of PORT by using –disable-eprt. EPRT is really PORT++.

-q If used as the first parameter on the command line, the $HOME/.curlrc file will not be read and used as a
config file.

-Q/–quote
(FTP) Send an arbitrary command to the remote FTP server. Quote commands are sent BEFORE the transfer is
taking place. To make commands take place after a successful transfer, prefix them with a dash ‘-’. You may
specify any amount of commands to be run before and after the transfer. If the server returns failure for
one of the commands, the entire operation will be aborted. You must send syntactically correct FTP commands
as RFC959 defines.

This option can be used multiple times.

–random-file
(HTTPS) Specify the path name to file containing what will be considered as random data. The data is used to
seed the random engine for SSL connections. See also the –egd-file option.

-r/–range
(HTTP/FTP) Retrieve a byte range (i.e a partial document) from a HTTP/1.1 or FTP server. Ranges can be spec-
ified in a number of ways.

0-499 specifies the first 500 bytes

500-999 specifies the second 500 bytes

-500 specifies the last 500 bytes

9500 specifies the bytes from offset 9500 and forward

0-0,-1 specifies the first and last byte only(*)(H)

500-700,600-799
specifies 300 bytes from offset 500(H)

100-199,500-599
specifies two separate 100 bytes ranges(*)(H)

(*) = NOTE that this will cause the server to reply with a multipart response!

You should also be aware that many HTTP/1.1 servers do not have this feature enabled, so that when you attempt to
get a range, you’ll instead get the whole document.

FTP range downloads only support the simple syntax ‘start-stop’ (optionally with one of the numbers omitted). It
depends on the non-RFC command SIZE.

If this option is used several times, the last one will be used.

-R/–remote-time
When used, this will make libcurl attempt to figure out the timestamp of the remote file, and if that is
available make the local file get that same timestamp.

If this option is used twice, the second time disables this again.

-s/–silent
Silent mode. Don’t show progress meter or error messages. Makes Curl mute.

If this option is used twice, the second will again disable mute.

-S/–show-error
When used with -s it makes curl show error message if it fails.

If this option is used twice, the second will again disable show error.

–socks
Use the specified SOCKS5 proxy. If the port number is not specified, it is assumed at port 1080. (Option
added in 7.11.1)

This option overrides any previous use of -x/–proxy, as they are mutually exclusive.

If this option is used several times, the last one will be used.

–stderr
Redirect all writes to stderr to the specified file instead. If the file name is a plain ‘-’, it is instead
written to stdout. This option has no point when you’re using a shell with decent redirecting capabilities.

If this option is used several times, the last one will be used.

–tcp-nodelay
Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man page for details about this option. (Added
in 7.11.2)

If this option is used several times, each occurance toggles this on/off.

-t/–telnet-option
Pass options to the telnet protocol. Supported options are:

TTYPE= Sets the terminal type.

XDISPLOC= Sets the X display location.

NEW_ENV= Sets an environment variable.

-T/–upload-file
This transfers the specified local file to the remote URL. If there is no file part in the specified URL,
Curl will append the local file name. NOTE that you must use a trailing / on the last directory to really
prove to Curl that there is no file name or curl will think that your last directory name is the remote file
name to use. That will most likely cause the upload operation to fail. If this is used on a http(s) server,
the PUT command will be used.

Use the file name “-” (a single dash) to use stdin instead of a given file.

Before 7.10.8, when this option was used several times, the last one was used.

In curl 7.10.8 and later, you can specify one -T for each URL on the command line. Each -T + URL pair speci-
fies what to upload and to where. curl also supports “globbing” of the -T argument, meaning that you can
upload multiple files to a single URL by using the same URL globbing style supported in the URL, like this:

curl -T “{file1,file2}” http://www.uploadtothissite.com

or even

curl -T “img[1-1000].png” ftp://ftp.picturemania.com/upload/

–trace
Enables a full trace dump of all incoming and outgoing data, including descriptive information, to the given
output file. Use “-” as filename to have the output sent to stdout.

If this option is used several times, the last one will be used. (Added in 7.9.7)

–trace-ascii
Enables a full trace dump of all incoming and outgoing data, including descriptive information, to the given
output file. Use “-” as filename to have the output sent to stdout.

This is very similar to –trace, but leaves out the hex part and only shows the ASCII part of the dump. It
makes smaller output that might be easier to read for untrained humans.

If this option is used several times, the last one will be used. (Added in 7.9.7)

-u/–user
Specify user and password to use for server authentication.

If this option is used several times, the last one will be used.

-U/–proxy-user
Specify user and password to use for proxy authentication.

If this option is used several times, the last one will be used.

–url
Specify a URL to fetch. This option is mostly handy when you want to specify URL(s) in a config file.

This option may be used any number of times. To control where this URL is written, use the -o/–output or
the -O/–remote-name options.

-v/–verbose
Makes the fetching more verbose/talkative. Mostly usable for debugging. Lines starting with ‘>’ means data
sent by curl, ‘<' means data received by curl that is hidden in normal cases and lines starting with '*'
means additional info provided by curl.

Note that if you want to see HTTP headers in the output, -i/--include might be option you're looking for.

If you think this option still doesn't give you enough details, consider using --trace or --trace-ascii
instead.

If this option is used twice, the second will again disable verbose.

-V/--version
Displays information about curl and the libcurl version it uses.

The first line includes the full version of curl, libcurl and other 3rd party libraries linked with the exe-
cutable.

The second line (starts with "Protocols:") shows all protocols that libcurl reports to support.

The third line (starts with "Features:") shows specific features libcurl reports to offer. Available fea-
tures include:

IPv6 You can use IPv6 with this.

krb4 Krb4 for ftp is supported.

SSL HTTPS and FTPS are supported.

libz Automatic decompression of compressed files over HTTP is supported.

NTLM NTLM authenticaion is supported.

GSS-Negotiate
Negotiate authenticaion is supported.

Debug This curl uses a libcurl built with Debug. This enables more error-tracking and memory debugging etc.
For curl-developers only!

AsynchDNS
This curl uses asynchronous name resolves.

SPNEGO SPNEGO Negotiate authenticaion is supported.

Largefile
This curl supports transfers of large files, files larger than 2GB.

IDN This curl supports IDN - international domain names.

-w/--write-out
Defines what to display after a completed and successful operation. The format is a string that may contain
plain text mixed with any number of variables. The string can be specified as “string”, to get read from a
particular file you specify it “@filename” and to tell curl to read the format from stdin you write “@-”.

The variables present in the output format will be substituted by the value or text that curl thinks fit, as
described below. All variables are specified like %{variable_name} and to output a normal % you just write
them like %%. You can output a newline by using \n, a carriage return with \r and a tab space with \t.

NOTE: The %-letter is a special letter in the win32-environment, where all occurrences of % must be doubled
when using this option.

Available variables are at this point:

url_effective The URL that was fetched last. This is mostly meaningful if you’ve told curl to follow loca-
tion: headers.

http_code The numerical code that was found in the last retrieved HTTP(S) page.

time_total The total time, in seconds, that the full operation lasted. The time will be displayed with
millisecond resolution.

time_namelookup
The time, in seconds, it took from the start until the name resolving was completed.

time_connect The time, in seconds, it took from the start until the connect to the remote host (or proxy)
was completed.

time_pretransfer
The time, in seconds, it took from the start until the file transfer is just about to begin.
This includes all pre-transfer commands and negotiations that are specific to the particular
protocol(s) involved.

time_starttransfer
The time, in seconds, it took from the start until the first byte is just about to be trans-
fered. This includes time_pretransfer and also the time the server needs to calculate the
result.

size_download The total amount of bytes that were downloaded.

size_upload The total amount of bytes that were uploaded.

size_header The total amount of bytes of the downloaded headers.

size_request The total amount of bytes that were sent in the HTTP request.

speed_download The average download speed that curl measured for the complete download.

speed_upload The average upload speed that curl measured for the complete upload.

content_type The Content-Type of the requested document, if there was any. (Added in 7.9.5)

If this option is used several times, the last one will be used.

-x/–proxy Use specified HTTP proxy. If the port number is not specified, it is assumed at port 1080.

This option overrides existing environment variables that sets proxy to use. If there’s an environment vari-
able setting a proxy, you can set proxy to “” to override it.

Note that all operations that are performed over a HTTP proxy will transparantly be converted to HTTP. It
means that certain protocol specific operations might not be available. This is not the case if you can tun-
nel through the proxy, as done with the -p/–proxytunnel option.

If this option is used several times, the last one will be used.

-X/–request
(HTTP) Specifies a custom request to use when communicating with the HTTP server. The specified request
will be used instead of the standard GET. Read the HTTP 1.1 specification for details and explanations.

(FTP) Specifies a custom FTP command to use instead of LIST when doing file lists with ftp.

If this option is used several times, the last one will be used.

-y/–speed-time
If a download is slower than speed-limit bytes per second during a speed-time period, the download gets
aborted. If speed-time is used, the default speed-limit will be 1 unless set with -y.

This option controls transfers and thus will not affect slow connects etc. If this is a concern for you, try
the –connect-timeout option.

If this option is used several times, the last one will be used.

-Y/–speed-limit
If a download is slower than this given speed, in bytes per second, for speed-time seconds it gets aborted.
speed-time is set with -Y and is 30 if not set.

If this option is used several times, the last one will be used.

-z/–time-cond
(HTTP) Request to get a file that has been modified later than the given time and date, or one that has been
modified before that time. The date expression can be all sorts of date strings or if it doesn’t match any
internal ones, it tries to get the time from a given file name instead! See the GNU date(1) or curl_get-
date(3) man pages for date expression details.

Start the date expression with a dash (-) to make it request for a document that is older than the given
date/time, default is a document that is newer than the specified date/time.

If this option is used several times, the last one will be used.

-Z/–max-redirs
Set maximum number of redirection-followings allowed. If -L/–location is used, this option can be used to
prevent curl from following redirections “in absurdum”.

If this option is used several times, the last one will be used.

-0/–http1.0
(HTTP) Forces curl to issue its requests using HTTP 1.0 instead of using its internally preferred: HTTP 1.1.

-1/–tlsv1
(HTTPS) Forces curl to use TSL version 1 when negotiating with a remote TLS server.

-2/–sslv2
(HTTPS) Forces curl to use SSL version 2 when negotiating with a remote SSL server.

-3/–sslv3
(HTTPS) Forces curl to use SSL version 3 when negotiating with a remote SSL server.

-4/–ipv4
If libcurl is capable of resolving an address to multiple IP versions (which it is if it is ipv6-capable),
this option tells libcurl to resolve names to IPv4 addresses only. (Added in 7.10.8)

-6/–ipv6
If libcurl is capable of resolving an address to multiple IP versions (which it is if it is ipv6-capable),
this option tells libcurl to resolve names to IPv6 addresses only. (Added in 7.10.8)

-#/–progress-bar
Make curl display progress information as a progress bar instead of the default statistics.

If this option is used twice, the second will again disable the progress bar.

FILES
~/.curlrc
Default config file.

ENVIRONMENT
http_proxy [protocol://][:port]
Sets proxy server to use for HTTP.

HTTPS_PROXY [protocol://][:port]
Sets proxy server to use for HTTPS.

FTP_PROXY [protocol://][:port]
Sets proxy server to use for FTP.

GOPHER_PROXY [protocol://][:port]
Sets proxy server to use for GOPHER.

ALL_PROXY [protocol://][:port]
Sets proxy server to use if no protocol-specific proxy is set.

NO_PROXY
list of host names that shouldn’t go through any proxy. If set to a asterisk

EXIT CODES
There exists a bunch of different error codes and their corresponding error messages that may appear during bad
conditions. At the time of this writing, the exit codes are:

1 Unsupported protocol. This build of curl has no support for this protocol.

2 Failed to initialize.

3 URL malformat. The syntax was not correct.

4 URL user malformatted. The user-part of the URL syntax was not correct.

5 Couldn’t resolve proxy. The given proxy host could not be resolved.

6 Couldn’t resolve host. The given remote host was not resolved.

7 Failed to connect to host.

8 FTP weird server reply. The server sent data curl couldn’t parse.

9 FTP access denied. The server denied login.

10 FTP user/password incorrect. Either one or both were not accepted by the server.

11 FTP weird PASS reply. Curl couldn’t parse the reply sent to the PASS request.

12 FTP weird USER reply. Curl couldn’t parse the reply sent to the USER request.

13 FTP weird PASV reply, Curl couldn’t parse the reply sent to the PASV request.

14 FTP weird 227 format. Curl couldn’t parse the 227-line the server sent.

15 FTP can’t get host. Couldn’t resolve the host IP we got in the 227-line.

16 FTP can’t reconnect. Couldn’t connect to the host we got in the 227-line.

17 FTP couldn’t set binary. Couldn’t change transfer method to binary.

18 Partial file. Only a part of the file was transfered.

19 FTP couldn’t download/access the given file, the RETR (or similar) command failed.

20 FTP write error. The transfer was reported bad by the server.

21 FTP quote error. A quote command returned error from the server.

22 HTTP page not retrieved. The requested url was not found or returned another error with the HTTP error code
being 400 or above. This return code only appears if -f/–fail is used.

23 Write error. Curl couldn’t write data to a local filesystem or similar.

24 Malformed user. User name badly specified.

25 FTP couldn’t STOR file. The server denied the STOR operation, used for FTP uploading.

26 Read error. Various reading problems.

27 Out of memory. A memory allocation request failed.

28 Operation timeout. The specified time-out period was reached according to the conditions.

29 FTP couldn’t set ASCII. The server returned an unknown reply.

30 FTP PORT failed. The PORT command failed. Not all FTP servers support the PORT command, try doing a transfer
using PASV instead!

31 FTP couldn’t use REST. The REST command failed. This command is used for resumed FTP transfers.

32 FTP couldn’t use SIZE. The SIZE command failed. The command is an extension to the original FTP spec RFC
959.

33 HTTP range error. The range “command” didn’t work.

34 HTTP post error. Internal post-request generation error.

35 SSL connect error. The SSL handshaking failed.

36 FTP bad download resume. Couldn’t continue an earlier aborted download.

37 FILE couldn’t read file. Failed to open the file. Permissions?

38 LDAP cannot bind. LDAP bind operation failed.

39 LDAP search failed.

40 Library not found. The LDAP library was not found.

41 Function not found. A required LDAP function was not found.

42 Aborted by callback. An application told curl to abort the operation.

43 Internal error. A function was called with a bad parameter.

44 Internal error. A function was called in a bad order.

45 Interface error. A specified outgoing interface could not be used.

46 Bad password entered. An error was signaled when the password was entered.

47 Too many redirects. When following redirects, curl hit the maximum amount.

48 Unknown TELNET option specified.

49 Malformed telnet option.

51 The remote peer’s SSL certificate wasn’t ok

52 The server didn’t reply anything, which here is considered an error.

53 SSL crypto engine not found

54 Cannot set SSL crypto engine as default

55 Failed sending network data

56 Failure in receiving network data

57 Share is in use (internal error)

58 Problem with the local certificate

59 Couldn’t use specified SSL cipher

60 Problem with the CA cert (path? permission?)

61 Unrecognized transfer encoding

62 Invalid LDAP URL

63 Maximum file size exceeded

XX There will appear more error codes here in future releases. The existing ones are meant to never change.

AUTHORS / CONTRIBUTORS
Daniel Stenberg is the main author, but the whole list of contributors is found in the separate THANKS file.

WWW

http://curl.haxx.se

FTP
ftp://ftp.sunet.se/pub/www/utilities/curl/

SEE ALSO
ftp(1), wget(1), snarf(1)

Curl 7.12 3 May 2004 curl(1)

Bash Shell 快捷键

CTRL 键相关的快捷键:

Ctrl + a – Jump to the start of the line
Ctrl + b – Move back a char
Ctrl + c – Terminate the command //用的最多了吧?
Ctrl + d – Delete from under the cursor
Ctrl + e – Jump to the end of the line
Ctrl + f – Move forward a char
Ctrl + k – Delete to EOL
Ctrl + l – Clear the screen //清屏,类似 clear 命令
Ctrl + r – Search the history backwards //查找历史命令
Ctrl + R – Search the history backwards with multi occurrence
Ctrl + u – Delete backward from cursor // 密码输入错误的时候比较有用
Ctrl + xx – Move between EOL and current cursor position
Ctrl + x @ – Show possible hostname completions
Ctrl + z – Suspend/ Stop the command
Ctrl + h – 删除当前字符
Ctrl + w – 删除最后输入的单词

更多的看dbanotes ^_^ 和原版:Bash Shell Shortcuts

GNU通用公共许可证( GPL)

记录下来

http://www.gnu.org/copyleft/gpl.html

http://www.emule.org.cn/about/gpl/

下面的正文是自由软件基金会 GNU通用公共许可证原始文档的副本。 Linux操作系统以及与它有关的大量软件是在GPL的推动下开发和发布的。

你将看到:如果你打算为了发布的目的修改,更新或改进任何受通用公共许可证约束的软件,你所修改的软件软件同样必须受到GNU通用许可证条款的约束。

GNU通用公共许可证
1991.6第二版
版权所有(C)1989,1991 Free Software foundation,Inc.
675 Mass Ave, Cambridge,MAO2139, USA
允许每个人复制和发布这一许可证原始文档的副本,但绝对不允许对它进行任何修改。

序言

大多数软件许可证决意剥夺你的共享和修改软件的自由。对比之下,GNU通用公共许可证力图保证你的共享和修改自由软件的自由——保证自由软件对所有用户是自由的。GPL适用于大多数自由软件基金会的软件,以及由使用这些软件而承担义务的作者所开发的软件。(自由软件基金会的其他一些软件受 GNU库通用许可证的保护)。你也可以将它用到你的程序中。

当我们谈到自由软件(free software)时,我们指的是自由而不是价格。我们的 GNU通用公共许可证决意保证你有发布自由软件的自由(如果你愿意,你可以对此项服务收取一定的费用);保证你能收到源程序或者在你需要时能得到它;保证你能修改软件或将它的一部分用于新的自由软件;而且还保证你知道你能做这些事情。

为了保护你的权利,我们需要作出规定:禁止任何人不承认你的权利,或者要求你放弃这些权利。如果你修改了自由软件或者发布了软件的副本,这些规定就转化为你的责任。例如,如果你发布这样一个程序的副本,不管是收费的还是免费的,你必须将你具有的一切权利给予你的接受者;你必须保证他们能收到或得到源程序;并且将这些条款给他们看,使他们知道他们有这样的权利。

我们采取两项措施来保护你的权利。
(l)给软件以版权保护。
(2)给你提供许可证。它给你复制,发布和修改这些软件的法律许可。同样,为了保护每个作者和我们自己,我们需要清楚地让每个人明白,自由软件没有担保 (no warranty)。如果由于其他某个人修改了软件,并继续加以传播。我们需要它的接受者明白:他们所得到的并不是原来的自由软件。由其他人引人的任何问题,不应损害原作者的声誉。最后,任何自由软件不断受到软件专利的威胁。我们希望避免这样的风险,自由软件的再发布者以个人名义获得专利许可证。事实上,将软件变为私有。为防止这一点,我们必须明确:任何专利必须以允许每个人自由使用为前提,否则就不准许有专利。

有关复制,发布和修改的条款和条件
0.此许可证适用于任何包含版权所有者声明的程序和其他作品,版权所有者在声明中明确说明程序和作品可以在GPI条款的约束下发布。下面提到的“程序”指的是任何这样的程序或作品。而“基于程序的作品”指的是程序或者任何受版权法约柬的衍生作品。也就是说包含程序或程序的一部分的作品。可以是原封不动的,或经过修改的和/或翻译成其他语言的(程序)。在下文中,翻译包含在修改的条款久每个许可证接受人(Iicense)用你来称呼。许可证条款不适用于复制,发布和修改以外的活动。这些活动超出这些条款的范围。运行程序的活动不受条款的限止。仅当程序的输出构成基于程序作品的内容时,这一条款才适用(如果只运行程序就无关)。是否普遍适用取决于程序具体用来做什么。

1.只要你在每一副本上明显和恰当地出版版权声明和不承担担保的声明,保持此许可证的声明和没有担保的声明完整无损,并和程序一起绘每个其他的程序接受者一份许可证的副本,你就可以用任何媒体复制和发布你收到的原始的程序的源代码。你可以为转让副本的实际行动收取一定费用。你也有权选择提供担保以换取一定费用。

2.你可以修改程序的一个或几个副本或程序的任何部分,以此形成基于程序的作品。只要你同时满足下面的所有条件,你就可以按前面第一款的要求复制和发布这一经过修改的程序或作品。
  a)你必须在修改的文件中附有明确的说明:你修改了这一文件及具体的修改日期。
  b)你必须使你发布或出版的作品(它包含程序的全部或一部分,或包含由程序的全部或部分衍生的作品)允许第三方作为整体按许可证条款免费使用。
  c)如果修改的程序在运行时以交互方式读取命令,你必须使它在开始进入常规的交互使用方式时打印或显示声明:包括适当的版权声明和没有担保的声明(或者你提供担保的声明);用户可以按此许可证条款重新发布程序的说明;并告诉用户如何看到这一许可证的副本。(例外的情况:如果原始程序以交互方式工作,它并不打印这样的声明,你的基于程序的作品也就不用打印声明)。

这些要求适用于修改了的作品的整体。如果能够确定作品的一部分并非程序的衍生产品,可以合理地认为这部分是独立的,是不同的作品。当你将它作为独立作品发布时,它不受此许可证和它的条款的约束。但是当你将这部分作为基于程序的作品的一部分发布时,作为整体它将受到许可证条款约束。准予其他许可证持有人的使用范围扩大到整个产品。也就是每个部分,不管它是谁写的。因此,本条款的意图不在于索取权利;或剥夺全部由你写成的作品的权利。而是履行权利来控制基于程序的集体作品或衍生作品的发布。

此外,将与程序无关的作品和该程序或基于程序的作品一起放在存贮体或发布媒体的同一卷上,并不导致将其他作品置于此许可证的约束范围之内。

3.你可以以目标码或可执行形式复制或发布程序(或符合第2款的基于程序的作品),只要你遵守前面的第 l,2款,并同时满足下列3条中的1条。
  a)在通常用作软件交换的媒体上,和目标码一起附有机器可读的完整的源码。这些源码的发布应符合上面第1,2款的要求。或者
  b)在通常用作软件交换的媒体上,和目标码一起,附有给第三方提供相应的机器可读的源码的书面报价。有效期不少于3年,费用不超过实际完成源程序发布的实际成本。源码的发布应符合上面的第1,2款的要求。或者
  c)和目标码一起,附有你收到的发布源码的报价信息。(这一条款只适用于非商业性发布,而且你只收到程序的目标码或可执行代码和按 b)款要求提供的报价)。

作品的源码指的是对作品进行修改最优先择取的形式。对可执行的作品讲,完整的源码包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的 script。作为特殊例外,发布的源码不必包含任何常规发布的供可执行代码在上面运行的操作系统的主要组成部分(如编译程序,内核等)。除非这些组成部分和可执行作品结合在一起。

如果采用提供对指定地点的访问和复制的方式发布可执行码或目标码,那么,提供对同一地点的访问和复制源码可以算作源码的发布,即使第三方不强求与目标码一起复制源码。

4.除非你明确按许可证提出的要求去做,否则你不能复制,修改,转发许可证和发布程序。任何试图用其他方式复制,修改,转发许可证和发布程序是无效的。而且将自动结束许可证赋予你的权利。然而,对那些从你那里按许可证条款得到副本和权利的人们,只要他们继续全面履行条款,许可证赋予他们的权利仍然有效。

5.你没有在许可证上签字,因而你没有必要一定接受这一许可证。然而,没有任何其他东西赋予你修改和发布程序及其衍生作品的权利。如果你不接受许可证,这些行为是法律禁止的。因此,如果你修改或发布程序(或任何基于程序的作品),你就表明你接受这一许可证以及它的所有有关复制,发布和修改程序或基于程序的作品的条款和条件。

6.每当你重新发布程序(或任何基于程序的作品)时,接受者自动从原始许可证颁发者那里接到受这些条款和条件支配的复制,发布或修改程序的许可证。你不可以对接受者履行这里赋予他们的权利强加其他限制。你也没有强求第三方履行许可证条款的义务。

7.如果由于法院判决或违反专利的指控或任何其他原因(不限于专利问题)的结果,强加于你的条件(不管是法院判决,协议或其他)和许可证的条件有冲突。他们也不能用许可证条款为你开脱。在你不能同时满足本许可证规定的义务及其他相关的义务时,作为结果,你可以根本不发布程序。例如,如果某一专利许可证不允许所有那些直接或间接从你那里接受副本的人们在不付专利费的情况下重新发布程序,唯一能同时满足两方面要求的办法是停止发布程序。

如果本条款的任何部分在特定的环境下无效或无法实施,就使用条款的其余部分。并将条款作为整体用于其他环境。
本条款的目的不在于引诱你侵犯专利或其他财产权的要求,或争论这种要求的有效性。本条款的主要目的在于保护自由软件发布系统的完整性。它是通过通用公共许可证的应用来实现的。许多人坚持应用这一系统,已经为通过这一系统发布大量自由软件作出慷慨的供献。作者/捐献者有权决定他/她是否通过任何其他系统发布软件。许可证待有人不能强制这种选择。

本节的目的在于明确说明许可证其余部分可能产生的结果。

8.如果由于专利或者由于有版权的接口问题使程序在某些国家的发布和使用受到限止,将此程序置于许可证约束下的原始版权拥有者可以增加限止发布地区的条款,将这些国家明确排除在外。并在这些国家以外的地区发布程序。在这种情况下,许可证包含的限止条款和许可证正文一样有效。

9.自由软件基金会可能随时出版通用公共许可证的修改版或新版。新版和当前的版本在原则上保持一致,但在提到新问题时或有关事项时,在细节上可能出现差别。

每一版本都有不同的版本号。如果程序指定适用于它的许可证版本号以及“任何更新的版本”。你有权选择遵循指定的版本或自由软件基金会以后出版的新版本,如果程序未指定许可证版本,你可选择自由软件基金会已经出版的任何版本。

10.如果你愿意将程序的一部分结合到其他自由程序中,而它们的发布条件不同。写信给作者,要求准予使用。如果是自由软件基金会加以版权保护的软件,写信给自由软件基金会。我们有时会作为例外的情况处理。我们的决定受两个主要目标的指导。这两个主要目标是:我们的自由软件的衍生作品继续保持自由状态。以及从整体上促进软件的共享和重复利用。

没有担保

l1.由于程序准予免费使用,在适用法准许的范围内,对程序没有担保。除非另有书面说明,版权所有者和/或其他提供程序的人们“一样”不提供任何类型的担保。不论是明确的,还是隐含的。包括但不限于隐含的适销和适合特定用途的保证。全部的风险,如程序的质量和性能问题都由你来承担。如果程序出现缺陷,你承担所有必要的服务,修复和改正的费用。

12.除非适用法或书面协议的要求,在任何情况下,任何版权所有者或任何按许可证条款修改和发布程序的人们都不对你的损失负有任何责任。包括由于使用或不能使用程序引起的任何一般的,特殊的,偶然发生的或重大的损失(包括但不限于数据的损失,或者数据变得不精确,或者你或第三方的持续的损失,或者程序不能和其他程序协调运行等)。即使版权所有者和其他人提到这种损失的可能性也不例外。

最后的条款和条件
如何将这些条款用到你的新程序
如果你开发了新程序,而且你需要它得到公众最大限度的利用。
要做到这一点的最好办法是将它变为自由软件。使得每个人都能在遵守条款的基础上对它进行修改和重新发布。为了做到这一点,绘程序附上下列声明。最安全的方式是将它放在每个源程序的开头,以便最有效地传递拒绝担保的信息。每个文件至少应有“版权所有”行以及在什么地方能看到声明全文的说明。

<用一行空间给出程序的名称和它用来做什么的简单说明>
版权所有(C)19xx(<作者姓名>
这一程序是自由软件,你可以遵照自由软件基金会出版的 GNU通用公共许可证条款来修改和重新发布这一程序。或者用许可证的第二版,或者(根据你的选择)用任何更新的版本。发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定目的的隐含的担保。更详细的情况请参阅GNU通用公共许可证。
你应该已经和程序一起收到一份GNU通用公共许可证的副本。
如果还没有,写信给:
The Free Software Foundation,Inc,,675 Mass Ave, Cambridge,
MAO2139,USA还应加上如何和你保持联系的信息。
如果程序以交互方式进行工作,当它开始进人交互方式工作时,使它输出类似下面的简短声明 ll Gnomovision第69版,版权所有(C)19XX,作者姓名,
Gnomovision绝对没有担保。要知道详细情况,请输人 ‘show w’。
这是自由软件,欢迎你遵守一定的条件重新发布它,要知道详细情况,请输人‘Show c,。
假设的命令‘ shovr w’和‘ show c’应显示通用公共许可证的相应条款。当然,你使用的命令名称可以不同于‘show w’和‘show c,。根据你的程序的具体情况,也可以用菜单或鼠标选项来显示这些条款。
如果需要,你应该取得你的上司(如果你是程序员)或你的学校签署放弃程序版权的声明。下面只是一个例子,你应该改变相应的名称:
Ynyodyne公司以此方式放弃 James Harker
所写的 Gnomovision程序的全部版权利益。
< Ty coon签名>,1989.4.1
Ty coon付总裁
这一许可证不允许你将程序并人专用程序。如果你的程序是一个子程序库。你可能会认为用库的方式和专用应用程序连接更有用。如果这是你想做的事,使用GNU库通用公共许可证代替本许可证。

ftp&Crontab 自动下载文档

需求:每周一都需要下载日志 发送给研发。
如果一个一个的服务器上传的话需要50m ,那怎么行呢,偷个懒. 脚本吧。早该如此了,才行动。
实现:通过Crontab + ftp 自动完成
环境:3台主机
BOMC Server : AIX 5.3 IP 10.4.83.202 (提供ftp 服务. )
BOMC KF Probe : AIX 5.3 IP 192.115.182.50 (提供ftp服务,BOMC Server ftp get 日志)
BOSS 3 Probe : AIX 5.3 IP 10.4.70.213 (未提供ftp服务,因此在此主机上通过ftp put日志)
fenxi

步骤 :

一 在 BOSS 3 Probe 上
1 . 建立 ftp_put.sh
touch /home/ultranms/ftp.putlog.sh
chmod 755 /home/ultranms/ftp.putlog.sh
vi /home/ultranms/ftp.putlog.sh

#!/usr/bin/ksh
ftp -n 10.4.83.202 << EOF
user root root
bin
prompt
mput /home/ultranms/nmsprobe/log/NmsProbe.log /ultranms/upload_log/bjyd-boss3-probe
clear
mput /home/ultranms/nmsprobe/log/NmsProbe.log.1 /ultranms/upload_log/bjyd-boss3-probe
clear
mput /home/ultranms/nmsprobe/log/NmsProbe.log.2 /ultranms/upload_log/bjyd-boss3-probe
clear
bye
EOF

2. 让这个脚本每周一9点执行 ,上传log
crontab -e
添加
* 9 * * 1 /usr/bin/sh /home/ultranms/ftp.putlog.sh >; /dev/null 2>;/dev/null

二 BOMC Server
1. 建立 ftp_getlog.sh
touch /ultranms/upload_log/ftp_getlog.sh
chmod 755 /ultranms/upload_log/ftp_getlog.sh
vi /ultranms/upload_log/ftp_getlog.sh

#!/usr/bin/ksh
ftp -n 192.115.182.50 << EOF
user root root
bin
prompt
mget /home/ultranms/nmsprobe/log/NmsProbe.log
clear
mget /home/ultranms/nmsprobe/log/NmsProbe.log.1
clear
mget /home/ultranms/nmsprobe/log/NmsProbe.log.2
clear
bye
EOF

2. 让这个脚本每周一9:30点执行 获取 BOMC KF Probe 的日志
crontab -e
添加
30 9 * * 1 /usr/bin/sh /ultranms/upload_log/ftp_getlog.sh >; /dev/null 2>;/dev/null
因为只需要上一周的log,所以不需要备份,直接覆盖就好了。

3. 备份 BOMC Server 的日志

1. 建立 ftp_backup.sh
touch /ultranms/upload_log/ftp_backup.sh
chmod 755 /ultranms/upload_log/ftp_backup.sh
vi /ultranms/upload_log/ftp_backup.sh

#!/usr/bin/ksh
cp /ultranms/ultranms/nmsprobe/log/NmsProbe.log /ultranms/upload_log/bjyd-bomc-server
cp /ultranms/ultranms/nmsprobe/log/NmsProbe.log.1 /ultranms/upload_log/bjyd-bomc-server
cp /ultranms/ultranms/nmsprobe/log/NmsProbe.log.2 /ultranms/upload_log/bjyd-bomc-server

cd /ultranms/upload_log
tar czvf bomc.tar.gz bjyd-bomc-kfprobe bjyd-bomc-server bjyd-boss3-probe

如何在AIX中设置中文环境

 
平台:RS/6000
  软件版本: AIX 4.2 或更新版本
  
在AIX中使用中文有两种途径:
第一是在安装AIX时选择中文语言,装好的系统自动显示中文(这种方法不推荐使用,它没有第二种方法使用起来灵活)。
第二是安装AIX时选择英文,系统启动后手工设置中文环境,方法如下:

1. 将AIX系统盘的第一张光盘放入光驱;
2. 运行命令:
smitty
–> System Environments
–> Manage Languange Environment
–> Change/Show Primary Language Environment
–> Change/Show Cultural Convention, Language, or Keyboard
在随后显示的菜单中将光标分别移到以下字段:
Primary CULTURAL Convention
Primary LANGUAGE translation
Primary KEYBOARD
  按下,从弹出的菜单中选择“IBM-eucCN”将上述字段改为简体中文,按下回车键后系统自动从光盘安装中文环境软件包。此操作完成后重新启动系统,操作界面即为简体中文。

  需要输入中文时使用下列功能键切换输入方法:
AIX 4.3.3 以前的版本: + F1 — + F4 切换到各种中文输入方法;
右 — 切换到英文输入;

AIX 4.3.3: CTRL + [F2] : 智能 ABC ;
CTRL + [F4] : 拼音输入;
CTRL + [F5] : 五笔输入;
CTRL + [F6] : 郑码输入 ;
CTRL + [F7] : 表形码输入;
CTRL + [F9] : 内码输入;
CTRL + [F10] :英文半角;

  此外,AIX还包含另外两种中文环境,即“UTF8”和“GBK”,它们与“IBM-eucCN”之区别在于包含了繁体汉字的使用。上述三种中文环境的设置方法均相同。