目录
Linux命令格式
命令格式
完整的命令格式分为三部分:命令、参数、对象
其中命令与参数、参数与参数、参数与对象之间最少要有一个空格做间隔
不过有些情况下命令格式没有参数或对象,不过命令一定是有的
命令:执行的动作(打)
参数:对于动作进行一个定制化(狠狠的打)--为了让命令更好的贴近工作需要
对象:动作的承受方(狠狠的打你)
参数格式
参数分为长格式和短格式
长格式 大部分情况:--+单词 例如:--list 、--all
短格式 大部分情况:-+字母 例如:-l、-a
有些情况下的参数格式是比较特别的:
find 长格式也是一个- , 即 find / -size
ps 三个短格式合并没有-, 即 ps aux
date命令使用的是 + 号
注意:参数格式不是一定确定的,可能会有其它变化,只是说的是大部分
参数合并
长格式与长格式、长格式与短格式不能合并
短格式和短格式之间能够合并,不过只保留一个-号
例如:-a和-l 合并为-al或者-la(大部分情况下不区分参数合并后的位置,但是有些参数合并需区分合并位置)
例如:压缩命令就需要注意参数的位置(tar czvf、tar xzvf 合并参数的位置不可改变)
注意事项
Linux中的命令、参数都严格区分大小写(一般命令为小写,参数为大写)
Linux命令分类
Linux的命令可以分为内置命令、外部命令、通过alias别名执行的命令三大类
别名命令宏观上说也是内置命令和外部命令的一种
如何判断命令的类型------Type命令
使用格式:type 命令
判断依据:如果结果为shell builtin表示该命令为内部命令;结果为文件路径则表示该命令为外部命令;结果为aliased表示该命令为别名命令
内置命令
Linux自带命令,提交内核执行
exit、history属于内置命令
外部命令
当前系统的某文件系统路径下有对应的可执行程序文件;top、reboot、ls等都属于内部命令
系统在哪些路径下寻找外部命令的可执行文件
外部命令的存放路径都在PATH变量中显示,每个路径通过 : 隔开
系统根据PATH变量中存放的路径,从左往右依次在每个路径中寻找外部命令对应的可执行程序;如果在所有的路径中都没有找到该外部命令,则显示该命令不存在的错误提示
PATH变量内容------外部命令存放路径
/usr/bin 存放所有用户都可用的应用程序
存放着系统安装自带的一些可执行程序(即系统程序),会随着系统的升级而改变
此目录一般不会做修改,修改可能会影响系统启动等
/usr/local/bin 存放所有用户都可用的第三方软件程序
存放着第三方软件程序(即用户自己安装的应用程序),此目录一般可以做修改
/usr/sbin 存放只有管理员用户才可用的应用程序
存放着系统安装自带的一些可执行程序
/usr/local/sbin 存放只有管理员用户才可用的第三方软件程序
存放着第三方软件程序
alias命令
为什么要使用别名命令
别名命令可以简化命令的输入
可以将多个命令组合成一个别名,简化输入
通过简化命令可以防止误操作
alias介绍
通过alias可以查看linux已有的别名信息(例如查看mv的别名,了解到mv=mv -i)
也可以通过 alias 别名=命令 的方式创建别名命令
通过unalias 别名 来删除别名
例子
alias ls='ls -al' 设置ls-al的别名为ls
alias 查看linux已有的别名信息
unalias ls 删除别名ls
注意事项
alias 创建的别名是临时的,如果需要永久保存可以直接编辑/root/.bashrc文件(.bashrc文件相当于Shell的配置文件)
vim /root/.bashrc 编辑文件
source /root/.bashrc 更新文件
命令的执行效率与过程
命令的执行效率
Linux中命令执行的效率(优先级)
1、通过文件命令以及路径的方式输入命令(例如/bin/free)
2、通过alias别名命令的方式执行
3、内部命令
4、外部命令(我们所使用的命令99%都是外部命令)
echo $PATH 外部命令都存放在PATH变量中
命令的执行过程
1、判断用户是否以相对路径或绝对路径的方式输入命令(例如/bin/free),如果是则直接执行
2、检查用户输入的命令是否为别名命令,如果是别名命令则将其对应的真实命令解析出来,然后判断命令是内置命令还是外部命令;如果是内置命令会直接提交给内核执行;如果是外部命令,则系统会根据配置路径来寻找命令的可执行文件,将其调入内存提交内核执行
3、如果用户输入的命令不是别名命令,则直接判断命令是内置命令还是外部命令,然后执行