Linux命令列六大技巧
watch 命令會重複執行您給出的任何命令,並顯示輸出。預設情況下,它每兩秒執行一次命令。命令的每次執行都將覆蓋上一次執行時顯示的內容,因此您始終可以看到最新的資料。
您可能會在等待某人登入時使用它。在這種情況下,您可以使用 watch who 命令或者 watch -n 15 who 命令使每 15 秒執行一次,而不是兩秒一次。另外終端視窗的右上角會顯示日期和時間。
$ watch -n 5 who Every 5.0s: who stinkbug: Wed Aug 23 14:52:15 2017 shs pts/0 2017-08-23 14:45 (192.168.0.11) zoe pts/1 2017-08-23 08:15 (192.168.0.19)
您也可以使用它來檢視日誌檔案。如果您顯示的資料沒有任何變化,則只有視窗角落裡的日期和時間會發生變化。
$ watch tail /var/log/syslog Every 2.0s: tail /var/log/syslog stinkbug: Wed Aug 23 15:16:37 2017 Aug 23 14:45:01 stinkbug CRON[7214]: (root) CMD (command -v debian-sa1 > /dev/nu ll && debian-sa1 1 1) Aug 23 14:45:17 stinkbug systemd[1]: Started Session 179 of user shs. Aug 23 14:55:01 stinkbug CRON[7577]: (root) CMD (command -v debian-sa1 > /dev/nu ll && debian-sa1 1 1) Aug 23 15:05:01 stinkbug CRON[7582]: (root) CMD (command -v debian-sa1 > /dev/nu ll && debian-sa1 1 1) Aug 23 15:08:48 stinkbug systemd[1]: Starting Cleanup of Temporary Directories... Aug 23 15:08:48 stinkbug systemd-tmpfiles[7584]: [/usr/lib/tmpfiles.d/var.conf:1 4] Duplicate line for path "/var/log", ignoring. Aug 23 15:08:48 stinkbug systemd[1]: Started Cleanup of Temporary Directories. Aug 23 15:13:41 stinkbug systemd[1]: Started Session 182 of user shs. Aug 23 15:14:29 stinkbug systemd[1]: Started Session 183 of user shs. Aug 23 15:15:01 stinkbug CRON[7828]: (root) CMD (command -v debian-sa1 > /dev/nu ll && debian-sa1 1 1)
這裡的輸出和使用命令 tail -f /var/log/syslog 的輸出相似。
這個命令的名字 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 檔案,除非你使用如下的命令指定了檔名:
$ look esac .bashrc esac esac esac
在這種情況下,它的作用就像跟在一個 awk 命令後面的 grep ,只列印匹配行上的第一個單詞。
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 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 not in this list. 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 - Names and 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 命令用於顯示檔案的大小、所有者、使用者組、索引節點號、許可權、修改和訪問時間等重要的統計資訊。這是一個非常有用的命令,可以顯示比 ls -l 更多的細節。
$ stat .bashrc File: .bashrc Size: 4048 Blocks: 8 IO Block: 4096 regular file Device: 806h/2054d Inode: 421481 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ shs) Gid: ( 1000/ shs) Access: 2017-08-23 15:13:41.781809933 -0400 Modify: 2017-06-21 17:37:11.875157790 -0400 Change: 2017-06-21 17: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 鍵提供檔名補全功能(包括使用 cd 時的目錄)。它在出現歧義之前儘可能多的填充檔名(多個檔案以相同的字母開頭。如果您有一個名為 bigplans 的檔案,另一個名為 bigplans2017 的檔案會發生歧義,你將聽到一個聲音,然後需要決定是按下Enter鍵還是輸入 2 之後再按下 tab 鍵選擇第二個檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2990900/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 命令列小技巧 – !歎號的用處Linux命令列
- 在 Linux 命令列中使用 ls 列出檔案的技巧Linux命令列
- Linux命令列中幾個使用history相關的技巧Linux命令列
- Linux命令列Linux命令列
- LINUX命令列終端提示符多種實用技巧!Linux命令列
- Linux小技巧scp命令Linux
- Linux命令技巧之30個必會的命令技巧Linux
- Linux技巧--刪除某列Linux
- Linux命令列筆記Linux命令列筆記
- 最實用也最容易被遺忘的 Linux 命令列使用技巧Linux命令列
- 收集 Linux 命令列執行的命令Linux命令列
- 命令列技巧:分割檔案內容命令列
- linux下查詢命令的技巧Linux
- 在 Linux中find命令使用技巧Linux
- 資料科學家的命令列技巧資料科學命令列
- 《Linux命令列與shell指令碼程式設計大全 第3版》Linux命令列---46Linux命令列指令碼程式設計
- Linux 命令列下連線WiFiLinux命令列WiFi
- LINUX命令列書寫規則Linux命令列
- 如何在 Linux 命令列操作 PDFLinux命令列
- Linux 命令列黑技術(LTS)Linux命令列
- Linux的命令列介面簡介Linux命令列
- linux串列埠命令列除錯Linux串列埠命令列除錯
- linux Shell 命令列-03-array Shell 陣列Linux命令列陣列
- Linux 命令列下的好東西Linux命令列
- 在 Linux 命令列下使用“原力”Linux命令列
- linux 命令列開啟資料夾Linux命令列
- laravel:從linux命令列執行commandLaravelLinux命令列
- Linux中一些 Sed命令技巧介紹Linux
- Linux 系統中 sudo 命令的 10 個技巧Linux
- 在 Linux 命令列中使用 tcpdump 抓包Linux命令列TCP
- Linux 命令列終端快捷鍵補充Linux命令列
- linux Shell 命令列-07-func 函式Linux命令列函式
- 在 Linux 命令列中轉換大小寫Linux命令列
- 如何從 Linux 命令列安裝軟體Linux命令列
- Linux的使用2 常用命令列Linux命令列
- linux下的命令列播放器mocLinux命令列播放器
- 在Linux命令列檢視影像的方法Linux命令列
- Linux awk命令中如何刪除陣列Linux陣列