Linux命令总集(超全)
介绍一下 Linux下所有命令的用法。
ab
Apache服务器的性能测试工具
是Apache的Web服务器的性能测试工具,它可以测试安装Web服务器每秒钟处理的和HTTP请求。
语法:ab(选项)(参数)
选项: -A 指定连接服务器的基本的认证凭据
-c 指定一次向服务器发出请求数
-C 添加cookie
-g 将测试结果输出为“gnuolot”文件
-h 显示帮助信息
-H 为请求追加一个额外的头
-i 使用“head”请求方式
-k 激活HTTP中的“keepAlive”特性
-n 指定测试会话使用的请求数
-p 指定包含数据的文件
-q 不显示百分比进度
-T 使用POST数据时,设置内容类型头
-v 设置详细模式等级
-w 以HTML表格方式打印结果
-x 以表格方式输出时,设置表格的属性
-X 使用指定的代理服务器发送请求
-y 以表格方式输出时,设置表格属性
参数: 主机 被测试主机
accept
指示打印系统接受发往指定目标打印机的打印任务
accept命令属于CUPS套件,用于指示打印系统接受发往指定目标打印机的打印任务。
语法:accept(选项)(参数)
选项: -E 当连接到服务器时强制加密
-U 指定连接服务器时使用的用户名
-h 指定连接服务器名和端口号
参数: 目标 指定打印机
alias
用来设置指令别名
alias命令一年过来设置指令别名,我们可以使用该命令可以将一些较长的命令进行简化。
使用alias时。用户必须使用单引号‘’将原来的命令引进来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入操作,若要每次登陆都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中
语法:alias(选项)(参数)
选项: -p 打印已经设置的命令别名
参数: 命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”
实例
# alias 新的命令=‘原命令 -选项/参数’
alias l=‘ls -lsh’
# 删除别名 unalias
unalias l
apachectl
Apache服务器前端控工具
apachectl命令是Apache的Web服务器前控制工具,用以启动、关闭和重新启动Web服务器进程。
语法:apachectl(参数)
参数: configtest: 检查设置文件中的语法是否正确
fullstatus: 显示服务生完整的状态信息
graceful: 重新启动Apache服务器,但不会中断原有的连接
help: 显示帮助信息
restart: 重新启动Apache服务器
start: 启动Apache服务器
status: 显示服务器摘要的状态信息
stop: 停止Apache服务器
apropos
在whatis数据库中查找字符串
apropos命令在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标准输出。
如果你不知道完成某个特定任务所需要命令的名称,可以使用一个关键字通过Linux apropos使用程序来搜索它。
该实用程序可以搜索关键字并且显示所有包含匹配项的man页面的简短描述。
另外,使用man实用程序和-k(关键词)选项,可以得到和用Linux apropos实用程序相同的结果(实际上是相同的命令)。
语法:apropos [-dalhvV] -e | -[W] -r] [-s section] [-m system[,...]] [-L locale] -C [file] keyword ...
选项: -d --debug 输出调试信息
-v --verbose 输出详细的警告信息
-r --regex 将每个keyword作为正则表达式解释。这是默认行为。每个keyword将匹配手册页和描述
-w --wildcard 将每个keyword作为shell样式的的通配符解释
-e --exact 每个keyword将精确匹配手册页名字和描述
-a --and 只显示匹配所有keyword的手册页和描述。默认显示匹配任何keyword的项
-l -long 不根据终端宽度缩减输出
-s section --section section:只查找指定的手册section
-m system[,...] 用于查找其他操作系统的手册页
-M path --manpath=path:指定从其他以冒号分隔的手册页层次查找。默认使用$MANPATH环境变量。这个选项覆盖了$MANPATH内容
-L locale --locale=locale:apropos调用函数setlocale来得到当前本地化信息,包括$LC_MESSAGE和$LANG。使用该选项提供一个locale字符串来临时更改本地化信息
-C file --config-file=file:使用这个用户配置文件而不是默认的~/.manpath
-h --help:打印帮助信息并退出
-V --version:打印版本信息并退出
返回值:返回0表示成功,1表示用法、语法或者配置文件错误,2表示操作错误,16表示没有找到匹配内容
apt-get
Debian Linux发行版中的APT软件包管理工具
apt-get命令是Debian LInux发行版中的APT软件包管理工具。
所有基于Debian的发行都使用这个包管理系统。
deb包可以和把应用的文件包在一起,大体就如同Windows上安装文件。
语法:apt-get(选项)(参数)
选项: -c 指定配置文件
参数: 管理指令 对APT软件包的管理操作
软件包 指定要操作的软件包
实例
# 使用apt-get命令的第一步就是引入必需的软件库,Debian的软件库也就是所有的Debian软件包的集合,它们存在互联网上的一些公共站点上。
# 把它们的地址加入, apt-get 就能搜索到我们想要的软件
# /etc/apt/sources.list 就是存放这些地址列表的配置文件,其格式如下:
# deb web或[ftp地址] [发行版名字] main/contrib.non-[free]
# 我们常用的Ubuntu就是一个基于Debian的发行,我们使用 apt-get 命令获取这个列表,以下是我整理的一些常用命令
# 在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令,此外需要定期运行这一命令确保软件列表是最新的
apt-get update
# 安装一个新软件包
apt-get install packagename
# 卸载一个已安装的软件包 保留配置文件
apt-get remove packagename
# 卸载一个已安装的软件包 删除配置文件
apt-get -purge remove packagename
# 会把已装或以卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
apt-get autoclean apt
# 这个命令会把安装的软件的备份也删除,不过这样会影响软件使用
apt-get clean
# 更新所有已安装的软件包
apt-get upgrade
# 将系统升级到新版本
apt-get dist-upgrade
# 定期运行这个命令来清除那些已卸载的软件包的.deb文件。通过这种方式,可以释放大量磁盘空间。如果需求迫切,可以使用 apt-get clean 以释放更多的空间。这个命令会将已安装软件包裹的.deb文件一并删除。大多数情况下不会再用到这些.debs文件,因此如果为磁盘空间不足而焦头烂额,这个办法也许值得一试
apt-get autoclean
apt-key
管理Debian Linux系统中的软件包密钥
apt-key命令用于管理Debian LInux系统中软件包密钥。
每个发布的deb包,都通过密钥认证的,apt-key用来管理密钥
语法:apt-key(参数)
参数: 操作指令 APT密钥操作指令
实例
apt-key list
apt-sortpkgs
Debian LInux下对软件包索引文件进行排序的工具
apt-sortpkgs命令是Debian Linux下对软件包索引文件进行排序的简单工具
语法:apt-sortdpkgs(选项)(参数)
选项: -s 使用源索引字段排序
-h 显示帮助信息
参数: 指定要排序的包含debian包信息的索引文件
aptitude
Debian LInux系统中软件包管理工具
aptitude命令与apt-get命令一样,都是Debian LInux及其衍生系统中功能及其强大的包管理工具。
与apt-get不同的是,aptitude在处理依赖问题上更佳一些。
举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包,这样,系统中不会残留无用的包,整个系统更干净。
它通过文本操作菜单和命令两种方式管理软件包。
语法:aptitude(选项)(参数)
选项: -h 显示帮助信息
-d 仅下载软件包,不执行安装操作
-P 每一步操作都要确认
-y 所有问题都回答“yes”
-v 显示附加信息
-u 启动时下载新的软件包列表
参数: 操作命令 用户管理软件包的操作命令
实例
aptitude update
arch
显示当前主机的硬件架构类型
arch命令用于显示当前主机的硬件架构类型。
arch命令等同于name -m在当前的Linux系统下,arch命令输出结果有:i386,i486,i586,alpha,sparc,arm,m68k,mips,ppc,i686等
语法:arch
实例
arch
x86_64
arj
用于创建和管理.arj压缩包
arj命令是“.arg”格式的压缩文件的管理器,用于创建和管理“.arj”压缩包。
语法:arj(参数)
参数: 操作指令 对".arj"压缩包执行的操作命令
压缩包名称 指定要操作的arj压缩包名称
arp
显示和修改IP到MAC转换表
arp命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的左右条目,删除指定的条目或者添加静态的ip地址与MAC地址对于关系
语法:arp(选项)(参数)
选项: -a<主机> 指定arp缓冲区的所有条目
-H<地址类型> 指定arp指令使用的地址类型
-d<主机> 从arp缓冲区删除指定主机的arp条目
-D 使用指定接口的硬件地址
-e 以LInux的显示风格显示arp缓冲区中的条目
-i<接口> 指定要操作arp缓冲区的网络接口
-s<主机><MAC地址> 设置指定的主机的IP地址与MAC地址的静态映射
-n 以数字方式显示arp缓冲区中的条目
-v 显示详细的arp缓冲区条目,包括缓冲区条目的统计信息
-f<文件> 设置主机的IP地址与MAC地址的静态映射
参数: 查询arp缓冲区中指定主机的arp条目
arpd
收集免费ARP信息
arpd命令是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播
语法:arpf(选项)(参数)
选项: -l 将arp数据库输出到标准输出设备显示退出
-f 指定读取和加载arpd数据库的文本文件,文件的格式与“-l输出信息类似”
-b 指定arpd数据库文件,默认的位置为“/var/lib/arpd.db”
-a 指定目标被认为死掉前查询的次数
-k 禁止通过内核发送广播查询
-n 设定缓冲失效时间
参数: 网络接口 指定网络接口
实例
# 启动qrpd进程
arpd -b /var/tmp/arpd.db
# 运行一段时间后,查看结果
arpd -l -b /var/tmp/arpd.db
arping
通过发送ARP协议文测试网络
arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包,通过ping命令检查设备上的硬件地址。能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息。功能类似于ping
语法(选项)(参数)
选项: -b 用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址
-q quiet output不显示任何信息
-f 表示在接收到第一个响应报文后就退出
-w timeout:设定一个超时时间,单位是秒。如果到了指定时间,arping还没到完全收到响应则退出
-c count:表示发送指定数量的ARP请求数据包后就停止。如果指定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止
-s source:设定arping发送的arp数据包中的SPA字段的值。如果为空,则按下面处理如果是DAD模式(冲突地址探测),则设置为0.0.0.0,如果是Unsolicitel ARP模式(Gratutious ARP)则设置为目标地址,否则从路由表得出
-I interface:设置ping使用的网络接口
参数: 目的主机 指定发送的ARP报文的目的主机
arptables
管理ARP包过滤规则表
arptables命令用来设置、维护和检查LInux内核中的arp包过滤规则表
语法:arptables(选项)
选项: -A 向规则链中追加规则
-D 从指定的链中删除规则
-l 向规则中插入一条新的规则
-R 替换指定规则
-P 设置规则链的默认策略
-F 刷新指定规则链,将其中的所有规则链删除,但是规则链的默认策略
-Z 将规则链计数器清零
-L 显示规则链中的规则列表
-X 删除指定的空用户自定义规则链
-h 显示指令帮助信息
-j 指定满足规则的添加时的目标
-s 指定要匹配ARP包的源ip地址
-d 指定要匹配ARP包的目的的IP地址
arpwatch
监听网络上ARP的记录
arpwatch命令用来监听网络上arp的记录
语法:arpwatch(选项)
选项: -d 启动排错模式
-f<记录文件> 设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat
-i<接口> 指定监听ARP的接口,预设的接口为eth0
-r<记录文件> 从指定的文件中读取ARP记录,而不是从网络上监听
as
汇编语言编译器
as命令GNU组织推出的一款汇编语言编译器,它支持多种不同类型的处理器
语法:as(选项)(参数)
选项: -ac 忽略失败条件
-ad 忽略调试指令
-ah 包括高级源
-al 包括装配
-am 包括宏扩展
-an 忽略形式处理
-as 包括符号
=file 设置列出文件的名字
--alternate 以交互宏模式开始
-f 跳过空白和注释预处理
-g 产生调试信息
-J 对于有符号溢出不显示警告信息
-L 在符号表中保留本地符号
-o 指定要生成的目标文件
--statistice 打印汇编所用的最大空间和总时间
参数: 汇编文件 指定要汇编的源文件
at
在指定时间执行一个任务
at命令用于在指定时间执行命令。at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh::mm(小时:分钟)式的时间指定。假如该时间已经过去,那么就放在第二天执行。当然也可以使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午四点)等比较模糊的词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定日期必须跟在指定时间的后面。
上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟),hours(小时),days(天),week(星期)。count是时间的数量,究竟是几天还是几小时,等等。更有一种计时方法就是直接使用today(今天),tomorrow(明天)来指定完成命令的时间。
语法:at(选项)(参数)
选项: -f 指定包含具体指令的任务文件
-q 指定新任务的队列名称
-l 显示待执行任务的列表
-d 删除指定的待执行任务
-m 任务执行完成后向用户发送E-mail
参数: 日期时间 指定任务执行的日期时间
atop
监控Linux系统资源与进程的工具
【非内部程序,需要安装】它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU,内存,磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可以获取相应的atop日志文件进行分析。atop是一款开源软件,我们可以从这里获得其源码和rpm安装包。
语法:atop(选项)(参数)
说明: ATOP列 该列显示了主机名、信息采样日期和时间
PRC列 该列显示进程整体运行情况
·sys、usr字段分别指示进程在内核态和用户态的运行时间
atq
列出当前用户的at人物列表
atq命令显示系统中待执行的任务列表,也就是列出当前用户的at任务列表
语法(选项)
选项: -V 显示版本号
-q 查询指定队列的任务
实例
at now + 10 minutes
at> echo 1111
at> <eot>
job 3 at Fri Apr 26 12:56:00 2013
atq
3 Fri Apr 26 12:56:00 2013 a root
atrm
删除待执行任务队列中的指定任务
atrm命令用于删除待执行任务队列中的指定任务
语法:atrm(选项)(参数)
选项: -V 显示版本号
参数: 任务号 指定待执行队列中要删除的任务
实例
stq #显示当前已经设置的任务
2 Mom May 17 08:00:00 2010 a root
1 Sat May 15 17:00:00 2010 a root
atrm 2 #删除任务2
awk
文本和数据进行处理的编程语言
awk是一种编程语言,用于在LInux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件、或其他命令的输出。
它支持用户自定义函数和动态正则表达式等先进功能,是LInux/unix下的一个强大的编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk有很多内建的功能,比如数组、函数等,这是它和c语言的相同之处,灵活性是awk最大的优势。
语法:awk [options] 'script' var=value file(s)
awk [options] -f scriptfile var=value file(s)
选项: **-F fs **fs指定输入分隔符,fs可以是字符串或正则表达式,如-F
**-v var=value **复制一个用户定义变量,将外部变量传递给wak
**-f scripfile **从脚本文件中读取awk命令
**-m[fr] val **对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版wak的扩展功能,在标准awk中不适用。
实例
#awk的模式和操作
#awk 脚本是由模式和操作组成的
#模式
#模式可以是一下任意一个
# /正则表达式/: 使用通配符的扩展集
# 关系表达式: 使用运算符进行操作,可以是字符串或数字的比较测试
# 模式匹配表达式: 用运算符~(匹配)和~!(不匹配)
# BEGIN语句块、pattern语句块、END语句块: 参见awk的工作原理
#操作
#操作又一个或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内、主要部分是:
# 变量或数组赋值
# 输出命令
# 内置函数
# 控制流语句
#awk脚本的基本结结构
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
#一个wak脚本通常有:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。
#任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中,例如:
awk 'BEGIN{ i=0 } { i++ } END{ print i }' filename
awk "BEGIN{ i=0 } { i++ } END{ print i }" filename
#awk的工作原理
awk ‘BEGIN{ commands } pattern{ commands } END{ commands }'
# 第一步: 执行BEGIN{ commands }语句块中的语句
# 第二步: 从文件或者标准输入(stdin)读取一行,然后执行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,知道文件全部被读取完毕
# 第三步: 当读至输入流末尾时,执行恩典{ commands }语句块
#BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印书粗话表格的表头等语句通常可以写在BEGIN语句块中。
#END语句块在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。
#pattern语句块中通用命令是最重要的部分,它也是可选的。如果没有提供pattern语句块,则默认执行{ print },即打印每一个读取到的行,awk读取的每一行都会执行该语句块。
echo -e "A line 1nA line 2" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'
Start
A line 1
A line 2
End
#当使用不带参数的print时,它就打印当前行,当print的参数是以逗号进行分隔时,打印时则以空格作为定界符。在awk的print语句块中双引号是被当作拼接符使用,例如:
echo | awk '{ var="v1"; var2="v2"; var3="v3"; print var1,var2,var3;}'
v1 v2 v3
#双引号拼接使用
echo | awk '{ var1="v1"; var2="v2"; var3="v3"; print var1"="var2"="var3; }'
v1=v2=v3
#{}类似一个循环体,会对文件中的每一行进行迭代,通常变量初始化语句(如:i0)以及打印文件头部的语句放入BEGIN语句块中,将打印的结果等语句放在END语句块中。
#awk内置变量(预定义变量)
#说明:[A][N][P][G]表示第一个支持变量的工具
#[A]=awk、[N]=nawk、[P]=POSIXawk、[G]=gawk
**$n** #当前记录的第n个字段、比如n为1表示第一个字段,n为2表示第二个字段
**$O** #这个变量包含执行过程中当前行的文本内容
[N] **ARGC** #命令行参数的目录
[G] **ARGIND** #命令行中当前文件的位置(从0开始算)
[N] **ARGV** #包含命令行参数的数组
[G] **CONVFMT** #主子转换格式(默认值为%.6g)
[P] **ENVIRON** #环境变量关联数组
[N] **ERRNO** #最后一个系统错误的描述
[G] **FIELDWIDTHS** #字段宽度列表(用空格键分隔)
[A] **FILENAME** #当前输入文件的名
[P] **FNR** #同NR、但相对于当前文件
[A] **FS** #字段分隔符(默认是任何空格)
[G] **IGNORECASE** #如果为真,则进行忽略大小写的匹配
[A] **NF** #表示字段数,在执行过程中对应于当前的字段数
[A] **NR** #表示记录数,在执行过程中对应于当前的行号
[A] **OFMT** #数字的输出格式(默认值是%.6g)
[A] **OFS** #输出字段分隔符(默认值是一个空格)
[A] **ORS** #输出记录分隔符(默认值是一个换行符)
[A] **RS** #记录分隔符(默认是一个换行符)
[N] **RSTART** #由match函数所匹配的字符串的第一个位置
[N] **TLENGTH** #由match函数所匹配的字符串的长度
[N] **SUBSEP** #数组下标分隔符
小结
这个系列每天更新一个命令(还在更新中),如果有觉得缺少的命令可以留言或者评论,博主会添加上去,谢谢大家。