linux基础入门之一

一、计算机的组成与功能

计算机由硬件和软件组成

  • 硬件: 
    按冯·洛伊曼体系划分 
    1、CPU:包括运算器、控制器、寄存器、缓存,对数据控制和计算 
    2、存储器:内部存储器、外部存储器,对数据提供存储功能 
    3、输入设备:具有下指令,提供数据输入 
    4、输出设备:输出数据加工的结果

  • 软件: 
    1、低级语言:汇编语言,汇编器;写驱动. 
    2、高级语言: 
    系统级:C , C++ ,对性能要求较高的服务类程序 
    应用级:Java,Python,ruby, 应用程序


二、Linux发行版及联系与区别

Linux 发行版有数百种之多,主要分三个主流分支

  • RedHat
    RedHat Enterprise Linux

    RHEL CentOS

    Fedora

Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区 克隆版本,免费)。Redhat是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。 
CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写。CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。

  • Debian:唯一一个没有商业公司运作,只有社区

    ubuntu mint

    knopix

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的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。Debian是包括Ubuntu在内许多发行版的上游,而Ubuntu又是Linux Mint及其他发行版的上游。Debian在服务器和桌面电脑领域都有着广泛的应用。Debian是一个纯开源计划并着重在一个关键点上,稳定性。它同时也提供了最大的和完整的软件仓库给用户。 
Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

  • Slackware:

    S.u.S.E OpenSUSE SLES

Slackware与其他的发行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力图成为“UNIX风格”的Linux发行版本。只吸收稳定版本的应用程序,并且缺少其他linux版本中那些为发行版本定制的配置工具。在当今systemd大势所趋的情况下,Slackware仍然坚持BSD启动风格。 
SUSELinux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。1992年 Peter McDonald成立了Softlanding Linux System(SLS)这个发行版。这套发行版包含的软件非常多,更首次收录了X Window及TCP/IP等套件。Slackware就是一个基于SLS的发行版。 
SUSE于1992年末创办,目的是成为UNIX技术公司,专门制为德国人推出量身订作的SLS/Slackware软件及 UNIX/Linux说明文件。1994年,他们首次推出了SLS/Slackware的安装光碟,命名为S.u.S.E. Linux 1.0。其后它综合了Florian La Roche的Jurix distribution(也是一个基于Slackware的发行版),于1996年推出一个完全自家打造的发行版 – S.u.S.E. Linux 4.2。其后SUSE Linux采用了不少Red Hat Linux的特质。


三、Linux的哲学思想

  • 一切皆文件

    表现之一:硬件设备也通过文件表示 
    例如:终端程序对应的系统文件 
    物理终端:/dev/console 
    虚拟终端:/dev/tty# [1,6] 
    串行终端:/dev/ttyS# 
    伪终端: /dev/pts/#

  • 功能单一

    由众多功能单一的程序组成,一个程序只做一件事,组合小程序完成复杂任务,以保证Linux内核的高效运行。

  • 避免用户与系统交互

    Linux开源,且管理权限强大,可自杀。易于以编程的方式实现自动化任务

  • 所有配置文件都是文本文件

    无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可。存储空间存储的一段流式数据,对数据可以做到按名存取

  • 以倒置树形结构组织文件

    /:原始起点,代表根目录


四、Linux命令使用格式

命令的语法通用格式: 
~]# COMMAND OPTIONS ARGUMENTS

  • COMMAND:发起命令时将请求内核将某个二进制程序运行为一个进程,命令本身是一个可执行的程序文件,二进制格式的文件有可能会调用共享库文件。[遵循ELF格式规范] 
    多数系统命令程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin,它们又分为普通命令和管理命令。 
    普通命令:存放在/bin,/usr/bin,/usr/local/bin 
    管理命令:存放在/sbin,/usr/sbin,/usr/local/sbin 
    用到的库文件都存放在:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64,它们分为32位和64位的库文件,32位使用于32位的操作系统,64位使用于64位的操作系统,64位兼容32位,而32不兼容64 
    32位库:存放在/lib,/usr/lib,/usr/local/lib 
    64位库:存放在/lib64,/usr/lib64,/usr/local/lib64 
    命令分为两类: 
    由shell自带的命令,叫作内嵌命令(builtin) 
    独立的可执行程序文件,文件名即命令名,叫作外部命令 
    查看命令的内容的类型: 
    file命令:例:~]# file /bin/ls 
    查看命令的类型: 
    type命令: 例:~]# type COMMAND 
    注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件

  • OPTIONS 选项: 指定命令的运行特性,有两种表现形式: 
    短选项:-C,例如 ls -l ,-d 注:有的命令选项没有 – ,同一命令同时使用多个短选项可合并:ls -ld 
    长选项:–word,例如 ls –help,有时候选项也带参数,例:du -h –max-depth=1 注:长选项不能合并 

  • ARGUMENTS 参数:命令的作用对象,命令对什么生效,例:ls /etc ,作用在/etc 。注:有些命令可以可同时带多个参数,以空白分隔

ifconfig #显示和配置网络信息

   语法:ifconfig [网络设备] [参数]

  示例:ifconfig -a

ehco #显示文本

   语法:echo [-ne][字符串]或 echo [–help][–version]

  示例:echo 'xx'

tty #显示终端机连接标准输入设备的文件名称

   语法:tty [-s][–help][–version]

  示例:tty

startx #可进入图形操作界面

   示例:startx &

export #设置或显示环境变量

   语法:export [-fnp][变量名称]=[变量设置值]

  示例:export

pwd #显示工作目录

   语法:pwd[–help][–version]

  示例:pwd

history #列出bash保存的所有历史命令

   语法:history  [选项]

  示例:history  

shutdown #系统关机命令

   语法:shutdown [-cfFhknr][-t 秒数][时间][警告信息]

  示例:shuntdown -r +5

poweroff #关机

   示例:poweroff

reboot #重启

   示例:reboot    

hwclock #用来查询和设置硬件时钟

   示例:hwclock   

date #取一个特定时间的linux时间戳

   示例:date

五、如何在Linux系统上获取命令的帮助信息,如何划分man文档的章节

获取命令的帮助信息: 
内部命令: help COMMAND 
外部命令:

  • 命令自带简要格式的使用帮助 
    ~]# COMMAND –help/-h 

  • 使用手册: 
    manual 
    位置:/usr/share/man 
    man [man1,man2,man3……….] 不同man下按类型放不同的命令 
    1 – commands 普通的命令 
    2 – system calls 系统调用,如open,write之类的 
    3 – library calls 库函数,如printf,fread 
    4 – special files 特殊文件,也就是/dev下的各种设备文件 
    5 – file formats and convertions 指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义 
    6 – games for linux 给游戏留的,由各个游戏自己定义 
    7 – macro packages and conventions 附件还有一些变量,比如向environ这种全局变量在这里就有说明 
    8 – system management commands 系统管理用的命令,这些命令只能由root使用 
    9 – 其他

某些命令在多个章节下都有 例如:man passwd ;这个是在man1中的 
man 5 passwd man5中也有。【频中是这样,但是我自己在centos7中测试man5中没有,centos6中有】 
~]# whatis COMMAND 这个能查询在哪些章节中有 

  • info COMMAND: 
    获取命令的在线文档; 

  • 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION 
    README:程序的相关的信息; 
    INSTALL: 安装帮助; 
    CHANGES:版本迭代时的改动信息; 

  • 主流发行版官方文档: 
    http://www.redhat.com/doc 

  • 程序官方的文档: 
    官方站点上的“Document” 

  • 搜索引擎: 
    google 
    ·keyword filetype:pdf 
    ·keyword site:domain.tld


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

获取命令的帮助信息:

1、命名规则: 
(1)严格区分字符大小写 
(2)目录也是文件,在同一路径下,两个文件不能同名 
(3)支持使用除/以外的任意字符 
(4)最长不能超过255个字符 
(5)以 . 开头的文件为隐藏文件 
. 当前目录 
..当前目录上一级

2、基础目录及功用:

/bin:所有用户可用的基本命令程序文件 
/sbin:供系统管理使用的工具程序 
/boot:引导加载器必须用到的各种静态文件:kernel,initramfs(initrd),grub等 
/dev:存储特殊文件或设备文件 
/etc:系统程序的配置文件,只能为静态的,不能为二进制 
/home:普通用户的家目录的集中位置,可独立挂载分区 
/root:管理员的家目录 
/lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块 
/lib64:64位系统特有的存放64位共享库的路径 
/media:便携式设备挂载点,cdrom,floppy等 
/mnt:其他文件系统的临时挂载点 
/opt:附加应用程序的安装位置,可选路径 
/srv:当前主机为服务提供的数据 
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录,可供所有用户执行写入操作,有特殊权限 
/usr:全局共享的只读数据路径

  • lib,lib64

  • include:c程序头文件

  • share:命令手册页和自带文档等架构特有的文件的存储位置

  • local:另一个层级目录

  • X11R6:x-window程序的安装位置

  • src:程序源码文件的存储位置

/usr/local:让系统管理员安装本地应用程序,也通常用于安装第三方程序 
/var:存储常发生变化的数据的目录 
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息,它们多为内核参数,例:net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys,因此其完整路径为/proc/sys/net/ipv4/ip_forward 
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径,其主要作用在于为管理Linux设备提供一种统一模型的接口

原创文章,作者:Night's Watch,如若转载,请注明出处:http://www.178linux.com/45787

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 10:39

    写的很好,排版也很漂亮,加油