GUN:GUN is Not Unix
GPL:General Public License.通用公共许可证,版权
Copyright,Copyleft
开源协议
LGPL:lesser
GPLv2
GPLv3

Shell:

GUI:Graphic User Interface
windows
X-Window
Gnome
KDE
Xface
CLI:Command Line Interface
sh
bash
csh
ksh
zsh
tcsh

Goole:
linux filetype:pdf
linux site:ibm.com

google hack

操作系统组成结构:

  在单颗CPU系统平台上硬件资源是独有的,为了能够在同一个计算机上同时实现运行多个程序,有了通用管理软件内核(平台,不具有特定任务,只是将硬件的计算能力抽象出来提供给上层其他软件).提供方式称为系统调用(systemctl)

  由于系统调用过于底层,使用起来非常麻烦.因此就有了库,将一个或多个系统调用的功能封装起来.做成更高级的调用接口,库是一个可执行程序,自己不能执行,需要调用后才能执行.共享库或动态共享库,库的上层是各种各样的应用程序,根据需要功能也是各种各样的.如shell,特殊的用户界面;web服务器;kde

IDE:Integrated Development Environment集成开发环境
  程序员在开发时用到的一个特殊开发环境.
linux上这些库都是以***.so(shared object)共享对象,动态共享对象

  一个操作系统的基本组成:内核+库(软件,以及这些软件需要的库)
一个可以使用的操作系统,最关键的应用程序是Shell(依赖库)需要什么别的功能可以单独加.操作系统的臃肿其实主要是在整个主线上的补充而以,如Web服务器程序,需要一个可以使用的web服务器程序和其所依赖的库只要填充在之前的操作系统中就可以了

login:
用户名:用户ID,用户名是不能用作限定用户是否具有访问资源认证标识的
计算机能够最快处理的资源不是字符,是数字.计算机识别用户身份是:ID

认证机制:Authentication
鉴别用户的过程,常用方式就是密钥.
授权:Authorrization
审计:Audition(日志)

prompt,命令提示符:
命令:既可以是二进制程序,也可以是脚本文件.内核会严格区分
magic number:魔数 二进制程序的执行入口
shebang

#!/bin/bash

内核的功用:进程管理、内存管理、文件系统、驱动程序...
在命令提示符后输入命令并敲回车键时,这个执行程序就会由bash提交给内核,内核找执行程序的魔数判定是否为可执行格式,执行与否需要的外围条件也很多

# command options.. arguments...

选项:修改命令执行特性
短选项(可以合并)
长选项
有些选项时可以加参数的
参数:指定命令作用对象
命令选项参数中间需要用空格隔开
list:ls
列出,列表
列出指定路径下的文件

目录只是一个路径映射文件
路径:从指令起始点到目的地所经过的位置
只是为了实现能够层次化管理的一种机制
层次化的结构,可以实现快速追述一个目标

层次化的文件管理机制就称为文件系统:file system
绝对库经:从根开始
相对路径:登录系统后,每个时刻都处在一个目录下.working directory.current directory文件系统层及标准:FHS
文件名是不是文件的数据?yes

pwd:Printing Working directory
ls
  -l:长格式
    文件类型:
      -:普通文件(f)
      d:目录文件
      b:块设备文件(block)
      c:字符设备文件(character)
      l:符号链接文件(symbolic link file)
      p:命令管道(pipe)
      s:套接字文件(socket)
    文件权限:9位,3位一组,每组rwx
    文件硬链接次数
    文件属主(owner)
    文件的属组(group)
    文件大小(size)默认单位是字节
    时间戳(timestamp)最近一次被修改的时间
      访问:access
      修改:modify,文件内容发生了改变
      改变:change,metadata,元数据
-h:human-readable做单位换算
-a:显示以.开头的隐藏文件
.标示当前目录
..表示父目录
-A:不显示当前目录和父目录
-d:显示目录自身属性
-i:index node,inode索引节点号
-r:逆序显示
-R:递归(recursive)显示

cd:change directory
  不加参数默认回到家目录:主目录,Home directory
  cd ~USERNAME:进入指定用户的家目录
  cd -:在当前目录和上次所在的目录之间相互切换

命令类型:
  内置命令(shell内置):内部,内建
  外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
其实在win系统中的双击鼠标,其实也是将命令发送给内核让其运行的,只是操作方式不同
为了让用户便捷的在命令提示符下执行命令,内置了环境变量.
环境变量:命名的内存空间,变量赋值就是,
  A=B:在内存中找一段空间起名叫A,空间中放的数据是B.=就是赋值
变量在用完后可以撤销
声明变量的过程是:申请内存使用的过程
堆栈:   存放不同的数据,    内存申请的两种不同机制.在进程地址空间中也是不同的
            栈本地声明的变量,静态变量...
            堆:其他用来用来申请获取保存数据的地方,不是变量需要保存数据,如:打开一个文件,文件需要被程序访问,必须要访问内存的.只是申请一段内存空间
环境变量:定义当前用户的工作环境的

which:查看一个命令的具体路径
printenv:显示当前用户的环境变量
hash:缓存,记录了此前所用过的所有命令的路径.以后再使用时,会先去找缓存

cache is king,cache保存的是一个hash(键值对)列表

键值数据库中查找速度是O1的
O(1)衡量程序执行速度的标准:从一个列表中查找一个数据的速度随着列表长度的变化而变化的比例、函数、趋势
   缓存是实现系统加速的
所有命令只要不带路径一定要再path指定路径下的文件,否则无法执行

type:显示命令属于那种类型

date:时间管理
2020年 04月 26日 星期日 09:14:14 CST
Linux:rtc实时硬件时间
ntp网络时间协议
现代时间计量工具,电子表、石英表都是使用晶体震荡器计时.专业计时器使用的晶体震荡器,万年都不会出现一秒的差距.
电脑上的计时器就是使用同样的原理,
四维空间:就是在立体空间中加入了时间
linux在开机时,会通过rtc读取时间,如果读取成功,就不再使用网络时间.内核自身会通过软件模拟震荡器,在系统内部维持时间.
linux开机后有两个时钟:
  硬件时钟clock hwclock
  系统时钟date
随着时间的推移这两个时间会出现差距

获得命令的使用帮助:
内部命令:
    help COMMAND
外部命令:
    COMMAND --help

命令手册:manual
man COMMAND

whatis COMMAND:查看一个命令的帮助出现在那些章节中
分章节:
1、用户命令(/bin,/usr/bin,/usr/local/bin)
2、系统调用
3、库调用(只有在同名的情况下,才会同时出现)
4、特殊文件(设备文件:在磁盘上时没有存储任何数据的,只是作为设备的为访问入口存在的)
5、文件格式(配置文件的语法。很多命令定义使用特性时可以只用选项,某些命令选项不一定每次都要指定,或者是想开机就可以使用.对于比较复杂的执行文件,通常都有配置文件.配置文件中就保存了通过选项来指定的程序执行属性的)
6、游戏
7、杂项:(Miscellaneous)
8、管理命令(/sbin,/usr/sbin,/usr/local/sbin)
管理命令一般只有管理员可以使用(因为他可以修改硬件信息)
man手册出现乱码时:export LANG=en

<>:必选
[]:可选
...:多选
|:多选一
{}:分组

MAN:
  NAME 名称及功能简要使用说明
  SYNOPSIS:用法说明,包括可用选项
  DESCRIPTION:命令功能的详尽说明,可能包括每个选项的意义
  OPTIONS:说明每一个选项的意义
  FILES:此命令的相关的配置文件
  BUGS:报告BUG给谁
  EXAMPLES:使用示例
  SEE ALSO:另外参照
翻屏:
  向后翻一页:SPACE空格
  向前翻一页:b
  向下翻一行:ENTER
  向上翻一行:k

查找:
  /KEYWORD:向后
  n:下一个
  N:前一个
  q:退出
  ?KEYWORD:向前

练习:
使用date单独获取系统当前的年、月、日、分、时、秒

hwclock 查看当前系统时间
    -r:查看当前系统时间(可以不加)
    -w:以系统为准
    -s:以硬件为准

配置服务器时,操作系统时钟是非常常见的操作

在线文档:
info COMMAND:发展历史
  info可以理解为man的一个补充使用不多

/usr/share/doc/ 里面是大多数命令的使用帮助说明的手册
    这个文档里面最重要的是内核有关的文档

google

官方项目的网页
apache
hadoop

学习的方式:以给别人将明白为标准。要非常开心的帮助别人解决工作中遇到的问题

cal:calendar 日历
练习:
1、echo是内部命令还是外部命令
    内部命令
    默认打印换行符,-n不打印
2、其作用
3、如何换行显示

1、printf是内部命令还是外部命令
内部命令
默认不打印换行符\n打印
2、其作用
3、如何显示"The year is 2020.Today is 27"为两行

file命令及其用法:
Windows:PE可以移植的可执行文件
linux:ELF可执行的可链接文件

文件系统是内核的核心功能之一,主要目的就是实现一个分区上的文件管理,文件系统对磁盘来说是分以区为单位进行标示的.
在整个系统上所有文件系统都必须存储在以整个系统为中心的根文件系统上。

文件系统:

rootfs:根文件系统
根又称为root以/表示
每个目录下有子目录和文件,可以理解为文件类型可以理解为目录和文件,所有文件都存在目录中

FHS:Linux文件系统层级标准
ls /
/boot:系统启动相关的文件,如:内核、内存磁盘(initrd)、grub(bootLoader)等等
/dev:设备文件
设备文件:
块设备:随机访问.数据块
字符设备:线性访问.有顺序的安字符为单位如:显示器、属标等
设备号:主设备号(major)和次设备号(minor)
/etc:配置文件(纯文本文件)
/home:用户加目录,每个用户的家目录通常默认为/home/USERNAME
/root:在传统的Uinx上root用户是没有家目录的,root是不需要登录操作系统的
生产环境中,不可以用root登录.只有在需要使用管理员功能时才可以切换
/lib:库文件
  静态库: .a
  动态库: .dll(win系统) .so(shared object共享对象)
  /lib/modules:内核模块文件

库:封装好的某些功能
    共享库:可以很大的节约内存空间
    任何程序和数据都必须载入内存后才可以使用,共享库好处在于第一个程序启动后,如果用到某个共享库.直接载入内存中,第二个程序启动的时候也需要使用这个共享库,就不需要重新载入了.可以拿来直接使用.

    静态库:直接连接到程序的地址空间中,作为程序的一部分来运行.
        便于程序单个文件管理,当需要将一个程序从一个主机移植到另一个主机时,如果使用的是静态库文件.只需要将文件复制过去就可以直接运行.但如果是共享库(动态链接库),这个程序的运行还需要依赖库.不仅需要移植程序还需要相应的依赖库才可以正常运行.
        综上所述,两种库是各有优势的.在使用过程中,需要充分考虑

/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
在使用中可以不区分的,这个规定只是FHS的规定
win系统中访问光盘中的内容,linux中光盘放入光驱,必须将这个设备关联到当前文件系统树上的某个节点上才可以访问.这个关联的过程就叫挂载过程.
是一个设备文件,不是目录.只是设备上的访问入口,需要建立关联关系

/opt:可选目录,早期是用来安装第三方软件的.orical、Nessus(安全漏洞扫描)

/proc:伪文件系统,内核映射文件(内核的可调参数和内核的统计数据)可以查看内核的工作属性,如:网卡收发数据包的数量、内核所支持的网络协议、路由功能等
    改变操作系统的根本工作属性,包括系统调优,整个系统的性能数据监控也是在这里

/sys:伪文件系统,硬件设备相关的属性映射文件,是从内核映射文件拆分出来的.
    通常用于硬件管理的,尤其是硬盘这样的存储设备,磁盘IO调度队列
      /sys/block 块设备
      /sys/bus 总线
      /sys/devices 设备
      sys/firmware 固件
      /sys/fs 文件系统
      /sys/kernel 内核
      /sys/module 模块
      /sys/power 电源相关的内容

/tmp:临时文件,公共文件,其他用户可查看的临时文件.一个月之内没有被访问的文件会被自动删除,每个用户都可以在里面创建文件.只可以删除自己创建的文件

      /var:可变化的文件
      /var/cache 缓存
      /var/lock 锁文件
      /var/log 日志
      /var/mail 用户邮件转存位置
      /var/run linux中运行进程的进程号码
      /var/tmp 临时文件

/bin:binary 二进制可执行文件,用户命令
/sbin:管理命令
        系统启动需要的
      /bin和/sbin存放程序
      /lib 存放库
      /etc 配置文件

/usr:shard,read-only 全局的共享只读文件
    /usr/bin
    /usr/sbin 可执行程序
    /usr/lib 库
    /usr/

   usr/bin和usr/sbin理解为系统自身启动后为了提供一些基本功能所具备的命令或可执行程序
其中所依赖的库如果不是公共库,存放在usr/lib下

usr/local:第三方软件安装位置,其内还有etc
      /usr/local/bin
      /usr/local/sbin
      /usr/local/lib

  一个操作系统,/bin /sbin /usr/bin /usr/sbin是必须的和/usr/local下的文件每有关系

命名规则:
1:长度不能超过255个字符;
2:不能使用/当文件名;
3:严格区分大小写

相对路径:从当前位置开始的文件引用目录
绝对路径:从/开始的文件引用目录

目录管理
ls
cd
pwd

mkdir:创建空目录
rmdir:删除空目录
    -p 第归删除糖葫芦串,有分支会暂停
tree:以树状图列出目录内容

文件管理
touch:新建一个文件,主要功能是修改文件时间戳
    -c 不创建文件
    -a 只改变访问时间
    -m 只改变更改时间
    -t 指定时间值为指定文件相应时间戳值
        用法:
          touch -t 202001012200.00 FILE 注意秒数值需要和分钟用.隔开
stat:查看文件或文件系统的状态信息

创建文件还可以使用文本编辑器
文本编辑器编辑纯ASCII码的
nano

删除文件:
    rm FILE
      -i 交互式
      -f 不需要提示,明确要删除
      -r 删除目录
rm -rf 第归删除目录不用提示
有别名的命令在使用时前面加\COMMAND可以使用命令自身的意思

ASCII:美国国家标准信息交换代码

128不同的字符:
    二进制:
      2^6=0-63
      2^7=0-127
      000 0000 - 111 1111
0000 1001:t
2^16: 65536

标准:GB18030,GBK,GB2312,Unicode
0000 1001 0000 1110

linux操作系统及常用命令的更多相关文章

  1. Linux学习篇(三)-Linux操作系统及常用命令

    小知识:南桥北桥 北桥是高速总线控制器,在CPU附近,连接内存和CPU,需要传输大量数据. 南桥是低速总线控制器,用于连接IO设备(硬盘键盘鼠标等),IO设备由南桥汇总会直接传入北桥.,目前cpu可以 ...

  2. 2-1 Linux 操作系统及常用命令

    根据马哥linux初级视频 2-1.2-2来编辑 1. GUI与CLI GUI: Graphic User Interface CLI: Command Line Interface 注:在Windo ...

  3. linux初级学习笔记三:linux操作系统及常用命令,及如何复制和移动文件!(视频序号:02_4)

    本节学习的命令:cp,mv,install,du,read 本节学习的技能:文件的移动与复制 cp( copy):复制和移动文件 cp SRC DEST -r:递归复制一个目录及其目录中的所有文件 - ...

  4. linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)

    本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...

  5. linux初级学习笔记一:linux操作系统及常用命令,及如何获取命令的使用帮助!(视频序号:02_1,2)

    本节学习的命令:ls,cd,type,pwd, printenv, hash, date, clock, man, hwclock, info, cal, echo, printf, file! 本节 ...

  6. Linux查看系统配置常用命令

    Linux查看系统配置常用命令: 系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo ...

  7. Linux简单的常用命令——纯手打(慢慢积累)

    ==============linux下快捷键==================ctrl+insert 复制shift +insert 粘贴 输入文件名的前三个字母,按tab键自动补全文件名 在vi ...

  8. Linux 系统巡检常用命令

    Linux系统巡检常用命令   # uname -a # 查看内核/操作系统# cat /etc/centos-release # 查看centos操作系统版本# cat /proc/cpuinfo ...

  9. linux vi编辑常用命令

      linux vi编辑常用命令 来源:互联网 作者:佚名 时间:07-10 21:31:14 [大 中 小] linux vi编辑常用命令,需要的朋友可以参考下   vi编辑器中有三种状态模式 1. ...

随机推荐

  1. 对KVC和KVO的理解

    html { overflow-x: initial !important } :root { --bg-color: #ffffff; --text-color: #333333; --select ...

  2. C#设计模式-装饰器模式(Decorator Pattern)

    引言 当我们完成一个软件产品开发后就需要对其进行各种测试,适配快速迭代下质量的保障.当有一个完善的产品的对象后,如果我们想要给他添加一个测试功能,那么我们可以用一个新的类去装饰它来实现对原有对象职责的 ...

  3. Luogu P2656 采蘑菇

    尽管是缩点的习题,思路也是在看了题解后才明白的. 首先,每个强连通分量内的点都是一定互通的,也就是可以完全把这里面的边都跑满,摘掉所有能摘的蘑菇.那么,考虑给每一个强连通分量化为的新点一个点权,代表摘 ...

  4. FL Studio新手入门:FL Studio五大常用按钮介绍

    我们打开FL Studio编曲软件会发现界面中有好多的菜单和窗口,这些窗口每个都有其单独的功能.今天小编主要给大家详细讲解下FL Studio水果软件的五大常用按钮. 1.首先我,我们双击桌面的水果图 ...

  5. [笔记] dumpsys meminfo数据与smaps文件对应关系

    通过cat /proc/$PID/smaps可以查看进程内存的详细映射情况.详细解析可以参考kernel的文档/Documentation/filesystems/proc.txt 如果我们的Andr ...

  6. MIT-6.005软件构建

    L01 Static Typing 主要对比Java和Python Java:静态语言,运行之前所有变量都要声明.traps:整型相除还是整型,5/2=2.数值溢出,20亿*2结果是负数,这个bug不 ...

  7. 2014.04.28基于CPLD的LCOS场序彩色视频控制器设计

    基于CPLD的LCOS场序彩色视频控制器设计 作者:宋丹娜,代永平,刘艳艳,商广辉 发表刊物:液晶与显示,2009 学习时间:2014.04.28 文章讲述了-- (和上一篇论文有些相似之处) 1. ...

  8. java46

    1.迭代器遍历 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public c ...

  9. 原创题目 白银之春 Problem and Solution

    白银之春 Solution 比赛用题面.题解.标程和数据生成器都挂在 git@github.com:sun123zxy/spring.git 上. Problem 白银之春 (spring.cpp/. ...

  10. PyQt(Python+Qt)学习随笔:树型部件QTreeWidget中使用sortItems进行项排序

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的项可以使用sortItems方法按照指定列进行排序,调用语法: s ...