博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六个优雅的 Linux 命令行技巧
阅读量:4655 次
发布时间:2019-06-09

本文共 5577 字,大约阅读时间需要 18 分钟。

一些非常有用的命令能让命令行的生活更满足,使用 Linux 命令工作可以获得许多乐趣,但是如果您使用一些命令,它们可以减少您的工作或以有趣的方式显示信息时,您将获得更多的乐趣。在今天的文章中,我们将介绍六个命令,它们可能会使你用在命令行上的时间更加值当。

百牛信息技术bainiu.ltd整理发布于博客园 

watch

watch 命令会重复运行您给出的任何命令,并显示输出。默认情况下,它每两秒运行一次命令。命令的每次运行都将覆盖上一次运行时显示的内容,因此您始终可以看到最新的数据。

您可能会在等待某人登录时使用它。在这种情况下,您可以使用 watch who 命令或者 watch -n 15 who 命令使每 15 秒运行一次,而不是两秒一次。另外终端窗口的右上角会显示日期和时间。

  1. watch-5who
  2. Every5.0s:who stinkbug:WedAug2314:52:152017
  3. shs pts/02017-08-2314:45(192.168.0.11)
  4. zoe pts/12017-08-2308:15(192.168.0.19)

您也可以使用它来查看日志文件。如果您显示的数据没有任何变化,则只有窗口角落里的日期和时间会发生变化。

  1. watchtail/var/log/syslog
  2. Every2.0s:tail/var/log/syslog stinkbug:WedAug2315:16:372017
  3. Aug2314:45:01 stinkbug CRON[7214]:(root) CMD (command -v debian-sa1 >/dev/nu
  4. ll && debian-sa1 11)
  5. Aug2314:45:17 stinkbug systemd[1]:StartedSession179 of user shs.
  6. Aug2314:55:01 stinkbug CRON[7577]:(root) CMD (command -v debian-sa1 >/dev/nu
  7. ll && debian-sa1 11)
  8. Aug2315:05:01 stinkbug CRON[7582]:(root) CMD (command -v debian-sa1 >/dev/nu
  9. ll && debian-sa1 11)
  10. Aug2315:08:48 stinkbug systemd[1]:StartingCleanup of TemporaryDirectories...
  11. Aug2315:08:48 stinkbug systemd-tmpfiles[7584]:[/usr/lib/tmpfiles.d/var.conf:1
  12. 4]Duplicate line for path "/var/log", ignoring.
  13. Aug2315:08:48 stinkbug systemd[1]:StartedCleanup of TemporaryDirectories.
  14. Aug2315:13:41 stinkbug systemd[1]:StartedSession182 of user shs.
  15. Aug2315:14:29 stinkbug systemd[1]:StartedSession183 of user shs.
  16. Aug2315:15:01 stinkbug CRON[7828]:(root) CMD (command -v debian-sa1 >/dev/nu
  17. ll && debian-sa1 11)

这里的输出和使用命令 tail -f /var/log/syslog 的输出相似。

 

look

这个命令的名字 look 可能会让我们以为它和 watch 做类似的事情,但其实是不同的。look 命令用于搜索以某个特定字符串开头的单词。

  1. look ecl
  2. eclectic
  3. eclectic's
  4. eclectically
  5. eclecticism
  6. eclecticism's
  7. eclectics
  8. eclipse
  9. eclipse's
  10. eclipsed
  11. eclipses
  12. eclipsing
  13. ecliptic
  14. ecliptic's

look 命令通常有助于单词的拼写,它使用 /usr/share/dict/words 文件,除非你使用如下的命令指定了文件名:

  1. lookesac.bashrc
  2. esac
  3. esac
  4. esac

在这种情况下,它的作用就像跟在一个 awk 命令后面的 grep ,只打印匹配行上的第一个单词。

 

man -k

man -k 命令列出包含指定单词的手册页。它的工作基本上和 apropos 命令一样。

  1. man-k logrotate
  2. dh_installlogrotate (1)- install logrotate config files
  3. logrotate (8)- rotates, compresses,and mails system logs
  4. logrotate.conf (5)- rotates, compresses,and mails system logs

 

help

当你完全绝望的时候,您可能会试图使用此命令,help 命令实际上是显示一个 shell 内置命令的列表。最令人惊讶的是它有相当多的参数变量。你可能会看到这样的东西,然后开始想知道这些内置功能可以为你做些什么:

  1. $ help
  2. GNU bash, version 4.4.7(1)-release (i686-pc-linux-gnu)
  3. These shell commands are defined internally.Type`help' to see this list.
  4. Type `help name' to find out more about the function `name'.
  5. Use`info bash' to find out more about the shell in general.
  6. Use `man-k' or `info' to find out more about commands notinthislist.
  7. A star (*)next to a name means that the command is disabled.
  8. job_spec [&] history [-c][-d offset][n]or hist>
  9. (( expression ))if COMMANDS;then COMMANDS;[elif C>
  10. . filename [arguments] jobs [-lnprs][jobspec ...]or jobs >
  11. :kill[-s sigspec |-n signum |-sigs>
  12. [ arg...] let arg [arg ...]
  13. [[ expression ]]local[option] name[=value]...
  14. alias[-p][name[=value]...] logout [n]
  15. bg [job_spec ...] mapfile [-d delim][-n count][-or>
  16. bind [-lpsvPSVX][-m keymap][-file> popd [-n][+|-N]
  17. break[n]printf[-var] format [arguments]
  18. builtin [shell-builtin [arg ...]] pushd [-n][+|-|dir]
  19. caller[expr]pwd[-LP]
  20. case WORD in[PATTERN [| PATTERN]...)> read [-ers][-array][-d delim][->
  21. cd[-L|[-[-e]][-@]][dir] readarray [-n count][-O origin][-s>
  22. command [-pVv] command [arg ...] readonly [-aAf][name[=value]...] o>
  23. compgen [-abcdefgjksuv][-o option][>return[n]
  24. complete [-abcdefgjksuv][-pr][-DE]> select NAME [in WORDS ...;]do COMM>
  25. compopt [-o|+o option][-DE][name ..>set[-abefhkmnptuvxBCHP][-o option->
  26. continue[n] shift [n]
  27. coproc [NAME] command [redirections] shopt [-pqsu][-o][optname ...]
  28. declare[-aAfFgilnrtux][-p][name[=v> source filename [arguments]
  29. dirs [-clpv][+N][-N] suspend [-f]
  30. disown [-h][-ar][jobspec ...| pid >test[expr]
  31. echo[-neE][arg ...]time[-p] pipeline
  32. enable [-a][-dnps][-f filename][na> times
  33. eval[arg ...] trap [-lp][[arg] signal_spec ...]
  34. exec[-cl][-a name][command [argume>true
  35. exit[n] type [-afptP] name [name ...]
  36. export[-fn][name[=value]...]or ex> typeset [-aAfFgilnrtux][-p] name[=v>
  37. false ulimit [-SHabcdefiklmnpqrstuvxPT][l>
  38. fc [-e ename][-lnr][first][last] o> umask [-p][-S][mode]
  39. fg [job_spec] unalias [-a] name [name ...]
  40. for NAME [in WORDS ...];do COMMAND>unset[-f][-v][-n][name ...]
  41. for(( exp1; exp2; exp3 ));do COMMAN>until COMMANDS;do COMMANDS;done
  42. function name {
     COMMANDS ;}or name > variables -Namesand meanings of so>
  43. getopts optstring name [arg] wait [-n][id...]
  44. hash [-lr][-p pathname][-dt][name >while COMMANDS;do COMMANDS;done
  45. help [-dms][pattern ...]{
     COMMANDS ;}

 

stat -c

stat 命令用于显示文件的大小、所有者、用户组、索引节点号、权限、修改和访问时间等重要的统计信息。这是一个非常有用的命令,可以显示比 ls -l 更多的细节。

  1. $ stat .bashrc
  2. File:.bashrc
  3. Size:4048Blocks:8 IO Block:4096 regular file
  4. Device:806h/2054dInode:421481Links:1
  5. Access:(0644/-rw-r--r--)Uid:(1000/ shs)Gid:(1000/ shs)
  6. Access:2017-08-2315:13:41.781809933-0400
  7. Modify:2017-06-2117:37:11.875157790-0400
  8. Change:2017-06-2117:37:11.899157791-0400
  9. Birth:-

使用 -c 选项,您可以指定要查看的字段。例如,如果您只想查看一个文件或一系列文件的文件名和访问权限,则可以这样做:

  1. $ stat -'%n %a'.bashrc
  2. .bashrc 644

在此命令中, %n 表示每个文件的名称,而 %a 表示访问权限。%u 表示数字类型的 UID,而 %U 表示用户名。

  1. $ stat -'%n %a' bin/*
  2. bin/loop 700
  3. bin/move2nohup 700
  4. bin/nohup.out 600
  5. bin/show_release 700
  6. $ stat -c '%n %a %U' bin/*
  7. bin/loop 700 shs
  8. bin/move2nohup 700 shs
  9. bin/nohup.out 600 root
  10. bin/show_release 700 shs

 

TAB

如果你没有使用过 tab 键来补全文件名,你真的错过了一个非常有用的命令行技巧。tab 键提供文件名补全功能(包括使用 cd 时的目录)。它在出现歧义之前尽可能多的填充文件名(多个文件以相同的字母开头。如果您有一个名为 bigplans 的文件,另一个名为 bigplans2017 的文件会发生歧义,你将听到一个声音,然后需要决定是按下回车键还是输入 2 之后再按下 tab 键选择第二个文件。

转载于:https://www.cnblogs.com/bainiu/p/7551680.html

你可能感兴趣的文章
Linux 调试错误
查看>>
向Window BCD 文件添加VHD开机启动项的相关笔记
查看>>
Linux的内核空间和用户空间是如何划分的(以32位系统为例)?
查看>>
Cheatsheet: 2011 08.01 ~ 08.07
查看>>
js技巧之this,call,apply
查看>>
angularjs学习笔记之一
查看>>
POJ2599 A funny game (图博弈)
查看>>
Android开发中无处不在的设计模式——动态代理模式
查看>>
USACO milk
查看>>
第三节《Git重置》
查看>>
面试题3,求101-200之间有多少个素数,并且输出所有素数
查看>>
@RequestBody和@RequestParam的区别
查看>>
AndroidStudio中导入module(简单版)
查看>>
OpenGL11-绘制汉字最高效方法(使用Freetype)(代码已更新)
查看>>
TP5 JSON对象数组转换为普通数组
查看>>
JMeter在linux上分布式压测环境配置(一)
查看>>
JavaScript-判断语句(if...else)
查看>>
centos7 update docker
查看>>
echarts 数据统计报表
查看>>
Android学习总结(十四) ———— ListView Item多布局的实现
查看>>