AWK 内置函数

AWK 内置函数主要有以下几种:

  • 算数函数
  • 字符串函数
  • 时间函数
  • 位操作函数
  • 其它函数

算数函数

函数名 说明 实例
atan2( y, x ) 返回 y/x 的反正切。
$ awk 'BEGIN {
  PI = 3.14159265
  x = -10
  y = 10
  result = atan2 (y,x) * 180 / PI;

  printf "The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result
}'

输出结果为:

The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees
cos( x ) 返回 x 的余弦;x 是弧度。
$ awk 'BEGIN {
  PI = 3.14159265
  param = 60
  result = cos(param * PI / 180.0);

  printf "The cosine of %f degrees is %f.\n", param, result
}'

输出结果为:

The cosine of 60.000000 degrees is 0.500000.
sin( x ) 返回 x 的正弦;x 是弧度。
$ awk 'BEGIN {
  PI = 3.14159265
  param = 30.0
  result = sin(param * PI /180)

  printf "The sine of %f degrees is %f.\n", param, result
}'

输出结果为:

The sine of 30.000000 degrees is 0.500000.
exp( x ) 返回 x 幂函数。
$ awk 'BEGIN {
  param = 5
  result = exp(param);

  printf "The exponential value of %f is %f.\n", param, result
}'

输出结果为:

The exponential value of 5.000000 is 148.413159.
log( x ) 返回 x 的自然对数。
$ awk 'BEGIN {
  param = 5.5
  result = log (param)

  printf "log(%f) = %f\n", param, result
}'

输出结果为:

log(5.500000) = 1.704748
sqrt( x ) 返回 x 平方根。
$ awk 'BEGIN {
  param = 1024.0
  result = sqrt(param)

  printf "sqrt(%f) = %f\n", param, result
}'

输出结果为:

sqrt(1024.000000) = 32.000000
int( x ) 返回 x 的截断至整数的值。
$ awk 'BEGIN {
  param = 5.12345
  result = int(param)

  print "Truncated value =", result
}'

输出结果为:

Truncated value = 5
rand( ) 返回任意数字 n,其中 0 <= n < 1。
$ awk 'BEGIN {
  print "Random num1 =" , rand()
  print "Random num2 =" , rand()
  print "Random num3 =" , rand()
}'

输出结果为:

Random num1 = 0.237788
Random num2 = 0.291066
Random num3 = 0.845814
srand( [Expr] ) 将 rand 函数的种子值设置为 Expr 参数的值,或如果省略 Expr 参数则使用某天的时间。返回先前的种子值。
$ awk 'BEGIN {
  param = 10

  printf "srand() = %d\n", srand()
  printf "srand(%d) = %d\n", param, srand(param)
}'

输出结果为:

srand() = 1
srand(10) = 1417959587

字符串函数

函数 说明 实例
gsub( Ere, Repl, [ In ] ) gsub 是全局替换( global substitution )的缩写。除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行。
$ awk 'BEGIN {
    str = "Hello, World"

    print "String before replacement = " str

    gsub("World", "Jerry", str)

    print "String after replacement = " str
}'

输出结果为:

String before replacement = Hello, World
String after replacement = Hello, Jerry
sub(regex,sub,string) sub 函数执行一次子串替换。它将第一次出现的子串用 regex 替换。第三个参数是可选的,默认为 $0。
$ awk 'BEGIN {
    str = "Hello, World"

    print "String before replacement = " str

    sub("World", "Jerry", str)

    print "String after replacement = " str
}'

输出结果为:

String before replacement = Hello, World
String after replacement = Hello, Jerry
substr(str, start, l) substr 函数返回 str 字符串中从第 start 个字符开始长度为 l 的子串。如果没有指定 l 的值,返回 str 从第 start 个字符开始的后缀子串。
$ awk 'BEGIN {
    str = "Hello, World !!!"
    subs = substr(str, 1, 5)

    print "Substring = " subs
}'

输出结果为:

Substring = Hello
index( String1, String2 ) 在由 String1 参数指定的字符串(其中有出现 String2 指定的参数)中,返回位置,从 1 开始编号。如果 String2 参数不在 String1 参数中出现,则返回 0(零)。
$ awk 'BEGIN {
    str = "One Two Three"
    subs = "Two"

    ret = index(str, subs)

    printf "Substring \"%s\" found at %d location.\n", subs, ret
}'

输出结果为:

Substring "Two" found at 5 location.
length [(String)] 返回 String 参数指定的字符串的长度(字符形式)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)。
$ awk 'BEGIN {
    str = "Hello, World !!!"

    print "Length = ", length(str)
}'

输出结果为:

Substring "Two" found at 5 location.
blength [(String)] 返回 String 参数指定的字符串的长度(以字节为单位)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)。  
substr( String, M, [ N ] ) 返回具有 N 参数指定的字符数量子串。子串从 String 参数指定的字符串取得,其字符以 M 参数指定的位置开始。M 参数指定为将 String 参数中的第一个字符作为编号 1。如果未指定 N 参数,则子串的长度将是 M 参数指定的位置到 String 参数的末尾 的长度。
$ awk 'BEGIN {
    str = "Hello, World !!!"
    subs = substr(str, 1, 5)

    print "Substring = " subs
}'

输出结果为:

Substring = Hello
match( String, Ere ) 在 String 参数指定的字符串(Ere 参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果 Ere 参数不出现,则返回 0(零)。RSTART 特殊变量设置为返回值。RLENGTH 特殊变量设置为匹配的字符串的长度,或如果未找到任何匹配,则设置为 -1(负一)。
$ awk 'BEGIN {
    str = "One Two Three"
    subs = "Two"

    ret = match(str, subs)

    printf "Substring \"%s\" found at %d location.\n", subs, ret
}'

输出结果为:

Substring "Two" found at 5 location.
split( String, A, [Ere] ) 将 String 参数指定的参数分割为数组元素 A[1], A[2], . . ., A[n],并返回 n 变量的值。此分隔可以通过 Ere 参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere 参数)。除非上下文指明特定的元素还应具有一个数字值,否则 A 数组中的元素用字符串值来创建。
$ awk 'BEGIN {
    str = "One,Two,Three,Four"

    split(str, arr, ",")

    print "Array contains following values"

    for (i in arr) {
        print arr[i]
    }
}'

输出结果为:

Array contains following values
One
Two
Three
Four
tolower( String ) 返回 String 参数指定的字符串,字符串中每个大写字符将更改为小写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。
$ awk 'BEGIN {
    str = "HELLO, WORLD !!!"

    print "Lowercase string = " tolower(str)
}'

输出结果为:

Lowercase string = hello, world !!!
toupper( String ) 返回 String 参数指定的字符串,字符串中每个小写字符将更改为大写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。
$ awk 'BEGIN {
    str = "hello, world !!!"

    print "Uppercase string = " toupper(str)
}'

输出结果为:

Uppercase string = HELLO, WORLD !!!
sprintf(Format, Expr, Expr, . . . ) 根据 Format 参数指定的 printf 子例程格式字符串来格式化 Expr 参数指定的表达式并返回最后生成的字符串。
$ awk 'BEGIN {
    str = sprintf("%s", "Hello, World !!!")

    print str
}'

输出结果为:

Hello, World !!!
strtonum(str) strtonum 将字符串 str 转换为数值。 如果字符串以 0 开始,则将其当作十进制数;如果字符串以 0x 或 0X 开始,则将其当作十六进制数;否则,将其当作浮点数。
$ awk 'BEGIN {
    print "Decimal num = " strtonum("123")
    print "Octal num = " strtonum("0123")
    print "Hexadecimal num = " strtonum("0x123")
}'

输出结果为:

Decimal num = 123
Octal num = 83
Hexadecimal num = 291

注:Ere 部分可以是正则表达式。

1、gsub、sub 使用

$ awk 'BEGIN{info="this is a test2012test!";gsub(/[0-9]+/,"||",info);print info}'
this is a test||test!

2、查找字符串(index 使用)

使用了三元运算符: 表达式 ? 动作1 : 动作2

$ awk 'BEGIN{info="this is a test2012test!";print index(info,"11111")?"ok":"no found";}'
no found
$ awk 'BEGIN{info="this is a test2012test!";print index(info,"is")?"ok":"no found";}'
ok
$ awk 'BEGIN{info="this is a test2012test!";print index(info,"test")?"ok":"no found";}'
ok

3、正则表达式匹配查找(match 使用)

$ awk 'BEGIN{info="this is a test2012test!";print match(info,/[0-9]+/)?"ok":"no found";}'
ok

4、截取字符串(substr使用)

从第 4 个 字符开始,截取 10 个长度字符串。

$ awk 'BEGIN{info="this is a test2012test!";print substr(info,4,10);}'
s is a tes

5、字符串分割(split使用)

$ awk 'BEGIN{info="this is a test";split(info,tA," ");print length(tA);for(k in tA){print k,tA[k];}}'
4
2 is
3 a
4 test
1 this

分割 info,将 info 字符串使用空格切分为动态数组 tA。注意 awk for …in 循环,是一个无序的循环。 并不是从数组下标 1…n ,因此使用时候需要特别注意。

6、格式化字符串输出(sprintf使用)

其中格式化字符串包括两部分内容: 一部分是正常字符,这些字符将按原样输出; 另一部分是格式化规定字符, 以 % 开始, 后跟一个或几个规定字符,用来确定输出内容格式。 需要特别注意的是使用 printf 时默认是不会换行的,而 print 函数默认会在每行后面加上 \n 换行符。

格式符 说明
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法
$ awk 'BEGIN{n1=124.113;n2=-1.224;n3=1.2345; printf("%.2f,%.2u,%.2g,%X,%o\n",n1,n2,n3,n1,n1);}'
124.11,4294967295,1.2,7C,174
$  awk 'BEGIN{n1=124.113;n2=-1.224;n3=1.2645; printf("%.2f,%.2u,%.2g,%X,%o\n",n1,n2,n3,n1,n1);}'
124.11,4294967295,1.3,7C,174

注:看上面的 n3 输出值会发现,在使用 printf 处理时一个比较智能的功能是可以进行四舍五入保留小数点位的。

时间函数

函数名 说明 实例
mktime( YYYY MM DD HH MM SS[ DST]) 生成时间格式
$ awk 'BEGIN {
    print "Number of seconds since the Epoch = " mktime("2014 12 14 30 20 10")
}'

输出结果为:

Number of seconds since the Epoch = 1418604610
strftime([format [, timestamp]]) 格式化时间输出,将时间戳转为时间字符串
具体格式,见下表.
$ awk 'BEGIN {
    print strftime("Time = %m/%d/%Y %H:%M:%S", systime())
}'

输出结果为:

Time = 12/14/2014 22:08:42
systime() 得到时间戳,返回从1970年1月1日开始到当前时间(不计闰年)的整秒数
awk 'BEGIN{now=systime();print now}'

输出结果为:

1343210982

strftime 日期和时间格式说明符:

序号 描述
%a 星期缩写(Mon-Sun)。
%A 星期全称(Monday-Sunday)。
%b 月份缩写(Jan)。
%B 月份全称(January)。
%c 本地日期与时间。
%C 年份中的世纪部分,其值为年份整除100。
%d 十进制日期(01-31)
%D 等价于 %m/%d/%y.
%e 日期,如果只有一位数字则用空格补齐
%F 等价于 %Y-%m-%d,这也是 ISO 8601 标准日期格式。
%g ISO8610 标准周所在的年份模除 100(00-99)。比如,1993 年 1 月 1 日属于 1992 年的第 53 周。所以,虽然它是 1993 年第 1 天,但是其 ISO8601 标准周所在年份却是 1992。同样,尽管 1973 年 12 月 31 日属于 1973 年但是它却属于 1994 年的第一周。所以 1973 年 12 月 31 日的 ISO8610 标准周所在的年是 1974 而不是 1973。
%G ISO 标准周所在年份的全称。
%h 等价于 %b.
%H 用十进制表示的 24 小时格式的小时(00-23)
%I 用十进制表示的 12 小时格式的小时(00-12)
%j 一年中的第几天(001-366)
%m 月份(01-12)
%M 分钟数(00-59)
%n 换行符 (ASCII LF)
%p 十二进制表示法(AM/PM)
%r 十二进制表示法的时间(等价于 %I:%M:%S %p)。
%R 等价于 %H:%M。
%S 时间的秒数值(00-60)
%t 制表符 (tab)
%T 等价于 %H:%M:%S。
%u 以数字表示的星期(1-7),1 表示星期一。
%U 一年中的第几个星期(第一个星期天作为第一周的开始),00-53
%V 一年中的第几个星期(第一个星期一作为第一周的开始),01-53。
%w 以数字表示的星期(0-6),0表示星期日 。
%W 十进制表示的一年中的第几个星期(第一个星期一作为第一周的开始),00-53。
%x 本地日期表示
%X 本地时间表示
%y 年份模除 100。
%Y 十进制表示的完整年份。
%z 时区,表示格式为+HHMM(例如,格式要求生成的 RFC 822或者 RFC 1036 时间头)
%Z 时区名称或缩写,如果时区待定则无输出。

位操作函数

函数名 说明 实例
and 位与操作。
$ awk 'BEGIN {
    num1 = 10
    num2 = 6

    printf "(%d AND %d) = %d\n", num1, num2, and(num1, num2)
}'

输出结果为:

(10 AND 6) = 2
compl 按位求补。
$ awk 'BEGIN {
    num1 = 10

    printf "compl(%d) = %d\n", num1, compl(num1)
}'

输出结果为:

compl(10) = 9007199254740981
lshift 左移位操作
$ awk 'BEGIN {
    num1 = 10

    printf "lshift(%d) by 1 = %d\n", num1, lshift(num1, 1)
}'

输出结果为:

lshift(10) by 1 = 20
rshift 右移位操作
$ awk 'BEGIN {
    num1 = 10

    printf "rshift(%d) by 1 = %d\n", num1, rshift(num1, 1)
}'

输出结果为:

rshift(10) by 1 = 5
or 按位或操作
$ awk 'BEGIN {
    num1 = 10
    num2 = 6

    printf "(%d OR %d) = %d\n", num1, num2, or(num1, num2)
}'

输出结果为:

(10 OR 6) = 14
xor 按位异或操作
$ awk 'BEGIN {
    num1 = 10
    num2 = 6

    printf "(%d XOR %d) = %d\n", num1, num2, xor(num1, num2)
}'

输出结果为:

(10 bitwise xor 6) = 12

其他函数

函数名 说明 实例
close(expr) 关闭管道的文件
$ awk 'BEGIN {
    cmd = "tr [a-z] [A-Z]"
    print "hello, world !!!" |& cmd
    close(cmd, "to")
    cmd |& getline out
    print out;
    close(cmd);
}'

输出结果为:

HELLO, WORLD !!!
  • 第一条语句 cmd = “tr [a-z] [A-Z]” 在 AWK 中建立了一个双向的通信通道。
  • 第二条语句 print 为 tr 命令提供输入。&| 表示双向通信。
  • 第三条语句 close(cmd, “to”) 完成执行后关闭 to 进程。
  • 第四条语句 cmd |& getline out 使用 getline 函数将输出存储到 out 变量中。
  • 接下来的输出语句打印输出的内容,最后 close 函数关闭 cmd。
delete 用于从数组中删除元素
$ awk 'BEGIN {
    arr[0] = "One"
    arr[1] = "Two"
    arr[2] = "Three"
    arr[3] = "Four"

    print "Array elements before delete operation:"
    for (i in arr) {
        print arr[i]
    }

    delete arr[0]
    delete arr[1]

    print "Array elements after delete operation:"
    for (i in arr) {
        print arr[i]
    }
}'

输出结果为:

Array elements before delete operation:
One
Two
Three
Four

Array elements after delete operation:
Three
Four
exit 终止脚本执行,它可以接受可选的参数 expr 传递 AWK 返回状态。
$ awk 'BEGIN {
    print "Hello, World !!!"

    exit 10

    print "AWK never executes this statement."
}'

输出结果为:

Hello, World !!!
flush 刷新打开文件或管道的缓冲区  
getline 读入下一行 使用 getline 从文件 marks.txt 中读入一行并输出:

$ awk '{getline; print $0}' marks.txt 

,AWK 从文件 marks.txt 中读入一行存储到变量 0 中。在下一条语句中,我们使用 getline 读入下一行。因此AWK读入第二行并存储到 0 中。最后,AWK 使用 print 输出第二行的内容。这个过程一直到文件结束。

next 停止处理当前记录,并且进入到下一条记录的处理过程。 当模式串匹配成功后程序并不执行任何操作:

$ awk '{if ($0 ~/Shyam/) next; print $0}' marks.txt
nextfile 停止处理当前文件,从下一个文件第一个记录开始处理。 首先创建两个文件。 file1.txt 内容如下:

file1:str1
file1:str2
file1:str3
file1:str4

文件 file2.txt 内容如下:

file2:str1
file2:str2
file2:str3
file2:str4

现在我们来测试 nextfile 函数。

$ awk '{ if ($0 ~ /file1:str2/) nextfile; print $0 }' file1.txt file2.txt

输出结果为:

file1:str1
file2:str1
file2:str2
file2:str3
file2:str4
return 从用户自定义的函数中返回值。请注意,如果没有指定返回值,那么的返回值是未定义的。 创建文件 functions.awk,内容如下:

function addition(num1, num2)
{
    result = num1 + num2

    return result
}

BEGIN {
    res = addition(10, 20)
    print "10 + 20 = " res
}

执行该文件:

$ awk -f functions.awk 
10 + 20 = 30
system 执行特定的命令然后返回其退出状态。返回值为 0 表示命令执行成功;非 0 表示命令执行失败。
$ awk 'BEGIN { ret = system("date"); print "Return value = " ret }'

输出结果为:

Sun Dec 21 23:16:07 IST 2014
Return value = 0

赞(2)

猜你喜欢

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址
    Linux 基础教程
    Linux 简介Linux 安装Linux 云服务器Linux 系统启动过程Linux 系统目录结构Linux 忘记密码解决方法Linux 远程登录Linux 文件基本属性Linux 文件与目录管理Linux 用户和用户组管理Linux 磁盘管理Linux vi/vimlinux yum 命令VMware 安装 Centos7 超详细过程
    Linux 命令
    Linux 命令大全Linux cat命令Linux chattr命令Linux chgrp命令Linux chmod命令Linux chown命令Linux cksum命令Linux cmp命令Linux diff命令Linux diffstat命令Linux file命令Linux find命令Linux git命令Linux gitview命令Linux indent命令Linux cut命令Linux ln命令Linux less命令Linux locate命令Linux lsattr命令Linux mattrib命令Linux mc命令Linux mdel命令Linux mdir命令Linux mktemp命令Linux more命令Linux mmove命令Linux mread命令Linux mren命令Linux mtools命令Linux mtoolstest命令Linux mv 命令Linux od命令Linux paste命令Linux patch命令Linux rcp命令Linux rm命令Linux slocate命令Linux split命令Linux tee命令Linux tmpwatch命令Linux touch命令Linux umask命令Linux which命令Linux cp命令Linux whereis命令Linux mcopy命令Linux mshowfat命令Linux rhmask命令Linux scp命令Linux awk 命令Linux read 命令Linux updatedb 命令Linux col命令Linux colrm命令Linux comm命令Linux csplit命令Linux ed命令Linux egrep命令Linux ex命令Linux fgrep命令Linux fmt命令Linux fold命令Linux grep 命令Linux ispell命令Linux jed命令Linux joe命令Linux join命令Linux look命令Linux mtype命令Linux pico命令Linux rgrep命令Linux sed 命令Linux sort命令Linux spell命令Linux tr命令Linux expr命令Linux uniq 命令Linux wc命令Linux let 命令Linux lprm命令Linux lpr命令Linux lpq命令Linux lpd命令Linux bye命令Linux ftp命令Linux uuto命令Linux uupick命令Linux uucp命令Linux uucico命令Linux tftp命令Linux ncftp命令Linux ftpshut命令Linux ftpwho命令Linux ftpcount命令Linux cd命令Linux df命令Linux dirs命令Linux du命令Linux edquota命令Linux eject命令Linux mcd命令Linux mdeltree命令Linux mdu命令Linux mkdir命令Linux mlabel命令Linux mmd命令Linux mrd命令Linux mzip命令Linux pwd命令Linux quota命令Linux mount命令Linux mmount命令Linux rmdir命令Linux rmt命令Linux stat命令Linux tree命令Linux umount命令Linux ls命令Linux quotacheck命令Linux quotaoff命令Linux lndir命令Linux repquota命令Linux quotaon命令Linux badblocks命令Linux cfdisk命令Linux dd命令Linux e2fsck命令Linux ext2ed命令Linux fsck命令Linux fsck.minix命令Linux fsconf命令Linux fdformat命令Linux hdparm命令Linux mformat命令Linux mkbootdisk命令Linux mkdosfs命令Linux mke2fs命令Linux mkfs.ext2命令Linux mkfs.msdos命令Linux mkinitrd命令Linux mkisofs命令Linux mkswap命令Linux mpartition命令Linux swapon命令Linux symlinks命令Linux sync命令Linux mbadblocks命令Linux mkfs.minix命令Linux fsck.ext2命令Linux fdisk命令Linux losetup命令Linux mkfs命令Linux sfdisk命令Linux swapoff命令Linux apachectl命令Linux arpwatch命令Linux dip命令Linux getty命令Linux mingetty命令Linux uux命令Linux telnet命令Linux uulog命令Linux uustat命令Linux ppp-off命令Linux netconfig命令Linux nc命令Linux httpd命令Linux ifconfig命令Linux minicom命令Linux mesg命令Linux dnsconf命令Linux wall命令Linux netstat命令Linux ping命令Linux pppstats命令Linux samba命令Linux setserial命令Linux talk命令Linux traceroute命令Linux tty命令Linux newaliases命令Linux uuname命令Linux netconf命令Linux write命令Linux statserial命令Linux efax命令Linux pppsetup命令Linux tcpdump命令Linux ytalk命令Linux cu命令Linux smbd命令Linux testparm命令Linux smbclient命令Linux shapecfg命令Linux adduser命令Linux chfn命令Linux useradd命令Linux date命令Linux exit命令Linux finger命令Linux fwhios命令Linux sleep命令Linux suspend命令Linux groupdel命令Linux groupmod命令Linux halt命令Linux kill命令Linux last命令Linux lastb命令Linux login命令Linux logname命令Linux logout命令Linux ps命令Linux nice命令Linux procinfo命令Linux top命令Linux pstree命令Linux reboot命令Linux rlogin命令Linux rsh命令Linux sliplogin命令Linux screen命令Linux shutdown命令Linux rwho命令Linux sudo命令Linux gitps命令Linux swatch命令Linux tload命令Linux logrotate命令Linux uname命令Linux chsh命令Linux userconf命令Linux userdel命令Linux usermod命令Linux vlock命令Linux who命令Linux whoami命令Linux whois命令Linux newgrp命令Linux renice命令Linux su命令Linux skill命令Linux w命令Linux id命令Linux groupadd 命令Linux free命令Linux reset命令Linux clear命令Linux alias命令Linux dircolors命令Linux aumix命令Linux bind命令Linux chroot命令Linux clock命令Linux crontab 命令Linux declare命令Linux depmod命令Linux dmesg命令Linux enable命令Linux eval命令Linux export命令Linux pwunconv命令Linux grpconv命令Linux rpm命令Linux insmod命令Linux kbdconfig命令Linux lilo命令Linux liloconfig命令Linux lsmod命令Linux minfo命令Linux set命令Linux modprobe命令Linux ntsysv命令Linux mouseconfig命令Linux passwd命令Linux pwconv命令Linux rdate命令Linux resize命令Linux rmmod命令Linux grpunconv命令Linux modinfo命令Linux time命令Linux setup命令Linux sndconfig命令Linux setenv命令Linux setconsole命令Linux timeconfig命令Linux ulimit命令Linux unset命令Linux chkconfig命令Linux apmd命令Linux hwclock命令Linux mkkickstart命令Linux fbset命令Linux unalias命令Linux SVGATextMode命令Linux gpasswd 命令Linux ar命令Linux bunzip2命令Linux bzip2命令Linux bzip2recover命令Linux gunzip命令Linux unarj命令Linux compress命令Linux cpio命令Linux dump命令Linux uuencode命令Linux gzexe命令Linux gzip命令Linux lha命令Linux restore命令Linux tar命令Linux uudecode命令Linux unzip命令Linux zip命令Linux zipinfo命令Linux setleds命令Linux loadkeys命令Linux rdev命令Linux dumpkeys命令Linux MAKEDEV命令Linux poweroff 命令Linux bc 命令Linux tail 命令Linux xargs 命令Linux 常用命令全拼AWK 工作原理AWK 数组AWK 条件语句与循环AWK 用户自定义函数AWK 内置函数8 个有力的 Awk 内建变量
    Linux 问答
    Nano和VIM编辑器的区别Bash脚本中Zsh和Bash的区别Ubuntu中APT和DPKG的区别Linux中桌面环境和窗口管理器的区别Owncloud和Nextcloud的区别wget和curl的区别UNIX系统中用户cpu时间和系统cpu时间的区别KornShell 和 BashShell 的区别Linux下Ext4和Btrfs文件系统的区别片上系统SoC 与 单板计算机SBC的区别用户级线程和内核级线程的区别优先级倒置和优先级继承的区别MMU和MPU有什么区别UEFI(统一可扩展固件接口)与BIOS的区别不同类型的RAM(随机存取内存)