当前位置: 首页 > news >正文

掌握这十个Linux命令,秒变Linux老手

前言

在Linux下,完成一个事情往往有N种方法。Linux的一大哲学就是"一个工具只做一样事情",通过不同工具的组合使用,完成不同的需求。熟练掌握好常用命令,有时事半功倍,起到出其不意的效果。不仅大大提升你的工作效率,同时也带来喜悦感和成就感。学会下面这些命令,Linux老手也不敢小瞧你。

实例

  1. 删除文件,文件名中可能含各种特殊字符
    递归删除以“._”开头的文件:

find . -type f -name “._*” -print0 | xargs -0 rm -f

注意,加上-print0和xargs 的-0参数能解决文件中出现各种特殊字符导致命令失败的问题。

  • find命令如果输出到管道上,建议用-print0代替print,以防止输出中包含特殊字符。
  • xargs中的-0参数也是起到对特殊字符(如引号和斜杠)转义的作用。

OSX下经常要删除.DS_Store文件:

find . -type f -name “.DS_Store” -print0 | xargs -0 rm -f

也可以用awk命令。删除所有pyc文件:

find . -name “*.pyc” |awk ‘{cmd="rm "$0;system(cmd)}’

删除文件名乱码的文件, 先找到文件的inode编号,再删除之:

ls -li
find ./* -inum 1442583 -exec rm -f {} ;

  1. 递归找出大文件
    经常需要查看磁盘空间被哪些文件占用了,可以用:

du -a /dir/ | sort -n -r | head -n 20

只查找第一级目录:

du -h --max-depth=1 /var

于是,递归查找最大文件,可以这么写:

find / -type f -printf “%s\t%p\n” | sort -n | tail -1
find $HOME -type f -printf ‘%s %p\n’ | sort -nr | head -10

当前目录下的文件/文件夹大小排序:

du -hs * | sort -n -r

查看inode大小:

find . -xdev -type f | cut -d “/” -f 2 | sort | uniq -c | sort -n

  1. 后台运行一个任务

nohup 命令 > /dev/null 2>&1

将正常输出和错误重定向到/dev/null

  1. 进程查看
    显示进程完整的命令语句,尤其对查看Java进程有用:

ps auxwww | grep java

按内存使用率查看:

ps aux | sort -nk 4

按CPU使用率查看:

ps aux | sort -nk 3

  1. 递归搜索和替换

grep -rl 查找字段 路径|xargs sed -i “s/查找字段/替换字段/g”
sed -i “s/garden/myGarden/g” ls
find . -type f -name ‘*.html’ | xargs perl -pi -e ‘s|北京|上海|g’

删除无用的docker镜像:

docker rmi $(docker images | grep “^” | awk ‘{print $3}’)

  1. 查看哪些端口在监听
    查看某个进程监听的端口号:

netstat -lnp | grep xxx

查看某个端口号谁在监听, 例如查看监听8080的进程

lsof -i:8080

  1. 身份切换
    切换到root:

sudo -i bash
sudo bash -c bash

这两条命令在docker容器环境下很实用,经常不为人知。

  1. 杀进程大法

kill $(pgrep 进程名)
另:
killall -9 webstorm

杀掉所有webstorm进程

  1. post请求
    采用curl命令可以发送各种HTTP请求,程序员必备技能。

curl -H “Content-Type: application/json” -d @/data/my.json http://localhost:8080/api/service/registry/add

如果不指定content-type, 默认是:application/x-www-form-urlencoded

  1. 使用for进行遍历
    可以直接在命令行写一行for语句,无需写到脚本。

for p in ls /home/mini-rds/mysql/; do echo KaTeX parse error: Expected 'EOF', got '&' at position 3: p &̲& mysql -h127.0…p -uroot -e ‘show slave status\G’ | grep ‘Master_Host’; done

一行语句查找满足条件的某个docker容器:

for conId in $(docker ps -q|grep Up);do docker inspect c o n I d ∣ g r e p 170.1.80.12 ; i f [ " conId | grep 170.1.80.12 ;if [ " conIdgrep170.1.80.12;if["?" -eq “0” ];then echo $conId; fi; done

总结

本文通过实际例子展示了Linux基本命令的用法。要想熟练使用Linux,掌握下列命令是必不可少的。

  • 包管理: apt, yum, dpkg
  • 搜索: find和grep
  • 文件处理: cat, more, less
  • 进程:ps, top, htop
  • 网络: netstat, lsof, ip, ifconfig, curl
  • xargs: 构建一条可执行命令,将标准输入作为待构建命令的参数
  • 文本处理:sed、awk、cut
  • 基本的shell语法: for, if
  • 注意shell中几个特殊字符的作用: 单引号和双引号都将剥夺其中的所有字符的特殊含义,而双引号中的’$‘(参数替换)和’`'(命令替换)是例外,而反引号和$()将执行里面的命令,以返回结果替换所在的字符串的相应部分

相关文章:

  • Spring Security(十八)--OAuth2:实现授权服务器(上)--环境准备以及骨架代码搭建
  • 使用说明丨Kamiya艾美捷抗酒石酸酸性磷酸酶TRAP染色试剂盒
  • 预测足球世界杯比赛
  • [Linux](15)线程基础,线程控制,线程的互斥与同步
  • 【树莓派不吃灰】Linux篇⑩ 学习例行性工作排程(核心概念)
  • 梅西进球了,用Python预测世界杯冠军是 ... 网友:痛,太痛了
  • 基于Spring Boot的个人博客系统(源码+数据库)
  • 文本表示(Representation)
  • 美团应届生面试第一问:Object o = new Object()占用多少字节?
  • Cesium中的DataSource和Entity关系
  • 微信小程序图书商城毕业设计,图书商城购物小程序系统设计与实现,图书商城购物小程序商城毕设作品参考
  • 这 13 个可能是你一直未使用过的超级棒的 Python 用法
  • 【数据结构初阶】链式二叉树接口实现+痛苦的OJ题
  • 【Linux】基本指令(三)
  • R语言与RStudio的下载与安装方法
  • 【Leetcode】104. 二叉树的最大深度
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • go append函数以及写入
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 阿里云购买磁盘后挂载
  • 给github项目添加CI badge
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 利用DataURL技术在网页上显示图片
  • 区块链分支循环
  • 用jQuery怎么做到前后端分离
  • nb
  • 阿里云重庆大学大数据训练营落地分享
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​ssh免密码登录设置及问题总结
  • # 达梦数据库知识点
  • #14vue3生成表单并跳转到外部地址的方式
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (一)Linux+Windows下安装ffmpeg
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .gitattributes 文件
  • .Net的DataSet直接与SQL2005交互
  • [.NET]桃源网络硬盘 v7.4
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Android学习笔记]ScrollView的使用
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [CentOs7]图形界面
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [HNOI2006]鬼谷子的钱袋
  • [LeetCode]Reverse Linked List II
  • [LWC] Components Communication
  • [na]wireshark抓包排错-tcp.flags.reset
  • [node]Node.js 模块系统
  • [React源码解析] Fiber (二)
  • [SAP] ABAP注释快捷键修改