10个你可能不曾用过,却很有用的 LINUX 命令

点击关注上方“SQL数据库开发”,

设为“置顶或星标**”,第一时间送达干货**

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

1)pgrep

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

$ pgrep -u hchen2244122444

这个命令相当于:

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

2)pstree

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

[hchen@RHELSVR5 ~]$ pstreeinit-+-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

3)bc

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

#!/bin/bashif [ $# -ne 1 ]then    echo 'Usage: sqrt number'    exit 1else    echo -e "sqrt($1)\nquit\n" | bc -q -ifi

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

[hchen@RHELSVR5]$ ./sqrt 366[hchen@RHELSVR5]$ ./sqrt 2.00001.4142[hchen@RHELSVR5]$ ./sqrt 10.00003.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 10     1  /* 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/or     5     modify it under the terms of the GNU Lesser General Public     6     License as published by the Free Software Foundation; either     7     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 /tmpprw-rw-r-- 1 hchen  hchen  0 05-10 18:58 hchenpipe

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

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

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

[hchen@RHELSVR5 ~]# head /tmp/hchenpipedrwx------ 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/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# 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  Current                                 Dload  Upload   Total   Spent    Left  Speed100 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.xmlcocre.xml:13:23: mismatched tag

10)lsof

可以列出打开了的文件。

[root@RHELSVR5 ~]# lsof | grep TCPhttpd       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)

转自:陈皓

https://coolshell.cn/articles/790.html

1 ——End—— 2 3 4 5 6 7 8 9 10 11 12 后台回复关键字:1024,获取一份精心整理的技术干货 13 14 15 16 17 18 19 20 21 22 23 24 后台回复关键字:进群,带你进入高手如云的交流群。 25 26 27 28 29 30 31 32 33 34 35 36 推荐阅读 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 精心整理了一套SQL高级函数,建议收藏 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 从今天起,职场再无带薪拉屎! 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 一款SQL自动检查神器,再也不用担心SQL出错了! 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 SQL 语句中 where 条件后 写上1=1 是什么意思 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 国产数据库建模工具,看到界面第一眼,良心了! 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 这是一个能学到技术的公众号,欢迎关注 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 点击「阅读原文」了解SQL训练营

本文分享自微信公众号 - SQL数据库开发(sql_road)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )