管中窥豹–Linux基础简介

Linux简介

linux

计算机的组成及其功能

  • 计算机的主要组成部分有硬件和软件;
    • 硬件主要包含的有:处理器、控制器、I/O设备,输入设备,输出设备;

      主要负责提供硬件性支撑(功能实现的基础设备)

    • 软件主要包含的有:操作系统及应用程序;

      主要负责终端用户实现相关操作处理及展示过程

各系列Linux的发行版,各发行版之间的联系与区别

  • Linux,最早由Linus Benedict Torvalds在1991年开始编写。在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及GNU项目,并不断的编写创建GNU程序(此类程序的许可方式均为GPL: General Public License)。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux,或称GNU/Linux。
  • Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本
  • 前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。
  • Linux 发行版:
    • Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。
    • Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去:)
    • Ubuntu,严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
    • Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo 被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美 FreeBSD的广受美誉的ports系统 ——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
    • FreeBSD,是一个自由的、免费的类UNIX操作系统(Unix-like),经由BSD UNIX由AT&T UNIX衍生而来,FreeBSD由于法律原因不能称为UNIX,但由于直接衍生于BSD UNIX,并且一些原来BSD UNIX的开发者后来转到FreeBSD的开发,使得FreeBSD在内部结构和系统API上和UNIX有很大的兼容性。由于FreeBSD宽松的法律条款,其代码被好多其他系统借鉴包括苹果公司的MacOS X,正因此由于MacOS X的UNIX兼容性,使得MacOS X获得了UNIX商标认证。它并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支: stable和current。顾名思义,stable是稳定版,而 current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选 择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
    • SUSE Linux,简称”SuSE”,发音为/zuz/,意思为”Software- und System-Entwicklung”,这是一句德文,英文为”Software and system development”。现在这家公司的名字再度更改成SUSE Linux。它原是德国的 SuSE Linux AG公司发行维护的Linux发行版,是属于此公司的注册商标。2004年这家公司被Novell公司收购。广义上SUSE Linux是一系列Linux发行版,第一个版本出现在1994年初,SUSE现存的最古老的商业发行版之一,起源于德国,而SUSE Linux 针对个人用户。SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。1992年 Peter McDonald成立了Softlanding Linux System(SLS)这个发行版。这套发行版包含的软件非常多,更首次收录了X Window及TCP/IP等套件。Slackware就是一个基于SLS的发行版。
    • Mandriva,是目前全球最优秀的Linux发行版之一,稳居于linux排行榜第一梯队。2005年之前稳居linux排行榜NO.1。它是目前最易用的linux发行版,也是众多国际级linux发行版中唯一一个默认即支持中文环境的linux。它是法国的Mandriva公司(前身为Mandrake公司)开发的Linux发行版。Mandriva公司现在仍然是欧洲最大的Linux厂商,Mandriva Linux的前身为著名的Mandrake Linux。Mandriva(Mandrake)项目是世界上第一个为非技术类用户设计的易于使用、安装和管理的linux版本。Mandriva(Mandrake Linux)早期方便的字体安装工具和默认的中文支持,为Linux普及做出了很大的贡献。现在的Mandriva是由mandrake和Conectiva结合发展而来的。
    • Slackware,是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则,就是说没有任何配置系统的图形界面工具。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明性和灵活性。 Slackware Linux的另一个突出的特性也符合KISS原则:Slackware没有如RPM之类的成熟的软件包管理器。Slackware的软件包都是通常的tgz(tar/gzip)格式文件再加上安装脚本。Tgz对于有经验的用户来说,比RPM更为强大,并避免了RPM之类管理器的依赖性问题。Slackware与其他的发行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力图成为“UNIX风格”的Linux发行版本。只吸收稳定版本的应用程序,并且缺少其他linux版本中那些为发行版本定制的配置工具。
         **以上内容摘选自网络,做学习借鉴用**

Linux的哲学思想,简单解释性描述

  • 1、一切皆文件:
    • 把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;
  • 2、由众多功能单一的程序组成;一个程序只做一件事,并且做好;
    • 组合小程序完成复杂任务;
  • 3、尽量避免跟用户交互;
    • 目地:易于以编程的方式实现自动化任务;
  • 4、使用文本文件保存配置信息;

Linux系统上命令的使用格式;常见命令的使用介绍及示例

命令格式如下

~]# COMMAND OPTIONS ARGUMENTS    CMIMAND    -->命令    OPTIONS    -->条件    ARGUMENTS  -->参数

常见命令介绍

ifconfig

  • 介绍:用于配置网络接口
    • 注:原生IOS安装后的CentOS是不带ifconfig功能的,需要运行如下命令来安装
         ~]# yum install net-tools    选项:      -a     显示当前所有可获取的网络接口信息,包括状态为down的接口      -s     已短列表方式显示(类似 netstat -i)      -v     be more verbose for some error conditions
  • 应用举例:

    ifconfig //查看网络接口信息

    br1: flags=4163<up,broadcast,running,multicast> mtu 1500</up,broadcast,running,multicast>

       inet 10.1.1.1  netmask 255.255.255.0  broadcast 10.1.1.255
       inet6 fe80::20c:29ff:fe03:b36f  prefixlen 64  scopeid 0x20<link>
       ether 00:0c:29:03:b3:6f  txqueuelen 0  (Ethernet)
       RX packets 0  bytes 0 (0.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 29  bytes 4076 (3.9 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    br2: flags=4163<up,broadcast,running,multicast> mtu 1500</up,broadcast,running,multicast>

       inet 10.2.1.1  netmask 255.255.255.0  broadcast 10.2.1.255
       inet6 fe80::20c:29ff:fe03:b379  prefixlen 64  scopeid 0x20<link>
       ether 00:0c:29:03:b3:79  txqueuelen 0  (Ethernet)
       RX packets 0  bytes 0 (0.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 25  bytes 3584 (3.5 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    ifconfig -s //已列表方式查看网络接口信息

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg br1 1500 0 0 0 0 29 0 0 0 BMRU br2 1500 0 0 0 0 25 0 0 0 BMRU br3 1500 0 0 0 0 25 0 0 0 BMRU eno16777 1500 614 0 0 0 235 0 0 0 BMRU eno33554 1500 0 0 0 0 29 0 0 0 BMRU eno50332 1500 0 0 0 0 25 0 0 0 BMRU eno67109 1500 0 0 0 0 25 0 0 0 BMRU lo 65536 4 0 0 0 4 0 0 0 LRU

    ifconfig br1 10.4.1.1 netmask 255.255.255.0 //设置网络接口br1的IP地址,临时设置,重启失效

    ifconfig br1 //查看更改后br1网络接口的IP地址

    br1: flags=4163<up,broadcast,running,multicast> mtu 1500</up,broadcast,running,multicast>

       inet 10.4.1.1  netmask 255.255.255.0  broadcast 10.4.1.255         
       ether 00:0c:29:03:b3:6f  txqueuelen 0  (Ethernet)                    
       RX packets 0  bytes 0 (0.0 B)                      
       RX errors 0  dropped 0  overruns 0  frame 0                    
       TX packets 43  bytes 7099 (6.9 KiB)                     
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

echo

  • 介绍:回显
  • 应用举例:
      echo [SHORT-OPTION]... [STRING]...    
          -n: 不进行换行;
          -e:让转义符生效;
          \n:换行
          \t:制表符
    
          STRING可以使用引号,单引号和双引号均可用;
          单引号:强引用,变量引用不执行替换;
          ~]# echo '$SHELL'               
          双引号:弱引用,变量引用会被替换;
          ~]# echo "$SHELL"
      注意:变量引用的正规符号    
          ${name}

tty

  • 介绍:查看终端设备
  • 应用举例:
      ~]# tty
      /dev/pts/0

startx

  • 介绍:启动GUI
  • 应用举例:
      ~]# startx
      在虚拟终端控制台显示图像界面

export

  • 介绍:环境变量
  • 应用举例:
      变量赋值
        (1) export name=value
        (2) name=value
            export name
        (3) declare -x name=value
        (4) name=value
            declare -x name
      变量引用
            ${name}, $name
      只读变量:
        (1) declare -r name
        (2) readonly name

pwd

  • 介绍:显示工作目录
  • 应用举例:
      ~]# pwd
      /root
      相关的环境变量
      $PWD:当前工作目录
      $OLDPWD:上一次的工作目录

history

  • 介绍:命令历史
  • 应用举例:
      ~]# history
          定制history的功能,可通过环境变量实现:
          HISTSIZE:shell进程可保留的命令历史的条数;
          HISTFILE:持久保存命令历史的文件;
              .bash_history
          HISTFILESIZE:命令历史文件的大小;
    
          命令用法:
              history [-c] [-d 偏移量] [n] 
              或 history -anrw [文件名] 
              或 history -ps 参数 [参数...]
    
              -c: 清空命令历史;
              -d offset:删除指定命令历史
              -r: 从文件读取命令历史至历史列表中;
              -w:把历史列表中的命令追加至历史文件中;
              history #:显示最近的#条命令;

shutdown

  • 介绍:关机或重启
  • 应用举例:
      shutdown [OPTIONS...] [TIME] [WALL...]
          OPTIONS:
              -h: halt
              -r:reboot
              -c:cancel
    
          TIME:
              now
              hh:mm
              +m
                  +0

poweroff

  • 介绍:关机
  • 应用举例:
       ~]# systemctl poweroff

reboot

  • 介绍:重启
  • 应用举例:
      ~]# systemctl reboot

hwclock

  • 介绍:硬件时钟
  • 应用举例:
      ~]# hwclock
      Tue 08 May 2018 01:19:07 PM EDT  -0.773616 seconds
      -s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;
      -w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;

date

  • 介绍:系统时钟
    • 应用举例:

      显示日期时间:date [OPTION]… [+FORMAT]

         FORMAT:格式符
         %F
         %T
         %Y
         %m
         %d
         %H
         %M
         %S
         %s: 从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数;
         ...
      
         设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]

Linux系统上获取命令的帮助信息方法

  • (1) 命令自带简要格式的使用帮助 COMMAND –help
  • (2) 使用手册:manual
    • 位置:/usr/share/man
    • 命令规范如下
        # man COMMAND``
      
        man库章节描述
        man1:用户命令;
        man2:系统调用;
        man3:C库调用;
        man4:设备文件及特殊文件;
        man5:文件格式;(配置文件格式)
        man6:游戏使用帮助;
        man7:杂项;
        man8:管理工具及守护进程;
  • (3) info COMMAND
     获取命令的在线文档;
  • (4) 很多应用程序会自带帮助文档:
      /usr/share/doc/APP-VERSION 
      README:程序的相关的信息;
      INSTALL: 安装帮助;
      CHANGES:版本迭代时的改动信息;
  • (5) 主流发行版官方文档
     [http://www.redhat.com/doc](http://www.redhat.com/doc)
  • (6) 程序官方的文档:
     官方站点上的“Document”
  • (7) 搜索引擎
      google
      google两个小技巧
      1、keyword filetype:pdf     -->keyword后跟查找条件:在结果中筛选指定条件的结果显示
      2、keyword site:domain.tld  -->keyword后跟指定链接:在指定链接中查找指定内容

Linux发行版的基础目录名称命名法则及功用规定

  • /bin:所有用户可用的基本命令程序文件;
  • /sbin:供系统管理使用的工具程序;
  • /boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;
  • /dev:存储特殊文件或设备文件;

    设备有两种类型:字符设备(线性设备)、块设备(随机设备);

  • /etc:系统程序的配置文件,只能为静态;
  • /home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;
  • /root:管理员的家目录;可选;
  • /lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块

    libc.so.:动态链接的C库; ld:运行时链接器/加载器; modules:用于存储内核模块的目录;

  • /lib64:64位系统特有的存放64位共享库的路径;
  • /media:便携式设备挂载点,cdrom, floppy等;
  • /mnt:其它文件系统的临时挂载点;
  • /opt:附加应用程序的安装位置;可选路径;
  • /srv:当前主机为服务提供的数据;
  • /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
  • /usr:usr Hierarchy,全局共享的只读数据路径;

    bin, sbin lib, lib64 include:C程序头文件; share:命令手册页和自带文档等架构特有的文件的存储位置 local:另一个层级目录; X11R6:X-Window程序的安装位置 src:程序源码文件的存储位置

  • /usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
  • /var:/var Hierarchy,存储常发生变化的数据的目录;

    cache Application cache data lib Variable state information local Variable data for /usr/local lock Lock files log Log files and directories opt Variable data for /opt run Data relevant to running processes spool Application spool data tmp Temporary files preserved between system reboots

  • /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward;
  • /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;

    【名称命名法则及功用规定参考链接】https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97841

(1)
上一篇 2018-05-08 17:44
下一篇 2018-05-08 20:42

相关推荐

  • 数组、字符串处理及变量

    拍照是被动学习,记笔记才是主动学习!

    2018-05-11
  • 编译安装LAMP示例

    httpd 2.4.9 + mysql-5.5.33 + php-5.4.26编译安装过程: 一、编译安装apache 1、解决依赖关系 httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用编译源代码的方式进行,它们的下载路径为ftp://172…

    Linux笔记 2018-05-29
  • CentOS系统Shell编程语言基础之Bash的基础特性

    bash的基础特性之命令历史: 命令历史:shell进程会在其会话中保存此前用户提交执行过的命令~]#history定制history的功能,可通过环境变量实现HISTSIZE:shell进程可保留的命令历史的条数HISTFILE:持久保存命令历史的文件, “.bash_history”HISTFILESIZE:命令历史文件的大小 命令用法: history…

    Linux笔记 2018-06-27
  • 加密和安全

    常见的加密算法和安全协议 一、对称加密:加密和解密使用同一个密钥,依赖于算法和密钥,其安全性依赖于密钥而非算法 常见的算法:DES ​ 特性: ​ 加密、解密使用同一个密钥 ​ 将明文分隔成固定的大小块逐个进行加密 ​ 缺点: ​ 密钥过多、密钥分发 二、非对称加密:采用的是公钥加密方法,密钥是成对出现的,公钥是从私钥中提取出来的 ​ 公钥:公开给所有人;p…

    Linux笔记 2018-05-10
  • Linux系统上命令的使用格式

    命令的语法通用格式: ~]# COMMAND OPTIONS ARGUMENTS ifconfig命令格式 ifconfig [interface] [options] | address   Echo命令格式 echo [options] …[string]… tty命令格式 tty [options] startx命令格…

    Linux笔记 2018-05-13
  • Linux 的哲学思想

    Linux 的哲学思想: 一、Linux 系统,采用一切皆文件的思想,包括硬件设备(设备文件)与通讯方式。文件系统(FHS)采用树状结构,根目录只有一个,用户无不是在此树的节点上运作。 备注1:Linux中的所有设备都做为一个文件系统的一个节点来挂载和使用的。如光驱一般挂载在/mnt/cdrom中。 备注2:Linux系统按功能可分为: 1、操纵系统:用以控…

    Linux笔记 2018-06-21

评论列表(1条)

  • 马哥教育
    马哥教育 2018-05-16 20:25

    总结的很详细。赞。