0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Android编程精选 来源:coolshell.cn 作者:coolshell.cn 2023-05-15 10:06 次阅读

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

1)pgrep

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

$pgrep-uhchen
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[$#-ne1]
then
echo'Usage:sqrtnumber'
exit1
else
echo-e"sqrt($1)
quit
"|bc-q-i
fi

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

[hchen@RHELSVR5]$./sqrt36
6
[hchen@RHELSVR5]$./sqrt2.0000
1.4142
[hchen@RHELSVR5]$./sqrt10.0000
3.1622

4)split

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

[hchen@RHELSVR5applebak]#ls-llargefile.tar.gz
-rw-r--r--1hchenhchen43677477404-1702:00largefile.tar.gz

[hchen@RHELSVR5applebak]#split-b50mlargefile.tar.gzLF_

[hchen@RHELSVR5]#ls-lLF_*
-rw-r--r--1hchenhchen5242880005-1018:34LF_aa
-rw-r--r--1hchenhchen5242880005-1018:34LF_ab
-rw-r--r--1hchenhchen5242880005-1018:34LF_ac
-rw-r--r--1hchenhchen5242880005-1018:34LF_ad
-rw-r--r--1hchenhchen5242880005-1018:34LF_ae
-rw-r--r--1hchenhchen5242880005-1018:35LF_af
-rw-r--r--1hchenhchen5242880005-1018:35LF_ag
-rw-r--r--1hchenhchen5242880005-1018:35LF_ah
-rw-r--r--1hchenhchen1734437405-1018:35LF_ai

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

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

5)nl

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

[hchen@RHELSVR5include]#nlstdio.h|head-n10
1/*DefineISOCstdioontopofC++iostreams.
2Copyright(C)1991,1994-2004,2005,2006FreeSoftwareFoundation,Inc.
3ThisfileispartoftheGNUCLibrary.

4TheGNUCLibraryisfreesoftware;youcanredistributeitand/or
5modifyitunderthetermsoftheGNULesserGeneralPublic
6LicenseaspublishedbytheFreeSoftwareFoundation;either
7version2.1oftheLicense,or(atyouroption)anylaterversion.

8TheGNUCLibraryisdistributedinthehopethatitwillbeuseful,

6)mkfifo

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

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

[hchen@RHELSVR5~]#mkfifo/tmp/hchenpipe

[hchen@RHELSVR5~]#ls-l/tmp
prw-rw-r--1hchenhchen005-1018:58hchenpipe

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

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

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

[hchen@RHELSVR5~]#head/tmp/hchenpipe
drwx------8hchenhchen409605-1018:27.
drwxr-xr-x7rootroot409603-0500:06..
drwxr-xr-x3hchenhchen409603-0118:13backup
-rw-------1hchenhchen72105-0522:12.bash_history
-rw-r--r--1hchenhchen2402-2822:20.bash_logout
-rw-r--r--1hchenhchen17602-2822:20.bash_profile
-rw-r--r--1hchenhchen12402-2822:20.bashrc
-rw-r--r--1rootroot1400203-0700:29index.htm
-rw-r--r--1hchenhchen3146503-0123:48index.php

7)ldd

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

[hchen@RHELSVR5~]#ldd/usr/bin/java
linux-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
#manless|col-b>less.txt

9)xmlwf

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

[hchen@RHELSVR5~]#curl'https://coolshell.cn/?feed=rss2'>cocre.xml
%Total%Received%XferdAverageSpeedTimeTimeTimeCurrent
DloadUploadTotalSpentLeftSpeed
1006488206488200864550------------2073k
[hchen@RHELSVR5~]#xmlwfcocre.xml
[hchen@RHELSVR5~]#perl-i-pe's@
@ @g'cocre.xml [hchen@RHELSVR5~]#xmlwfcocre.xml cocre.xml:13:23:mismatchedtag

10)lsof

可以列出打开了的文件。

[root@RHELSVR5~]#lsof|grepTCP
httpd548apache4uIPv614300967TCP*:http(LISTEN)
httpd548apache6uIPv614300972TCP*:https(LISTEN)
httpd561apache4uIPv614300967TCP*:http(LISTEN)
httpd561apache6uIPv614300972TCP*:https(LISTEN)
sshd1764root3uIPv64993TCP*:ssh(LISTEN)
tcpserver8965root3uIPv4153795500TCP*:pop3(LISTEN)
mysqld10202mysql10uIPv473819697TCP*:mysql(LISTEN)
sshd10735root3uIPv6160731956TCP210.51.0.232:ssh->123.117.239.68:31810(ESTABLISHED)
sshd10767hchen3uIPv6160731956TCP210.51.0.232:ssh->123.117.239.68:31810(ESTABLISHED)
vsftpd11095root3uIPv4152157957TCP*:ftp(LISTEN)

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206745
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
  • spring
    +关注

    关注

    0

    文章

    333

    浏览量

    14161
  • grep
    +关注

    关注

    0

    文章

    22

    浏览量

    4681
  • GitHub
    +关注

    关注

    3

    文章

    457

    浏览量

    15929

原文标题:Linux中几个你不常用,但却很有用的命令

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    不常见但是很有用的 gcc 命令行选项

    一些特殊的警告吗?gcc 的很多命令行选项都不会经常用到,但是它们在某些特定的情况下会变得非常有用,例如,当你在调试代码的时候。所以在本文中,我们会介绍这样的几个选项,提供所有必要的细
    发表于 12-31 11:08

    常用Linux命令盘点

    玩过Linux的人都会知道,Linux命令的确是非常多,但是玩过Linux的人也从来不会因为Linu
    发表于 07-11 08:21

    Linux常用命令使用

    备注:在敲一些不常用linux命令时经常会卡壳,所以在这里贴出来以供查询,也为其他搜索linux命令的同学提供一个参考
    发表于 07-25 07:46

    常用Linux命令分享

    今天总结几个非常常用Linux命令,其中有几个在面试很可能问相关
    发表于 12-28 06:37

    Linux常用命令自学手册》+试读报告

    还是有一定经验的Linux用户,都可以从中获得有用的信息和指导。如果正在寻找一本关于Linux命令的自学手册,那么这本书绝对值得一读。 在
    发表于 12-14 16:59

    Linux常用网络命令

    Linux常用网络命令 Linux常用网络命令  计算机网络的主要优点是能够实现资源和信
    发表于 01-18 12:47 1119次阅读

    Linux命令大全

    Linux命令大全,虽然不是每个命令都必须记住,有些命令不常用,作为一本很好的工具书,它可以做的有备无患!
    发表于 10-30 17:16 23次下载

    linux常用命令你真的知道吗?分享鲜为人知却很有趣的Unix/Linux命令

    linux常用命令其中有一些命令有用已经不足以形容她的可爱,希望各位朋友不要过于咬文嚼字。另外,回答中的指令多达六七十个,当时实施过程中,由于对指令的不熟悉,为了不至于误人子弟,还要
    发表于 07-26 12:00 1363次阅读

    Linux教程之常用Linux命令的详细资料免费下载

    等操作。Linux操作系统提供的命令很多,但用户日常使用的命令却很有限。本章将介绍一些在日常工作中最常用
    发表于 11-16 16:17 14次下载

    Linux常用命令有哪一些

    Linux常用的12条命令
    发表于 11-12 14:45 687次阅读

    Linux常用命令大全详细说明

    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令
    发表于 09-24 08:00 5次下载
    <b class='flag-5'>Linux</b>的<b class='flag-5'>常用命令</b>大全详细说明

    如何去使用这几个Linux命令

    使用 Linux 系统的开发者,很多人都有自己喜欢的系统命令,下面这个几个命令令是我平常用的比较多的,分享一下。
    的头像 发表于 06-15 16:06 1355次阅读

    linux常用命令大全

    linux常用命令大全,一些常用命令都可以找到
    发表于 03-03 09:20 0次下载

    数字示波器几个不常用但又很实用的功能

    本文博宇讯铭以鼎阳科技SDS2000XHD系列示波器讲解示波器几个不常用,又在某些场景很实用的功能:
    发表于 05-19 15:49 1322次阅读
    数字示波器<b class='flag-5'>几个</b><b class='flag-5'>不常用</b>但又很实用的功能

    Linux常用命令

    Linux常用命令
    的头像 发表于 01-12 11:19 875次阅读