从linux基础、三剑客(grepsedawk)、shell脚本编程、文件管理命令、磁盘管理命令、网络通讯命令、系统备份命令以及高频面试题角度出发的呕心力作(呵呵呵2) 只为助你拿下高薪offer 建议小伙伴先一键三连点赞、关注、收藏 目录0。基础0。1什么是Linux0。2Unix和Linux有什么区别?0。3什么是Linux内核?0。4Linux的基本组件是什么?0。5Linux的体系结构0。6BASH和DOS之间的基本区别是什么?0。7Linux开机启动过程?0。8Linux系统缺省的运行级别?0。9Linux使用的进程间通信方式?0。10Linux有哪些系统日志文件?0。11Linux系统安装多个桌面环境有帮助吗?0。12什么是交换空间?0。13什么是root帐户0。14什么是LILO?0。15什么是BASH?0。16什么是CLI?0。17什么是GUI?0。18开源的优势是什么?0。19GNU项目的重要性是什么?linux三剑客grep、sed、awk1。0简介1。1grep1。2sed1。3awkshell2。1Shell脚本是什么2。2可以在Shell脚本中使用哪些类型的变量?2。3Shell脚本中if语法如何嵌套?2。4Shell脚本中case语句的语法?2。5Shell脚本中for循环语法?2。6Shell脚本中while循环语法?2。7Shell脚本中break命令的作用?2。8Shell脚本中continue命令的作用?2。9如何使脚本可执行?2。10如何调试Shell脚本?2。11如何将标准输出和错误输出同时重定向到同一位置?2。12如何在Shell脚本如何定义函数呢?2。13如何执行算术运算?文件管理命令3。1cat命令3。2chmod命令3。3chown命令3。4cp命令3。5find命令3。6head命令3。7less命令3。8ln命令3。9locate命令3。10more命令3。11mv命令3。12rm命令3。13tail命令3。14touch命令3。15vim命令3。16whereis命令3。17which命令文档编辑命令4。1grep命令4。2wc命令磁盘管理命令5。1cd命令5。2df命令5。3du命令5。4ls命令5。5mkdir命令5。6pwd命令5。7rmdir命令网络通讯命令6。1ifconfig命令6。2iptables命令6。3netstat命令6。4ping命令6。5telnet命令系统管理命令7。1date命令7。2free命令7。3kill命令7。4ps命令7。5rpm命令7。6top命令7。7yum命令备份压缩命令8。1bzip2命令8。2gzip命令8。3tar命令8。4unzip命令0。基础0。1什么是LinuxLinux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。0。2Unix和Linux有什么区别?Linux和Unix都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处,甚至有一部分人错误地认为Unix和Linux操作系统是一样的,然而,事实并非如此,以下是两者的区别。开源性Linux是一款开源操作系统,不需要付费,即可使用;Unix是一款对源码实行知识产权保护的传统商业软件,使用需要付费授权使用。跨平台性Linux操作系统具有良好的跨平台性能,可运行在多种硬件平台上;Unix操作系统跨平台性能较弱,大多需与硬件配套使用。可视化界面Linux除了进行命令行操作,还有窗体管理系统;Unix只是命令行下的系统。硬件环境Linux操作系统对硬件的要求较低,安装方法更易掌握;Unix对硬件要求比较苛刻,按照难度较大。用户群体Linux的用户群体很广泛,个人和企业均可使用;Unix的用户群体比较窄,多是安全性要求高的大型企业使用,如银行、电信部门等,或者Unix硬件厂商使用,如Sun等。相比于Unix操作系统,Linux操作系统更受广大计算机爱好者的喜爱,主要原因是Linux操作系统具有Unix操作系统的全部功能,并且能够在普通PC计算机上实现全部的Unix特性,开源免费的特性,更容易普及使用!0。3什么是Linux内核?Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。系统内存管理应用程序管理硬件设备管理文件系统管理0。4Linux的基本组件是什么?就像任何其他典型的操作系统一样,Linux拥有所有这些组件:内核,shell和GUI,系统实用程序和应用程序。Linux比其他操作系统更具优势的是每个方面都附带其他功能,所有代码都可以免费下载。0。5Linux的体系结构 从大的方面讲,Linux体系结构可以分为两块: 用户空间(UserSpace):用户空间又包括用户的应用程序(UserApplications)、C库(CLibrary)。内核空间(KernelSpace):内核空间又包括系统调用接口(SystemCallInterface)、内核(Kernel)、平台架构相关的代码(ArchitectureDependentKernelCode)。 为什么Linux体系结构要分为用户空间和内核空间的原因?1、现代CPU实现了不同的工作模式,不同模式下CPU可以执行的指令和访问的寄存器不同。2、Linux从CPU的角度出发,为了保护内核的安全,把系统分成了两部分。用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空间的转移:1)系统调用;2)硬件中断。0。6BASH和DOS之间的基本区别是什么? BASH和DOS控制台之间的主要区别在于3个方面:BASH命令区分大小写,而DOS命令则不区分;在BASH下,character是目录分隔符,作为转义字符。在DOS下,用作命令参数分隔符,是目录分隔符DOS遵循命名文件中的约定,即8个字符的文件名后跟一个点,扩展名为3个字符。BASH没有遵循这样的惯例。0。7Linux开机启动过程? 了解即可1、主机加电自检,加载BIOS硬件信息。2、读取MBR的引导文件(GRUB、LILO)。3、引导Linux内核。4、运行第一个进程init(进程号永远为1)。5、进入相应的运行级别。6、运行终端,输入用户名和密码。0。8Linux系统缺省的运行级别?关机。单机用户模式。字符界面的多用户模式(不支持网络)。字符界面的多用户模式。未分配使用。图形界面的多用户模式。重启。0。9Linux使用的进程间通信方式? 了解即可1、管道(pipe)、流管道(spipe)、有名管道(FIFO)。2、信号(signal)。3、消息队列。4、共享内存。5、信号量。6、套接字(socket)。0。10Linux有哪些系统日志文件?比较重要的是varlogmessages日志文件。该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。另外,如果胖友的系统里有ELK日志集中收集,它也会被收集进去。0。11Linux系统安装多个桌面环境有帮助吗?通常,一个桌面环境,如KDE或Gnome,足以在没有问题的情况下运行。尽管系统允许从一个环境切换到另一个环境,但这对用户来说都是优先考虑的问题。有些程序在一个环境中工作而在另一个环境中无法工作,因此它也可以被视为选择使用哪个环境的一个因素。0。12什么是交换空间?交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。0。13什么是root帐户root帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。0。14什么是LILO?LILO是Linux的引导加载程序。它主要用于将Linux操作系统加载到主内存中,以便它可以开始运行。0。15什么是BASH?BASH是BourneAgainSHell的缩写。它由SteveBourne编写,作为原始BourneShell(由binsh表示)的替代品。它结合了原始版本的BourneShell的所有功能,以及其他功能,使其更容易使用。从那以后,它已被改编为运行Linux的大多数系统的默认shell。0。16什么是CLI?命令行界面(英语:commandlineinterface,缩写〕:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。0。17什么是GUI?图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。0。18开源的优势是什么?开源允许你将软件(包括源代码)免费分发给任何感兴趣的人。然后,人们可以添加功能,甚至可以调试和更正源代码中的错误。它们甚至可以让它运行得更好,然后再次自由地重新分配这些增强的源代码。这最终使社区中的每个人受益。0。19GNU项目的重要性是什么?这种所谓的自由软件运动具有多种优势,例如可以自由地运行程序以及根据你的需要自由学习和修改程序。它还允许你将软件副本重新分发给其他人,以及自由改进软件并将其发布给公众。1。0简介Linux中最重要的三个命令在业界被称为三剑客,它们是awk,sed,grep。我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令。grep擅长查找功能,sed擅长取行和替换。awk擅长取列。1。1grepgrep:过滤grep〔OPTIONS〕PATTERN〔FILE。。。〕colorauto对匹配到的文本着色显示v显示不被pattern匹配到的行i忽略字符大小写n显示匹配的行号c统计匹配的行数o仅显示匹配到的字符串q静默模式,不输出任何信息Aafter,后行Bbefore,前行Ccontext,前后各行e实现多个选项间的逻辑or关系grepe‘cat’e‘dog’filew匹配整个单词E使用ERE,相当于egrepF相当于fgrep,不支持正则表达式 例: 1、包含root:grepnroot 2、不包含root:grepnvroot 3、s开头:greps 4、以n结尾:grepnn 1。2sedsed:取行进行打印、替换sed〔option〕。。。scriptinputfile选项n不输出模式空间内容到屏幕,即不自动打印e多点编辑fPATHSCRIPTFILE:从指定文件中读取编辑脚本r支持使用扩展正则表达式i直接编辑文件i。bak备份文件并原处编辑script地址定界不给地址:对全文进行处理单地址::指定的行,:最后一行pattern:被此处模式所能够匹配到的每一行地址范围:,,pat1,pat2,pat1:步进12奇数行22偶数行编辑命令:d删除模式空间匹配的行,并立即启用下一轮循环p打印当前模式空间内容,追加到默认输出之后a〔〕text1在指定行后面追加文本,支持使用实现多行追加i〔〕text在行前面插入文本c〔〕text替换行为单行或多行文本wpathsomefile保存模式匹配的行至指定文件rpathsomefile读取指定文件的文本至模式空间中匹配到的行后为模式空间中的行打印行号!模式空间中匹配行取反处理s:查找替换,支持使用其它分隔符,s,s替换标记:g行内全局替换p显示替换成功的行wPATHTOSOMEFILE将替换成功的行保存至文件中 举例子: 1、打印第2行:sedn2ppasswd 2、打印25行:sedn2,5ppasswd 3、root全替换abc:sedisrootabcgpasswd 直接修改读取的文件内容,而不是输出到终端。s:取代,可以直接进行取代的工作。g:是全局的意思。其中是格式符,他也可以是或者别的。Sed替换格式是:sedi‘s要替换的内容替换成的内容g文件名。1。3awkawk:取列进行打印〔rootdebugresetreset54142x1〕awkhelpUsage:awk〔POSIXorGNUstyleoptions〕fprogfile〔〕file。。。Usage:awk〔POSIXorGNUstyleoptions〕〔〕programfile。。。POSIXoptions:GNUlongoptions:(standard)fprogfilefileprogfileFfsfieldseparatorfsvvarvalassignvarvalShortoptions:GNUlongoptions:(extensions)bcharactersasbytesctraditionalCcopyrightd〔file〕dumpvariables〔file〕eprogramtextsourceprogramtextEfileexecfileggenpothhelpL〔fatal〕lint〔fatal〕nnondecimaldataNuselcnumericOoptimizep〔file〕profile〔file〕PposixrreintervalSsandboxtlintoldVversion 举例子: 1、打印文件第一列: 这里的分隔符是冒号,然后print打印第一列 2、输出字段1,3,6,以制表符作为分隔符 2。shell2。1Shell脚本是什么1个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。什么是默认登录Shell?在Linux操作系统,binbash是默认登录Shell,是在创建用户时分配的。2。2可以在Shell脚本中使用哪些类型的变量? 在Shell脚本,我们可以使用两种类型的变量:系统定义变量系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过set命令查看。用户定义变量用户变量由系统用户来生成和定义,变量的值可以通过命令echolt;变量名查看。 在写一个Shell脚本时,如果你想要检查前一命令是否执行成功,在if条件中使用?可以来检查前一命令的结束状态。如果结束状态是0,说明前一个命令执行成功。例如:rootlocalhost:lsusrbinsharusrbinsharrootlocalhost:echo?0如果结束状态不是0,说明命令执行失败。例如:rootlocalhost:lsusrbinsharels:cannotaccessusrbinshare:Nosuchfileordirectoryrootlocalhost:echo?22。3Shell脚本中if语法如何嵌套?if语法if〔条件〕then命令1命令2。。elseif〔条件〕then命令1命令2。else命令1命令2。。fifi在Shell脚本中如何比较两个数字?在ifthen中使用测试命令(gt等)来比较两个数字。例如:!binbashx10y20if〔xgty〕thenechoxisgreaterthanyelseechoyisgreaterthanxfi2。4Shell脚本中case语句的语法?语法case变量in值1)命令1命令2。。最后命令!!值2)命令1命令2最后命令;;esac2。5Shell脚本中for循环语法?语法for变量in循环列表do命令1命令2。最后命令done2。6Shell脚本中while循环语法?如同for循环,while循环只要条件成立就重复它的命令块。不同于for循环,while循环会不断迭代,直到它的条件不为真。语法:while〔条件〕do命令done dowhile语句的基本格式? dowhile语句类似于while语句,但检查条件语句之前先执行命令(LCTT译注:意即至少执行一次。)。下面是用dowhile语句的语法:do{命令}while(条件)2。7Shell脚本中break命令的作用?break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环。2。8Shell脚本中continue命令的作用?continue命令不同于break命令,它只跳出当前循环的迭代,而不是整个循环。continue命令很多时候是很有用的,例如错误发生,但我们依然希望继续执行大循环的时候。2。9如何使脚本可执行?使用chmod命令来使脚本可执行。例子如下:chmodaxmyscript。sh。!binbash的作用?!binbash是Shell脚本的第一行,称为释伴(shebang)行。这里符号叫做hash,而!叫做bang。它的意思是命令通过binbash来执行。2。10如何调试Shell脚本?使用x数(shxmyscript。sh)可以调试Shell脚本。另一个种方法是使用nv参数(shnvmyscript。sh)。2。11如何将标准输出和错误输出同时重定向到同一位置?方法一:21(如lsusrsharedocout。txt21)。方法二:(如lsusrsharedocout。txt)。2。12如何在Shell脚本如何定义函数呢?函数是拥有名字的代码块。当我们定义代码块,我们就可以在我们的脚本调用函数名字,该块就会被执行。示例如下所示:2。13如何执行算术运算?有两种方法来执行算术运算:1、使用expr命令:expr52。2、用一个美元符号和方括号(〔164〕;test〔164〕。3。文件管理命令3。1cat命令 cat简介1。一次显示整个文件:catfilename2。从键盘创建一个文件:catfilename3。将几个文件合并为一个文件:catfile1file2file3。2chmod命令 chmod简介LinuxUnix的文件调用权限分为三级:文件拥有者、群组、其他。利用chmod可以控制文件如何被他人所调用。用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用lsltest。txt查找。 chmod权限说明:rwrr1rootroot296K111306:03log2012。log第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。 chmod常用参数:c当发生改变时,报告处理信息R处理指定目录以及其子目录下所有文件 chmod权限范围:u:目录或者文件的当前的用户g:目录或者文件的当前的群组o:除了目录或者文件的当前用户或群组之外的用户或者群组a:所有的用户及群组 chmod权限代号:r:读权限,用数字4表示w:写权限,用数字2表示x:执行权限,用数字1表示:删除权限,用数字0表示s:特殊权限 chmod实例:(1)所有用户可执行权限:axchmodaxt。log(2)撤销所有的权限赋予可读权限:urchmodurt。log(3)属主分配(7)权限,所在组分配(5),其他用户分配(1)7表示:读、写、执行5表示:读、执行1表示:执行chmod751t。logc(或者:chmodurwx,grx,oxt。log)3。3chown命令 chown简介chown改为指定的用户或组用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。c显示更改的部分的信息R处理指定目录及子目录 实例:(1)改变拥有者和群组chowncmail:maillog2012。log(2)改变文件群组chownc:mailt。log(3)改变文件夹及子文件目录属主及属组为mailchowncRmail:test3。4cp命令 cp简介将源文件复制至目标文件,或将多个源文件复制至目标目录。注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加i参数,则不会提示,而是直接覆盖!i提示r复制目录及目录内所有项目a复制的文件与原文件时间一样 实例:(1)复制a。txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖。cpaia。txttest(2)为a。txt建议一个链接(快捷方式)cpsa。txtlinka。txt3。5find命令 find命令用于在文件树中查找文件,并作出相应的处理。 命令格式:findpathnameoptions〔printexecok。。。〕 命令参数:pathname:find命令所查找的目录路径。例如用。来表示当前目录,用来表示系统根目录。print:find命令将匹配的文件输出到标准输出。exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为command{};,注意{}和;之间的空格。ok:和exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 命令选项:name按照文件名查找文件perm按文件权限查找文件user按文件属主查找文件group按照文件所属的组来查找文件。type查找某一类型的文件,诸如:b块设备文件d目录c字符设备文件l符号链接文件p管道文件f普通文件 实例:(1)查找48小时内修改过的文件findatime2(2)在当前目录查找以。log结尾的文件。。代表当前目录find。name。log(3)查找opt目录下权限为777的文件findoptperm777(4)查找大于1K的文件findsize1000c(5)查找等于1000字符的文件findsize1000c3。6head命令head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 常用参数:n行数显示的行数(行数为复数表示从最后向前数) 实例:(1)显示1。log文件中前20行head1。logn20(2)显示1。log文件前20字节headc20log2014。log(3)显示t。log最后10行headn10t。log3。7less命令less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。 常用命令参数:i忽略搜索时的大小写N显示每行的行号o文件名将less输出的内容在指定文件中保存起来s显示连续空行为一行字符串:向下搜索字符串的功能?字符串:向上搜索字符串的功能n:重复前一个搜索(与或?有关)N:反向重复前一个搜索(与或?有关)x数字将tab键显示为规定的数字空格b向后翻一页d向后翻半页h显示帮助界面Q退出less命令u向前滚动半页y向前滚动一行空格键滚动一行回车键滚动一页〔pagedown〕:向下翻动一页〔pageup〕:向上翻动一页 实例:(1)ps查看进程信息并通过less分页显示psauxlessN(2)查看多个文件less1。log2。log3。8ln命令 ln命令功能是为文件在另外一个位置建立一个同步的链接,当在不同目录需要该问题时,就不需要为每一个目录创建同样的文件,通过ln创建的链接(link)减少磁盘占用量。 链接分类软件链接硬链接 软链接1。软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式2。软链接可以跨文件系统,硬链接不可以3。软链接可以对一个不存在的文件名进行链接4。软链接可以对目录进行链接 硬链接1。硬链接,以文件副本的形式存在。但不占用实际空间。2。不允许给目录创建硬链接3。硬链接只有在同一个文件系统中才能创建 常用参数:b删除,覆盖以前建立的链接s软链接(符号链接)v显示详细处理过程 实例:(1)给文件创建软链接,并显示操作信息lnsvsource。loglink。log(2)给文件创建硬链接,并显示操作信息lnvsource。loglink1。log(3)给目录创建软链接lnsvoptsofttesttest3optsofttesttest53。9locate命令locate与find命令相似,可以使用如、?等进行正则匹配查找 常用参数:lnum(要显示的行数)f将特定的档案系统排除在外,如将proc排除在外r使用正则运算式做为寻找条件 实例:(1)查找和pwd相关的所有文件(文件名中包含pwd)locatepwd(2)搜索etc目录下所有以sh开头的文件locateetcsh(3)查找var目录下,以reason结尾的文件locatervar。reason39;(其中。表示一个字符,表示任务多个;。表示任意多个字符)3。10more命令功能类似于cat,more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示。 命令参数:n从笫n行开始显示n定义屏幕大小为n行pattern在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示c从顶部清屏,然后显示d提示Pressspacetocontinue,’q’toquit(按空格键继续,按q键退出),禁用响铃功能l忽略Ctrll(换页)字符p通过清除窗口而不是滚屏来对文件进行换页,与c选项相似s把连续的多个空行显示为一行u把文件内容中的下画线去掉 常用操作命令:Enter向下n行,需要定义。默认为1行CtrlF向下滚动一屏空格键向下滚动一屏CtrlB返回上一屏输出当前行的行号:f输出文件名和当前行的行号V调用vi编辑器!命令调用Shell,并执行命令q退出more 实例:(1)从第3行起显示more3text。txt(2)在所列出文件目录详细信息,借助管道使每次显示5行lslmore53。11mv命令 mv命令移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。 实例:(1)将文件test。log重命名为test1。txtmvtest。logtest1。txt(2)将文件log1。txt,log2。txt,log3。txt移动到根的test3目录中mvllog1。txtlog2。txtlog3。txttest3(3)将文件file1改名为file2,如果file2已经存在,则询问是否覆盖mvilog1。txtlog2。txt(4)移动当前文件夹下的所有文件到上一级目录mv。。3。12rm命令(万恶之源多少程序员因为敲了它而跑路)删除一个目录中的一个或多个文件或目录,如果没有使用r选项,则rm不会删除目录。如果使用rm来删除文件,通常仍可以将该文件恢复原状。rm〔选项〕文件 实例:(1)删除任何。log文件,删除前逐一询问确认:rmi。log(2)删除test子目录及子目录中所有档案删除,并且不用一一确认:rmrftest(3)删除以f开头的文件rmf3。13tail命令从文件末尾查看日志 常用参数:f循环读取(常用于查看递增的日志文件)n行数显示行数(从后向前) 例子tailfping。log3。14touch命令Linuxtouch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。lsl可以显示档案的时间记录。 语法touch〔acfm〕〔d日期时间〕〔r参考文件或目录〕〔t日期时间〕〔help〕〔version〕〔文件或目录〕 参数说明:a改变档案的读取时间记录。m改变档案的修改时间记录。c假如目的档案不存在,不会建立新的档案。与nocreate的效果一样。f不使用,是为了与其他unix系统的相容性而保留。r使用参考档的时间记录,与file的效果一样。d设定时间与日期,可以使用各种不同的格式。t设定档案的时间记录,格式与date指令相同。nocreate不会建立新档案。help列出指令格式。version列出版本讯息。 实例使用指令touch修改文件testfile的时间属性为当前系统时间,输入如下命令:touchtestfile修改文件的时间属性首先,使用ls命令查看testfile文件的属性,如下所示:lsltestfile查看文件的时间属性原来文件的修改时间为16:09rwrr1hddhdd552011082216:09testfile执行指令touch修改文件属性以后,并再次查看该文件的时间属性,如下所示:touchtestfile修改文件时间属性为当前系统时间lsltestfile查看文件的时间属性修改后文件的时间属性为当前系统时间rwrr1hddhdd552011082219:53testfile使用指令touch时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件file,输入如下命令:touchfile创建一个名为file的新的空白文件3。15vim命令 Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。打开文件并跳到第10行:vim10filename。txt。打开文件跳到第一个匹配的行:vimsearchtermfilename。txt。以只读模式打开文件:vimRetcpasswd。基本上vivim共分为三种模式,分别是命令模式(Commandmode),输入模式(Insertmode)和底线命令模式(Lastlinemode)。 一图胜千言: 3。16whereis命令 whereis命令whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数b)、man说明文件(参数m)和源代码文件(参数s)。如果省略参数,则返回所有信息。whereis及locate都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。 常用参数:b定位可执行文件。m定位帮助文件。s定位源代码文件。u搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。 实例:(1)查找locate程序相关文件whereislocate(2)查找locate的源码文件whereisslocate(3)查找lcoate的帮助文件whereismlocate3。17which命令 在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:which查看可执行文件的位置。whereis查看文件的位置。locate配合数据库查看文件位置。find实际搜寻硬盘查询文件名称。which是在PATH就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。 常用参数:n指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 实例:(1)查看ls命令是否存在,执行哪个whichls(2)查看whichwhichwhich(3)查看cdwhichcd(显示不存在,因为cd是内建命令,而which查找显示是PATH中的命令)4。文档编辑命令4。1grep命令 强大的文本搜索命令,grep 命令格式:grep〔option〕patternfiledir 常用参数:Anaftercontext显示匹配字符后n行Bnbeforecontext显示匹配字符前n行Cncontext显示匹配字符前后n行ccount计算符合样式的列数i忽略大小写l只列出文件内容符合指定的样式的文件名称f从文件中读取关键词n显示匹配内容的所在文件中行数R递归查找文件夹 grep的规则表达式:如:grep匹配所有以grep开头的行。如:grep39;匹配所有以grep结尾的行。。如:gr。p匹配gr后接一个任意字符,然后是p。如:grep匹配所有一个或多个空格后紧跟grep的行。。任意字符。〔〕匹配指定字符,如〔Gg〕rep匹配Grep和grep。〔〕匹配不在指定字符,如:〔AFHZ〕rep匹配不包含AR和TZ的一个字母开头,紧跟rep的行。(。。)标记匹配字符,如(love),love被标记为1。锚定单词的开始,如:grep匹配包含以grep开头的单词的行。gt;锚定单词的结束,如grepgt;匹配包含以grep结尾的单词的行。x{m}重复字符x,m次,如:0{5}匹配包含5个o的行。x{m,}重复字符x,至少m次,如:o{5,}匹配至少有5个o的行。x{m,n}重复字符x,至少m次,不多于n次,如:o{5,10}匹配510个o的行。w匹配文字和数字,如:Gwp匹配以G后跟零个或多个文字或数字字符,然后是p。Ww的反置形式,匹配一个或多个非单词字符,如点号句号等。b单词锁定符,如:bgrepb只匹配grep。 实例:(1)查找指定进程psefgrepsvn(2)查找指定进程个数psefgrepsvnc(3)从文件中读取关键词cattest1。txtgrepfkey。log(4)从文件夹中递归查找以grep开头的行,并只列出文件greplRgreptmp(5)查找非x开关的行内容grep〔x〕test。txt(6)显示包含ed或者at字符的内容行grepEedattest。txt4。2wc命令 wc(wordcount)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出 命令格式:wc〔option〕file。。 命令参数:c统计字节数l统计行数m统计字符数w统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串 实例:(1)查找文件的行数单词数字节数文件名wctext。txt结果:7870test。txt(2)统计输出结果的行数cattest。txtwcl5。磁盘管理命令5。1cd命令 实例:(1)进入要目录cd(2)进入home目录cd(3)进入上一次工作路径cd(4)把上个命令的参数作为cd参数使用。cd!5。2df命令 df命令显示磁盘空间使用情况。a全部文件系统列表h以方便阅读的方式显示信息i显示inode信息k区块为1024字节l只显示本地磁盘T列出文件系统类型 实例:(1)显示磁盘使用情况dfl(2)以易读方式列出所有文件系统及其类型dfhaT5。3du命令du命令也是查看使用空间的,但是与df命令不同的是Linuxdu命令是对文件和目录磁盘使用的空间的查看: 命令格式:du〔选项〕〔文件〕 常用参数:a显示目录中所有文件大小k以KB为单位显示文件大小m以MB为单位显示文件大小g以GB为单位显示文件大小h以易读方式显示文件大小s仅显示总计c或total除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和 实例:(1)以易读方式显示文件夹内及子文件夹大小duhscf(2)以易读方式显示文件夹内所有文件大小duahscf(3)显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和duhctestscf(4)输出当前目录下各个子目录所使用的空间duhcmaxdepth1scf5。4ls命令就是list的缩写,通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。 常用参数搭配:lsa列出目录所有文件,包含以。开始的隐藏文件lsA列出除。及。。的其它文件lsr反序排列lst以文件修改时间排序lsS以文件大小排序lsh以易读大小显示lsl除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来 实例:(1)按易读方式按时间反序排序,并显示文件详细信息lslhrt(2)按大小反序显示文件详细信息lslrS(3)列出当前目录中所有以t开头的目录的详细内容lslt(4)列出文件绝对路径(不包含隐藏文件)lsseds::pwd:(5)列出文件绝对路径(包含隐藏文件)findpwdmaxdepth1xargslsld5。5mkdir命令 mkdir命令用于创建文件夹。 可用选项:m:对新建目录设置存取权限,也可以用chmod命令设置;p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。实例:(1)当前工作目录下创建名为t的文件夹mkdirt(2)在tmp目录下创建路径为testt1t的目录,若不存在,则创建:mkdirptmptestt1t5。6pwd命令 pwd命令用于查看当前工作目录路径。 实例:(1)查看当前路径pwd(2)查看软链接的实际路径pwdP5。7rmdir命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。注意:不能删除非空目录 实例:当parent子目录被删除后使它也成为空目录的话,则顺便一并删除:rmdirpparentchildchild116。网络通讯命令6。1ifconfig命令 ifconfig命令ifconfig用于查看和配置Linux系统的网络接口。查看所有网络接口及其状态:ifconfiga。使用up和down命令启动或停止某个接口:ifconfigeth0up和ifconfigeth0down。6。2iptables命令 iptables命令iptables,是一个配置Linux内核防火墙的命令行工具。功能非常强大,对于我们开发来说,主要掌握如何开放端口即可。例如:把来源IP为192。168。1。101访问本机80端口的包直接拒绝:iptablesIINPUTs192。168。1。101ptcpdport80jREJECT。开启80端口,因为web对外都是这个端口 iptablesAINPUTptcpdport80jACCEP 另外,要注意使用iptablessave命令,进行保存。否则,服务器重启后,配置的规则将丢失。6。3netstat命令 netstat命令Linuxnetstat命令用于显示网络状态。利用netstat指令可让你得知整个Linux系统的网络情况。 语法netstat〔acCeFghilMnNoprstuvVwx〕〔A网络类型〕〔ip〕 参数说明:a或all显示所有连线中的Socket。A网络类型或网络类型列出该网络类型连线中的相关地址。c或continuous持续列出网络状态。C或cache显示路由器配置的快取信息。e或extend显示网络其他相关信息。F或fib显示FIB。g或groups显示多重广播功能群组组员名单。h或help在线帮助。i或interfaces显示网络界面信息表单。l或listening显示监控中的服务器的Socket。M或masquerade显示伪装的网络连线。n或numeric直接使用IP地址,而不通过域名服务器。N或netlink或symbolic显示网络硬件外围设备的符号连接名称。o或timers显示计时器。p或programs显示正在使用Socket的程序识别码和程序名称。r或route显示RoutingTable。s或statistice显示网络工作信息统计表。t或tcp显示TCP传输协议的连线状况。u或udp显示UDP传输协议的连线状况。v或verbose显示指令执行过程。V或version显示版本信息。w或raw显示RAW传输协议的连线状况。x或unix此参数的效果和指定Aunix参数相同。ip或inet此参数的效果和指定Ainet参数相同。 实例如何查看系统都开启了哪些端口?〔rootcentos613:2055〕netstatlnpActiveInternetconnections(onlyservers)ProtoRecvQSendQLocalAddressForeignAddressStatePIDProgramnametcp000。0。0。0:220。0。0。0:LISTEN1035sshdtcp00:::22:::LISTEN1035sshdudp000。0。0。0:680。0。0。0:931dhclientActiveUNIXdomainsockets(onlyservers)ProtoRefCntFlagsTypeStateINodePIDProgramnamePathunix2〔ACC〕STREAMLISTENING68251initcomubuntuupstartunix2〔ACC〕STREAMLISTENING84291003dbusdaemonvarrundbussystembussocket如何查看网络连接状况?〔rootcentos613:2258〕netstatanActiveInternetconnections(serversandestablished)ProtoRecvQSendQLocalAddressForeignAddressStatetcp000。0。0。0:220。0。0。0:LISTENtcp00192。168。147。130:22192。168。147。1:23893ESTABLISHEDtcp00:::22:::LISTENudp000。0。0。0:680。0。0。0:如何统计系统当前进程连接数?输入命令netstatangrepESTABLISHEDwcl。输出结果177。一共有177连接数。6。4ping命令 ping命令Linuxping命令用于检测主机。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。指定接收包的次数pingc2www。baidu。com6。5telnet命令 telnet命令Linuxtelnet命令用于远端登入。执行telnet指令开启终端机阶段作业,并登入远端主机。 语法telnet〔8acdEfFKLrx〕〔b主机别名〕〔e脱离字符〕〔k域名〕〔l用户名称〕〔n记录文件〕〔S服务类型〕〔X认证形态〕〔主机名称或IP地址通信端口〕 参数说明:8允许使用8位字符资料,包括输入与输出。a尝试自动登入远端系统。b主机别名使用别名指定远端主机名称。c不读取用户专属目录里的。telnetrc文件。d启动排错模式。e脱离字符设置脱离字符。E滤除脱离字符。f此参数的效果和指定F参数相同。F使用KerberosV5认证时,加上此参数可把本地主机的认证数据上传到远端主机。k域名使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。K不自动登入远端主机。l用户名称指定要登入远端主机的用户名称。L允许输出8位字符资料。n记录文件指定文件记录相关信息。r使用类似rlogin指令的用户界面。S服务类型设置telnet连线所需的IPTOS信息。x假设主机有支持数据加密的功能,就使用它。X认证形态关闭指定的认证形态。 实例登录远程主机登录IP为192。168。0。5的远程主机telnet192。168。0。57。系统管理命令7。1date命令 date命令显示或设定系统的日期与时间。 命令参数:d字符串显示字符串所指的日期与时间。字符串前后必须加上双引号。s字符串根据字符串来设置日期与时间。字符串前后必须加上双引号。u显示GMT。H小时(0023)I小时(0012)M分钟(以0059来表示)s总秒数。起算时间为1970010100:00:00UTC。S秒(以本地的惯用法来表示)a星期的缩写。A星期的完整名称。d日期(以0131来表示)。D日期(含年月日)。m月份(以0112来表示)。y年份(以0099来表示)。Y年份(以四位数来表示)。 实例:(1)显示下一天dateYmddate1day显示下一天的日期(2)d参数使用datednov22今年的11月22日是星期三dated2weeks2周后的日期datednextmonday(下周一的日期)datednextdayYmd(明天的日期)或者:datedtomorrowYmddatedlastdayYmd(昨天的日期)或者:datedyesterdayYmddatedlastmonthYm(上个月是几月)datednextmonthYm(下个月是几月)7。2free命令 free命令显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。 命令参数:b以Byte显示内存使用情况k以kb为单位显示内存使用情况m以mb为单位显示内存使用情况g以gb为单位显示内存使用情况s间隔秒数持续显示内存t显示内存使用总合 实例:(1)显示内存使用情况freefreekfreem(2)以总和的形式显示内存的使用信息freet(3)周期性查询内存使用情况frees107。3kill命令 kill命令如果任无法终止该程序可用KILL参数,SIGTERM(15)终止指定进程SIGKILL(9)将强制结束进程root用户将影响用户的进程非root用户只能影响自己的进程。 常用参数:l信号,若果不加信号的编号参数,则使用l参数会列出全部的信号名称a当处理当前进程时,不限制命令名和进程号的对应关系p指定kill命令只打印相关进程的进程号,而不发送任何信号s指定发送信号u指定用户 实例:(1)先使用ps查找进程pro1,然后用kill杀掉kill9(psefgreppro1)7。4ps命令 ps查看进程状态linux上进程有5种状态:运行(正在运行或在运行队列中等待)中断(休眠中,受阻,在等待某个条件的形成或接受到信号)不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行运行) 5种状态码:D不可中断uninterruptiblesleep(usuallyIO)R运行runnable(onrunqueue)S中断sleepingT停止tracedorstoppedZ僵死adefunct(zombie)process 命令参数:A显示所有进程a显示所有进程a显示同一终端下所有进程c显示进程真实名称e显示环境变量f显示进程间的关系r显示当前终端运行的进程aux显示所有包含其它使用的进程 实例:(1)显示当前所有进程环境变量及进程间关系psef(2)显示当前所有进程psA(3)与grep联用查找某进程psauxgrepapache(4)找出与cron与syslog这两个服务有关的PID号码psauxgrep(cronsyslog)7。5rpm命令 rpm命令Linuxrpm命令用于管理套件。rpm(redhatpackagemanager)原本是RedHatLinux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。查看系统自带jdkrpmqagrepjdk删除系统自带jdkrpmenodeps查看jdk显示的数据安装jdkrpmivhjdk7u80linuxx64。rpm7。6top命令 top命令显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等 常用参数:c显示完整的进程命令s保密模式p进程号指定进程显示n次数循环显示次数 实例:top14:06:23up70days,16:44,2users,loadaverage:1。25,1。32,1。35Tasks:206total,1running,205sleeping,0stopped,0zombieCpu(s):5。9us,3。4sy,0。0ni,90。4id,0。0wa,0。0hi,0。2si,0。0stMem:32949016ktotal,14411180kused,18537836kfree,169884kbuffersSwap:32764556ktotal,0kused,32764556kfree,3612636kcachedPIDUSERPRNIVIRTRESSHRSCPUMEMTIMECOMMAND28894root2201501m405m10mS52。21。32534:16java前五行是当前系统情况整体的统计信息区。第一行,任务队列信息,同uptime命令的执行结果,具体参数说明情况如下:14:06:23当前系统时间up70days,16:44系统已经运行了70天16小时44分钟(在这期间系统没有重启过的)2users当前有2个用户登录系统loadaverage:1。15,1。42,1。44loadaverage后面的三个数分别是1分钟、5分钟、15分钟的负载情况。loadaverage数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。第二行,Tasks任务(进程),具体信息说明如下:系统现在共有206个进程,其中处于运行中的有1个,205个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。第三行,cpu状态信息,具体属性说明如下:5。9us用户空间占用CPU的百分比。3。4sy内核空间占用CPU的百分比。0。0ni改变过优先级的进程占用CPU的百分比90。4id空闲CPU百分比0。0waIO等待占用CPU的百分比0。0hi硬中断(HardwareIRQ)占用CPU的百分比0。2si软中断(SoftwareInterrupts)占用CPU的百分比备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!第四行,内存状态,具体信息如下:32949016ktotal物理内存总量(32GB)14411180kused使用中的内存总量(14GB)18537836kfree空闲内存总量(18GB)169884kbuffers缓存的内存量(169M)第五行,swap交换分区信息,具体信息说明如下:32764556ktotal交换区总量(32GB)0kused使用的交换区总量(0K)32764556kfree空闲交换区总量(32GB)3612636kcached缓冲的交换区总量(3。6GB)第六行,空行。第七行以下:各进程(任务)的状态监控,项目列信息说明如下:PID进程idUSER进程所有者PR进程优先级NInice值。负值表示高优先级,正值表示低优先级VIRT进程使用的虚拟内存总量,单位kb。VIRTSWAPRESRES进程使用的、未被换出的物理内存大小,单位kb。RESCODEDATASHR共享内存大小,单位kbS进程状态。D不可中断的睡眠状态R运行S睡眠T跟踪停止Z僵尸进程CPU上次更新到现在的CPU时间占用百分比MEM进程使用的物理内存百分比TIME进程使用的CPU时间总计,单位1100秒COMMAND进程名称(命令名命令行) top交互命令h显示top交互命令帮助信息c切换显示命令名称和完整命令行m以内存使用率排序P根据CPU使用百分比大小进行排序T根据时间累计时间进行排序W将当前设置写入。toprc文件中o或者O改变显示项目的顺序7。7yum命令 yum命令yum前端软件包管理器。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。1。列出所有可更新的软件清单命令:yumcheckupdate2。更新所有软件命令:yumupdate3。仅安装指定的软件命令:yuminstallpackagename4。仅更新指定的软件命令:yumupdatepackagename5。列出所有可安裝的软件清单命令:yumlist6。删除软件包命令:yumremovepackagename7。查找软件包命令:yumsearch8。清除缓存命令:yumcleanpackages:清除缓存目录下的软件包yumcleanheaders:清除缓存目录下的headersyumcleanoldheaders:清除缓存目录下旧的headersyumclean,yumcleanall(yumcleanpackages;yumcleanoldheaders):清除缓存目录下的软件包及旧的headers实例安装pamdevel〔rootwww〕yuminstallpamdevel8。备份压缩命令8。1bzip2命令创建。bz2压缩文件:bzip2test。txt。解压。bz2文件:bzip2dtest。txt。bz2。8。2gzip命令 gzip命令创建一个。gz的压缩文件:gziptest。txt。解压。gz文件:gzipdtest。txt。gz。显示压缩的比率:gzipl。gz。8。3tar命令 tar命令用来压缩和解压文件。tar本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件 常用参数:c建立新的压缩文件f指定压缩文件r添加文件到已经压缩文件包中u添加改了和现有的文件到压缩包中x从压缩包中抽取文件t显示压缩文件中的内容z支持gzip压缩j支持bzip2压缩Z支持compress解压文件v显示操作过程 有关gzip及bzip2压缩: gzip实例:压缩gzipfileName。tar。gz和。tgz解压:gunzipfilename。gz或gzipdfilename。gz对应:tarzcvffilename。tar。gztarzxvffilename。tar。gz bz2实例:压缩bzip2zfilename。tar。bz2解压:bunzipfilename。bz2或bzipdfilename。bz2对应:tarjcvffilename。tar。gztarjxvffilename。tar。bz2 实例:(1)将文件全部打包成tar包tarcvflog。tar1。log,2。log或tarcvflog。(2)将etc下的所有文件及目录打包到指定目录,并使用gz压缩tarzcvftmpetc。tar。gzetc(3)查看刚打包的文件内容(一定加z,因为是使用gzip压缩的)tarztvftmpetc。tar。gz(4)要压缩打包home,etc,但不要homedmtsaitarexcludehomedmtsaizcvfmyfile。tar。gzhomeetc8。4unzip命令 unzip命令解压。zip文件:unziptest。zip。查看。zip文件的内容:unzipljasper。zip。 感谢阅读,由于篇幅有限以上面经资料博主已经整理打包好了,这些知识点的导图和问题的答案详解的PDF文档都可以免费分享给大家,点赞收藏文章后,私信【资料】免费领取!