命令格式

COMMAND [OPTIONS...] [ARGUMENTS...]

选项:用于启用或关闭命令的某个或某些功能

短选项:-c 例如:-l, -h

长选项:--word 例如:--all, --human-readable

参数:命令的作用对象: 比如文件名和作用名

注意

1. *多个选项以及多参数和命令之间使用空白字符串分隔*

2. *取消和执行命令执行:Ctrl+c,Ctrl+d*

3. *多个命令可以用 ; 符号分开*

4. *一个命令可以用 \ 分成多行*

命令的提示符与用户的uid

Linux中的用户跟windows 一样也分为管理员和普通用户。

在Linux中,系统是根据你的uid来判断你是否是管理员,而不是通过你的用户名来判断

Linux用户

系统是通过uid来判断用户是否是Root用户,Root用户的uid为0

Root用户(超级用户)

root用户 在命令提示符表示为# uid为0

普通用户命令提示符表示为 $

普通用户uid:

centos6:从500开始

centos7:从1000开始

上面提示符的颜色是根据PS1的环境变量而义

PS1=[\e[1;32m][\u@\h \W]\$[\e[0m]

bash Shell

交互式接口

交互式接口:启动终端后,在终端设备附加一个交互式应用程序

GUI:Graphic User Interface

X protocol, window manager, desktop

Desktop:

GNOME (C, 图形库gtk),

KDE (C++,图形库qt)

XFCE (轻量级桌面

CLI:Command Line Interface

shell程序:sh(bourn 史蒂夫·伯恩)cshtcshksh(korn)bash (bourn again shell)GPL zsh

Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

由于历史原因,有许多的shell。shell也被称为LINUX的命令解释器(command interpreter)shell负责把不同的语言翻译成对应的二进制。

就好像不同的不同的国家有不同的语言

shell是用户和内核、操作系统打交道的一个接口

应用程序通过系统调用和库来访问系统硬件和内核,也因此Linux开机运行就被加载到时内存中。读取的速度快于外部命令。

shell把你的命令解析成系统能识别的二进制来执行。

bash shel

GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一

目前也是Linux标准的shell,与sh兼容

CentOS默认使用

显示当前使用的shell

echo ${SHELL}

显示当前系统使用的所有shell

cat /etc/shells

内部命令

内部命令是集成在shell程序的一部分,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中.

内部命令帮助用法 help cmd

内部命令的查看命令

enable : 内部命令的禁用与启用

help: 查看内部命令是否被禁用,命令前面带 * 的是被禁用的命令

外部命令

外部命令简单的说系统之上运行的程序,当系统读取外部命令时,要到磁盘上读取,这样会显的速度比较慢。由于linux的特性,当系统查找外部命令时,系统会按PATH环境变量的路径从左往右 一个一个的来查找,当前面的路径找到了,后面的路径就不找了。

~]# echo $PATH

外部命令的帮助

帮助用法 cmd --help

查看命令

which : 查看外部命令在PATH放的路径,不会查看缓存(按*PATH*中的优先顺序显示)

加上-a会查看看外部命令在PATH中的所有路径和命令别名

whereis : 查出命令所在的路径以及man帮助相关文档的路径

判断命令是否是外部命令

type : type cmd

type cmd=========区分是外部命令还是内部命令。会按命令的优先级来显示

外部命令是在PATH的路径(如果有别名的存在,会按搜索命令的优先级来显示。但也会按hash缓存来找)

hash

系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到时hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。利用hash缓存表可大大提高命令的调用速率。

注意: 当我们执行一个外部命令时,hash表会记录外部命令的缓存。但不会记录内部命令(内部命令是集成在bash shell里)。

如果此时将这个命令移动到PATH变量中的另一个路径或其它路径。再来执行这个命令,此时命令会报错,因为在hash表中记录了这个路径。系统只要找到了这个路径,就不会往后面去找了。

Linux查找命令时,是否看命令的名字

Linux在查找命令时,是按命令的名字来查找,不是按命令的本质来查找。

命令别名

命令别名的常用命令: unalias alias

当系统开始运行时,会把磁盘上的别名配置文件(~/.bashrc或/etc/.bashrc)加载到内存中,系统运行的是内存中的别名。即使用unalias把别名给删了,也只是在当前终端无法执行别名,等系统退出重新登录,又可以使用这个别名了。因为并没有改别名的配置文件啊!

命令别名如何使用原始命令

在命令前面加 \

写上全路径,(内部命令不适用)

用单引号把命令引起来

在linux中命令的搜索路径

当你在命令提示符下敲一个字符串时,后台做了一件事中,先用/bin/bash这个程序,来判断一下你输入的内容是何种程序,是不是能找到这个程序。先判断是否是命令别名,再判断是否是内键命令,然后再看是否有外部命令缓存hash,最后判断是否是外键命令PASH。然后报错。

linux命令本质,Linux 的命令机制相关推荐

  1. 【Linux】2. Linux实操命令

    Linux实操命令 2. Linux实操 2.1 远程登陆Linux系统 2.2 Vi和Vim编辑器 2.3 开机.重启和用户登陆注销 2.4 用户管理 2.5 指定运行级别指令 2.6 重置root ...

  2. Linux 最最最常用的命令

    关注.星标公众号,直达精彩内容 作者:南独酌酒nvn https://blog.csdn.net/qq_43647359/article/details/104792569 操作系统概述 操作系统 O ...

  3. linux相关图形与相关命令

    Linux命令汇总 | vim | shell | 进阶[2022版]_步尔斯特的博客-CSDN博客 一 相关命令 tab:自动补全 vi和vim的使用 vi:创建.查看.编辑文本.如vi test. ...

  4. linux系统常用性能参数命令

    CPU cpu.idle:CPU或CPU处于空闲状态且系统没有未完成的磁盘I/O请求的时间百分比. cpu.busy:与cpu.idle相对,他的值等于100减去cpu.idle. cpu.guest ...

  5. Linux基础-02 Linux命令(shell命令)

    文章目录 二.Linux命令(shell命令) 1. 终端操作 - 终端操作 - 查看shell 3. windows自带的WSL2[补充] 2. inux 命令格式(掌握) - 命令格式 - 获取指 ...

  6. Linux命令篇 linux命令大全简洁明了 linux学习笔记

    Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...

  7. linux命令和Linux基本常用的知识详解

    Linux简介与厂商版本 1. Linux简介 Linux可以有狭义和广义两种定义.狭义来说,Linux实际上指Linux kernel (内核).内核负责管理硬件,并为上层应用提供接口.而广义来说, ...

  8. linux远程执行shell命令行,linux shell 远程执行命令--ftp

    linux shell 远程执行命令--ftp 2018-12-07 ftp有很多命令,熟悉这些命令你能大大的提高工作效率: FTP命令行格式为: ftp -v -d -i -n -g [主机名] , ...

  9. Linux运维之常见命令

    文件管理类命令 :cp : 复制cp SRC DEST如果DEST不存在,系统会自动创建文件或目录如果DEST存在 :如果SRC是一个文件 : 如果DEST是一个文件,会直接将SRC中的内容覆盖DES ...

最新文章

  1. NAR:gcMeta——全球微生物组数据存储和标准化分析平台
  2. 转mosquitto auth plugin 编译配置
  3. 如何使用小的显存训练大的batch_size
  4. mysql的引擎讲解
  5. 游戏开发模式一:组件模式(Component)
  6. fatjar打包mysql_一个简单的解压ZIP Excl文件---gt;按时间读取Excle文件,通过Fat jar打成jar相对应的添加到mysql数据库中。 - 明月 - ITeye博客...
  7. 使用TLS安全的访问Minio服务​​​​​​​
  8. 周年纪念闪金海报设计,这个日子不简单!
  9. Android用开源优势超Windows Mobile
  10. 信么?PrintDemon 漏洞影响自1996年起发布的所有 Windows 版本
  11. UnityShader9:光照基础回顾
  12. c语言修改内存字节,要开学了,小白给大家一个C语言修改dnf内存的示范代码
  13. 运维自动化之zabbix(添加Graph screen)(3)
  14. 二分查找递归解法(java)
  15. 首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps 首席多多客 八合一小程序源码
  16. 三维地图前端js api对比分析
  17. Illustrator CC 2019for Mac完美直装版无需破解
  18. “一人单挑 BAT”,黑客张福:我要的东西,比钱更贵
  19. 40-42-网络层ARP协议,ARP欺骗,网络执法官和arp防火墙
  20. 学生健康管理软件/中小学体检数据管理系统

热门文章

  1. CDN缓存服务器现状
  2. non-overlapping-intervals
  3. 元素上下层叠关系总结
  4. eclipse+ADT 进行android应用签名详解
  5. MySQL数据库学习笔记(三)----基本的SQL语句
  6. C程序中main函数参数调用[个人学习简记]
  7. 微软同步框架入门之五--使用WCF同步远程数据
  8. html 方式使用iview,VUE之iview框架使用教程
  9. android 代码发adb,Android预安装软件adb命令编译源码
  10. Balanced Lineup(POJ-3264)