فرمان 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
در این مورد، این مانند دستور grep زیر یک دستور awk عمل می کند که فقط اولین کلمه را در خطوط تطبیق چاپ می کند.
دستور man-k لیست صفحات manرا که شامل کلمه مشخص شده است لیست می کند. این اساسا مانند دستور 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
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 آمارهای ضروری برای یک فایل را نشان می دهد - اندازه آن، مالک، گروه، شماره های inode، مجوز، اصلاح و زمان دسترسی. این یک دستور بسیار مفید است که جزئیات بیشتری را از یک 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 را بزنید تا فایل دوم را انتخاب کنید.