《LINUX实操:六个优雅的 Linux 命令行技巧》要点:
本文介绍了LINUX实操:六个优雅的 Linux 命令行技巧,希望对您有用。如果有疑问,可以联系我们。

一些非常有用的命令能让命令行的生活更满足,使用 Linux 命令工作可以获得许多乐趣,但是如果您使用一些命令,它们可以减少您的工作或以有趣的方式显示信息时,您将获得更多的乐趣.在本日的文章中,我们将介绍六个命令,它们可能会使你用在命令行上的时间更加值当.
watch 命令会反复运行您给出的任何命令,并显示输出.默认情况下,它每两秒运行一次命令.命令的每次运行都将覆盖上一次运行时显示的内容,因此您始终可以看到最新的数据.
您可能会在期待某人登录时使用它.在这种情况下,您可以使用 watch who 命令或者 watch -n 15 who 命令使每 15 秒运行一次,而不是两秒一次.另外终端窗口的右上角会显示日期和时间.
您也可以使用它来查看日志文件.如果您显示的数据没有任何变化,则只有窗口角落里的日期和时间会产生变化.
$ watchtail/var/log/syslogEvery2.0s:tail/var/log/syslog stinkbug:WedAug2315:16:372017Aug2314:45:01 stinkbug CRON[7214]:(root) CMD (command -v debian-sa1 >/dev/null && debian-sa1 11)Aug2314:45:17 stinkbug systemd[1]:StartedSession179 of user shs.Aug2314:55:01 stinkbug CRON[7577]:(root) CMD (command -v debian-sa1 >/dev/null && debian-sa1 11)Aug2315:05:01 stinkbug CRON[7582]:(root) CMD (command -v debian-sa1 >/dev/null && debian-sa1 11)Aug2315:08:48 stinkbug systemd[1]:StartingCleanup of TemporaryDirectories...Aug2315:08:48 stinkbug systemd-tmpfiles[7584]:[/usr/lib/tmpfiles.d/var.conf:14]Duplicate line for path "/var/log", ignoring.Aug2315:08:48 stinkbug systemd[1]:StartedCleanup of TemporaryDirectories.Aug2315:13:41 stinkbug systemd[1]:StartedSession182 of user shs.Aug2315:14:29 stinkbug systemd[1]:StartedSession183 of user shs.Aug2315:15:01 stinkbug CRON[7828]:(root) CMD (command -v debian-sa1 >/dev/null && debian-sa1 11)这里的输出和使用命令 tail -f /var/log/syslog 的输出类似.
这个命令的名字 look 可能会让我们以为它和 watch 做类似的事情,但其实是分歧的.look 命令用于搜索以某个特定字符串开头的单词.
$ look ecleclecticeclectic'seclecticallyeclecticismeclecticism'seclecticseclipseeclipse'seclipsedeclipseseclipsingeclipticecliptic'slook 敕令通常有助于单词的拼写,它使用 /usr/share/dict/words 文件,除非你使用如下的敕令指定了文件名:
$ lookesac.bashrcesacesacesac在这种环境下,它的作用就像跟在一个 awk 命令后面的 grep ,只打印匹配行上的第一个单词.
man -k 命令列出包括指定单词的手册页.它的工作基本上和 apropos 命令一样.
$ man-k logrotatedh_installlogrotate (1)- install logrotate config fileslogrotate (8)- rotates, compresses,and mails system logslogrotate.conf (5)- rotates, compresses,and mails system logs
当你完全绝望的时候,您可能会试图使用此命令,help 命令实际上是显示一个 shell 内置命令的列表.最令人惊讶的是它有相当多的参数变量.你可能会看到这样的器械,然后开始想知道这些内置功能可以为你做些什么:
$ helpGNU bash, version 4.4.7(1)-release (i686-pc-linux-gnu)These shell commands are defined internally.Type`help' to see this list.Type `help name' to find out more about the function `name'.Use`info bash' to find out more about the shell in general.Use `man-k' or `info' to find out more about commands notinthislist.A star (*)next to a name means that the command is disabled.job_spec [&] history [-c][-d offset][n]or hist>(( expression ))if COMMANDS;then COMMANDS;[elif C>. filename [arguments] jobs [-lnprs][jobspec ...]or jobs >:kill[-s sigspec |-n signum |-sigs>[ arg...] let arg [arg ...][[ expression ]]local[option] name[=value]...alias[-p][name[=value]...] logout [n]bg [job_spec ...] mapfile [-d delim][-n count][-O or>bind [-lpsvPSVX][-m keymap][-f file> popd [-n][+N |-N]break[n]printf[-v var] format [arguments]builtin [shell-builtin [arg ...]] pushd [-n][+N |-N |dir]caller[expr]pwd[-LP]case WORD in[PATTERN [| PATTERN]...)> read [-ers][-a array][-d delim][->cd[-L|[-P [-e]][-@]][dir] readarray [-n count][-O origin][-s>command [-pVv] command [arg ...] readonly [-aAf][name[=value]...] o>compgen [-abcdefgjksuv][-o option][>return[n]complete [-abcdefgjksuv][-pr][-DE]> select NAME [in WORDS ...;]do COMM>compopt [-o|+o option][-DE][name ..>set[-abefhkmnptuvxBCHP][-o option->continue[n] shift [n]coproc [NAME] command [redirections] shopt [-pqsu][-o][optname ...]declare[-aAfFgilnrtux][-p][name[=v> source filename [arguments]dirs [-clpv][+N][-N] suspend [-f]disown [-h][-ar][jobspec ...| pid >test[expr]echo[-neE][arg ...]time[-p] pipelineenable [-a][-dnps][-f filename][na> timeseval[arg ...] trap [-lp][[arg] signal_spec ...]exec[-cl][-a name][command [argume>trueexit[n] type [-afptP] name [name ...]export[-fn][name[=value]...]or ex> typeset [-aAfFgilnrtux][-p] name[=v>false ulimit [-SHabcdefiklmnpqrstuvxPT][l>fc [-e ename][-lnr][first][last] o> umask [-p][-S][mode]fg [job_spec] unalias [-a] name [name ...]for NAME [in WORDS ...];do COMMAND>unset[-f][-v][-n][name ...]for(( exp1; exp2; exp3 ));do COMMAN>until COMMANDS;do COMMANDS;donefunction name { COMMANDS ;}or name > variables -Namesand meanings of so>getopts optstring name [arg] wait [-n][id...]hash [-lr][-p pathname][-dt][name >while COMMANDS;do COMMANDS;donehelp [-dms][pattern ...]{ COMMANDS ;}
stat 命令用于显示文件的大小、所有者、用户组、索引节点号、权限、修改和拜访时间等重要的统计信息.这是一个非常有用的命令,可以显示比 ls -l 更多的细节.
$ stat .bashrcFile:.bashrcSize:4048Blocks:8 IO Block:4096 regular fileDevice:806h/2054dInode:421481Links:1Access:(0644/-rw-r--r--)Uid:(1000/ shs)Gid:(1000/ shs)Access:2017-08-2315:13:41.781809933-0400Modify:2017-06-2117:37:11.875157790-0400Change:2017-06-2117:37:11.899157791-0400Birth:-使用 -c 选项,您可以指定要查看的字段.例如,如果您只想查看一个文件或一系列文件的文件名和拜访权限,则可以这样做:
$ stat -c '%n %a'.bashrc.bashrc 644在此命令中, %n 表示每个文件的名称,而 %a 表示拜访权限.%u 表示数字类型的 UID,而 %U 表示用户名.
$ stat -c '%n %a' bin/*bin/loop 700bin/move2nohup 700bin/nohup.out 600bin/show_release 700$ stat -c '%n %a %U' bin/*bin/loop 700 shsbin/move2nohup 700 shsbin/nohup.out 600 rootbin/show_release 700 shs
如果你没有使用过 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中国 荣誉推出
本文永远更新链接地址:
《LINUX实操:六个优雅的 Linux 命令行技巧》是否对您有启发,欢迎查看更多与《LINUX实操:六个优雅的 Linux 命令行技巧》相关教程,学精学透。维易PHP学院为您提供精彩教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/8845.html