shell嚴格區分輸入命令的大小寫,如who、Who和WHO是不同的,其中只有全小寫——who是正確的Linux命令。
命令與選項和參數之間要用空格或制表符隔開。連續空格會被shell解釋稱單個空格。
選項:對命令的特殊定義,以“-”開始,多個選項之間可以用“-”連接起來,如“ls -l -a”等同于“ls -la”。
參數:提供命令運行的信息或者命令執行過程中所使用的文件名。通常,參數是一些文件名,告訴命令從哪里可以得到輸入,以及把輸出送到什么地方。
若一個命令太長,一行寫不完,可在每行行尾輸入“\”字符,然后按回車(Enter)。即可另起一行繼續輸入命令。如:
?
? 1、who命令
格式:who [OPTION]... [ FILE | ARG1 ARG2 ]
who (show who is logged on):列出所有正在使用系統的用戶、所用終端名和注冊到系統的時間。
who am i:列出使用該命令的當前用戶的相關信息。
-a, --all
? same as -b -d --login -p -r -t -T -u
? 相當于同時執行 -b -d --login -p -r? -t -T -u
-b, --boot
? time of last system boot
? 上次系統引導時間
-d, --dead
? print dead processes
? 打印死進程
-H, --heading
? print line of column headings
? 打印的表頭信息
-l, --login
?print system login processes
?打印系統登錄進程
--lookup
? attempt to canonicalize hostnames via DNS
??嘗試通過DNS規范化主機名
?-m ? ? only hostname and user associated with stdin
? 只有主機名和用戶的標準輸入 ? ?等同 who am i
-p, --process
? print active processes spawned by init
? 打印由初始化生成的活動進程
?-q, --count
? all login names and number of users logged on
??所有登錄名和登錄用戶數
-r, --runlevel
? print current runlevel
??打印當前運行級別
-s, --short
? print only name, line, and time (default)
? 只打印名稱、行和時間(默認)
-t, --time
? print last system clock change
??打印上次系統時鐘更改
?-T, -w, --mesg,--message,--writable
? add user's message status as +, - or ?
??將用戶的消息狀態添加為+、-或?
-u, --users
? list users logged in
??列出登錄的用戶
?
2、echo
格式:
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
echo - (display a line of text) :顯示一行文本
-n ? ? do not output the trailing newline 不輸出尾隨的換行符
-e ? ? enable interpretation of backslash escapes?啟用反斜杠轉義的解釋
-E ? ? disable interpretation of backslash escapes (default)?禁用反斜杠轉義的解釋(默認)
--help display this help and exit 顯示此幫助并退出?
--version output version information and exit 輸出版本信息并退出?
? If -e is in effect, the following sequences are recognized:
? 如果-e生效,將識別以下序列:
格式例如:echo -e "\\"
? ? ? ? ? ? ? ? ? echo -e "\a"
? ? ? ?\\ ? ? backslash 反斜杠
? ? ? ?\a ? ? alert (BEL) 警告
? ? ?? \b ? ? backspace 退格(刪除前一個字符)
? ? ? ?\c ? ? produce no further output?不產生進一步的輸出(\c后面的字符不會輸出,每行默認的回車當然也不會輸出)
? ? ? ?\e ? ? escape?
? ? ? ?\f ? ? form feed?換頁(換行但光標仍舊停留在原來的位置)
? ? ? ?\n ? ? new line 另起一行(換行且光標移至行首)
? ? ? ?\r ? ? carriage return 光標移至行首,但不換行(\r后面的內容會覆蓋\r前面的內容)
? ? ? ?\t ? ? horizontal tab 水平制表符(制表符,Tab鍵)
? ? ? ?\v ? ? vertical tab 垂直制表符(跟\f一樣的作用)
? ? ?? \0NNN ?byte with octal value NNN (1 to 3 digits)?按八進制ASCII碼表輸出字符,其中0為數字0,NNN是3位八進制數
? ? ? ?\xHH ? byte with hexadecimal value HH (1 to 2 digits)?按十六進制ASCII碼表輸出字符,其中HH是兩位十六進制數;
?
3、date
date - print or set the system date and time?打印或設置系統日期和時間
格式:
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
%n : 下一行
%t : 跳格
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..61)
%T : 直接顯示時間 (24 小時制)
%X : 相當于 %H:%M:%S
%Z : 顯示時區 %a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最后兩位數字 (00.99)
%Y : 完整年份 (0000..9999)
運用例子:
date +‘This?date?now?is?=>%x?,time?is?now?=>%X?,thank?you?!’
This date now is =>2020年09月09日 ,time is now =>22時11分11秒 ,thank you !
date +%Y-%m-%d???????? //顯示現在天年月日
date +%Y-%m-%d --date="+1 day"? //顯示后一天的日期
date +%Y-%m-%d --date="-1 day"? //顯示前一天的日期
date +%Y-%m-%d --date="-1 month"? //顯示上一月的日期
date +%Y-%m-%d --date="+1 month"? //顯示下一月的日期
date +%Y-%m-%d --date="-1 year"? //顯示前一年的日期
date +%Y-%m-%d --date="+1 year"? //顯示下一年的日期
其他格式:
例如前一天:
date?--date?"1?days?ago"?+"%Y-%m-%d"
?