Linux常用命令

Linux自带命令

pwd

         显示当前路径。

mkdir

         新建目录。

         mkdir [options] 目录名;

         [options]主要参数

         -m, --mode=模式:设定权限,与chmod类似。

         -p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。

         -v, --verbose:每次创建新目录都显示信息。

         --version:显示版本信息后离开

touch

         新建文件。

         touch [选项]... 文件...

         命令参数:

         -a   或--time=atime或--time=access或--time=use  只更改存取时间。

         -c   或--no-create  不建立任何文档。

         -d  使用指定的日期时间,而非现在的时间。

         -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

         -m   或--time=mtime或--time=modify  只更改变动时间。

         -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

         -t  使用指定的日期时间,而非现在的时间。

vi

         vi编辑器是所有Unix及Linux系统下标准的编辑器。

         内容太多,大家移步http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html

cat

         cat主要有三大功能:

         1.一次显示整个文件。$ cat filename

         2.从键盘创建一个文件。$ cat > filename 

   只能创建新文件,不能编辑已有文件.

         3.将几个文件合并为一个文件: $cat file1 file2 > file

参数:

         -n 或 --number 由 1 开始对所有输出的行数编号

         -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号

         -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

         -v 或 --show-nonprinting

find

         用于在文件树种查找文件,并作出相应的处理。

         find pathname -options [-print -exec -ok ...]

         参数:

         pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

         -print: find命令将匹配的文件输出到标准输出。

         -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格。

         -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

         -name   按照文件名查找文件。

         -perm   按照文件权限来查找文件。

         -prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用  -depth选项,那么-prune将被find命令忽略。

         -user   按照文件属主来查找文件。

         -group  按照文件所属的组来查找文件。

         -mtime -n +n  按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

         -nogroup  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

         -nouser   查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

         -newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。

         -type  查找某一类型的文件,诸如:

         b - 块设备文件。

         d - 目录。

         c - 字符设备文件。

         p - 管道文件。

         l - 符号链接文件。

         f - 普通文件。

         -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

         -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

         -mount:在查找文件时不跨越文件系统mount点。

         -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

         -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

         -amin n   查找系统中最后N分钟访问的文件

         -atime n  查找系统中最后n*24小时访问的文件

         -cmin n   查找系统中最后N分钟被改变文件状态的文件

         -ctime n  查找系统中最后n*24小时被改变文件状态的文件

         -mmin n   查找系统中最后N分钟被改变文件数据的文件

         -mtime n  查找系统中最后n*24小时被改变文件数据的文件

         参见:http://www.cnblogs.com/peida/archive/2012/11/13/2767374.html

dig *

dig 命令主要用来做域名解析,类似windows下面的nslookup。

用法:

dig @dnsserver name querytype

dnsserver  指定DNS解析的服务器地址,默认使用/etc/resolv.conf配置的DNS服务器进行解析;

name         需要进行解析的域名;

querytype 定义需要查询的记录类型,默认查询A记录;

 

         可以指定用那个dns进行解析,带上 @x.x.x.x (x.x.x.x 表示指定的DNS) 比如:

 

         Dig命令可以用来追踪解析的完整的过程,带上参数:+trace

 

         可以通过参数short 查看简单的解析记录:

 

nslookup*

这个是windows下的域名解析:

 

指定DNS服务器:nslookup Domain DNS

 

ipconfig

一般来说,我们用ipconfig来看配置的IP,其实,ipconfig还可以用来清空本地的DNS缓存,命令: ipconfig /flushdns ,用在客户域名切换之后本地清DNS缓存:

 

mtr

         类似ping traceroute,测试网络的连通性。

 

         比较常用的参数:

         -n 不对IP进行解析,建议使用,可以提高测试速度;

         -i  发包间隔时间,默认为1秒钟;

         -c 指定发包的个数,和-r参数配合使用;

         -s 指定发包的包大小,默认好像64bit;

         -r 生成报告的形式。

        

curl*

curl一般用来测试某条URL的请求情况,默认是不支持断点续传。

测试URL:http://dnf.uuu9.com/70c/images/forum/201205/21/1534008f4fo8l754lo844i.gif

 

         比较常见的参数有:

         -0 (这是数字的0)默认的话,curl发的是HTTP/1.1的请求,通过 -0 指令,可以指定使用HTTP/1.0的发送请求;

         -o (小写字母o) 默认情况下,curl会把整个内容显示在终端(也就是屏幕)上,可以通过-o将内容保存在某个文件下,比较常见的是指定到/dev/null ,类似一个垃圾箱;

         -O (大写的O)会根据请求的文件名在本地保存;

         -I 只输出响应头部;

         -x 可以指定使用代理的模式,指定通过哪个IP进行请求;eg  -x 127.0.0.1:80,需要指定端口信息,否则会报错;如果设定了-x,则curl请求会是代理模式,如果没有-x,则是正常的用户请求,两者存在一定的区别。

         带有-x参数:

 

         未带-x参数:

 

         -e 用来设定Referer;

         -A 用来设定UA头部;

         -H 可以用来设定请求的头部;

         --compressed 默认情况下,curl发送的是非压缩的请求,有时候需要测试压缩的请求,此时可以使用- -compressed参数 来发送压缩的请求;

         -r 在发送请求的时候,可以用来指定发送range请求;

         -u 通过-u 指定用户名和密码,可以用来下载ftp上的内容;

(这条测试命令可以在2012-7-30号前运行成功:curl -O -u '9aola:*Uo3$Ka2' ftp://ftp.wslog.chinanetcenter.com/www.9aoya.com/2012-07-17-0000-2330_www.9aoya.com.cn.log.gz)

 

wget*

wget是一个从网络上自动下载文件的自由工具,常见的用法:

 

默认的话,wget会根据URL中的文件名保存,多次下载会在后续保存的文件名中记录数字,类似a.jpg  a.jpg.1 a.jpg.2

命令参数介绍:

-o fileName将响应输出信息保存在指定的文件中,有同名文件时,会覆盖掉;

-a fileName将响应输出信息追加到指定文件的末尾,指定文件不存在的话,会新建文件;

-O fileName将下载的文件根据指定的文件名保存;

-c 支持断点续传;

-t num 指定断点续传重试的次数,默认20次;

-S 显示响应头部;

--referer=url 指定请求来源,类似curl的-e选项;

--header= header-line 可以用来设定请求头部,类似URL的-H;

-e  http-proxy 类似curl的-x参数,指定到具体的服务器请求内容;

当然,使用wget也可以下载ftp的资源,类似下面的命令:

wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL

 

 

pollurl

         类似curl及wget功能,请求某条URL并将响应头部信息存储在pollUrl.tmp文件下;运维比较常用的命令,了解即可。

Usage: pollurl [-DRavsrVHe][-p port][-h remote host][-u unit][-o timeout value][-T temp file][-P post data]url|mgr:*

Options:

[--append_header|--header]="head1:value1\r\nhead2:value2 or file name\r\n"

[--http_version|--http]="1.0|1.1"   http version in request, default is 1.0

-D     Display received message on the screen

-s      append header:Cdn-Src-Ip: localhost

-R     Redirect to the new url

-a      Compute the time as a task

-v      --verbose Display the verbose messages

-r      Fetch sub urls

-o      the max timeout value

-V     --version Display software version

-H     --help Help!

-T      temp file  the pathname in which you get the message from the server saves

-m    --method GET|HEAD|QUERY|POST|PURGE default method is GET,use -m POST=data can post data to the server

-e      Exclude the urls not in this domain,if you use this,you must also use -r option

-h host      Retrieve URL from cache on hostname.  Default is localhost.

-p port      Port number of cache.  Default is 80. if the target url starts with https,the default port is 443

-u m|s      The test result displayed in unit (ms) or (s).

-P    use POST method to send datas.use -P data can post data to the server

url|mgr:*          the target url to be fetched or the message send to the squid server

 

tcpflow*

tcpflow用来抓包的工具,常见用法如下(配合grep命令):

tcpflow [-chpsv] [-b max_bytes] [-d debug_level] [-f max_fds] [-i iface] [-r file] [expression]

常见参数:

-c 输出到终端;默认情况tcpflow会把抓包的数据保存到文件中,生成很多相关的文件。

-i 指定抓包使用的接口(通过ifconfig –a 可以显示所有接口),如果没有指定,系统一般会使用lo端口;

-p 不使用promiscuous模式;

-r file 从file文件中读取数据内容;

案例:

tcpflow -cp |grep --color images/forum/201205/21/1534008f4fo8l754lo844i.gif -6

 

tcpdump

tcpdump是另外一个用来抓包的工具,获取的包大多没有解码,大部分以十六进制形式直接打印输出,常见用法:

tcpdump -nv host 120.036.156.162 |more

 

         参考文档:http://network.51cto.com/art/200512/15473.htm

wget http://dnf.uuu9.com/70c/images/forum/201205/21/1534008f4fo8l754lo844i.gif --referer=http://www.baidu.com/ -e http-proxy=59.57.15.219

md5sum

计算文件的md5值。

md5sum 91rbtest.sh

433bf18f45c0e232323eb90ac8aa07b5  91rbtest.sh

foreach*

         foreach一般用来多次执行某个命令。

 

         -c 指定循环的次数;

         -s 指定分隔符,默认是’\t’;

         -w 指定指定命令的进程数;

         -m 指定最大进程数为没有限制,一般很少用;

         案例:

        

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和正则表达式配合使用用来对特定信息进行过滤,以便进行准确的分析。

         常用参数:

         -E 使用扩展正则表达式,功能同egrep;

         -F 不使用正则表达式,功能同fgrep;

         -P 使用perl的正则表达式规则;

         -i 忽略大小写;

         -o 仅打印匹配的部分;

         -n 显示行号;

         -l 显示匹配的文件名称,一般用户搜寻哪个文件匹配到了关键字;

         -A 显示匹配行的后的行数;

         -B 显示匹配行前的行数;

         -v 显示不匹配的内容;

         关于正则表达式的对比,可以参考:

         http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html

sort

         sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

         常见参数:

         -f 忽略大小写;

         -n sort默认会按照字符排序,所以可能出现10比2小的情况,改变这种情况可以用-n;

         -r 默认的排序方式是升序,-r可以改变为降序;

         -o 将排序后的内容存入指定的文件,默认为输出到标准输出;

         -k 指定使用哪一列数据进行排序,默认是第一列;

         关于sort的使用,参见:

         http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html

uniq

         uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

         选项与参数:

         -c   在行首显示该行在输入文件中出现的次数

         -d   显示重复出现的行的一个副本,不显示没有重复的行

         -f    比较时跳过前n列

         -i    比较行时忽略字符大小写

         -s n  忽略每行的前n个字符

         -u   仅显示没有重复出现的行

         -w n 对每行第n个字符以后的内容不做比较

         参见:

         http://www.cnblogs.com/nerxious/archive/2013/01/09/2853534.html

crontab

         计划任务列表,可以设置Linux循环运行的例行性计划任务。

        

         用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

         minute   hour   day   month   week   command

         其中:

         minute: 表示分钟,可以是从0到59之间的任何整数。

         hour:表示小时,可以是从0到23之间的任何整数。

         day:表示日期,可以是从1到31之间的任何整数。

         month:表示月份,可以是从1到12之间的任何整数。

         week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

         command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

         在以上各个字段中,还可以使用以下特殊字符

         星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

         逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

         中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

         正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

         参见:http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

man

         man是linux系统下的帮助系统,对某个命令不熟悉的时候,可以man一下,输出相关的帮助信息。

history

         查看命令行历史记录,显示机器上记录到的操作记录,记录的历史命令行数通过环境变量$HISTSIZE设置,然后可以通过“!nums”这个命令执行某个历史命令。

Linux常见快捷键

ctrl+a  移动到命令行首

ctrl+e  移动到命令行尾

ctrl+u  从当前光标所在位置删除到命令行首

ctrl+w  从当前光标所在位置删除到前一个空格位置

cd -    快速返回之前的目录,相当于浏览器的后退功能

!!      执行上一次命令

!vars   执行最近一次以vars开头的命令

!nums  执行历史操作记录当中的第几个命令

posted @ 2017-03-29 16:21  PHP王者之路  阅读(311)  评论(0编辑  收藏  举报