GUI: Graphic User Interfacenode
Windows : Windowslinux
Linux : x-Windowc++
Gnome cshell
KDE c++数据库
Xface 嵌入式经常使用桌面windows
GLI: Command Line Interface 缓存
shbash
bash网络
cshide
ksh
zsh
tcsh
IDE: 集成开发环境
用户操做:
用户名:计算机识别用户靠的是数字 用户ID
认证机制: Authentication 认证过程就是鉴别用户身份的一种机制
资源访问的受权: 受权 Authorization
审计; Audition (审计对于计算机而言大多数是靠日志完成的)
prompt,命令提示符
命令: 既能够是二进制的程序 也能够是脚本文件 (对于内核而言,是严格区分两者的)
通常一个可执行文件,他必须有一个可执行入口 库是没有执行入口的,但它是个可执行文件
这个二进制文件开头出有几个字节是很是独特的标识,称之为程序的魔数
magic number :魔数 能够标记二进制程序的执行格式
在windows下程序执行的魔数和linux下程序执行的魔数是不同的,他们所理解的二进制格式也是不进相同的
因此就算两者的库彻底同样 你在windows上编译的程序也未必能在linux上执行
#!/bin/bsah 咱们脚本这一行必须这样写是由于这就是给咱们的文件指定一个魔数的 ,它也被称为shebang
当一个程序执行的时候 这个程序的执行入口就被提交给内核了 只有内核才能管理进程
内核公用: 进程管理 内存管理 文件系统管理 驱动程序管理
当咱们在命令提示符地下给它一个命令并敲击回车时 相关的执行程序就会被提交给内核
(由bash提交给内核 内核接着就去找这个执行程序的魔数,判断其是否是可执行格式或者该内核可 理解 是执行 否拒绝运行)
到底要不真正执行还取决于外围权限等各类复杂的机制,因此说程序必须有执行入口 这个执行入口标就是用来标识它的魔数
以及这个程序的执行格式等
# command optians.. arguments....
ls:list
列表 列出 它能列出你所指定目录下全部的子目录或者文件 目录并非文件夹 它只是路径的映射而已
目录:也是一种文件 是一种路径映射文件
路径: 从指定起始点到目的地所通过的位置(计算机中引用这个概念是为了实现层次化管理文件的一种机制,为了方便快速查找操做文件)
层次化管理文件管理的这种一种机制咱们称之为文件系统: file system 、
linux的目录结构咱们称之位倒状的树状结构
咱们登录系统的时候必定是处在当前某个目录上 (如windows开机后处在桌面上(桌面也是一个目录))
目录: working directory(工做目录) current directory(当前目录)
FHS:文件系统层级结构标准 它里面规定了有些目录必须存在,并且这些目录必须放什么
pwd : Printing Working directory (显示工做目录)
最顶级那个目录用斜线“/”表示 windows用的反斜线 \
而后个路径之间的分隔符也使用斜线
ls:
-l long 长格式 (表示显示的是完整的信息)
首位表明文件类型:
- :普通文件(f)
d :目录文件
b :块设备文件(block)
c :字符设备文件(character)
l :符合连接文件 (symbolic link file) 也叫软连接文件
p :命令管道文件(pipe)
s : 套接字文件(socke )
后面的九个位表示文件的权限 Mode
文件权限: 9位 每3位一组 每一组里面都有rwx(读 写 执行)(若是没有某种权限则用 "-"表示) rw- 表示能读能写不能执行
下一个是文件硬连接的次数
下一个是文件的属主(owner)
下一个是文件的属组(group)
文件大小(size)默认单位是字节
时间戳(timestamp) 每个文件都三个时间戳 最近一次被访问的时间 最近一次被修改的时间 最近一次被改变的时间
访问: access
修改: modify 改变了文件的内容
改变: change 改变了文件的属性或者叫改变了文件的元数据
一个文件有两种数据 一种是文件的自身数据 一种是文件的属性数据 属性数据也叫元数据(metadata)
最后一个是文件名
-h: 作单位换算的
-a: 显示以.开头的隐藏文件
. 表示当前目录
.. 表示当前目录的上一级目录(父目录)
-A: 显示全部隐藏文件 可是不包含 .和 ..
-d: 显示目录自身属性
-i: 显示文件的索引结点号的 index node ==> inode 文件的索引结点 每一个结点都有对应的结点号
-r: 逆序显示文件
-R: 递归(recursive)显示 不只该目录显示 该目录的字目录也显示 一直显示到空
cd: change direcotry 切换当前工做目录
cd 不加任何参数 回到用户的主目录(家目录) home directory
对于本身的家目录 用户有全部的操做权限 因此用户建立删除文件等各类工做通常在家目录下完成
每一个用户的家在basd中都用波浪线"~"表示
cd ~USERNAME 进入指定用户的家目录 只有管理员能够
cd - 在前一个目录与当前目录之间来回切换
ls / 显示当前全部目录
linux命令类型:
内置命令(shell内置 用来管理自己的一些必要命令) 如cd is a shell builtion (cd是一个内置命令)
外部命令: 在文件系统某个路径下有一个与命令名称相应的可执行文件
环境变量:可理解为就是定义当前用户的工做环境的(好比咱们能够定义咱们用的主题 壁纸 logo等 每一个属性的定义都使用一个环境变量来存放)
因此不管哪一种shell 都必须有环境变量
变量是命名的内存空间 向这个起名的内存空间放入数据叫变量赋值
声明变量的过程就是让程序告诉操做系统 咱们要使用一块内存
栈:一般放本地声明的一些变量和静态变量等
堆:其余须要保存的数据(好比打开一个文件) 一般存放在堆中
type 显示指定命令属于那种类型
hash 缓存 在缓存中记录下来以前所用过命令的路径 而且在下一次寻找的时候 先看缓存有没有 找不到搜索
缓存保存的是一个hash(哈希)列表 哈希列表保存的是一个键值对 它是一个键值数据库 在键值数据库中 它是(0)1的
(0)1 指的是不管这个队列有多长 我从中找到任何一个数据所用的时间是同样的 因此说 缓存是实现系统加速的
因此一个文件要么给出一个完整路径 要么加载到PATH表当中 才能执行
PATH环境变量: 使用冒号分割的一堆路径
printenv 显示当前环境变量
linux: rtc:硬件时间 实时时钟
ntp:网络时间协议
与windows不一样的是,咱们的linux在开机的时候,它会经过rtc读取当前时间,可是一旦读取成功后就不在使用这个时间
之后咱们操做系统自身或者说是咱们内核自身会经过软件的方式模拟晶振在系统内部维持一个时钟
因此linux开机有两个时钟
硬件时钟
系统时钟
因为cpu很是繁忙,因此系统时钟有可能出现偏差 AM上午 PM下午
date: 时间管理(看到的是系统时间)
clock/hwclock: 硬件时间
得到命令的使用帮助:
内部命令:
help COMMAND
外部命令:
COMMAND --help (大多数)
命令手册:manual (公共命令使用方式)
man COMMAND 使用手册在linux上是一个文本文档,但这个文档是压缩存放的
对于内部命令而言 你man的不是这个内部命令 man的是这个内部命令所属的shell
whatis COMMAND 它能够显示这个命令的摘要信息以及出如今哪些个章节中
man是分章节的: 常见章节有8个 (分章节说明)
第1章节1:用户命令(/bin, /user/bin, /user/local/bin)
2:系统调用
3:库调用 只有库才有库调用 命令不是库 库也不是命令 会同时出现只多是重名
4:特殊文件(设备文件) 设备文件是一类比较独特的文件 它在你系统上,在你磁盘上真正的数据区域里没有存储任何内容
它只是做为设备的访问入口存在的,并非一个真正的文件,所以本章节都是在解释这些设备文件是什么
5:文件格式(就是配置文件的语法(怎么使用))
不少命令为了定义它的执行属性 咱们可使用选项
对于很是复杂的执行文件,它一般都有一个叫作配置文件的文件,在这个配置文件中保存了以往能够经过选项指定的程序执行属性
因此这个配置文件中有不少相似于变量同样的东西,来定义这个程序的执行属性
6:游戏
7:不便归类的杂项命令(miscellaneous)
8:管理命令(/sbin, /user/sbin, /user/local/sbin)
在man中 命令的使用格式里 []可选 |多选一
<>必选 ...能够出现屡次
{}分组
在线文档
info COMMAND (详细到发展 历史神马的)
type COMMMAND 显示命令类型(内部仍是外部)
文档: /usr/share/doc
man手册各章节说明
NAME:命令名称以及功能简要说明
SYNOPSIS:用法说明 包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每个选项的意义
OPTIONS: 说明每个选项的意义
FILES: 此命令相关配置文件
EXAMPLES:使用示例
SEE ALSO:另外参照
翻屏:
向后翻一屏: 空格键(space)
向前翻一屏: b键
向后翻一行: enter键
向前翻一行: k键
查找:
/KEYWORD 向后 (从当前位置)
n:下一个
N: 上一个
?KEYWORD 向前
n:上一个
N:下一个
q:退出
hwclock
-w:将系统时间写到硬件当中去
-s:将硬件时间写到系统当中来
cal:calendar日历