文章目录-命令解释一
- 前言
- as
- expr
- gcc
- gcov
- gdb
- indent
- ld
- ldconfig
- ldd
- make
- mktemp
- nm
- objdump
- perl
- php
- protoize
- unprotoize
- readelf
- test
- awk
- bc
- cal=
- cksum=
- md5sum=
- sum
- clear=
- suspend=
- reset=
- consoletype
- date=
- dircolors
- gpm
- hostid
- info=
- man=
- mesg
- wall
- write
- mtools
- mtoolstest
- rsync=
- sleep
- stty
- talk
- tempfile
- vdfuse
- whatis
- xargs=
- yes=
- accept
- cancel
- cupsdisable
- cupsenable
- eject
- reject
- lp
- lpr
- lpadmin
- lpc
- lpq
- lprm
- lpstat
- apt-cache
- apt-get=
- apt-get dist-upgrade
- apt-get autoclean
- aptitude
- apt-key
- apt-sortpkgs
- chkconfig=
- dpkg
- dpkg-deb
- dpkg-divert
- dpkg-preconfigure
- git=
- gitview
- locate=
- dpkg-query
- dpkg-reconfigure
- dpkg-split
- dpkg-statoverride
- dpkg-trigger
- ntsysv
- patch=
- reconf
- rpm==============
- dnf====================
- rpm2.cpio
- rpmbuild
- rpmdb
- rpmquery
- rpmsign
- rpmverify
- yum========================
- arpd
- arptables
- ip===================
- ip6tables
- ip6tables-restore
- ip6tables-save
- iptables=================
- iptables-restore
- iptables-save
- iptstate
- ufw
- iptraf
- lnstat
- nstat/rtacct
- pfctl
- tcpdump===================
- nmap========================
- ssh======================
- ssh-add========================
- ssh-agent================
- ssh-copy-id
- sshd============================
- ssh-keygen====================
- ssh-keyscan
- arp===============
- arpwatch===================
- dig==========================
- nslookup======================
- host
- iperf
- nc/netcat====================
- tracepath
- traceroute==================
- route==================
- testparm
- netstat================
- iftop===================
- ss==============
- ping==================
- arping===========================
- ab==============
- apachectl
- exportfs
- htdigest
- htpasswd
- mysql===================
- mysqladmin
- mysqldump
- mysqlimport
- mysqlshow
- nfsstat
- sendmail================
- showmount
- smbclient
- smbpasswd
- squid=====================
- squidclient===============
- rdesktop
- dhclient
- dnsdomainname
- domainname
- nisdomainname
- ypdomainname
- ethtool=================
- hostname
- ifcfg
- ifconfig=================
- ifdown
- ifup
- mii-tool
- usermetctl
- curl===================
- ipcale
- jwhois
- whois=================
- lynx
- clinks
- mailq
- mailstat
- elm
- pine
- rexec
- securetcpip
- rlogin
- rsh
- telnet==================
- wget===============
- cd==================
- cp==============
- cpio
- rcp
- scp
- install
- ls===============
- mkdir=========
- mv
- popd
- pushd
- dirs
- pwd=============
- rm=================
- rmdir====================
- mdir================
- dump
- restore
- 总结
前言
<font color=#999AAA
as
GNU阻止推出一款汇编语言编译器,它支持多种不同类型的处理器.用man as查看详细信息.
expr
一款表达式计算工具, 使用它完成表达式的求值操作. 用expr --help查看帮助信息.
gcc
GNU推出的基于C/C++的编译器, 是开放源代码领域应用最广泛的编译器, 具有功能强大, 编译代码支持性能优化等特点. 现在很多程序员都应用GCC. 目前, GCC可以用来编译C/C++,PORTRAN,JAVA,OBJC,ADA,MIPS,ARM等语言的程序, 可根据需要选择安装支持的语言. 用gcc --help查看帮助信息.
GCC提供的编译选项有100多种, 支持WINDOWS,LINUX,MAC,BSD等多种平台.常用参数有以下几种:
gcc -o filename 源码文件: 使用指定的文件名保存编译之后的二进制代码, 如gcc -o hello hello.c
-O : 对程序进行优化编译,链接,编译链接时的速度慢
-O2 : 提供比-O更好的编译,链接,编译链接按时的速度比-O慢
-S : 生成一个包含汇编指令的文件, 扩展名为.s
-ggdb: 产生符号调试工具 (GDB) 所必需的符号, 如gcc-ggdb -o hello hello.c
-c : 编译但不链接
-static : 不使用动态库加载, 使用静态库.
gcov
测试程序的代码覆盖率的工具.
gdb
GNU的gcc开发套件中功能强大的程序调试器. GDB中的命令固然很多, 但我们只需掌握其中十个左右的命令, 就大致可以完成日常的基本的程序调试工作. 在LINUX系统中用C语言进行编程时, 通常用GDB作为调试器对编写的程序进行测试. 也是路由器安全分析中的必须工具之一.
gdb -q helloX86
print var 打印变量的值
print /x $<reg> 打印寄存器的值
x/NT A 检查内存, 其中N表示要显示的单位数, T表示要显示的数据类型, A表示绝对地址或符号名称(如main)
run <args> 在GDB内使用给定的参数启动需要调试的程序
disassmeble <function> 生成function的汇编代码, 例如: disass main及反编译main.
disassmeble mem 生成mem地址的汇编代码
stepi 或 si 执行一条机器指令
next 或 n 执行一个函数
b <function> 在function处设置一个断点, 例如b*0x08048419设断点.
info b 显示有关断点的信息
delete b 移除一个断点
bc 回溯命令, 显示堆栈的名称
info reg 显示有关当前寄存器状态的信息
indent
可辨识C的原始代码文件, 并加以格式化, 以方便程序员阅读, 修改等操作. 例如可以用indent命令将C语言源文件"test.c"中所有的sizeof后面添加一个空格.
ld
GNU的连接器, 将目标文件连接为可执行程序.
ldconfig
动态链接库管理命令. 在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保有已排好序的动态链接库名字列表, 为了让动态链接库为系统所共享, 需运行动态链接库的管理命令ldconfig, 此执行程序存放在/sbin目录下. 通常在系统启动时运行, 而当用户安装了一个新的动态链接库时, 就需要手工运行这个命令.
ldd
显示程序或者库文件所依赖的共享库列表. ldd不是一个可执行程序, 而只是一个shell脚本.
make
GNU的工程化编译工具, 用于编译众多相互关联的源代码文件, 以实现工程化的关联, 提高开发效率. 无论是在linux还是在Unix环境中, 不管是自己进行项目开发还是安装应用软件, 都经常要用到make或make install. 利用make工具, 可以将大型的开发项目分解成为多个更易于管理的模块, 对于一个包括几百个源文件的应用程序, 使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系. 而且如此多的源文件, 如果每次都要键入gcc命令进行编译的话, 那对程序员 来说 简直是一场灾难.
mktemp
创建临时文件 (例如/tmp/tmp.SqNjtJNit等等) 供Shell脚本使用, 也可用-d参数创建一个目录而非文件.
nm
显示二进制目标文件(通常是库文件和可执行文件) 的符号表.
objdump
是用查看目标文件或者可执行的目标文件的构成的gcc工具.
perl
Perl语言解释器, 负责解释执行perl脚本程序. 也可用于字符串替换.将十六进制代码替换为空 (即删除) : perl -pe 's/\x7b\x22\x63\x6f\x6e\x74\x65\x6e\x74\x5f\x74\x79\x70\x65\//g' test.txt > test1.txt
php
流行的Web开发语言PHP的命令行接口, 可以使用PHP语言开发基于命令行的系统管理脚本程序.
protoize
GCC套件, 用于为C语言源代码文件添加函数原型, 将GNU-C代码转换为ANSI-C代码.
unprotoize
GCC套件, 用于删除C语言源代码文件中的函数原型.
readelf
显示一个或者多个elf格式文件的信息, 可以通过它的选项来控制显示这些信息. 这里的elf-file(s)就表示那些被检查的文件. 可以支持32位, 64位的elf格式文件, 也支持包含elf文件的文档 (这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的"静态库"文件).
test
Shell环境中测试条件表达式的实用工具, 用于判断表达式, 字符串, 整数, 文件.
awk
linux/unix下的文本处理工具. 数据可以来自标准输入(stdin),一个或多个文件, 或其它命令的输出. 它支持用户自定义函数和动态正则表达式等先进功能, 是linux/unix下的一个强大编程工具. 它在命令行中使用, 但更多的是作为脚本来使用. awk有很多内建的功能, 比如数组,函数等, 这是它和C语言的相同之处, 灵活性是awk最大的优势.可以以命令行方式, SHELL脚本方式调用awk,也可以将所有的awk命令插入一个单独文件, 然后再调用.Awk在处理有规律的文本时比sed更加方便.
bc
一种支持任意精度的交互执行的计算器. bash内置了对整数四则运算的支持, 但是并不支持浮点运算, 而bc命令可以很方便的进行浮点运算, 当然整数运算也不再话下. 推出计算器用quit.
cal=
显示当前日历, 或者指定日期的日历. 用cal -y 2016 或者 cal 2016命令可显示2016年的整年日历, 要生成日历的话可以用这个命令.显示2018年8月的日历:cal 8 2018 (月份必须写在前面)
cksum=
检查文件的CRC是否正确, 确保文件从一个系统传输到另一个系统的过程中不被损坏. 这种方法要求校验和在源系统中被计算出来, 在目的系统中又被计算一次,两个数字进行比较, 如果校验和相等, 则该文件被认为是正确传输了. 注意: CRC是指一种排错检查方法, 即循环冗余校验法. 指定文件交由cksum命令进行校验后, 会返回校验结果供用户核对文件是否正确无误. 若不指定任何文件名称或是所给予的文件为"-", 则cksum命令会从标准输入设备中读取数据. 如果文件中有任何字符被修改, 都将改变计算后CRC校验码的值.
md5sum=
采用MD5报文摘要算法(128位) 计算和检查文件的校验和. 一般来说, 安装了Linux后, 就会有md5sum这个工具, 直接在命令行终端直接运行. MD5算法常常被用来验证网络文件传输的完整性, 防止文件被人篡改. MD5全称为报文摘要算法 (Message-Digest Algorithm 5), 此算法对任意长度的信息逐位进行计算, 产生一个二进制长度位128位(十六进制长度就是32位) 的 "指纹" (或称 "报文摘要"), 不同的文件产生相同的报文摘要的可能性是非常非常之小的.
sum
计算并显示指定文件的校验和与文件所占用的磁盘块数.
clear=
清除当前屏幕终端上的任何信息. 利用history命令依然可以查到以往的全部命令记录, 以及命令返回的情况.
suspend=
用于暂停执行shell. suspend为shell内建指令, 可暂停目前正在执行的shell. 若要恢复, 则必须使用SIGCONT信息.
reset=
清除当前屏幕终端上的任何信息, 比clear清除更为彻底. 利用history命令仅能查看到以往的全部命令记录.
consoletype
显示已经链接的终端类型到标准输出, 并能够检查已经连接的终端是当前终端还是虚拟终端.
date=
显示或设置系统时间与日期, 如date +"%Y-%m-%d". 很多shell脚本里面需要打印不同格式的时间或日期, 以及要根据时间和日期执行操作. 延时通常用于脚本执行过程中提供一段等待的时间. 日期可以以多种格式去打印, 也可以使用命令设置固定的格式. 在类UNIX系统中, 日期被存储为一个整数, 其大小为自世界标准时间 (UTC) 1970年1月1日0时0分0秒起流逝的秒数.
dircolors
设置ls命令在显示目录或文件时所用的颜色. 你可以修改这些颜色, 但是在做之前应该对你做的事情有充分的理由. dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或显示设置LS_COLORS环境变量的命令.dircolors -p用于显示预设的所有配置. "pi" 代表 "pipe(管道)" ==Linux系统上的一种特殊类型的文件,它可以将数据从一个程序传递给另一个程序. 在dircolors命令输出中, 我们的大多数定义都以星号开头 (例如, *.wav=00;36). 这些按文件扩展名file extension而不是文件类型定义显示属性. 你可以通过修改 $LS_COLORS设置和导出修改后的设置来更改文本颜色. 如果希望文本颜色的修改是永久性的, 则需要将修改后的 $LS_COLORS定义添加到一个启动文件中, 例如.bashrc.rs=0 (重置清除颜色) ;di=01;34 (目录颜色);ln=01;36 (链接文件颜色) ;mh=00 (multi-hard link) ;pi=40;33 (管道文件颜色) ;so=01;35 (socket颜色) ;do=01;35 (door) ;bd=40;33;01 (块设备颜色) ;cd=40;33;01 (character device) ;or=40;31;01 (orphan) ;mi=00 (丢失文件颜色) ;su=37;41 (setuid颜色) ;sg=30;43 (setgid颜色) ;ca=30;41 (file with capability) ;tw=30;42 (directory with sticky bit and world writable) ;ow=34;42 (directory that is world writable) ;st=37;44 (directory with sticky bit) ;ex=01;93 (可执行文件信息)dircolors | tr":""\n" |head -20
gpm
Linux的虚拟控制台下的鼠标服务器, 用于在虚拟控制台下实现鼠标复制和粘贴文本的功能.-a : 设置加速值;-b: 设置波特率;-B: 设置鼠标按键次序;-m: 指定苏表设备文件;-t: 设置鼠标类型.
hostid
显示当前主机的8位十六进制数字标识 (如007f0101, 007f0100).是主机的唯一标识, 是被用来限制软件的使用权限, 不可改变.
info=
Linux下info格式的帮助命令. info页面比man page编写得要更好, 更容易理解, 也更友好, 但man page使用起来确实要更容易得多.
man=
Linux下的帮助命令, 通过man指令可以查看Linux中的指令帮助,配置文件帮助和编程帮助等信息.查看date命令的帮助: man date
mesg
设置当前终端的写权限, 即是否让其它用户向末终端发信息. 将mesg设置y时, 其它用户可利用write命令将信息直接显示在您的屏幕上.y表示运行向当前终端写信息, n表示禁止向当前终端写信息.
wall
向系统当前所有打开的终端窗口上输出信息. 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户, 若不给予其信息内容, 则wall命令会从标准输入设备读取数据, 然后再把所得到的数据传送给所有终端机用户.
write
向指定登录用户终端上发送信息. 通过write命令可以传递信息给另一位登入系统的用户, 当输入完毕后, 键入EOF表示信息结束, write命令就会将信息传给对方. 如果接收信息的用户不只登入本地主机一次, 你可以指定接收信息的终端机编号. 若对方设定mesg n, 则此时信息将无法传给对方.
mtools
显示mtools支持的指令, mtools位MS-DOS文件系统的工具程序, 可模拟许多MS-DOS的指令. 这些指令都是mtools的符号连接, 因此会有一些共同的特性.
mtoolstest
用于测试并显示mtools的相关设置.mtoolstest位mtools工具指令, 可读取与分析mtools的配置文件, 并在屏幕上显示结果.
rsync=
用于测试并显示mtools的相关设置.mtoolstest位mtools工具指令, 可读取与分析mtools的配置文件, 并在屏幕上显示结果.
sleep
暂停指定的时间. 时间长度,后面可接s,m,h 或d,其中s为秒, m为分钟,h为小时,d为日期.有时在写一些以循环方式运行的监控脚本,设置时间间隔是必不可少的.
stty
修改终端命令行的相关设置. -a : 以容易阅读的方式显示当前的所有配置;-g : 以stty可读方式显示当前的所有配置.
talk
talk服务器的客户端工具, 通过talk命令可以让用户和其它用户聊天.linux中talk命令参数程序的使用很简单, 只要知道交谈对象的地址,就可以邀请对方交谈.例如 登录在主机rs6000.cic.test.com上的用户jdx希望和登录在主机tirc.rc.test.com上的用户wangxz进行交谈, 则可以输入下面的命令:talk [email protected] Internet上的线管程序 (Talk Daemon) 就会传送一条信息邀请wangxz来交谈, 这时用户wangxz的屏幕上就会出现信息并响铃提示.这时, 用户wangxz应该做的工作是按照上面的信息提示, 即输入linux中talk命令:talk [email protected]之后, 连接建立成功, 两个用户就可以进行交谈了.
tempfile
有时在写Shell脚本的时候需要一些临时存储数据的地方, 最适合存储临时文件数据的位置就是/tmp, 因为该目录中所有的内容在系统重启后就会被清空, 会生成类似/tmp/file6Ns3Zv的文件.
vdfuse
VirtualBox软件挂载VDI分区文件的一个工具, VirtualBox是一款能创建虚拟机的开源软件, vdi是它的默认磁盘格式. VirtualBox是一款功能强大的X86虚拟机软件,它不仅具有丰富的特色, 而且性能也很优异. 更可喜的是, VirtualBox于数日前走向开源, 成为了一个发布在GPL许可之下的自由软件. 注意: 必须编辑以下/etc/fuse.confand,去掉"user_allow_other" 前面的注释符号 (#), 否则不能正确运行.
whatis
查询一个命令执行什么功能, 并将查询结果显示到终端上. whatis命令在用catman -w 命令创建的数据库中查找command参数指定的命令, 系统调用, 库函数或特殊文件名.whatis命令显示手册部分的页眉行. 然后可以发出man命令以获取附加的信息. whatis命令等同于使用man -f命令.
xargs=
给其它命令传递参数的一个过滤器.也是组合多个命令的一个工具. 它擅长将标准输入数据转换为命令行参数, xargs能处理管道或者stdin并将其转换成特定命令的命令参数. xargs也可以将单行或多行文本输入转换为其它格式, 例如多性变单行, 单行变多行.xargs的默认命令是echo, 空格是默认定界符. 这意味着通过管道传递给xargs的输入将会包含换行和空台, 不过通过xargs的处理, 换行和空白将被空格取代.xargs是构建单行命令的重要组件之一.xargs用作替换工具, 读取输入数据重新格式化后输出.
yes=
在命令行中不停地输出指定的字符串, 直到yes进程被杀死. 不带任何参数输入yes命令默认的字符串是y.如果输入yes test就会不停地输出test.
accept
CUPS套件, 用于指示显示系统接受发往指定目标打印机的打印任务.-E: 当连接到服务器时强制加密;-U: 指定连接服务器时使用的用户名;-h: 指定连接服务器名和端口号.
cancel
取消已经存在的打印任务.-a: 取消所有打印任务;-E: 当连接服务器时强制使用加密;-U: 指定服务器时使用的用户名;-u: 指定打印任务所属的用户;-h: 指定连接的服务器和端口号.
cupsdisable
停止指定的打印机.
cupsenable
启动指定的打印机.-E: 当连接到服务器时强制使用加密;-U: 指定连接服务器时使用的用户名;-u: 指定打印任务所属的用户;-h: 指定连接的服务器名和端口号.
eject
退出抽取式设备.若设备已经挂入, 则eject命令会先将该设备卸除再退出.eject允许可移动介质 (典型是cd-ROM, 软盘, 磁带, 或者JAZ以及zip磁盘) 在软件控制下弹出. 该命令也可以控制一些多盘片CD-ROM控制器, 控制一些设备支持的自动弹出功能,以及控制一些CD-ROM驱动器磁盘托盘的关闭.有四种不同的弹出的方法, 具体要看设备是CD-ROM,SCSI设备,可移动软盘还是磁带而定.默认的弹出会依次尝试所有四种方法, 直到成功为止.如果设备当前是挂载上来的, 那么在弹出前要先卸载.
reject
CUPS套件,用于指示打印系统拒绝发往指定目标打印机的打印任务.-E: 当连接到服务器时强制使用加密;-U: 指定连接服务器时使用的用户名;-h: 指定连接服务器名和端口号;-r: 指定拒绝打印任务的原因.
lp
打印文件, 或者修改排队的打印任务. 与lpr命令类似, lp命令既支持文件输入也支持标准输入.它与lpr的不同之处在于它有一个不同 (稍微复杂点) 的参数选项设置. 打印机在Linux内的硬件设备号为/dev/lp[0-2].(1) 要在连接在设备dlp0上的打印机lp0上打印文件/etc/motd, 请输入: lp /etc/motd(2) 要使用文件的一个副本打印/etc/motd文件的30个副本, 并且要用邮件通知用户作业完成, 请输入:lp -c -m -n30 -dlp0:lpd0 /etc/motd(3) 要使用后端标志-f和-a并带上作业标题blah打印/etc/motd文件, 请输入:lp -t "blah" -o -f -o -a /etc/motd(4) 要排队MyFile文件并返回作业编号, 请输入: lp myfile(5) 要排队MyFile文件并禁止作业编号, 请输入:lp -s myfile
lpr
将文件发送给指定打印机进行打印, 如果不指定目标打印机, 则使用默认打印机.将man1和man2送到打印机lp进行打印:lpr -P lp man1 man2
lpadmin
配置CUPS套件中的打印机和类, 也被用来设置打印服务器默认打印机.
lpc
命令行方式打印机控制程序, 有5个内置命令.
lpq
显示打印队列中的打印任务的状态信息.
lprm
删除打印队列中的打印任务. 尚未完成的打印机任务会被放在打印机储列之中, 这个命令可用来将常未送到打印机的任务取消.
lpstat
-E: 与打印机连接时加密;-R: 显示打印任务的等级;-U: 指定可选用户名;-a: 显示接受打印任务的打印机;-c: 显示打印机类;-d: 显示默认打印机;-h: 指定可选的服务器信息;-l: 显示长格式;-p: 显示指定打印机, 以及打印机是否接受打印任务;-s: 显示汇总信息;-t: 显示所有的状态信息.
apt-cache
apt-cache 可以查询和显示已经安装和可安装软件包的可用信息. 它专门工作在本地的数据缓存上, 而这些缓存可以通过比如apt-get的'update'命令来更新. 如果距离上一次更新的时间太久, 那么它显示的信息可能就会过时. 不过作为交换, apt-cache 不依赖当前软件源的可用性 (比如: 离线状态).常用命令: apt-cache showpkg - 显示软件报的一些常规信息;apt-cache showsrc - 显示源文件的各项记录;apt-cache search - 根据正则表达式搜索软件包列表;apt-cache depends - 显示该软件包的依赖关系信息;apt-cache rdepends - 显示所有依赖于该软件包的软件包名字;apt-cache show - 以便于阅读的格式介绍该软件包;apt-cache pkgnames - 列出所有软件包的名字;apt-cache policy - 显示软件包的安装设置状态.
apt-get=
Debian发行版本的APT软件包管理工具.Debian及其衍生版,如 Ubuntu, Linux Minit 和 Raspbian,它们的包格式是 .de