一、导学 掌握Linux命令是高级Java工程师必备的技能之一,但并不是每个人都能完全掌握,绝大部分Java初中级工程师只知道少数的cdlsmkdirrm等非常简单的命令,但是只会这些命令是完全不够的,如果想要提升技术壁垒,晋升成为大牛程序员,掌握最实用的Linux命令是不可或缺的。文本作者结合多年企业开发经验,将最实用的Linux命令进行了清晰的分类,逐条罗列,对照反复练习即可快速掌握。熟练使用文本提到的命令能有效提升运维技能并帮助各位提高工作效率。 提示:操作系统:CentOS适合对象:使用过Linux的人群本文命令:多以示例命令为主,要学会举一反三 二、安装服务命令 在日常开发和部署的工作中,安装服务是非常常见的操作,一般来说当我们执行某个命令提示不存在命令时,都需要进行服务安装,一般安装命令有2种:在线安装和离线安装。对比来说,如果网速还不错的话,推荐使用在线安装更加方便。1。在线安装yuminstallyvim 示例含义:在线安装vim服务 注意:如果要加速yum在线下载需要修改yum源为国内源2。离线安装rpmivhtomcat。rpm 示例含义:离线安装tomcat服务 注意:rpm文件安装包需要上传到服务器上,再执行安装命令三、文件操作命令 文件操作命令是Linux中使用最为频繁的命令,众多命令中还包含非常出名的Linux三剑客grep、awk、sed,在文中也有介绍。1。创建文件 创建方式1:touch命令直接创建yacastouchabc。txt 创建方式2:vi命令修改后保存yacasviabc。txt然后保存 创建方式3:echo命令输出写入文件yacasechohelloabc。txt2。编辑文件yacasviabc。txtyacasvimabc。txt3。vi或vim内查找关键词 用法:vi或vim打开文件后(不要进入到编辑模式)输入英文的?或,后面跟上要搜索的关键词即可yacas?hello然后按住n健查找下一个,按N健查找上一个yacashello然后按住n健查找下一个,按N健查找上一个4。命令光标的移动 这个命令非常实用,有时候当我们输入一段比较长的命令时,光标已经到最后了,但发现前面的命令写错了,一般的做法是按照向左箭头按键一直往左移动光标,改完由按向右监听按键一直向右移动光标,这个效率太慢了,以下快捷键能快速解决这个问题,能直接达到命令最前面和最后面。移动到命令最前:按住快捷键ctrla移动到命令最后:按住快捷键ctrle5。vi或vim设置或取消行号 vi或vim打开文件后,根据要求分别输入如下命令(不要进入到编辑模式)设置行号 shell:setnu取消行号 shell:setnonu6。vi或vim调到末行及首行 vi编辑文件时,如果内容太长,想要快速将光标跳转到文件头部或尾部,使用下面按键跳转末行,按住G健跳转首行,按住g健7。vim或vim删除行 不进入编辑模式,在要删除的行敲击dd8。vi或vim复制行 不进入编辑模式,在要删除的行敲击4yy,标识从当前行开始复制4行,再移动光标到指定位置按p键粘贴9。不编辑查看文件全部内容catabc。txt10。不编辑查找文件内容方式1 shellgrepheimaabc。txt方式2 shellcatabc。txtgrepheima 这里用到了Linux三剑客之一的筛选命令grep,主要用于筛选文本10。统计某个关键字在文件中出现的次数方式1 shellgrepheimaabc。txtwcl方式2 shellgrepheimaabc。txtwcl11。查看文件首行或尾行查看前3行 shellhead3abc。txt查看尾3行 shelltail3abc。txt查看尾实时输出的3行日志 shelltail3fabc。txt12。替换文件内某个关键字 sed作为Linux三剑客之一,是使用的最流行的替换命令,主要用于替换本文中的内容sedisheimaitcastgabc。txt 示例含义:替换abc。txt文件内所有heima为itcast13。重命名文件方式1 shellmvabc。txtbcd。txt方式2 shellrenameabcbcdabc。txt14。输出格式固定的文件中第几行第几列数据 awk作为Linux三剑客之一,主要用于输出固定格式文件的内容 假设文本文件内每行数据的格式如:姓名,年龄,城市,注意分隔符是逗号输出每一行 shellawk{}aaa。txt输出第三列所有值 shellawkF,{print3}aaa。txt F后紧跟的是每行内容的分割符号输出倒数第2列的值 shellawkF,{print(NF1)}aaa。txt输出前2行的第2列的值 shellawkF,{print2}aaa。txthead215。根据名称查找某目录下的文件findtestnameabc 示例含义:查找test目录下,所以文件名包含abc的文件16。查找文件并删除findtestnameabcxargsrmrf 示例含义:查找test目录下,所以文件名包含abc的文件并执行删除操作17。查找30天前创建的文件并删除findtestmtime30typefxargsrmrf 示例含义:查找test目录下,所有创建时间超过30天的文件并执行删除操作18。下载文件单线程下载 shellwgethttps:archive。apache。orgdisttomcattomcat8v8。5。9binapachetomcat8。5。9。tar。gz多线程下载 shellaxeln10https:archive。apache。orgdisttomcattomcat8v8。5。9binapachetomcat8。5。9。tar。gz 示例含义:开启10个线程一起下载一个文件,注意这种下载效率会比单线程快很多将本地文件上传到服务器或从服务器下载上传 rz 执行命令后会弹出窗口,选择本地的文件,确认后会执行上传下载 sz文件命名 默认会下载到本地操作系统downloads目录下 说明:以上两个命令执行的前提是已经安装了lrzsz,可通过在线命令yuminstallylrzsz安装四、压缩解压命令 压缩解压命令在开发中比较常见,一般开发部署遇到的压缩包主要以zip和tar包为主,掌握这2种压缩文件的压缩和解压命令就足够了。1。zip压缩 shellziprxxxx。zipxxxx 实例含义:将xxx的全部内容压缩为xxx。zip解压 shellunzipdxxxxxxxx。zip2。tar。gz压缩 shelltarzcvftest。tar。gztest解压 shelltarzxvftest。tar。gztest五、系统命令 系统命令是我们日常排查服务器问题及进行系统设置时使用比较多的命令,这些命令要求熟记于心1。查看网卡信息ipaddrifconfig2。修改密码 修改当前用户密码:passwd 修改其他用户密码:passworddeploy3。重启系统reboot4。重启网卡servicenetworkrestart5。关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld6。查看内存大小查看还剩多少m shellfreem查看还剩多少g freeg7。查看磁盘空间查看总共剩下多少空间 shelldfh查看某个目录占用空间 shelldushtest查看某个文件占用空间 shelldushabc。txt8。查看cpu使用情况top9。跨服务器传输文件将本服务器文件传输到其他服务器 shellscpaaa。ziproot192。168。200。130:usrlocal将本服务器目录传输到其他服务器 shellscpraaaroot192。168。200。130:usrlocal将其他服务器文件传输到本服务器 shellscproot192。168。200。130:usrlocalbbb。zipaaa。zip将其他服务器目录传输到本服务器 shellscprroot192。168。200。130:usrlocalbbbmnt 六、文件权限命令1。为文件添加权限 比如我们在任意目录下执行lsal,将看到文件或目录最前面显示效果如下444rrr600rw644rwrr666rwrwrw700rwx744rwxrr755rwxrxrx777rwxrwxrwx 解读下这个展示效果的含义,其实都是文件系统权限相关内容: 从左至右,先是3个数字,代表文件权限然后是9个字母(或者连字符),其中13位数字代表文件所有者权限,46位数字代表同组用户的权限,79数字代表其他用户的权限,而具体的权限是由数字来表示的。读取的权限等于4,用r表示写入的权限等于2,用w表示执行的权限等于1,用x表示 通过4、2、1的组合,得到以下几种权限:0(没有权限)4(读取权限)5(41读取执行)6(42读取写入)7(421读取写入执行)2。为某个目录添加执行权限chmodaxRtest3。以root身份执行命令suchmodaxRtest七、进程命令 服务部署时使用比较多的命令就是进程命令,这些命主要是围绕着查看进程、确认进程存活情况及杀掉进程等操作1。查看进程psefgrepjava 示例含义:查看所有运行中的进程信息中包含java的进程2。查看端口是否占用lsofi:8080 示例含义:确认8080端口是否被占用,如果命令执行完有响应数据列表,则表示已占用3。确认端口是否开启telnet192。168。200。1308080 示例含义:确认192。168。200。130的8080端口是否能连通,能连通就会进入黑窗口有光标,否则会卡主到超时4。杀掉进程kill91011八、结束语 好了,这么多命令你终于都练习完毕了,有很多命令是不是让你感觉很Nice,令你眼前一亮呢?还记得这些命令分为哪些种类吗,如果忘记了就回顾多敲几遍,熟能生巧!最后别忘了,除了文中总结的命令以外,我们Java开发中还涉及到基础命令还有jdk命令、maven命令、git命令,这些也都要求必须掌握的。有关于服务部署命令,更高级的命令还有docker容器相关命令,感兴趣可以在本文基础之上进一步自学docker。