点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

每天 14:00 更新文章,每天掉亿点点头发...

源码精品专栏

  • 原创 | Java 2021 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

来源:coolshell.cn/articles/790.html

  • 1)pgrep

  • 2)pstree

  • 3)bc

  • 4)split

  • 5)nl

  • 6)mkfifo

  • 7)ldd

  • 8)col

  • 9)xmlwf

  • 10)lsof


下面可能是你不曾用过后十个Linux的命令。相当的有用。

1)pgrep

pgrep名字前有个p,我们可以猜到这和进程相关,又是grep,当然这是进程相关的grep命令。不过,这个命令主要是用来列举进程ID的。如:

$ pgrep -u hchen
22441
22444

这个命令相当于:

ps -ef | egrep '^hchen' | awk '{print $2}'

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。

项目地址:https://github.com/YunaiV/ruoyi-vue-pro

2)pstree

这个命令可以以树形的方式列出进程。如下所示:

[hchen@RHELSVR5 ~]$ pstree
init-+-acpid|-auditd-+-python|        `-{auditd}|-automount---4*[{automount}]|-backup.sh---sleep|-dbus-daemon|-events/0|-events/1|-hald---hald-runner---hald-addon-acpi|-httpd---10*[httpd]|-irqbalance|-khelper|-klogd|-ksoftirqd/0|-ksoftirqd/1|-kthread-+-aio/0|         |-aio/1|         |-ata/0|         |-ata/1|         |-ata_aux|         |-cqueue/0|         |-cqueue/1|         |-kacpid|         |-kauditd|         |-kblockd/0|         |-kblockd/1|         |-kedac|         |-khubd|         |-6*[kjournald]|         |-kmirrord|         |-kpsmoused|         |-kseriod|         |-kswapd0|         |-2*[pdflush]|         |-scsi_eh_0|         |-scsi_eh_1|         |-xenbus|         `-xenwatch|-migration/0|-migration/1|-6*[mingetty]|-3*[multilog]|-mysqld_safe---mysqld---9*[{mysqld}]|-smartd|-sshd---sshd---sshd---bash---pstree|-svscanboot---svscan-+-3*[supervise---run]|                     |-supervise---qmail-send-+-qmail-clean|                     |                        |-qmail-lspawn|                     |                        `-qmail-rspawn|                     `-2*[supervise---tcpserver]|-syslogd|-udevd|-watchdog/0|-watchdog/1`-xinetd

基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。

项目地址:https://github.com/YunaiV/onemall

3)bc

这个命令主要是做一个精度比较高的数学运算的。比如开平方根等。下面是一个我们利用bc命令写的一个脚本(文件名:sqrt)

#!/bin/bash
if [ $# -ne 1 ]
thenecho 'Usage: sqrt number'exit 1
elseecho -e "sqrt($1)\nquit\n" | bc -q -i
fi

于是,我们可以这样使用这个脚本进行平方根运算:

[hchen@RHELSVR5]$ ./sqrt 36
6
[hchen@RHELSVR5]$ ./sqrt 2.0000
1.4142
[hchen@RHELSVR5]$ ./sqrt 10.0000
3.1622

4)split

如果你有一个很大的文件,你想把其分割成一些小的文件,那么这个命令就是干这件事的了。

[hchen@RHELSVR5 applebak]# ls -l largefile.tar.gz
-rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz[hchen@RHELSVR5 applebak]# split -b 50m largefile.tar.gz LF_[hchen@RHELSVR5]# ls -l LF_*
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_aa
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ab
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ac
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ad
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ae
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_af
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ag
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ah
-rw-r--r-- 1 hchen hchen 17344374 05-10 18:35 LF_ai

文件合并只需要使用简单的合并就行了,如:

[hchen@RHELSVR5]#  cat LF_* >largefile.tar.gz

5)nl

nl命令其它和cat命令很像,只不过它会打上行号。如下所示:

[hchen@RHELSVR5 include]# nl stdio.h | head -n 101  /* Define ISO C stdio on top of C++ iostreams.2     Copyright (C) 1991,1994-2004,2005,2006 Free Software Foundation, Inc.3     This file is part of the GNU C Library.4     The GNU C Library is free software; you can redistribute it and/or5     modify it under the terms of the GNU Lesser General Public6     License as published by the Free Software Foundation; either7     version 2.1 of the License, or (at your option) any later version.8     The GNU C Library is distributed in the hope that it will be useful,

6)mkfifo

熟悉Unix的人都应该知道这个是一个创建有名管道的系统调用或命令。平时,我们在命令行上使用竖线“|”把命令串起来是使用无命管道。而我们使用mkfifo则使用的是有名管道。下面是示例:

下面是创建一个有名管道:

[hchen@RHELSVR5 ~]# mkfifo /tmp/hchenpipe[hchen@RHELSVR5 ~]# ls -l /tmp
prw-rw-r-- 1 hchen  hchen  0 05-10 18:58 hchenpipe

然后,我们在一个shell中运行如下命令,这个命令不会返回,除非有人从这个有名管道中把信息读走。

[hchen@RHELSVR5 ~]# ls -al > /tmp/hchenpipe

我们在另一个命令窗口中读取这个管道中的信息:(其会导致上一个命令返回)

[hchen@RHELSVR5 ~]# head /tmp/hchenpipe
drwx------ 8 hchen hchen    4096 05-10 18:27 .
drwxr-xr-x 7 root  root     4096 03-05 00:06 ..
drwxr-xr-x 3 hchen hchen    4096 03-01 18:13 backup
-rw------- 1 hchen hchen     721 05-05 22:12 .bash_history
-rw-r--r-- 1 hchen hchen      24 02-28 22:20 .bash_logout
-rw-r--r-- 1 hchen hchen     176 02-28 22:20 .bash_profile
-rw-r--r-- 1 hchen hchen     124 02-28 22:20 .bashrc
-rw-r--r-- 1 root  root    14002 03-07 00:29 index.htm
-rw-r--r-- 1 hchen hchen   31465 03-01 23:48 index.php

7)ldd

这个命令可以知道你的一个可执行文件所使用了动态链接库。如:

[hchen@RHELSVR5 ~]# ldd /usr/bin/javalinux-gate.so.1 =>  (0x00cd9000)libgij.so.7rh => /usr/lib/libgij.so.7rh (0x00ed3000)libgcj.so.7rh => /usr/lib/libgcj.so.7rh (0x00ed6000)libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00110000)librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x009c8000)libdl.so.2 => /lib/libdl.so.2 (0x008b5000)libz.so.1 => /usr/lib/libz.so.1 (0x00bee000)libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aa7000)libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x0022f000)libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x00127000)/lib/ld-linux.so.2 (0x00214000)

8)col

这个命令可以让你把man文件转成纯文本文件。如下示例:

# PAGER=cat
# man less | col -b > less.txt

9)xmlwf

这个命令可以让你检查一下一个XML文档是否是所有的tag都是正常的。如:

[hchen@RHELSVR5 ~]# curl 'https://coolshell.cn/?feed=rss2' > cocre.xml% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100 64882    0 64882    0     0  86455      0 --:--:-- --:--:-- --:--:-- 2073k
[hchen@RHELSVR5 ~]# xmlwf cocre.xml
[hchen@RHELSVR5 ~]# perl -i -pe 's@<link>@<br>@g' cocre.xml
[hchen@RHELSVR5 ~]# xmlwf cocre.xml
cocre.xml:13:23: mismatched tag

10)lsof

可以列出打开了的文件。

[root@RHELSVR5 ~]# lsof | grep TCP
httpd       548    apache    4u     IPv6   14300967    TCP *:http (LISTEN)
httpd       548    apache    6u     IPv6   14300972    TCP *:https (LISTEN)
httpd       561    apache    4u     IPv6   14300967    TCP *:http (LISTEN)
httpd       561    apache    6u     IPv6   14300972    TCP *:https (LISTEN)
sshd       1764      root    3u     IPv6       4993    TCP *:ssh (LISTEN)
tcpserver  8965      root    3u     IPv4  153795500    TCP *:pop3 (LISTEN)
mysqld    10202     mysql   10u     IPv4   73819697    TCP *:mysql (LISTEN)
sshd      10735      root    3u     IPv6  160731956    TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED)
sshd      10767     hchen    3u     IPv6  160731956    TCP 210.51.0.232:ssh->123.117.239.68:31810 (ESTABLISHED)
vsftpd    11095      root    3u     IPv4  152157957    TCP *:ftp (LISTEN)


欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 6W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)

Linux中几个你不常用,但却很有用的命令相关推荐

  1. Linux中的如何对当前进程进行查看和监控——ps命令和pgrep命令

    Linux中进程的查看.监测 PID进程号 ps命令 pgrep命令 LINUX下PS -EF和PS AUX的区别及格式详解 top命令 推荐一个Linux命令的查询手册:Linux命令大全(手册) ...

  2. Linux中7个用来浏览网页和下载文件的命令

    上一篇文章中,我们提到了rTorrent.wget.cURL.w3m.Elinks等几个有用的工具,很多人回信说还有其它几个类似的工具也值得讨论,所以就有了这篇文章.如果错过了第一部分的讨论,可以通过 ...

  3. 【Linux】Linux中常见的文件管理以及常用的符号命令的总结

    一.文件管理的命令以及操作 操作 命令 注意点 文件/文件夹 创建 touch filename 如果是多个文件,文件名之间用 空格 隔开(eg:touch "hello word" ...

  4. Linux中systemctl详细理解及常用命令

    一.systemctl理解 Linux 服务管理两种方式service和systemctl systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程, ...

  5. Linux中Vi编辑器之简单常用命令

    Vi是Linux中最基本的文本编辑器.vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如 ...

  6. linux 释放进程res_linux上的常用的进程与内存优化命令

    进程 ps命令 f 以树状结构显示 u 显示详细信息 a 显示所有进程 -A 显示所有进程 -u 用户名 是显示该用户下的进程 -l 更多进程详细信息 例子1. 以树状结构显示root用户下进程的详细 ...

  7. bg和fg指令(整理)以及 Linux中Ctrl+C、Ctrl+D等按键操作进程相关命令

    fg(前台执行) frontground bg(后台执行) background linux提供的fg和bg命令,可以让我们轻松调度正在运行的任务 假如你发现运行的一个程序需要很长的时间,但是需要干别 ...

  8. Linux中的Shell用SSH自动登录远程服务器后执行命令并自动退出

    目录 [隐藏] 1 SSH命令格式 2 主要参数说明 3 ssh控制远程主机,远程执行命令步骤 4 准备工作 5 基于公私钥认证远程登录可能存在的不足 6 ssh 执行远程命令格式 6.1 打开远程s ...

  9. linux中正则表达式、find、xargs、grep以及sed等命令的用法

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM"  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名  find .|x ...

最新文章

  1. 【廖雪峰python入门笔记】for循环
  2. 响应式网站建设优势有哪些?
  3. 【Rsyslog】 从json 中通过正则 key 获取 value值,rsyslog正则匹配获取key 的 value值
  4. 里氏替换原则_代码需要有单一职责,还要开闭,里氏替换又是什么鬼?
  5. 【数据结构基础】-串-顺序结构的基本操作实现
  6. 每天进步一点点《ML - 基于层次的聚类》
  7. 开关电源怎么测试文波_开关电源纹波标准与规范测试说明
  8. 从内存管理原理,窥探OS内存管理机制
  9. 将数组的列表结构转成树结构
  10. shader变体是什么_shader 里面的分支
  11. 美团 2021 届秋季校园招聘—小团的 AB 队(排序)
  12. 富爸爸穷爸爸的所有书籍
  13. 如何爬取猫眼网电影票房数据
  14. 初识vue-baidu-map
  15. 常用荧光染料的激发和发射波长
  16. 2.任何一个自然数m的立方均可写成m个连续奇数之和
  17. 网易明日之后那个服务器人最多,明日之后:网易“公认”全服前4强营地出炉,竟全部来自一个区...
  18. 冒泡排序保姆级心得分享
  19. Trade and the world economy -- 贸易与世界经济
  20. 内网IP地址\私有IP地址

热门文章

  1. ES6解构赋值: ES6...转为ES5的写法
  2. 计算机专业eng4u,加拿大高中文凭ossd项目之ENG4U英语4U课程内容介绍!
  3. SQL 添加、删除、更改字段(属性)
  4. Qt中使用qrc管理和使用资源文件
  5. 在Windows7和Ubuntu上编译安装MICO
  6. Socket和ServerSocket(建立客户端和服务器端)
  7. 编译之 jack-server报错
  8. Sentinel @SentinelResource 详解
  9. java中给对象的List集合去重的几种方法(Lambda)
  10. 【Altium秘籍】room 复制报错的解决办法