设为首页 收藏本站
查看: 454|回复: 0

[经验分享] 六个优雅的 Linux 命令行技巧

[复制链接]

尚未签到

发表于 2017-11-21 20:42:57 | 显示全部楼层 |阅读模式
  一些非常有用的命令能让命令行的生活更满足,使用 Linux 命令工作可以获得许多乐趣,但是如果您使用一些命令,它们可以减少您的工作或以有趣的方式显示信息时,您将获得更多的乐趣。在今天的文章中,我们将介绍六个命令,它们可能会使你用在命令行上的时间更加值当。
  百牛信息技术bainiu.ltd整理发布于博客园
watch
  watch 命令会重复运行您给出的任何命令,并显示输出。默认情况下,它每两秒运行一次命令。命令的每次运行都将覆盖上一次运行时显示的内容,因此您始终可以看到最新的数据。
  您可能会在等待某人登录时使用它。在这种情况下,您可以使用 watch who 命令或者 watch -n 15 who 命令使每 15 秒运行一次,而不是两秒一次。另外终端窗口的右上角会显示日期和时间。

  • $ watch-n 5who
  • Every5.0s:who stinkbug:WedAug2314:52:152017
  • shs pts/02017-08-2314:45(192.168.0.11)
  • zoe pts/12017-08-2308:15(192.168.0.19)
  您也可以使用它来查看日志文件。如果您显示的数据没有任何变化,则只有窗口角落里的日期和时间会发生变化。

  • $ watchtail/var/log/syslog
  • Every2.0s:tail/var/log/syslog stinkbug:WedAug2315:16:372017
  • Aug2314:45:01 stinkbug CRON[7214]:(root) CMD (command -v debian-sa1 >/dev/nu
  • ll && 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/nu
  • ll && debian-sa1 11)
  • Aug2315:05:01 stinkbug CRON[7582]:(root) CMD (command -v debian-sa1 >/dev/nu
  • ll && 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:1
  • 4]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/nu
  • ll && debian-sa1 11)
  这里的输出和使用命令 tail -f /var/log/syslog 的输出相似。
look
  这个命令的名字 look 可能会让我们以为它和 watch 做类似的事情,但其实是不同的。look 命令用于搜索以某个特定字符串开头的单词。

  • $ look ecl
  • eclectic
  • eclectic's
  • eclectically
  • eclecticism
  • eclecticism's
  • eclectics
  • eclipse
  • eclipse's
  • eclipsed
  • eclipses
  • eclipsing
  • ecliptic
  • ecliptic's
  look 命令通常有助于单词的拼写,它使用 /usr/share/dict/words 文件,除非你使用如下的命令指定了文件名:

  • $ lookesac.bashrc
  • esac
  • esac
  • esac
  在这种情况下,它的作用就像跟在一个 awk 命令后面的 grep ,只打印匹配行上的第一个单词。
man -k
  man -k 命令列出包含指定单词的手册页。它的工作基本上和 apropos 命令一样。

  • $ man-k logrotate
  • dh_installlogrotate (1)- install logrotate config files
  • logrotate (8)- rotates, compresses,and mails system logs
  • logrotate.conf (5)- rotates, compresses,and mails system logs
help
  当你完全绝望的时候,您可能会试图使用此命令,help 命令实际上是显示一个 shell 内置命令的列表。最令人惊讶的是它有相当多的参数变量。你可能会看到这样的东西,然后开始想知道这些内置功能可以为你做些什么:

  • $ help
  • GNU 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] pipeline
  • enable [-a][-dnps][-f filename][na> times
  • eval[arg ...] trap [-lp][[arg] signal_spec ...]
  • exec[-cl][-a name][command [argume>true
  • exit[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;done
  • function 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;done
  • help [-dms][pattern ...]{ COMMANDS ;}
stat -c
  stat 命令用于显示文件的大小、所有者、用户组、索引节点号、权限、修改和访问时间等重要的统计信息。这是一个非常有用的命令,可以显示比 ls -l 更多的细节。

  • $ stat .bashrc
  • File:.bashrc
  • Size:4048Blocks:8 IO Block:4096 regular file
  • Device:806h/2054dInode:421481Links:1
  • Access:(0644/-rw-r--r--)Uid:(1000/ shs)Gid:(1000/ shs)
  • Access:2017-08-2315:13:41.781809933-0400
  • Modify:2017-06-2117:37:11.875157790-0400
  • Change:2017-06-2117:37:11.899157791-0400
  • Birth:-
  使用 -c 选项,您可以指定要查看的字段。例如,如果您只想查看一个文件或一系列文件的文件名和访问权限,则可以这样做:

  • $ stat -c '%n %a'.bashrc
  • .bashrc 644
  在此命令中, %n 表示每个文件的名称,而 %a 表示访问权限。%u 表示数字类型的 UID,而 %U 表示用户名。

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409320-1-1.html 上篇帖子: ROS 时间同步问题 下篇帖子: Linux基础入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表