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"