首页 > 编程学习 > Linux常用命令进阶

Linux常用命令进阶

发布时间:2022/11/12 17:12:02

文章目录

  • wc
    • wc 参数格式
    • 常用参数示例
  • date & cal
    • date参数格式
    • 常用参数示例
    • cal参数格式
    • cal常用参数示例
  • which
    • which参数格式
    • which常用参数示例
  • whereis
    • whereis参数格式
    • whereis常用参数示例
  • nl
    • nl参数格式
    • nl常用参数示例
  • ps
    • ps参数格式
    • ps常用参数示例
  • cut
    • cut参数格式
    • cut常用参数示例
  • diff
    • diff参数格式
    • diff常用参数示例
  • tar
    • tar常用参数示例
  • du
    • du常用参数示例
  • netstat
  • wget
    • wget常用参数示例
  • vmstat
    • vmstat参数格式
    • vmstat常用参数示例
    • 解释
  • free
    • free参数格式
    • free常用参数示例
    • 解释

wc

wc 实用程序显示 每个输入文件或标准输入(如果未指定文件)中每个输入文件中包含的行数,字数和字节数。一行定义为由字符分隔的字符串。最后一个字符之后的字符将不包括在行数中。

wc 参数格式

wc [-clmw] [file …]

wc命令参数
-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

常用参数示例

$ ls
test.txt

$ wc test.txt
26      26     103 test.txt

$ wc -l test.txt  #直接一把统计行数
26 test.txt

$ wc -c test.txt
103 test.txt

date & cal

不带参数调用时,date实用程序将显示当前日期和时间。否则,根据指定的选项,日期 将设置日期和时间或以用户定义的方式打印日期和时间。

date实用程序 显示从内核时钟读取的日期和时间。当用于设置日期和时间时,内核时钟和硬件时钟都将更新。

只有超级用户可以设置日期,并且如果系统安全级别(请参阅securelevel(7))大于1,则时间更改不得超过1秒。

date参数格式

date [-jRu] [-r seconds | filename] [-v [+|-]val[ymwdHMS]] … [+output_fmt] date [-jnu] [[[mm]dd]HH]MM[[cc]yy][.ss] date [-jnRu] -f input_fmt new_date [+output_fmt] date [-d dst] [-t minutes_west]

date命令参数
%H 小时(以00-23来表示)。

%I 小时(以01-12来表示)。

%K 小时(以0-23来表示)。

%l 小时(以0-12来表示)。

%M 分钟(以00-59来表示)。

%P AM或PM。

%r 时间(含时分秒,小时以12小时AM/PM来表示)。

%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。

%S 秒(以本地的惯用法来表示)。

%T 时间(含时分秒,小时以24小时制来表示)。

%X 时间(以本地的惯用法来表示)。

%Z 市区。

%a 星期的缩写。

%A 星期的完整名称。

%b 月份英文名的缩写。

%B 月份的完整英文名称。

%c 日期与时间。只输入date指令也会显示同样的结果。

%d 日期(以01-31来表示)。

%D 日期(含年月日)。

%j 该年中的第几天。

%m 月份(以01-12来表示)。

%U 该年中的周数。

%w 该周的天数,0代表周日,1代表周一,异词类推。

%x 日期(以本地的惯用法来表示)。

%y 年份(以00-99来表示)。

%Y 年份(以四位数来表示)。

%n 在显示时,插入新的一行。

%t 在显示时,插入tab。

常用参数示例

$ date
20221112日 星期六 11:23:09 CST



$  date '+%D'
11/12/22

$  date '+%T'
11:23:28

$ date '+%X'
11时23分33秒

cal参数格式

cal [-3hjy] [-A number] [-B number] [[month] year] cal [-3hj] [-A number] [-B number] -m month [year] ncal [-3hjJpwy] [-A number] [-B number] [-s country_code] [[month] year] ncal [-3hJeo] [-A number] [-B number] [year] ncal [-CN] [-H yyyy-mm-dd] [-d yyyy-mm]

cal命令参数
-1 显示一个月的月历

-3 显示系统前一个月,当前月,下一个月的月历

-s 显示星期天为一个星期的第一天,默认的格式

-m 显示星期一为一个星期的第一天
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历

cal常用参数示例

$ cal
     十一月 2022    
日 一 二 三 四 五 六
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

which

which命令的作用是,在PATH变量指定的路径中,** 搜索某个系统命令的位置,并且返回第一个搜索结果**。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which参数格式

-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p 与-n参数相同,但此处的包括了文件的路径。

-w 指定输出时栏位的宽度。

which常用参数示例

$ which ls
alias ls='ls --color=auto'
    /bin/ls

$ which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
        /usr/bin/alias
        /usr/bin/which

whereis

whereis介绍
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

whereis参数格式

whereis [program …]

whereis命令参数
-b 定位可执行文件。

-m 定位帮助文件。

-s 定位源代码文件。

-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

-B 指定搜索可执行文件的路径。

-M 指定搜索帮助文件的路径。

-S 指定搜索源代码文件的路径。

whereis常用参数示例

$ whereis ls
/bin/ls

$ whereis whereis
/usr/bin/whereis

nl

nl命令在linux系统中用来 计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

nl参数格式

nl [-p] [-b type] [-d delim] [-f type] [-h type] [-i incr] [-l num] [-n format] [-s sep] [-v startnum] [-w width] [file]

nl命令参数
-b :指定行号指定的方式,主要有两种:

-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

-b t :如果有空行,空的那一行不要列出行号(默认值);

-n :列出行号表示的方法,主要有三种:

-n ln :行号在萤幕的最左方显示;

-n rn :行号在自己栏位的最右方显示,且不加 0 ;

-n rz :行号在自己栏位的最右方显示,且加 0 ;

-w :行号栏位的占用的位数。

-p 在逻辑定界符处不重新开始计算。

nl常用参数示例

$ nl my.cnf
	1  [client]
	2  default_character_set=utf8mb4
	3  [mysqld]
	4  collation_server = utf8mb4_general_ci
	5  character_set_server = utf8mb4

ps

ps介绍

ps实用程序显示标题行,其后是包含有关 具有控制终端的所有进程的信息的行

ps参数格式

ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid…]] [-g grp[,grp…]] [-u uid[,uid…]] [-p pid[,pid…]] [-t tty[,tty…]] [-U user[,user…]] ps [-L]

ps命令参数
a 显示所有进程

-a 显示同一终端下的所有程序

-A 显示所有进程

c 显示进程的真实名称

-N 反向选择

-e 等于“-A”

e 显示环境变量

f 显示程序间的关系

-H 显示树状结构

r 显示当前终端的进程

T 显示当前终端的所有程序

u 指定用户的所有进程

-au 显示较详细的资讯

-aux 显示所有包含其他使用者的行程

-C<命令> 列出指定命令的状况

–lines<行数> 每页显示的行数

–width<字符数> 每页显示的字符数

ps常用参数示例

#查看所有进程
$ps -a
#查看进程的环境变量和程序间的关系
$ps -ef

cut

**取出文件的 前10行,并且打印 第7列 **


$  cat passwd | head -n 10|cut -c7

cut实用程序从每个文件中剪切出每行的选定部分(由列表指定),并将它们写入标准输出。如果未指定文件参数,或者文件参数为单破折号(-),则从标准输入中读取内容。列表指定的项目可以是列位置,也可以是由特殊字符分隔的字段。列编号从1开始。

cut参数格式

cut -b list [-n] [file …] cut -c list [file …] cut -f list [-d delim] [-s] [file …]

cut命令参数
-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

–complement:补足被选择的字节、字符或字段;

–out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

cut常用参数示例

$cut -c-10 tmp.txt  #cut tmp.txt文件的前10列
$cut -c3-5 tmp.txt  #cut tmp.txt文件的第3到5列
$cut -c3- tmp.txt  #cut tmp.txt文件的第3到结尾列
$cat passwd |head -n 10|cut -d ':' -f 3 # 以 : 作为分隔符,取出第3列,取出 passwd 文件前10行

diff

diff介绍

比较两个文件的不同

diff参数格式

diff [OPTION]… FILES

diff命令参数
-b或–ignore-space-change 不检查空格字符的不同。

-B或–ignore-blank-lines 不检查空白行。

-c 显示全部内文,并标出不同之处。

-C或–context 与执行"-c-"指令相同。

-d或–minimal 使用不同的演算法,以较小的单位来做比较。

-D或ifdef 此参数的输出格式可用于前置处理器巨集。

-e或–ed 此参数的输出格式可用于ed的script文件。

diff常用参数示例

$ diff testA.txt testB.txt

tar

tar常用参数示例

#打包  tar -cvf 包名  文件名
$tar -cvf test.tar test.txt 
#解包  tar -xvf 包名 
$tar -xvf test.tar
#压缩  tar -czvf 包名 文件名
$tar -czvf test.tgz test.txt
#解压  tar -xzvf 包名
$tar -xzvf test.tgz

du

du常用参数示例

#查看指定文件大小
$du -h filename
#展示该目录下所有文件大小,大小以可读方式展示
$du  -h /
#展示当前目录大小
$du -sh
#展示当前目录下每个目录大小
$du -sh ./
#显示所有文件的大小,以可读方式展示
$du -ah /

netstat

#列出所有端口使用情况
$netstat -a
#显示当前UDP连接状况
$netstat -nu
#显示UDP端口号的使用情况
$netstat -apu
#显示网卡列表
$netstat -i
#显示网络统计信息
$netstat -s
#显示监听的套接口
$netstat -l
#显示所有已建立的有效连接
$netstat -n
#显示关于路由表的信息
$netstat -r
#列出所有 tcp 端口
$netstat -at
#找出程序运行的端口
$netstat -ap | grep ssh
#在 netstat 输出中显示 PID 和进程名称
$netstat -pt

wget

wget常用参数示例

#下载某个文件,wget 文件的地址
$wget https://blog.csdn.net/qq_38646470

vmstat

vmstat 报告有关进程,内存,页面调度,块IO,陷阱,磁盘和cpu活动的信息

vmstat参数格式

vmstat [options] [delay [count]]

vmstat命令参数
-a:显示活跃和非活跃内存

-f:显示从系统启动至今的fork数量 。

-m:显示slabinfo

-n:只在开始时显示一次各字段名称。

-s:显示内存相关统计信息及多种系统活动数量。

delay:刷新时间间隔。如果不指定,只显示一条结果。

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

-d:显示磁盘相关统计信息。

-p:显示指定磁盘分区统计信息

-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

vmstat常用参数示例

#显示虚拟内存情况
$ vmstat 2 # 每隔2s打印一次 虚拟内存情况
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 1690536   1052 558164    0    0   204    10  163  347  1  3 95  0  0
 0  0      0 1690520   1052 558172    0    0     0     9  219  432  3  8 90  0  0
 0  0      0 1690520   1052 558188    0    0     0     8  161  288  1  4 95  0  0

解释

Procs(进程):

r: 运行队列中进程数量

b: 等待IO的进程数量

Memory(内存):

swpd: 使用虚拟内存大小

free: 可用内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

Swap:

si: 每秒从交换区写到内存的大小

so: 每秒写入交换区的内存大小

IO:(现在的Linux版本块的大小为1024bytes)

bi: 每秒读取的块数

bo: 每秒写入的块数

系统:

in: 每秒中断数,包括时钟中断。

cs: 每秒上下文切换数。

CPU(以百分比表示):

us: 用户进程执行时间(user time)

sy: 系统进程执行时间(system time)

id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。

wa: 等待IO时间

#表示在3秒时间内进行3次采样。将得到一个数据汇总他能够反映真正的系统情况。
$vmstat 3 3
#查看系统fork多少次
$ vmstat -f
    166484246 forks
#查看内存使用的详细信息
$vmstat -s
#查看磁盘的读/写
$vmstat -d
#查看系统的slab信息
$vmstat -m

free

free 显示系统中可用和可用的物理内存和交换内存的总量,以及内核使用的缓冲区和高速缓存

free参数格式

free [options]

free命令参数
-b 以Byte为单位显示内存使用情况。

-k 以KB为单位显示内存使用情况。

-m 以MB为单位显示内存使用情况。

-g 以GB为单位显示内存使用情况。

-o 不显示缓冲区调节列。

-s<间隔秒数> 持续观察内存使用状况。

-t 显示内存总和列。

free常用参数示例

#显示内存使用情况
$ free
              total        used        free      shared  buff/cache   available
Mem:       65808884     4582700    23754736         684    37471448    60913052
$ free -h
              total        used        free      shared  buff/cache   available
Mem:            62G        4.4G         22G        684K         35G         58G
Swap:            0B          0B          0B

解释

total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。

第三行(-/+ buffers/cached):

used:已使用多大。

free:可用有多少。

#周期性的查询内存使用信息,5s执行一次
$ free -s 5
Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式