linux系列---常见命令

文章目录

  • 1. 目录结构
  • 2. 命令总述
    • 2.1. 文件管理
    • 2.2. 磁盘管理
    • 2.3. 文档处理
    • 2.4. 用户及组
    • 2.5. 文件传输
    • 2.6. 网络通信
    • 2.7. 备份压缩
    • 2.8. 系统管理
    • 2.9. 系统设置
    • 2.10. 其他
  • 3. 命令详解
    • 3.1. cURL
    • 3.2. rz与sz
    • 3.3. wget
    • 3.4. rpm
    • 3.5. yum
    • 3.6. cat

其实每个命名都是有由来的,如果能够留意他的全称,那么它的命令就会方便记忆很多!!!

1. 目录结构

/:根目录,其中有多个特定功能的目录,不要删除或添加目录(文件)

/bin = Binaries (二进制文件) :存放可执行的二进制文件(ls,cat,mkdir等),常用命令一般都在这里

/sbin = Superuser Binaries (超级用户的二进制文件):同 /bin

/home:普通用户的家目录,每创建用户都会创建同名的文件夹在该目录下

/root:管理员用户的家目录,存放管理员用户的数据

/dev = Devices (设备) :设备文件目录,添加外部设备会以文件形式存储于此

/etc = Editable Text Configuration 初期etcetra directory(ETCetera),后来"Editable Text Configuration" 或者 “Extended Tool Chest”。 (等等):系统配置文件存放的目录,不建议在此目录下存放其他可执行文件,以后修改系统配置也都是在此目录下进行

/lib = LIBrary:存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件

/media:默认的挂载目录(也可以主动选择其他目录),比如光盘(/mnt/cdrom),外部磁盘等

/mnt = mount(挂装):默认的挂载目录(也可以主动选择其他目录),比如光盘(/mnt/cdrom),外部磁盘等

/opt = optional(自选的、选修的、选项):给主机额外安装软件所摆放的目录。

/proc = Processes:虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息

/sys = System:这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。 这个目录同样不占硬盘容量。

/boot = bootstrap(据说它原来于一句谚语:pull oneself up by one’s bootstraps,字面意思是"拽着鞋带把自己拉起来",相当于中文的”拽着自己的头发脱离地球“,这当然是不可能的事情。但最早的时候,工程师们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序!早期真的是这样,必须想尽各种办法,把一小段程序装进内存,然后计算机才能正常运行。所以,工程师们把这个过程叫做"拉鞋带",久而久之就简称为boot了。):存放用于系统引导时使用的各种文件(开机关机)。

/tmp = Temporary (临时):用于存放各种临时文件,是公用的临时文件存储点。

/usr = Unix Shared Resources :应用程序存放目录,比较重要的目录/usr/local本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

/usr/local:存放软件升级包,也可存放额外软件,和opt均可

/var = Variable (变量):变化文件存放目录,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等)等。

/lost+found:这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

/srv = service:一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。

2. 命令总述

2.1. 文件管理

ln -s : Link -soft 创建一个软链接,相当于创建一个快捷方式

cp: Copy file

rm:Remove(删除目录或文件)

rmdir:Remove Directory(删除目录)

mv: Move

cat: concatenate 连锁、使之连续
cat file1file2>>file3 把文件1和文件2的内容联合起来放到file3中

pwd: print work directory 打印当前目录 显示出当前工作目录的绝对路径

scp:secure copy 一个复制命令,是与ssh有关。安全传输,用于远端传输。

echo:echo 或者echo protocol (回声、应答、应答协议):就是朴实的输出,相当于java中的print

tail:tail (尾巴)也用来展示

mkdir:Make Directory(创建目录)

touch:touch(触碰)用于新建文件

alias:alias 别名,可用于自定义指令的别名,比如嫌太长改短一些

rename:rename(改名)修改文件或者目录的名字

2.2. 磁盘管理

ls:List files

cd:Change Directory(改变目录)

du: Disk usage 硬盘使用率

df: disk free 其功能是显示磁盘可用空间数目信息及空间结点信息。换句话说,就是报告在任何安装的设备或目录中,还剩多少自由的空间。

mount:挂载

unmounts:卸载

2.3. 文档处理

wc = Word Count

uniq = UNIQue

sed = Stream Editor

awk = “Aho Weiberger and Kernighan”三个作者的姓的第一个字母

grep = Global search regular expression and print out line 或者 Global regular expression print

vi = VIsual :视觉的

vim = visual improved = Vi Improved vi升级的

diff=different

2.4. 用户及组

useradd= user add

userdel = user delete

usermod = user mode

passwd = password 密码

groupadd = group add

groupdel = group delete

chgrp = change group

su = su:Swith user 切换用户

sudo = superuser / substitue user do 在ubuntu下更倾向于superuser,因为它代表了root权限

2.5. 文件传输

get put wget

2.6. 网络通信

telnet = TErminaL over Network 网络终端

nc = netcat: 一个功能强大的网络工具

ifconfig=interface config:接口配置

ping = 拟声词 = Packet InterNet Grouper, Send ICMP ECHO_Request to network hosts

netstat = network status

ip= iptables

host= host

2.7. 备份压缩

tar:Tape archive 解压文件

2.8. 系统管理

ps: process status(进程状态,类似于windows的任务管理器)
常用参数:-auxf
ps -auxf 显示进程状态

2.9. 系统设置

shutdown

2.10. 其他

rpm:即RedHat Package Management,是RedHat的发明之一

apt:Advanced package tool(Debian或基于Debian的发行版中提供)

insmod: install module,载入模块

man = MANual pages 之前曾困惑过一段时间,被人笑话:多看man,少看woman

mkfs: Make file system

fsck:File system check

uname: Unix name 系统名称

lsmod: List modules 列表模块

fg: Foreground

bg: Background

fgrep = Fixed GREP

chown: Change owner

chmod: Change mode

umount: Unmount

rmmod:Remove module 删除模块

文件结尾的"rc"(如.bashrc、.xinitrc等):Resource configuration

Knnxxx /Snnxxx(位于rcx.d目录下):K(Kill);S(Service);nn(执行顺序号);xxx(服务标识)

.a(扩展名a):Archive,static library

.so(扩展名so):Shared object,dynamically linked library

.o(扩展名o):Object file,complied result of C/C++ source file

dpkg:Debian package manager

FIFO = First In, First Out

GRUB = GRand Unified Bootloader

IFS= Internal Field Seperators

LILO = LInux LOader

MySQL = My 是最初作者女儿的名字,

SQL = Structured QueryLanguage

PHP = Personal Home Page Tools = PHP HypertextPreprocessor

Perl = “Pratical Extraction and Report Language”(实际的抽取和报告语言) =”Pathologically Eclectic
Rubbish Lister”

Python 得名于电视剧Monty Python’s Flying Circus

Tcl = Tool Command Language

Tk = ToolKit

VT = Video Terminal

YaST = Yet Another Setup Tool

apache = “a patchy” server

ar = archiver

as = assembler

bash :GNU Bourne-Again Shell linux内核

bc = Basic (Better) Calculator

biff = 作者HeidiStettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。

cal = Calendar (日历)

chsh = Change Shell

cmp = compare

cobra = Common Object Request BrokerArchitecture

comm = common

cpio = CoPy In and Out

cpp = C Pre Processor

cron = Chronos 希腊文时间

cups = Common Unix Printing System

cvs = Current Version System

daemon = Disk And Execution MONitor 这个词应该出现在计算机之前吧,挺有人缘的

dc = Desk Calculator

dd = Disk Dump (磁盘转储)

ldd:List dynamic dependencies 列出动态相依

dmesg = diagnostic message

ed = editor

egrep = Extended GREP

elf = Extensible Linking Format

elm = ELectronic Mail

emacs = Editor MACroS

eval = EVALuate

ex = EXtended

exec = EXECute (执行)

fd = file descriptors

fmt = format

fstab = FileSystem TABle

fvwm = F*** Virtual Window Manager

gawk = GNU AWK

gpg = GNU Privacy Guard

groff = GNU troff

hal = Hardware Abstraction Layer

joe = Joe’s Own Editor

ksh = Korn SHell

lame = Lame Ain’t an MP3 Encoder

lex = LEXical analyser

lisp = LISt Processing = Lots of IrritatingSuperfluous Parentheses

lpr = Line PRint

lsof = LiSt Open Files

m4 = Macro processor Version 4

mawk = Mike Brennan’s AWK

mc = Midnight Commander

mknod = Make Node

motd = Message of The Day

mozilla = MOsaic GodZILLa

mtab = Mount TABle

nano = Nano’s ANOther editor

nawk = New AWK

nl = Number of Lines

nm = names

nohup = No HangUP

nroff = New ROFF

od = Octal Dump

pg = pager

pico = PIne’s message COmposition editor

pine = “Program for Internet News &Email” = “Pine is not Elm”

pirntcap = PRINTer CAPability

popd = POP Directory

pr = pre

printf = Print Formatted

pty = pseudo tty

pushd = PUSH Directory

rc = runcom = run command, rc还是plan9的shell

rev = REVerse

rn = Read News

roff = RunOFF

rsh, rlogin, rvim中的

r = Remote

rxvt = ouR XVT

seamoneky = 我

seq = SEQuence

shar = Shell ARchive

slrn = S-Lang rn

ssh = Secure Shell

ssl = Secure Sockets Layer

stty = Set TTY

svn = SubVersion

tcsh = TENEX C shell

tee = T (T形水管接口)

termcap = terminal capability

terminfo = terminal information

tex = τέχνη的缩写,希腊文art

tr = traslate

troff = Typesetter new ROFF

tsort = Topological SORT

tty = TeleTypewriter

twm = Tom’s Window Manager

tz = TimeZone

udev = Userspace DEV

ulimit = User’s LIMIT

umask = User’s MASK

wall = write all

wine = WINE Is Not an Emulator

xargs = eXtended ARGuments

xdm = X Display Manager

xlfd = X Logical Font Description

xmms = X Multimedia System

xrdb = X Resources DataBase

xwd = X Window Dump

yacc = yet another compiler compiler

Fish = the Friendly Interactive SHell

su = Switch User

MIME = Multipurpose Internet Mail Extensions

ECMA = European Computer ManufacturersAssociation

nano = Nano’s ANOther editor

pico = PIne’s message COmposition editor

pine = “Program for Internet News & Email” = “Pine is not Elm”

rc = runcom = run command, rc 还是 plan9的 shell

rsh, rlogin, rvim 中的 r = Remote

shar = SHell ARchive

svn = SubVersioN

file = file 查看文件类型,是否是二进制等

gcc = general public licence (GNU) compiler collection 编译程序会产生二进制a.out文件

rsh, rlogin, rvim中的r = Remote

tty = TeleTypewriter 电传打字机?没用过。不知道与ubuntu的text界面是怎么联系起来的。

twm = Tom’s Window Manager

ulimit = User’s LIMIT

umask = User’s MASK

wine = WINE Is Not an Emulator 太搞了,和GNU’s Not Unix有得一拼

httpd :Start Apache

ipcalc :Calculate IP information for a host

reboot: Restart your computer

3. 命令详解

3.1. cURL

  • 简介
    首先需要了解的是,curl命令是一个网络工具,其主要作用是通过http、ftp等方式下载文件,也能够上传文件,作为一个功能强大的网络工具,curl命令同时支持HTTPS等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

    资料拓展:cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。

    cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。

    它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。

  • 参数

    语法:# curl [option] [url]
    

    常见参数:

    -A/--user-agent <string>              设置用户代理发送给服务器
    -b/--cookie <name=string/file>    cookie字符串或文件读取位置
    -c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
    -C/--continue-at <offset>            断点续转
    -D/--dump-header <file>              把header信息写入到该文件中
    -e/--referer                                  来源网址
    -f/--fail                                          连接失败时不显示http错误
    -o/--output                                  把输出写到该文件中
    -O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
    -r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
    -s/--silent                                    静音模式。不输出任何东西
    -T/--upload-file <file>                  上传文件
    -u/--user <user[:password]>      设置服务器的用户和密码
    -w/--write-out [format]                什么输出完成后
    -x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
    -#/--progress-bar                        进度条显示当前的传送状态
    
  • 常见用法示例

    不带有任何参数时,curl 就是发出 GET 请求。

    $ curl https://www.example.com
    

    上面命令向www.example.com发出 GET 请求,服务器返回的内容会在命令行输出。

    -A

    -A参数指定客户端的用户代理标头,即User-Agent。curl 的默认用户代理字符串是curl/[version]。

    $ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com
    

    上面命令将User-Agent改成 Chrome 浏览器。

    $ curl -A '' https://google.com
    

    上面命令会移除User-Agent标头。

    也可以通过 -H 参数直接指定标头,更改User-Agent。

    $ curl -H 'User-Agent: php/1.0' https://google.com
    

    -b

    -b参数用来向服务器发送 Cookie。

    $ curl -b 'foo=bar' https://google.com
    

    上面命令会生成一个标头Cookie: foo=bar,向服务器发送一个名为foo、值为bar的 Cookie。

    $ curl -b 'foo1=bar' -b 'foo2=baz' https://google.com
    

    上面命令发送两个 Cookie。

    $ curl -b cookies.txt https://www.google.com
    

    上面命令读取本地文件cookies.txt,里面是服务器设置的 Cookie(参见-c参数),将其发送到服务器。

    -c

    -c参数将服务器设置的 Cookie 写入一个文件。

    $ curl -c cookies.txt https://www.google.com
    

    上面命令将服务器的 HTTP 回应所设置 Cookie 写入文本文件cookies.txt。

    -d

    -d参数用于发送 POST 请求的数据体。

    $ curl -d'login=emma&password=123'-X POST https://google.com/login
    # 或者
    $ curl -d 'login=emma' -d 'password=123' -X POST  https://google.com/login
    

    使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。

    -d参数还可以读取本地文本文件的数据,向服务器发送。

    $ curl -d '@data.txt' https://google.com/login
    

    上面命令读取data.txt文件的内容,作为数据体向服务器发送。

    –data-urlencode

    –data-urlencode参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码。

    $ curl --data-urlencode 'comment=hello world' https://google.com/login
    

    上面代码中,发送的数据hello world之间有一个空格,需要进行 URL 编码。

    -e

    -e参数用来设置 HTTP 的标头Referer,表示请求的来源。

    curl -e 'https://google.com?q=example' https://www.example.com
    

    上面命令将Referer标头设为https://google.com?q=example。

    -H参数可以通过直接添加标头Referer,达到同样效果。

    curl -H 'Referer: https://google.com?q=example' https://www.example.com
    

    -F

    -F参数用来向服务器上传二进制文件。

    $ curl -F '[email protected]' https://google.com/profile
    

    上面命令会给 HTTP 请求加上标头Content-Type: multipart/form-data,然后将文件photo.png作为file字段上传。

    -F参数还可以指定 MIME 类型。

    $ curl -F '[email protected];type=image/png' https://google.com/profile
    

    上面命令指定 MIME 类型为image/png,否则 curl 会把 MIME 类型设为application/octet-stream。

    -F参数也可以指定文件名。

    $ curl -F '[email protected];filename=me.png' https://google.com/profile
    

    上面命令中,原始文件名为photo.png,但是服务器接收到的文件名为me.png。

    -G

    -G参数用来构造 URL 的查询字符串。

    $ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
    

    上面命令会发出一个 GET 请求,实际请求的 URL 为https://google.com/search?q=kitties&count=20。如果省略–G,会发出一个 POST 请求。

    如果数据需要 URL 编码,可以结合–data–urlencode参数。

    $ curl -G --data-urlencode 'comment=hello world' https://www.example.com
    

    -H

    -H参数添加 HTTP 请求的标头。

    $ curl -H 'Accept-Language: en-US' https://google.com
    

    上面命令添加 HTTP 标头Accept-Language: en-US。

    $ curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com
    

    上面命令添加两个 HTTP 标头。

    
    $ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login
    

    上面命令添加 HTTP 请求的标头是Content-Type: application/json,然后用-d参数发送 JSON 数据。

    -i

    -i参数打印出服务器回应的 HTTP 标头。

    $ curl -i https://www.example.com
    

    上面命令收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码。

    -I
    -I参数向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来。

    $ curl -I https://www.example.com
    

    上面命令输出服务器对 HEAD 请求的回应。

    –head参数等同于-I。

    $ curl --head https://www.example.com
    

    -k

    -k参数指定跳过 SSL 检测。

    $ curl -k https://www.example.com
    

    上面命令不会检查服务器的 SSL 证书是否正确。

    -L

    -L参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。

    $ curl -L -d 'tweet=hi' https://api.twitter.com/tweet
    

    –limit-rate

    –limit-rate用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境。

    $ curl --limit-rate 200k https://google.com
    

    上面命令将带宽限制在每秒 200K 字节。

    -o

    -o参数将服务器的回应保存成文件,等同于wget命令。

    $ curl -o example.html https://www.example.com
    

    上面命令将www.example.com保存成example.html。

    -O

    -O参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名。

    $ curl -O https://www.example.com/foo/bar.html
    

    上面命令将服务器回应保存成文件,文件名为bar.html。

    -s

    -s参数将不输出错误和进度信息。

    $ curl -s https://www.example.com
    

    上面命令一旦发生错误,不会显示错误信息。不发生错误的话,会正常显示运行结果。

    如果想让 curl 不产生任何输出,可以使用下面的命令。

    $ curl -s -o /dev/null https://google.com
    

    -S

    -S参数指定只输出错误信息,通常与-o一起使用。

    $ curl -s -o /dev/null https://google.com
    

    上面命令没有任何输出,除非发生错误。

    -u

    -u参数用来设置服务器认证的用户名和密码。

    $ curl -u 'bob:12345' https://google.com/login
    

    上面命令设置用户名为bob,密码为12345,然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1。

    curl 能够识别 URL 里面的用户名和密码。

    $ curl https://bob:12345@google.com/login
    

    上面命令能够识别 URL 里面的用户名和密码,将其转为上个例子里面的 HTTP 标头。

    $ curl -u 'bob' https://google.com/login
    

    上面命令只设置了用户名,执行后,curl 会提示用户输入密码。

    -v

    -v参数输出通信的整个过程,用于调试。

    $ curl -v https://www.example.com
    

    –trace参数也可以用于调试,还会输出原始的二进制数据。

    $ curl --trace - https://www.example.com
    

    -x

    -x参数指定 HTTP 请求的代理。

    $ curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com
    

    上面命令指定 HTTP 请求通过myproxy.com:8080的 socks5 代理发出。

    如果没有指定代理协议,默认为 HTTP。

    $ curl -x james:cats@myproxy.com:8080 https://www.example.com
    

    上面命令中,请求的代理使用 HTTP 协议。

    -X

    -X参数指定 HTTP 请求的方法。

    $ curl -X POST https://www.example.com
    

    上面命令对https://www.example.com发出 POST 请求。

  • 其他参数

    -a/--append                        上传文件时,附加到目标文件
    --anyauth                            可以使用“任何”身份验证方法
    --basic                                使用HTTP基本验证
    -B/--use-ascii                      使用ASCII文本传输
    -d/--data <data>                  HTTP POST方式传送数据
    --data-ascii <data>ascii的方式post数据
    --data-binary <data>          以二进制的方式post数据
    --negotiate                          使用HTTP身份验证
    --digest                        使用数字身份验证
    --disable-eprt                  禁止使用EPRT或LPRT
    --disable-epsv                  禁止使用EPSV
    --egd-file <file>              为随机数据(SSL)设置EGD socket路径
    --tcp-nodelay                  使用TCP_NODELAY选项
    -E/--cert <cert[:passwd]>      客户端证书文件和密码 (SSL)
    --cert-type <type>              证书文件类型 (DER/PEM/ENG) (SSL)
    --key <key>                    私钥文件名 (SSL)
    --key-type <type>              私钥文件类型 (DER/PEM/ENG) (SSL)
    --pass  <pass>                  私钥密码 (SSL)
    --engine <eng>                  加密引擎使用 (SSL). "--engine list" for list
    --cacert <file>                CA证书 (SSL)
    --capath <directory>            CA目   (made using c_rehash) to verify peer against (SSL)
    --ciphers <list>                SSL密码
    --compressed                    要求返回是压缩的形势 (using deflate or gzip)
    --connect-timeout <seconds>    设置最大请求时间
    --create-dirs                  建立本地目录的目录层次结构
    --crlf                          上传是把LF转变成CRLF
    --ftp-create-dirs              如果远程目录不存在,创建远程目录
    --ftp-method [multicwd/nocwd/singlecwd]    控制CWD的使用
    --ftp-pasv                      使用 PASV/EPSV 代替端口
    --ftp-skip-pasv-ip              使用PASV的时候,忽略该IP地址
    --ftp-ssl                      尝试用 SSL/TLS 来进行ftp数据传输
    --ftp-ssl-reqd                  要求用 SSL/TLS 来进行ftp数据传输
    -F/--form <name=content>        模拟http表单提交数据
    -form-string <name=string>      模拟http表单提交数据
    -g/--globoff                    禁用网址序列和范围使用{}[]
    -G/--get                        以get的方式来发送数据
    -h/--help                      帮助
    -H/--header <line>              自定义头信息传递给服务器
    --ignore-content-length        忽略的HTTP头信息的长度
    -i/--include                    输出时包括protocol头信息
    -I/--head                      只显示文档信息
    -j/--junk-session-cookies      读取文件时忽略session cookie
    --interface <interface>        使用指定网络接口/地址
    --krb4 <level>                  使用指定安全级别的krb4
    -k/--insecure                  允许不使用证书到SSL站点
    -K/--config                    指定的配置文件读取
    -l/--list-only                  列出ftp目录下的文件名称
    --limit-rate <rate>            设置传输速度
    --local-port<NUM>              强制使用本地端口号
    -m/--max-time <seconds>        设置最大传输时间
    --max-redirs <num>              设置最大读取的目录数
    --max-filesize <bytes>          设置最大下载的文件总量
    -M/--manual                    显示全手动
    -n/--netrc                      从netrc文件中读取用户名和密码
    --netrc-optional                使用 .netrc 或者 URL来覆盖-n
    --ntlm                          使用 HTTP NTLM 身份验证
    -N/--no-buffer                  禁用缓冲输出
    -p/--proxytunnel                使用HTTP代理
    --proxy-anyauth                选择任一代理身份验证方法
    --proxy-basic                  在代理上使用基本身份验证
    --proxy-digest                  在代理上使用数字身份验证
    --proxy-ntlm                    在代理上使用ntlm身份验证
    -P/--ftp-port <address>        使用端口地址,而不是使用PASV
    -Q/--quote <cmd>                文件传输前,发送命令到服务器
    --range-file                    读取(SSL)的随机文件
    -R/--remote-time                在本地生成文件时,保留远程文件时间
    --retry <num>                  传输出现问题时,重试的次数
    --retry-delay <seconds>        传输出现问题时,设置重试间隔时间
    --retry-max-time <seconds>      传输出现问题时,设置最大重试时间
    -S/--show-error                显示错误
    --socks4 <host[:port]>          用socks4代理给定主机和端口
    --socks5 <host[:port]>          用socks5代理给定主机和端口
    -t/--telnet-option <OPT=val>    Telnet选项设置
    --trace <file>                  对指定文件进行debug
    --trace-ascii <file>            Like --跟踪但没有hex输出
    --trace-time                    跟踪/详细输出时,添加时间戳
    --url <URL>                    Spet URL to work with
    -U/--proxy-user <user[:password]>  设置代理用户名和密码
    -V/--version                    显示版本信息
    -X/--request <command>          指定什么命令
    -y/--speed-time                放弃限速所要的时间。默认为30
    -Y/--speed-limit                停止传输速度的限制,速度时间'秒
    -z/--time-cond                  传送时间设置
    -0/--http1.0                    使用HTTP 1.0
    -1/--tlsv1                      使用TLSv1(SSL)
    -2/--sslv2                      使用SSLv2的(SSL)
    -3/--sslv3                      使用的SSLv3(SSL)
    --3p-quote                      like -Q for the source URL for 3rd party transfer
    --3p-url                        使用url,进行第三方传送
    --3p-user                      使用用户名和密码,进行第三方传送
    -4/--ipv4                      使用IP4
    -6/--ipv6                      使用IP6
    

3.2. rz与sz

超级好用的文件传输命令

rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具,但是windows端需要支持ZModem的telnet/ssh客户端,比如xshell或者SecureCRT才可以使用。这两个命令也很好区分,sz:将选定的文件发送(send)到本地机器,s作为send的简写;同理,rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive),r作为receive的简写。szrz的主语问服务端~

安装rz与sz
这两个工具的安装也比较容易,这里以CentOS系统为例:
yum install -y lrzsz.x86_64 或者 yum install lrzsz

然后直接使用者两个命令就可以了,一般不需要参数

补充说明
1、rz与sz只适合小的文件传输,大文件还是使用Filezilla与xftp等工具进行传输;
2、只能传输单个文件,而不能传输文件夹;
3、不是所有工具都支持rz与sz,必须支持ZModem协议才行,例如putty不能使用rz与sz。

3.3. wget

wget是一个下载文件的组件,只要url正确可以下载任何东西,视频、音乐、软件包等等。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单

  1. 使用wget下载单个文件
    以下的例子是从网络下载一个文件并保存在当前目录

    wget url
    ①wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 下载某个安装包
    ②wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz 下载hadoop
    ③wget https://pics3.baidu.com/feed/adaf2edda3cc7cd96a000cf987a7e63bb80e9108.jpeg?token=8eaf02e2cfdc61dd723b258adb803e11&s=8DB2FAB740C30AF20484682203003042 下载某个图片网页等

    url的组成,如果是安装包,必须是出现下载窗口的url,才可以正常下载。
    ①是自己组成的:网站/包名
    ②直接复制来的:是镜像的网址
    ③直接复制来的:是图片地址

    在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

  2. 使用wget -O下载并以不同的文件名保存

    wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。
    错误:下面的例子会下载一个文件并以名称download.php?id=1080保存

    wget http://www.centos.bz/download?id=1
    即使下载的文件是zip格式,它仍然以download.php?id=1080命令。
    正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名:

    wget -O wordpress.zip http://www.centos.bz/download.php?id=1080

  3. 使用wget –limit -rate限速下载
    当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

    wget –limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

  4. 使用wget -c断点续传
    使用wget -c重新启动下载中断的文件:

    wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
    对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

  5. 使用wget -b后台下载
    对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。

    wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
    Continuing in background, pid 1840.
    Output will be written to `wget-log’.
    你可以使用以下命令来察看下载进度

    tail -f wget-log

  6. 伪装代理名称下载
    有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过–user-agent参数伪装。

    wget –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16″ 下载链接

  7. 使用wget –spider测试下载链接
    当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加–spider参数进行检查。

    wget –spider URL
    如果下载链接正确,将会显示

    wget –spider URL
    Spider mode enabled. Check if remote file exists.
    HTTP request sent, awaiting response… 200 OK
    Length: unspecified [text/html]
    Remote file exists and could contain further links,
    but recursion is disabled — not retrieving.
    这保证了下载能在预定的时间进行,但当你给错了一个链接,将会显示如下错误

    wget –spider url
    Spider mode enabled. Check if remote file exists.
    HTTP request sent, awaiting response… 404 Not Found
    Remote file does not exist — broken link!!!
    你可以在以下几种情况下使用spider参数:

    定时下载之前进行检查
    间隔检测网站是否可用
    检查网站页面的死链接

  8. 使用wget –tries增加重试次数
    如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。如果需要,你可以使用–tries增加重试次数。

    wget –tries=40 URL

  9. 使用wget -i下载多个文件
    首先,保存一份下载链接文件

    cat > filelist.txt
    url1
    url2
    url3
    url4
    接着使用这个文件和参数-i下载

    wget -i filelist.txt

  10. 使用wget –mirror镜像网站
    下面的例子是下载整个网站到本地。

    wget –mirror -p –convert-links -P ./LOCAL URL
    –miror:开户镜像下载
    -p:下载所有为了html页面显示正常的文件
    –convert-links:下载后,转换成本地的链接
    -P ./LOCAL:保存所有文件和目录到本地指定目录

  11. 使用wget –reject过滤指定格式下载
    你想下载一个网站,但你不希望下载图片,你可以使用以下命令。

    wget –reject=gif url

  12. 使用wget -o把下载信息存入日志文件
    你不希望下载信息直接显示在终端而是在一个日志文件,可以使用以下命令:

    wget -o download.log URL

  13. 使用wget -Q限制总下载文件大小
    当你想要下载的文件超过5M而退出下载,你可以使用以下命令:

    wget -Q5m -i filelist.txt
    注意:这个参数对单个文件下载不起作用,只能递归下载时才有效。

  14. 使用wget -r -A下载指定格式文件
    可以在以下情况使用该功能

    下载一个网站的所有图片
    下载一个网站的所有视频
    下载一个网站的所有PDF文件
    wget -r -A.pdf url

  15. 使用wget FTP下载
    你可以使用wget来完成ftp链接的下载。
    使用wget匿名ftp下载

    wget ftp-url

    使用wget用户名和密码认证的ftp下载

    wget –ftp-user=USERNAME –ftp-password=PASSWORD url

wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。它有以下功能和特点:

(1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了;
(2)同时支持FTP和HTTP下载方式;尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件;
(3)支持代理服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能;
(4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标;
(5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在太大了;完全免费就不得不考虑了,即使网络上有很多所谓的免费软件,但是,这些软件的广告却不是我们喜欢的;

wget虽然功能强大,但是使用起来还是比较简单的,基本的语法是:wget [参数列表] URL。下面就结合具体的例子来说明一下wget的用法。

1、下载整个http或者ftp站点。
wget http://place.your.url/here
这个命令可以将http://place.your.url/here 首页下载下来。使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地当前目录。

wget -r http://place.your.url/here
这 个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址同 样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l number参数来指定下载的层次。例如只下载两层,那么使用-l 2。

要是您想制作镜像站点,那么可以使用-m参数,例如:wget -m http://place.your.url/here
这时wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行。

2、断点续传。
当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:
wget -c http://the.url.of/incomplete/file
使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。

3、批量下载。
如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,然后用命令:wget -i download.txt
这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页)

4、选择性的下载。
可以指定让wget只下载一类文件,或者不下载什么文件。例如:
wget -m –reject=gif http://target.web.site/subdirectory
表示下载http://target.web.site/subdirectory,但是忽略gif文件。–accept=LIST 可以接受的文件类型,–reject=LIST拒绝接受的文件类型。

5、密码和认证。
wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:
–http-user=USER设置HTTP用户
–http-passwd=PASS设置HTTP密码
对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。

6、利用代理服务器进行下载。
如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:
–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码
这两个参数。
使用参数–proxy=on/off 使用或者关闭代理。
wget还有很多有用的功能,需要用户去挖掘。

附录:

命令格式:
wget [参数列表] [目标软件、网页的网址]

-V,–version 显示软件版本号然后退出;
-h,–help显示软件帮助信息;
-e,–execute=COMMAND 执行一个 “.wgetrc”命令

-o,–output-file=FILE 将软件输出信息保存到文件;
-a,–append-output=FILE将软件输出信息追加到文件;
-d,–debug显示输出信息;
-q,–quiet 不显示输出信息;
-i,–input-file=FILE 从文件中取得URL;

-t,–tries=NUMBER 是否下载次数(0表示无穷次)
-O –output-document=FILE下载文件保存为别的文件名
-nc, –no-clobber 不要覆盖已经存在的文件
-N,–timestamping只下载比本地新的文件
-T,–timeout=SECONDS 设置超时时间
-Y,–proxy=on/off 关闭代理

-nd,–no-directories 不建立目录
-x,–force-directories 强制建立目录

–http-user=USER设置HTTP用户
–http-passwd=PASS设置HTTP密码
–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码

-r,–recursive 下载整个网站、目录(小心使用)
-l,–level=NUMBER 下载层次

-A,–accept=LIST 可以接受的文件类型
-R,–reject=LIST拒绝接受的文件类型
-D,–domains=LIST可以接受的域名
–exclude-domains=LIST拒绝的域名
-L,–relative 下载关联链接
–follow-ftp 只下载FTP链接
-H,–span-hosts 可以下载外面的主机
-I,–include-directories=LIST允许的目录
-X,–exclude-directories=LIST 拒绝的目录

中文文档名在平常的情况下会被编码, 但是在 –cut-dirs 时又是正常的,
wget -r -np -nH –cut-dirs=3 ftp://host/test/
测试.txt
wget -r -np -nH -nd ftp://host/test/
%B4%FA%B8%D5.txt
wget “ftp://host/test/*”
%B4%FA%B8%D5.txt

由 於不知名的原因,可能是为了避开特殊档名, wget 会自动将抓取档名的部分用 encode_string 处理过, 所以该 patch 就把被 encode_string 处理成 “%3A” 这种东西, 用 decode_string 还原成 “:”,并套用在目录与档案名称的部分,decode_string 是 wget 内建的函式。

wget -t0 -c -nH -x -np -b -m -P /home/sunny/NOD32view/ http://downloads1.kaspersky-labs.com/bases/ -o wget.log

3.4. rpm

rpm是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理的,rpm 是linux的一种软件包名称,以.rmp结尾,安装的时候语法为:rpm -ivh,rpm包的安装有一个很大的缺点就是文件的关联性太大,有时候装一个软件要安装很多其他的软件包,很麻烦,而且,rpm 只能安装已经下载到本地机器上的rpm 包

用法: rpm [选项…]

-a: all 查询所有套件;

-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;

-c:只列出组态配置文件,本参数需配合"-l"参数使用;

-d:只列出文本文件,本参数需配合"-l"参数使用;

-e<套件档>或–erase<套件档>:删除指定的套件;

-f<文件>+:查询拥有指定文件的套件;

-h或–hash:套件安装时列出标记;

-i:显示套件的相关信息;

-i<套件档>或–install<套件档>:安装指定的套件档;

-l:显示套件的文件列表;

-p<套件档>+:查询指定的RPM套件档;

-q:query 使用询问模式,当遇到任何问题时,rpm指令会先询问用户;

-R:显示套件的关联性信息;

-s:显示文件状态,本参数需配合"-l"参数使用;

-U<套件档>或–upgrade<套件档>:升级指定的套件档;

-v:显示指令执行过程;

-vv:详细显示指令执行过程,便于排错。

rpm -q xxx:列出xxx的安装信息,xxx是完全匹配软件名

rpm -qa|grep xxx: 列出所有包含xxx字段的软件信息。xxx是不完全匹配软件名。

rpm -ivh package.rpm 安装一个rpm包

rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告

rpm -U package.rpm 更新一个rpm包但不改变其配置文件

rpm -F package.rpm 更新一个确定已经安装的rpm包

rpm -e package_name.rpm 删除一个rpm包

rpm -e --nodeps package_name.rpm 无依赖删除一个rpm包

rpm -qa 显示系统中所有已经安装的rpm包

rpm -qa | grep httpd 显示所有名称中包含 “httpd” 字样的rpm包

rpm -qi package_name 获取一个已安装包的特殊信息

rpm -qg “System Environment/Daemons” 显示一个组件的rpm包

rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表

rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表

rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表

rpm -q package_name --whatprovides 显示一个rpm包所占的体积

rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l

rpm -q package_name --changelog 显示一个rpm包的修改历史

rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供

rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表

rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书

rpm --checksig package.rpm 确认一个rpm包的完整性

rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性

rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间

rpm -Va 检查系统中所有已安装的rpm包- 小心使用

rpm -Vp package.rpm 确认一个rpm包还未安装

rpm2cpio package.rpm | cpio --extract --make-directories bin 从一个rpm包运行可执行文件

rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 从一个rpm源码安装一个构建好的包

rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包

YUM 软件包升级器 - (Fedora, RedHat及类似系统)

yum install package_name 下载并安装一个rpm包

yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系

yum update package_name.rpm 更新当前系统中所有安装的rpm包

yum update package_name 更新一个rpm包

yum remove package_name 删除一个rpm包

yum list 列出当前系统中安装的所有包

yum search package_name 在rpm仓库中搜寻软件包

yum clean packages 清理rpm缓存删除下载的包

yum clean headers 删除所有头文件

yum clean all 删除所有缓存的包和头文件

DEB 包 (Debian, Ubuntu 以及类似系统)

dpkg -i package.deb 安装/更新一个 deb 包

dpkg -r package_name 从系统删除一个 deb 包

dpkg -l 显示系统中所有已经安装的 deb 包

dpkg -l | grep httpd 显示所有名称中包含 “httpd” 字样的deb包

dpkg -s package_name 获得已经安装在系统中一个特殊包的信息

dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表

dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表

dpkg -S /bin/ping 确认所给的文件由哪个deb包提供

APT 软件工具 (Debian, Ubuntu 以及类似系统)

apt-get install package_name 安装/更新一个 deb 包

apt-cdrom install package_name 从光盘安装/更新一个 deb 包

apt-get update 升级列表中的软件包

apt-get upgrade 升级所有已安装的软件

apt-get remove package_name 从系统删除一个deb包

apt-get check 确认依赖的软件仓库正确

apt-get clean 从下载的软件包中清理缓存

apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

3.5. yum

为此RedHat小红帽开发了yum安装方法,他可以彻底解决这个关联性的问题,很方便,只要配置两个文件即可安装,安装方法是:yum -y install ,yum并不是一中包,而是安装包的软件,yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记,yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题。

yum的命令形式一般是如下:yum [options] [command] [package …]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package …]是操作的对象。

查看仓库中现有的版本:yum list | grep ^mysql (查看库中现有的mysql版本)

去官网下载所需要的安装包:sudo yum localinstall platform-and-version-specific-package-name.rpm

更新yum源:yum -y update 如果可以解决则最好,否则可以通过如下的配置
linux系列---常见命令_第1张图片
配置yum源:“本地yum源”、“网络yum源”以及“ELEP源”

yum简介:

1.Yum(全称为 Yellowdog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。

2.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

3.本地yum源:光盘的rpm包集合

4.网络yum源:163或阿里云的yum源等,从网络下载

5.elep源:

    1.EPEL(Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.

    2.ScientificLinux是重新编译的Red Hat Enterprise Linux,由费米国家加速器实验室、欧洲核研究组织以及世界各地的大学和实验室共同开发。
  • 配置本地yum源:

    1.使用CentOS光盘作为本地yum源

    2.实体机:直接放入光盘

    3.VM虚拟机:虚拟机-可移动设备-CD/DVD-连接

    4.前期准备:

     mkdir    /mnt/cdrom   #创建用于挂载光盘的目录
    
     mount    /dev/cdrom /mnt/cdrom      #挂载
    
     umount   /mnt/cdrom        #卸载
    
     cp-avf    /mnt/cdrom   /yum         #若不想每次都放光盘,可复制光盘文件到本地硬盘yum目录下
    

    5.创建repo文件:

     cat>>/etc/yum.repos.d/CentOS-Local.repo<<-EOF
    
     [Local]
    
     name=LocalYum
    
     baseurl=file:///yum
    
     gpgcheck=1
    
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
     EOF
    

    linux系列---常见命令_第2张图片
    6.cat>>EOF与cat>>-EOF的区别:

       (1).如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除
    
       (2)可以解决由于脚本中的自然缩进产生的制表符
    
       (3)在使用cat<

    7.更新yum缓存:

       yum  clean  all        #清除缓存
    
       yum  makecache        #生成缓存
    
       yum  list                    #显示所有已经安装和可以安装的程序包
    
  • 配置网络yum源:

    1.备份原始yum源:

      cd   /etc/yum.repos.d
    
      mv  CentOS-Base.rpeo   CentOS-Base.repo.bak
    

    2.配置CentOS的DNS:

      vim   /etc/resolv.conf
    
      nameserver   114.114.114.114         //国内dns
    
      nameserver   8.8.8.8                        //国外dns
    

    3.下载yum文件,替代原始yum源:

      (1)网易yum源:
    
               wget  -O   /etc/yum.repos.d/CentOS-Base.repo    http://mirrors.163.com/.help/CentOS7-Base-163.repo
    
               yum   clean   all            //清除缓存
    
               yum   makecache       //生成缓存
    
               解析:wget -o,使用“-o”参数来指定一个文件名
    
      (2)阿里云yum源:
    
               wget   -O   /etc/yum.repos.d/CentOS-Base.repo    http://mirrors.aliyun.com/repo/Centos-7.repo
    
               yum   clean  all
    
               yum   makecache
    
  • 配置ELEP源:

    yum  -y   install   epel-release
    
    yum   clean  all
    
    yum   makecache
    
    是的,不用怀疑,就是这么简单!
    

3.6. cat

一、 简介

cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:
1.一次显示整个文件。
$ cat filename
2.从键盘创建一个文件。
$ cat > filename
注意: ” > “ 是重定向符号,使用后会直接将指向文件的原内容清空!慎用,使用时要注意是否已存在指向的文件
3.将几个文件合并为一个文件。
$cat file1 file2 > file
cat具体命令格式为 : cat [-AbeEnstTuv] [–help] [–version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
范例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。
范例:
把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -n linuxfile1 > linuxfile2
把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到 linuxfile3 里。
cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容

在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用?
EOF是“end of file”,表示文本结束符。
< (内容)
EOF
linux系列---常见命令_第3张图片
首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。

接下来,简单描述一下几种常见的使用方式及其作用:
1、cat< 2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
注意:输入时是没有’>'的。
3、cat>filename<

二、使用
看例子是最快的熟悉方法:

# cat << EOF > test.sh
> #!/bin/bash             #“shell脚本”
> #you Shell script writes here.
> EOF

结果:

引用# cat test.sh
#!/bin/bash
#you Shell script writes here.

可以看到,test.sh的内容就是cat生成的内容。

cat <<EOF >test.sh  内容 EOF  

—就是将内容写入test.sh,之前存在的内容会被覆盖掉。EOF可以换成其他符号比如EEE:cat <>test.sh 内容 EEE

三、其他写法
1、追加文件

# cat << EOF >> test.sh  内容  EOF

—将内容追加到 test.sh 的后面,不会覆盖掉原有的内容
2、换一种写法

# cat > test.sh << EOF 内容  EOF

3、EOF只是标识,不是固定的

# cat << HHH > iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH
这里的“HHH”就代替了“EOF”的功能。结果是相同的。
引用# cat iii.txt
sdlkfjksl
sdkjflk
asdlfj

4、非脚本中
如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识

# cat > iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D

结果:
引用# cat iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk

※关于“>”、“>>”、“<”、“<<”等的意思,可以查看bash的介绍。

你可能感兴趣的:(linux,运维,服务器)