首页 > 代码库 > linux基础知识

linux基础知识

Linux的基础知识以及相关概念

一、Linux的发行版本

所谓发行版,就是linux内核 + 开源程序

  • debain,ubuntu 其中ubantu是debain的衍生版,桌面系统比较好,适合于初学者入门。

  • slackware, susE

  • redhat,centos,fedora 其中centos,fedora都是redhat的衍生版,fedora主要是测试redhat的新技术。而centos主要是redhat的社区版,免费使用。

  • ArchLinux

  • Gentoo  是针对于技术牛而使用的,安装过程比较复杂。

  • LFS 是Linux From Scratch的简写,从零开始搭建一个简易版的Linux发行版,对于理解Linux编译参数是一个不错的选择。

二、Linux的哲学思想

  • 一切皆文件

  • 由众多功能单一的小程序组成;每个小程序完成单一的一件事

  • 组合小程序来完成复杂的任务

  • 尽可能避免人机交互,方便脚本的编写

  • 使用文本文件来保存配置信息

  • 通过机制,而非策略

三、常见的开源协议

  • GPLv2, GPLv3

    • GPL协议是比较严苛的,只要使用了GPL协议的代码,都必须要开源

  • LGPL: Lesser

    • 宽松的GPL协议,对于知识应用了库文件,可以不进行开源

  • BSD:

    • 如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协议

    • 如果二次发布的只是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协议

    • 不可以用开源代码的作者/组织和原来的产品名字做市场推广

  • Apache License:

    • Apache协议与BSD协议规范一样

四、bash的特性

  • 命令与路径补全

    • 根据内建命令或外部命令的查找方式查找以用户指定的字符串开头的命令

    • 以用户指定的起始路径进行文件名补全查找

    • 如果用户指定的开头字符串能惟一标识某命令或路径,则tab键可补全此命令或路径。否则,则两次tab键可显示所有以指定字串开头的命令或指定路径下所有文件

  • 命令行展开

    • ~:展开为用户家目录

    • ~USERNAME:展开为指定用户的家目录

    • {}使用多项式乘法展开,例如 /tmp/{a,b}/{c,d}展开为/tmp/a/c,/tmp/a/d,/tmp/b/c,/tmp/b/d。

五、Linux的文件层次(FHS)

  • /bin, /sbin: 系统自身启动和运行时可能会用户的核心二进制命令

  • /lib: 共享库文件和内核模块

  • /lib64: 64位系统的共享库文件和内核模块

  • /etc: 配置文件

  • /usr:

    • /usr/bin, /usr/sbin: 系统运行中,用户为完成某些操作可能用到的命令

    • /usr/lib, /usr/lib64: 库文件

    • /usr/share/man, /usr/share/doc:应用程序手册或帮助文档

  • /dev: devices的简写,所有设备的设备文件都存放于此处;设备文件通常也称为特殊文件(仅有元数据,而没有数据)

  • /proc: 伪文件系统,内核和进程信息的虚拟文件系统接口,像系统系统后,CPU、内存都抽象为文件放在此目录下

  • /sys: 伪文件系统,硬件设备信息虚拟文件系统接口

  • /boot: 系统引导加载时用到的静态文件,内核和ramdisk(CentOS5:initrd,CentOS6:initramfs), grub(bootloader)

  • /home/USERNAME:指定用户的家目录

  • /root:root用户的家目录

  • /mnt:临时文件挂载的路径

  • /media:便携式设备的挂载路径,像U盘,CD

  • /srv: 服务所用到的数据

  • /tmp: 临时文件存储位置

  • /var: 经常发生变化的文件

    • /var/log:里面存放各个应用程序的日志文件

  • /misc: 备用目录

  • /opt: 第三方应用程序的安装目录

    • /usr/local: 现在软件安装的目录

  • /selinux  Security Enhanced Linux: 安全加强的Linux

六、linux中的单位换算

  • 8 bit = 1 Byte

  • 1024 B = 1 K

  • 1024 K = 1 M

  • 1024 M = 1 G

  • 1024 G = 1 T

  • 1024 T = 1 P

  • 1024 P = 1 E 

  • 1024 E = 1 Z

  • 1024 Z = 1 Y

七、自由软件的定义

  • 自由使用

  • 自由学习和修改

  • 自由分发

  • 自由创建衍生版



未完待续......

本文出自 “黑夜过后” 博客,请务必保留此出处http://guoting.blog.51cto.com/8886857/1433602