Linux背景知识

操作系统

技术小贴
技术小贴

体系结构

  • 控制器:CPU,读取系统指令
  • 运算器:CPU,运算
  • 储存器:RAM(内部存储器:易失性存储器)
  • 输入设备:输入数据
  • 输出设备:显示命令执行结果

总线结构

  • 地址总线:负责内存寻址
  • 数据总线:负责传输数据
  • 控制总线:负责控制指令

基本背景

前世

1969年,一群MIT BELL Lib 的家伙用汇编语言开发出一款收费操作系统:MULTICS

这时,一个叫Ken的同学使用MULTICS开发了一款类似雷霆战机的小游戏

后来BELL实验室暂停MUTICS项目,雷霆战机被迫中断

ken同学特别郁闷,后来上班途中偶然发现墙角一台计算机:PDP-7(当时最新是PDP-11系列)

ken同学凭借记忆和知识把MULTICS重新开发一遍,命名为unics,后来改名为UNIX

1977年,BELL 实验室重新研究unix,开发出BSD系列(freebsd openbsd netbsd),作为unix的重要分支

1984年,谭宁邦教授非常想把unix系统用以教学,于是仿照unix开发了mini unix,为Linux的出现奠基

1984年,史托曼教授开启了GNU(GNU is not unix)项目,包含GCC BASH SHELL

史托曼教授认为自己开发的软件让别人尽情使用是最大的快乐,于是GPL出现了

但是美国人咋赚钱呢,于是出现了LGPL:基于某个内核平台开发的软件可以进行销售

一个芬兰大学生,托瓦兹一天偶然得到mini unix源码,聪明的孩子修改源码得到unix-like,它把这些东西放到FTP上

于是乎参与Linux研发的团队越来越大,于1991年诞生第一个版本 linux 0.0.2

今生

Linux Distributions主要分为两大系统:

一种是使用RPM方式安装软件的系统,包括Red Hat,Fedora,SuSE等;

另一种是使用Debian的dpkg方式安装软件的系统,包括Debian,Ubuntu,B2D等。

版本

A.B.C

  • A:主版本号
  • B:次版本号(奇数:开发版本 偶数:发行版本)
  • C:修订版本号(修订次数)

从Linux Kernel 3.0开始,已经舍弃奇数、偶数版本规划 ,新的版本采用主线版本为依据,并提供长期支持版本来加强某些功能的持续维护!

GNU

GNU是GNU is Not Unix的缩写,是个无限循环(噗),由Stallman组织!

GNU计划发起了自由软件运动,鼓励分享程序的Source code,以让更多的人可以使用,并帮助完善,最终使程序越来越壮大。

GPL

为了避免自己开发的Open Source自由软件被拿去做成专利软件,Stallman于是将GNU与FSF发展出来的软件,都挂上GPL的版权宣言。

FSF的核心观念即版权制度是促进社会进步的手段,版权本身不是自然权利

基本知识

shell

shell是一种人机交互接口,用于读取命令并与内核交互!

内核

  • 进程管理
  • 内存管理:为每个进程分配内存
  • 文件系统:存储设备上储存数据的方式,想象一下圆形和方形的水杯,水的形状不同但实质一样
    • windows:NTFS FAT32
    • linux:ext3 ext4 xfs
  • 网络功能:管理IP信息等
  • 硬件驱动
  • 安全功能

设计

  1. 由很多小程序组成,每一个小程序完成单一的功能,最后实现复杂功能
  2. 一切皆文件:所有的外围设备(硬件)或者其它程序
  3. 尽量避免捕获用户接口
  4. 配置文件保存为纯文本格式

界面

GUI:graphical user interface

  • 图形界面:ctrl+alt+F7(需要安装)
  • GNOME:Linux默认图形界面,由c语言开发
  • KDE:由c++开发
  • xface:简化的图形界面(一些ubuntu)

CLI:command line interface

  • 多用户 多任务 系统,为每个用户分配一个终端
  • 默认6个终端,切换方式:ctrl+alt+F1~F6

命令

  • 命令提示符(prompt):[root@www ~] #
  • 退出终端:exit

凭证

权限分配

用户名和密码是用户获取资源权限的凭证 UID

  • 管理员:root uid(0:0:0)
  • 切换用户(switch user):企业Linux不允许root用户登录
    • root切换到普通用户时,不需要普通用户的密码
    • 普通用户切换到root用户时,需要输入root用户的密码
    • su user/root
    • exit

3A认证

  • 认证机制:authentication
    • 密码认证:
    • 1、符合复杂性要求
    • 2、密码长度要求(>7)
    • 3、不要使用易记的密码
    • 4、定期更改密码
    • 5、重复使用密码的时间要长
  • 授权机制:authorization
  • 审计机制:audition(日志) 监督

登录信息

登录信息记录在/etc/issue

命令

选项

  • 命令字 [选项] [参数]
  • 命令字:由实现某种功能唯一确定
  • 选项:修改命令的执行方式
    • 长选项:由--引导 ,是一个单词,多个长选项不能组合(需要多个--分别引导)
    • 短选项:由-引导 ,是一个字符 多个短选项可组合(可由一个-引导),并且和顺序无关
  • 参数:命令作用的对象

分类

  • 内部命令:shell自带的命令
  • 外部命令:在Linux文件系统中存在一个应用程序提供的命令
  • type命令:查看Linux命令类型

路径

  • 绝对路径:从跟(/)开始的路径都是绝对路径,Linux系统只有一个根
  • 相对路径:以所处的工作目录为参照点
  • . 代表当前路径 , ..代表上一级路径 , ~代表用户的宿主目录

PATH

类似于Windows,Linux中也有环境变量,变量名为PATH

查看环境变量

通过echo $PATH可以查看当前所有的环境变量值

环境变量规则

如果一个命令在以上多个路径中存在,系统会按照从前往后的顺序查找,查找到该命令后,后面的路径不再查找(即使错误)

添加环境变量

#临时添加环境变量
export PATH=$PATH:~/w3af:~/vega
#永久添加环境变量
##编辑`/etc/profile`或`~/.bashrc`,添加以下内容
export PATH=$PATH:~/w3af:~/vega
source /etc/profile

man

调用命令帮助

  • 内部命令:”help” + [command]
  • 外部命令:[command] + “–help”

man手册

  • man查看快捷键
上下方向键:翻行
enter:向下翻页
pagedown:向下翻页
pageup:向上翻页
/[查看字符]:从上往下查找关键字
?[查看字符]:从下往上查看关键字
q:退出当前帮助信息
  • man目录说明
User Commands                                       所有用户命令(/bin /usr/bin /usr/local/bin):binary        
2      System Calls                                 系统调用库   不同应用调用库程序实现相同功能
3      C Library Functions                          库调用
4      Devices and Special Files                    设备或特殊文件        硬件设备存放在/dev/
5      File Formats and Conventions                 查看配置文件格式
6      Games et. Al.                                游戏
7      Miscellanea                                  杂项
8      System Administration tools and Dea-mons     管理员命令   (/sbin /usr/sbin /usr/local sbin):security binary
  • man使用说明
NAME:显示命令名称及简要用法
SYNOPSIS:语法格式,可能包括一些选项的使用
DESCRIPTION:命令和命令选项的详细说明
Exit status:退出状态码
AUTHOR:作者信息
REPOPTING BUGS:发现bug时如何反馈信息
COPYRTING:该命令的版权信息
SEE ALSO:另外参照的帮助信息
OPTIONS:说明该命令每个选项的详细用法
EXAMPLES:命令的使用实例
  • 手册目录:/usr/share/doc
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
        <>:必须使用的选项或参数
        []:可以省略的选项或参数
        ...:可以使用多个选项或参数
        |:多选1
        {}:分组,没有特殊意义

辅助命令

  • which:查看命令所在的目录
  • whatis:查看命令所在的帮助信息的目录
    • 该命令在系统启动大约70分钟后会生成whatis数据库,如果时间太短该命令不会执行
    • 可以使用makewhatis初始化whatis。
    • 如果一个命令同时处于多个目录中,可以使用man +数字 +[命令]
  • info:在线查看帮助,注重于命令的历史或版权信息等等

原创文章,作者:小嵘源码,如若转载,请注明出处:https://www.lcpttec.com/linuxbg/

(1)
上一篇 2019年9月30日 下午3:51
下一篇 2019年9月30日 下午4:11

相关推荐

  • 现今的免备案VPS服务器哪个商家的比较好呢?

    现在的免备案VPS服务器哪个商家的比较好呢?这次,小编就围绕这个话题来给大家推荐一些免备案VPS主机吧,希望对于各位站长或者新手站长有所帮助。 免备案VPS主机哪家最好?免费推荐国外VPS服务器产品。当今服务器厂商鱼龙混杂,网站长很难选择正确且可靠的服务器产品,尤其是免备案服务器如果不懂技巧很容易掉进垃圾服务器的坑。本文为站长们罗列并推荐国内外免备案主机服务…

    2019年12月15日
    2.9K0
  • Shell脚本编程

    简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 业界所说的 shell 通常都是指 shell 脚本,Shell 脚本(shell script),是一种为 shell 编…

    2019年9月30日
    2.1K0
  • C++

    数据类型 基本类型 类型 关键字 布尔型 bool 字符型 char 整型 int 浮点型 float 双浮点型 double 无类型 void 宽字符型 wchar_t 其实 wchar_t 是这样来的: typedef short int wchar_t; 需要注意的是: size_t 在 C 语言中就有了。 它是一种 整型 类型,里面保存的是一个整数,…

    2019年9月30日
    1.9K0
  • 推荐好使的在线检测网站工具

    这次,小编来给大家 “推荐好使的在线检测网站工具”。 1. HTML Validatorvalidator.w3.org/网页结构检测工具,支持HTML, XHTML, SMIL, MathML…….2. CSS Validatorjigsaw.w3.org/css-validator/CSS验证。3. Links Validatorvalidator.w3…

    2019年11月16日
    1.2K0
  • CONTABO:黑色星期五优惠德国VPS

    俗话说:”便宜的vps服务器能发家致富“。今天,小编继续来推荐外贸建站服务器VPS。CONTABO:黑色星期五优惠德国VPS。 黑色星期五优惠德国VPS contabo从2003年开始运作到现在,有两处自建的独立机房,主要业务是独立服务器出租(包括设备托管),其次是VPS、虚拟主机、域名;主持银行转账、PayPal付款等方式。 商家细节介绍; KVM虚拟,1…

    2019年11月30日
    2.1K0
  • Linux使用杂记

    16.04开启root登录 sudo passwd root su root cd /usr/share/lightdm/lightdm.conf.d/ vim 50-unity-greeter.conf #添加 user-session=ubuntu greeter-show-manual-login=true all-guest=false #重启 re…

    2019年9月26日
    2.0K0
  • 国外域名商DYNADOT:.BEST后缀域名免费注册

    国外域名商DYNADOT:.BEST后缀域名免费注册 .BEST后缀域名免费注册   .BEST后缀域名免费注册 目前这个码子又复活了,昨天注册了一个然后过了几分钟就凉了,刚才试了一下又能用了,需要的赶快去注册一个了! Ps:这家注册/登录的验证码比较沙雕,需要大写字母! 活动地址:https://www.dynadot.com/community…

    2019年11月30日
    1.9K0
  • 国外VPS购买推荐帖子:HOSTSAILOR

    便宜的vps服务器能发财致富呢!国外服务器供应商HOSTSAILOR:服务器vps黑色星期五优惠价格,只需要6.6$一年哦!本方法由峰哥博客提供。工具:谷歌浏览器+谷歌浏览器上面的谷歌自动翻译。(谷歌翻译英文嘛,但博主英文好,是不需要翻译英文的,啊哈哈哈哈哈) 需要的可以上车,6.6$一年目前还有库存,无需优惠码直接购买即可! 这家除了线路比较烂其他都可以!…

    2019年11月30日
    1.9K0
  • 靶机渗透之抓住阿三

    学习目的 SQL注入 图片马上传 文件包含漏洞利用 反弹Shell 权限提升 靶机搭建 下载链接 提取码: e436 网络配置:选择默认的桥接方式即可! 主机发现 ip发现 nmap -sP 192.168.43.1/24 Nmap scan report for 192.168.43.127 Host is up. 端口和服务识别 nmap -p- -A …

    2019年9月30日
    2.7K0
  • About A Blog

    博客的搭建 环境安装 安装git 安装node.js 安装hexo ​ npm install -g hexo-cli 测试是否成功安装 $ hexo -v hexo: 3.4.2 生成博客雏形 cd进入一个博客的目录,如D:My Blog 初始化博客 ​ hexo init hexo会将这个文件夹初始化成一个博客专用文件夹,生成过程稍微要点时间,耐心等待。…

    2019年9月30日
    1.9K0
  • 推荐一款网络推广营销拓客的软件

    这次,小编来给大家推荐一款网络推广营销拓客的软件。希望对做网站推广的小伙伴们有所帮助哦。 为各位互联网营销及SEO站长朋友们推荐一款《站长拓客营销神器》,苦苦寻找很久终于给开发出来了,为网络营销从业者朋友解决双手,让获客成本和流量变成更加高效。 什么是“无忧拓客营销” 软件名称:无忧拓客营销工具,名字是我自己起的,帮助网站长们快速挖掘行业流量网站,拓展网站流…

    2019年12月15日
    2.5K0
  • Linux内核编程之Makefile

    总述 Makefile是一个文本形式的数据库文件,其中包含一些规则来告诉make处理哪些文件以及如何处理这些文件。这些规则主要是描述目标文件是从哪些别的依赖文件中产生的,以及用什么命令来执行这个过程。 执行make命令时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。 它会对磁盘上的文件进行检查,如果目标文件的生成或被改动…

    2019年9月26日
    1.4K0