六个优雅的Linux命令行技巧

  • 一些非常有用的命令能让命令行的生活更满足

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

watch

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

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


  1. $ watch -n 5 who 
  2. Every 5.0s: who                               stinkbug: Wed Aug 23 14:52:15 2017 
  3. shs      pts/0        2017-08-23 14:45 (192.168.0.11) 
  4. zoe      pts/1        2017-08-23 08:15 (192.168.0.19) 

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


  1. $ watch tail /var/log/syslog 
  2. Every 2.0s: tail /var/log/syslog              stinkbug: Wed Aug 23 15:16:37 2017 
  3. Aug 23 14:45:01 stinkbug CRON[7214]: (root) CMD (command -v debian-sa1 > /dev/nu 
  4. ll && debian-sa1 1 1) 
  5. Aug 23 14:45:17 stinkbug systemd[1]: Started Session 179 of user shs. 
  6. Aug 23 14:55:01 stinkbug CRON[7577]: (root) CMD (command -v debian-sa1 > /dev/nu 
  7. ll && debian-sa1 1 1) 
  8. Aug 23 15:05:01 stinkbug CRON[7582]: (root) CMD (command -v debian-sa1 > /dev/nu 
  9. ll && debian-sa1 1 1) 
  10. Aug 23 15:08:48 stinkbug systemd[1]: Starting Cleanup of Temporary Directories... 
  11. Aug 23 15:08:48 stinkbug systemd-tmpfiles[7584]: [/usr/lib/tmpfiles.d/var.conf:1 
  12. 4] Duplicate line for path "/var/log", ignoring. 
  13. Aug 23 15:08:48 stinkbug systemd[1]: Started Cleanup of Temporary Directories. 
  14. Aug 23 15:13:41 stinkbug systemd[1]: Started Session 182 of user shs. 
  15. Aug 23 15:14:29 stinkbug systemd[1]: Started Session 183 of user shs. 
  16. Aug 23 15:15:01 stinkbug CRON[7828]: (root) CMD (command -v debian-sa1 > /dev/nu 
  17. ll && debian-sa1 1 1) 

这里的输出和使用命令 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. $ look esac .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 not in this list. 
  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] [-O or> 
  16.  bind [-lpsvPSVX] [-m keymap] [-f file>  popd [-n] [+N | -N] 
  17.  break [n]                               printf [-v var] format [arguments] 
  18.  builtin [shell-builtin [arg ...]]       pushd [-n] [+N | -N | dir] 
  19.  caller [expr]                           pwd [-LP] 
  20.  case WORD in [PATTERN [| PATTERN]...)>  read [-ers] [-a array] [-d delim] [-> 
  21.  cd [-L|[-P [-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 - Names and 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: 4048            Blocks: 8          IO Block: 4096   regular file 
  4. Device: 806h/2054d      Inode: 421481      Links: 1 
  5. Access: (0644/-rw-r--r--)  Uid: ( 1000/     shs)   Gid: ( 1000/     shs) 
  6. Access: 2017-08-23 15:13:41.781809933 -0400 
  7. Modify: 2017-06-21 17:37:11.875157790 -0400 
  8. Change: 2017-06-21 17:37:11.899157791 -0400 
  9.  Birth: - 

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


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

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


  1. $ stat -c '%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 键选择第二个文件。

本文作者:佚名

来源:51CTO

时间: 2024-09-17 00:21:57

六个优雅的Linux命令行技巧的相关文章

5个有趣的Linux命令行技巧

5个有趣的Linux命令行技巧 你有将Linux物尽其用吗?对很多Linux用户来说,有很多看起来是技巧的有用特性.有些时候你会需要这些技巧.本文会帮助你更好得使用一些命令,发挥其更强大的功能. 图1:5个命令行技巧 我们开始一个新的系列,在这里我们还会写一些技巧,并且用尽量小的篇幅写清楚. 1. 我们可以使用history命令来查看曾经运行过的命令. 这里是一个history命令的示例输出. # history 图2:history命令例子 从history命令输出看,很明显,命令的执行时间没

给新手的 10 个有用 Linux 命令行技巧

我记得我第一次使用 Linux 的时候,我还习惯于 Windows 的图形界面,我真的很讨厌 Linux 终端.那时候我觉得命令难以记忆,不能正确使用它们.随着时间推移,我意识到了 Linux 终端的优美.灵活和可用性,说实话,我没有一天不使用它.今天,我很高兴和刚开始接触 Linux 的人一起来分享一些有用的技巧和提示,希望能帮助他们更好的向 Linux 过渡,并帮助他们学到一些新的东西(希望如此). 5 个有趣的 Linux 命令行技巧 这篇文章希望向你展示一些不需要很高的技术就可以像一个高

5个经典有趣的 Linux 命令行技巧?

你有将Linux物尽其用吗?对很多Linux用户来说,有很多看起来是技巧的有用特性.有些时候你会需要这些技巧.本文会帮助你更好得使用一些命令,发挥其更强大的功能. 图1:5个命令行技巧 我们开始一个新的系列,在这里我们还会写一些技巧,并且用尽量小的篇幅写清楚. 1. 我们可以使用history命令来查看曾经运行过的命令. 这里是一个history命令的示例输出. # history 图2:history命令例子 从history命令输出看,很明显,命令的执行时间没有被打出来.有解决方法吗?有的!

你值得了解的 10 个有趣的 Linux 命令行小技巧

我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作. 当我们发现使用 Linux 的新技巧时,尤其是像我这样的命令行极客,我们总会感到非常来劲. 建议阅读: 5 有趣的 Linux 命令行技巧 - 第一部分 而且我们也会很想与数百万 Linux 用户分享新学到的实践或命令,特别是那些还在使用自己的方式操作这个令人兴奋的操作系统的新手们. 建议阅读: 10 个对新手

Linux下5个有趣的命令行技巧介绍

  你有将Linux物尽其用吗?对很多Linux用户来说,有很多看起来是技巧的有用特性.有些时候你会需要这些技巧.本文会帮助你更好得使用一些命令,发挥其更强大的功能. 图1:5个命令行技巧 我们开始一个新的系列,在这里我们还会写一些技巧,并且用尽量小的篇幅写清楚. 1. 我们可以使用history命令来查看曾经运行过的命令. 这里是一个history命令的示例输出. 代码如下: # history 从history命令输出看,很明显,命令的执行时间没有被打出来.有解决方法吗?有的!运行如下命令:

Linux命令行工具使用小贴士及技巧(一)

相关内容 如果你刚开始在 Linux 系统中使用命令行工具,那么你应该知道它是 Linux 操作系统中功能最强大和有用的工具之一.学习的难易程度跟你想研究的深度有关.但是,无论你的技术能力水平怎么样,这篇文章中的一些小贴士和技巧都会对你有所帮助. 在本系列的文章中,我们将会讨论一些非常有用的命令行工具使用小技巧,希望你的命令行使用体验更加愉快. 但是在开始下一步之前,我得强调一点,这篇文章中的测试实例都是在 Ubuntu 14.04LTS 系统下测试通过的.我们使用命令行 Shell 版本是 b

Linux 命令行工具使用小贴士及技巧(一)

相关内容 如果你刚开始在 Linux 系统中使用命令行工具,那么你应该知道它是 Linux 操作系统中功能最强大和有用的工具之一.学习的难易程度跟你想研究的深度有关.但是,无论你的技术能力水平怎么样,这篇文章中的一些小贴士和技巧都会对你有所帮助. 在本系列的文章中,我们将会讨论一些非常有用的命令行工具使用小技巧,希望你的命令行使用体验更加愉快. 但是在开始下一步之前,我得强调一点,这篇文章中的测试实例都是在 Ubuntu 14.04LTS 系统下测试通过的.我们使用命令行 Shell 版本是 b

Linux 命令行工具使用小贴士及技巧(二)

在本系列的第一部分中,我们通过讨论 cd - 命令的用法,重点介绍了 Linux 中的命令行导航.还讨论了一些其他相关要点/概念.现在进一步讨论,在本文中,我们将讨论如何使用 pushd 和 popd 命令在 Linux 命令行上获得更快的导航体验. 在我们开始之前,值得说明的一点是,此后提到的所有指导和命令已经在 Ubuntu 14.04 和 Bash shell(4.3.11)上测试过. pushd 和 popd 命令基础 为了更好地理解 pushd 和 popd 命令的作用,让我们先讨论堆

Linux命令行工具使用小贴士及技巧(二)

在本系列的第一部分中,我们通过讨论 cd - 命令的用法,重点介绍了 Linux 中的命令行导航.还讨论了一些其他相关要点/概念.现在进一步讨论,在本文中,我们将讨论如何使用 pushd 和 popd 命令在 Linux 命令行上获得更快的导航体验. 在我们开始之前,值得说明的一点是,此后提到的所有指导和命令已经在 Ubuntu 14.04 和 Bash shell(4.3.11)上测试过. pushd 和 popd 命令基础 为了更好地理解 pushd 和 popd 命令的作用,让我们先讨论堆