Linux 命令格式:
通过近期的学习,尝试并归纳出Linux的命令格式,如下:
[root@localhost ~]# 命令 [选项] [参数]
以上命令格式可以通过查询若干命令进行检验。
screen [-opts] [cmd [args]]
date [OPTION]... [+FORMAT]
ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
export: usage: export [-fn] [name[=value] ...] or export -p
echo [SHORT-OPTION]... [STRING]...
source filename [arguments]
cat [OPTION]... [FILE]...
wc [OPTION]... [FILE]...
cut OPTION... [FILE]...
sort [OPTION]... [FILE]...
uniq [OPTION]... [INPUT [OUTPUT]]
diff [OPTION]... FILES
patch [options] [originalfile [patchfile]]
grep [OPTIONS] PATTERN [FILE...]
chown [OPTION]... [OWNER][:[GROUP]] FILE...
date [OPTION]... [+FORMAT]
下面,针对命令格式进行解析。
1)命令
命令:分为内部命令、外部命令,和别名命令。
- 内部命令
内部命令是集成在特定shell中的命令,特点是在用户登录是加载于内存,执行效率高。当用户登录时系统自动启动shell,这个shell又默认包含一些常见工具,执行enable命令可以列出,(以下只贴了部分内容)
[root@oracle home]# enable
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
- 外部命令
外部命令就是没有集成在shell程序中的其他命令,具体表现为一个独立的可执行文件保存在特定目录(可以是系统自带的,也可以是用户自定义的可执行脚本)。
[root@oracle home]# type hostname
hostname is /bin/hostname
- 别名命令
通过定义别名简化命令行过长的问题,提高使用效率,也方便记忆。 主要通过alias命令和unalias命令实现。
[root@oracle home]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
2)选项
[ 选项 ] 代表可选项
- 有些命令不需要追加选项或参数,也能正常执行,比如:
[root@oracle ~]# who
[root@oracle ~]# df
[root@oracle ~]# ls
[root@oracle ~]# dir
[root@oracle ~]# date
[root@oracle ~]# free
[root@oracle ~]# fdisk
- 上述命令追加选项或参数,可以显示更加丰富的数据,比如:
[root@oracle ~]# who -a
system boot 2020-04-16 23:37
run-level 3 2020-04-16 23:37
LOGIN tty1 2020-04-16 23:37 2083 id=1
[root@oracle ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 37G 16G 20G 46% /
tmpfs tmpfs 1.9G 488M 1.4G 26% /dev/shm
/dev/sda1 ext4 477M 35M 418M 8% /boot
- 有些命令必须追加选项或参数才能执行,否则系统提示格式或报错,比如:
[root@oracle ~]# grep
Usage: grep [OPTION]... PATTERN [FILE]...
[root@oracle ~]# chown
chown: missing operand
[root@oracle ~]# source
-bash: source: filename argument required
source: usage: source filename [arguments]
- 选项的作用
选项的作用是调整命令功能。如果没有选项,那么命令只能执行最基本的功能;而一旦有选项,则可以显示更加丰富的数据,或者执行更加准确、更加复杂的功能。
例如,date命令直接执行,可以显示当前系统的时间。
[root@oracle home]# date
Sat Apr 18 20:37:59 CST 2020
通过添加额外的选项或参数,可以显示更多内容,例如通过增加 -u (打印或设置协调世界时(UTC))
[root@oracle home]# date -u
Sat Apr 18 12:38:01 UTC 2020
- 选项的类型
Linux 的选项分为短格式和长格式选项。
- 短格式选项 - (用一个减号调用),例如:
[root@oracle home]# date -u
Sat Apr 18 12:49:10 UTC 2020
- 长格式选项 – (用两个减号调用,追加英文完整单词),例如:
[root@oracle home]# date --utc
Sat Apr 18 12:49:12 UTC 2020
备注:
- 并非每个命令的短格式选项都有等价的长格式选项。具体选项的格式和意义通过 [root@localhost ~]# 命令 --help 确认,例如:
常用的命令cat -e 就没有对应的长格式选项。长格式选项当然也不是必须存在的,更多的是为了方便人的理解和记忆。
[root@oracle home]# cat --help
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s), or standard input, to standard output.
-A, --show-all equivalent to -vET
-b, --number-nonblank number nonempty output lines
-e equivalent to -vE
-E, --show-ends display $ at end of each line
- 当有多个选项时,可以写在一起
[root@oracle home]# cat -nbT test /* n 表示显示输出行数;b给非空行标记行数;显示tab字符*/
1 tmpfs /dev/shm tmpfs defaults 0 0
2 devpts /dev/pts devpts gid=5,mode=620 0 0
3 sysfs /sys sysfs defaults 0 0
4 proc /proc proc defaults 0 0
3)参数
[ 参数 ] 代表可选参数,是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作,例如:
[root@oracle log]# ls -al yum.log
-rw------- 1 root root 57 Apr 17 22:35 yum.log
或者
[root@oracle log]# rm -rf yum.log
- 一般情况下,这类命令都是需要参数指定被操作对象的,否则就会报错;
- 个别命令在添加参数就使用默认参数执行,比如ls命令后面未指定参数,默认参数是当前所在位置,所以会显示当前目录下的文件。
[root@oracle profile.d]# ls
colorls.csh cvs.csh env.sh glib2.sh gnome-ssh-askpass.sh lang.sh less.sh
- ls命令如果指定参数,那么就是只显示指定的文件
[root@oracle ~]# ls -al anaconda-ks.cfg
-rw-------. 1 root root 1595 Aug 20 2018 anaconda-ks.cfg