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. jmeter脚本的编写

    前几天讲到了性能测试的入门,今日继续来讲解jmeter的使用,本文讲的都是比较细,希望各位耐心的看完. 一.jmeter的安装与打开 前提条件:给大家一个jmeter的安装包  百度网盘的路径如下:链 ...

  2. Spring 源码阅读环境的搭建

    前言 本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑!​当前版本:5.3.2-SNAPSHOT. 环境准备 Git JDK master 分支需要 JDK 11 5.2.x 分支, J ...

  3. CSP-SJX2019 解题报告

    T1 日期 日高于 \(31\) 或等于 \(00\) 的要修改 \(1\) 次. 月高于 \(12\) 或等于 \(00\) 的要修改 \(1\) 次. 月等于 \(02\) 且日大于 \(28\) ...

  4. transient关键字的作用以及几个疑问的解决

    目录 1.从Serilizable说到transient 2.序列化属性对象的类需要实现Serilizable接口? 3.不想被序列化的字段怎么办? 4.ArrayList里面的elementData ...

  5. TIOBE 11月指数:C语言居首,稳居宝座,Python直逼第二!

    官方网址:https://www.tiobe.com/tiobe-index/   ​ 这是自近20年前TIOBE指数开始以来,Java和C第一次不再占据前两位.C仍然是第一位的,但是现在第二个位置是 ...

  6. kafka入门之broker--日志存储设计

    kafaka并不是直接将原省消息写入日志文件的,相反,它会将消息和一些必要的元数据信息大宝在一起封装成一个record写入日志.其实就是我们之前介绍的batch 具体对每个日志而言,kafka又将其进 ...

  7. LaTex源文件的基本结构

    默认编译器设置: Utf-8设置: 相关代码与注释: 显示效果:

  8. 冲刺随笔——Day_Seven

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...

  9. Python to Exe By Install PyInstaller on Win7-64bit

    本文主要记录为史振华在尝试转换PY文件为EXE文件过程中各种疑惑和最终解决方法,尝试了PYTHON 2.7/3.5/3.6及其相关依赖pywin32-222.win32/pywin32-222.win ...

  10. C#9.0新特性之四:顶级程序语句(Top-Level Programs)

    1 背景与动机 通常,如果只想用C#在控制台上打印一行"Hello World!",这可不是Console.WriteLine("Hello World!"); ...