热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

六个优雅的Linux命令行技巧

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

#六个优雅的 Linux 命令行技巧

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

 

watch

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

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

  1. $ watch-n 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][-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 -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 -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 键选择第二个文件。

(题图:Micah Elizabeth Scott (CC BY 2.0))


via: https://www.networkworld.com/article/3219684/linux/half-a-dozen-clever-linux-command-line-tricks.html

作者:Sandra Henry-Stocker 译者:firmianay 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

:http://www.linuxidc.com/Linux/2017-08/146613.htm


推荐阅读
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • Linux设备驱动开发详解-Note(3)---驱动设计的硬件基础(1)
    驱动设计的硬件基础(1)成于坚持,败于止步处理器分类不做过多说明,处理器类型很多,大同小异存储器存储器可分为只读储存器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光介质存储器和磁介质存储 ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 从U ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 下载地址http:www.kbengine.org这货不错安装在Linux上安装(CentosDebianUbuntuetc.)服务端,请在终端输入:pythonkbenginek ... [详细]
  • 新新于2005-09-1415:02:23发表:利用chbg程序动态制作屏保XScreenSaver是一个开放的框架,就像一个服务器,任何一个可以在根窗 ... [详细]
  • deb文件格式本是ubuntu的安装文件,那么我想要在fedora中安装,需要把deb格式转化成rpm格式,我们用skype举例:1.下载转换工具alien_8.78.tar.gz2.deb转化成 ... [详细]
author-avatar
燕阳阳消_469
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有