美文网首页
Linux基础知识

Linux基础知识

作者: Net夜风 | 来源:发表于2018-06-10 00:19 被阅读0次

Linux基础知识

Linux是什么?

想要了解linux,我们就需要先介绍一下计算机。什么是计算机
计算机的功能和组成部分?

计算机一般分几个等级:超级计算机(SuperCompuer)、大型机(Mainframe Computer)、小型机(MiniComputer)、微机(Microcomputer)。我们通常所说的计算机就是指Microcomputer,又称为个人计算机。

计算机是什么呢?它是一种能接收和存储信息 ,并按照存储在其内部的程序对海量数据进行自动、高速地 处理,然后把处理结果输出的现代化智能电子设备。

它的基本功能就是接收用户输入的指令,通过CPU的数学与逻辑单元运算处理后,产生或者存储成有用的信息。

通过计算机的功能可以看到,计算机必须要有以下几部分组成:

输入单元:如鼠标、键盘、扫描仪等。
中央处理器(CPU):含有运算器、控制器、寄存器、缓存。
输出单元:如显示器、打印机等


通常我们的计算机系统是由硬件系统软件系统两部分组成的 ,我们上面介绍了硬件系统的组成部分,那么我们在来介绍一下软件系统
软件系统又分为“系统软件”和“应用软件”。
应用软件分为:通用软件和专业软件
系统软件一般就指的是我们通常所说的操作系统

计算机操作系统一般是有核心(kernel)和其提供的接口工具组成的,而我们的Linux就是操作系统的核心,它和众多的GNU自由软件一起组成了GUN/Linux操作系统。

那么开篇提到的Linux是什么呢?
由上可见我们的Linux就是一个操作系统最底层的核心及其提供的核心工具,而且是一个开源的操作系统。
因为我们的Linux是开源的,任何人可获取源码,可执行这个核心程序并对他进行修改,并且这个因为早期的linux都是由黑客工程师开发维护,并没有考虑到一般用户的能力,因此,很多商业公司或非盈利的团体就将Linux核心(含公具)与可运行的软件整合起来,加上自己具有创意的工具程序,让用户直接安装、管理Linux系统,这就有了Linux的发行版。Linux开发的时候就使用了POSIX规范,并为了让软件开发商和硬件开发人员有章可循,就有了LSB(Linux Standard Base)和FHS(File system Hierarchy Standard)的诞生,因此Linux各大版本提供的工具和创意上有所不同,但架构上都是类似的。
Linux发行版:(因为发行的公司和团体众多,有数百种之多,我们只介绍几种)

  1. Debian系列:Debian是社区类Linux的典范,1993年lan Murdock 创建
  • ubuntu:是基于Debian的unstable版本加强而来,它是一个拥有 Debian所以的优点,以及自己所加强的优点的近乎完美的Linux桌面系统
    • mint:是基于ubuntu的发行版
  • knopix:第一张Debian的自启动运行光盘
  1. Slackware系列:1993年7月16日由创立者和开发领导者Patrick Volkerding发布,是力图成为“UNIX风格”的Linux发行版本
  • S.u.S.E:来自德国,是欧洲最流行包
  • OpenSUSE:是一个新版本,基于社区,完全开源
  1. RedHat:也称为RedHat系列,它包括:
  • Redhat 9.0:
    RedHat Enterprise Linux: 也就是RedHat 企业版RHEL,收费
  • CentOS: Community ENTerprise OS(RHEL的社区克隆版本,免费)
  • Fedora Core:由RedHat桌面版本发展而来的免费版本
    1. Gentoo:最年轻的发行版,能吸收它之前所以发行版的优点
    2. ArchLinux::基于KISS原则,针对i686的CPU做了优化,以.tar.xz格式打包并由包管理器进行跟踪维护,特别适合动手能力强的linux

Linux的哲学思想:

  1. 一切皆文件。
    
    • 把几乎所有的资源(包括硬件设备,通信接口等)全部抽象为文件形式,也就是说所有的资源在Linux上以文件形式存在。
  2. 由众多的功能单一的程序组成。一个程序只做一件事情,并做好。组合小程序完成复杂的任务。
  • 一条命令是完成一个任务,这些小程序彼此独立,代码简单,目的明确。多个单独的小程序组合以完成复杂任务,这样便于排错,也让程序运行的更完美
  1. 尽量避免跟用户交互。
    
  • 易于用编程的方式实现任务的自动化,一个程序开始运行,就不需要用户进行任何操作
  1. 使用文本文件保存配置文件
  • 使用简单的文本编辑就能完成配置

Linux命令的格式:

  • ~]# COMMAND [OPTIONS...] [ARGUMENTS...]
    COMMAND :发起一个命令
    OPTIONS:指定命令的运行特性
    ARGUMNTS:命令的作用对象

Linux常用的命令介绍:

  1. ifconfig命令:查看活动接口的IP地址;或ip addr list

          [root@localhost ~]# ifconfig
         eth0      Link encap:Ethernet  HWaddr 00:0C:29:EE:F7:8A  
                   inet addr:192.168.1.103  Bcast:192.168.1.255  Mask:255.255.255.0
                   inet6 addr: fe80::20c:29ff:feee:f78a/64 Scope:Link
                   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                   RX packets:281120 errors:0 dropped:0 overruns:0 frame:0
                   TX packets:144701 errors:0 dropped:0 overruns:0 carrier:0
                   collisions:0 txqueuelen:1000 
                   RX bytes:163133129 (155.5 MiB)  TX bytes:12815924 (12.2 MiB)
         
         lo        Link encap:Local Loopback  
                   inet addr:127.0.0.1  Mask:255.0.0.0
                   inet6 addr: ::1/128 Scope:Host
                   UP LOOPBACK RUNNING  MTU:65536  Metric:1
                   RX packets:234 errors:0 dropped:0 overruns:0 frame:0
                   TX packets:234 errors:0 dropped:0 overruns:0 carrier:0
                   collisions:0 txqueuelen:0 
                   RX bytes:1478819 (1.4 MiB)  TX bytes:1478819 (1.4 MiB)
    
  2. echo命令:回显;是一个内建命令
    echo [SHORT-OPTION]... [STRING]...
    如: [root@bogon ~]# echo "hello"

  • -n:不进行换行

  • -e:让转义符生效
    \n:换行
    \t:制表符
    \b:退格键
    “ ”:弱引用,变量会替换
    ' ':强引用,变量不会替换

            [root@localhost ~]# echo -n "hello everyone"
            hello everyone[root@localhost ~]# echo -e "hello everyone"
            hello everyone
            [root@localhost ~]# echo -e "hello\neveryone"
            hello
            everyone
            [root@localhost ~]# echo -e "hello\teveryone"
            hello   everyone            
            [root@localhost ~]# echo -e "hello \beveryone"
            helloeveryone
            [root@localhost ~]# echo "$PATH"
            /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/apache2/bin:/root/bin:/usr/local/apache2/bin:/usr/local/apache2/bin:/usr/local/apache2/bin
            [root@localhost ~]# echo '$PATH'
            $PATH
  1. tty命令:查看当前的终端设备
              [root@localhost ~]# tty
                    /dev/pts/1  物理终端:/dev/console

虚拟终端:/dev/tty#[1,6]
串行终端:/dev/ttyS#
伪终端: /dev/pts/#

  1. startx命令:启动图形界面的命令
 ~]# startx
  1. export命令:内建命令,设置shell变量导出属性
    export [-fn] [name[=value] ...] or export -p
    修改环境变量值得方法:
 ~]# explort 变量名=“值”
例:[root@localhost ~]# echo $HISTCONTROL
    ignoredups
    [root@localhost ~]# export HISTCONTROL="ignoreboth"
    [root@localhost ~]# echo $HISTCONTROL
    ignoreboth
  1. pwd命令:显示当前工作目录
    例: ~]# pwd
  2. history命令:查看或者设置命令历史相关参数
    例:~]# history 回车后就可以显示命令历史列表

    该命令所对应的几个环境变量:

  • HISTSIZE:命令历史记录的条数
  • HISTFILE: ~/.bash_history 命令历史文件的存放位置
  • HISTFILESIZE:命令历史文件记录历史的条数

该命令的常用选项:

  • -d:删除历史命令中的指定命令
  • -c:清空命令历史
  • -a:手动追加当前会话缓冲区的命令历史至历史文件中
  • -w:把历史文件列表中的命令加至历史文件中
  • -r:从文件读取命令 历史至历史列表中
  1. shutdown命令:关机命令
   ~]# shoutdown [OPTION...] [TIME] [WALL...]

常用选项:

  • -r:reboot重启
  • -h:halt 关机
  • -c:chancle取消关机
    TIME:
    -- now:立刻
    -- +m:相对时间表示法,从命令提交开始后多久后
    -- hh:mm:绝对时间表示,指命令具体时间
  1. poweroff命令:关机命令
    • ~]# systemctl poweroff
    • ~]# poweroff
  2. reboot命令:重启命令
    • ~]# systemctl reboot
    • ~]# reboot
  3. hwclock命令:修改时钟包括系统时钟和硬件时钟
    用法:
  • -s:--hctosys 以硬件时间为准来修改系统时间
  • -w:--systohc 以系统时间为准来修改硬件时钟
  1. date:
    显示时间 date [OPTION]...[+FORMAT]
  • %F: 按照指定格式显示

  • %D: 直接显示日期 mm/dd/yy

  • %H:显示小时,如:00...23

  • %M:显示分钟

  • %S:显示秒

  • %s:从1970年1 月1日到现在所经历过的秒数

  • %m:显示月份

      示例:
              [root@localhost ~]# date
              2018年 06月 10日 星期日 00:12:15 CST
              [root@localhost ~]# date +%F
              2018-06-10
              [root@localhost ~]# date +%D
              06/10/18
              [root@localhost ~]# date +%D\ %T
              06/10/18 00:13:22
              [root@localhost ~]# date +%F\ %T
              2018-06-10 00:13:30
              [root@localhost ~]# date +%s
              1528560819
    

设置时间 date[-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

  • MM:月份

  • DD:几号

  • hh:小时

  • mm:分钟

  • CC:两位年份

  • CCYY:4位年份
    如:设置系统时间为2015年12月21日15点40分40秒

         [root@localhost ~]# date 122115402015.40
        2015年 12月 21日 星期一 15:40:40 CST
    

Linux如何获取命令帮助:

获取命令帮助信息时,内部命令和外部命令获取方式是有区别的

  • 内部命令:help COMMAND
  • 外部命令:
    1. COMMAND --help 或 COMMAND -h
    2. 使用手册:man COMMAND
    3. 信息页 info COMMAND
    4. 程序自带的帮助文档
    5. 程序的官方文档
    6. 发行版的官方文档
    7. Google 搜索

man帮助文档手册页位置:/usr/share/man;
man有8个章节:man1-man8;那么这8个章节是如何划分的呢?
如何查询命令所属章节,我们使用 whatis COMMAND或者man -k COMMAND

  1. 用户命令章节,所有用户都可以使用
  2. 系统调用命令章节
  3. c库调用
  4. 设备及特殊文件
  5. 配置文件的格式及相关参数
  6. 游戏
  7. 杂项
  8. 管理命令

Linux文件系统

Linux系统在安装完成以后,会产生一些固定的目录,来存放一些用户容易识别的固定文件。Linux所识别的第一个被称为与跟直接关联的文件系统,我们称之为根文件系统。
上文中我们提到过LSB和FHS,LSB是Linux的一个组织,它定义了发行版基础目录名称命名法则及公用规定,这种标准叫做FHS,文件系统层级标准。
Linux的基础目录有哪些呢?
我们可以通过~}# ls / 来看以下根下的文件:

        [root@localhost ~]# ls /
        backup  dev   lib         media  net   root     selinux  testing  users
        bin     etc   lib64       misc   opt   sbin     srv      text     usr
        boot    home  lost+found  mnt    proc  scripts  sys      tmp      var
  • /boot: 系统引导启动时要加载的静态文件;kernel,initramfs(initrd),grub等
  • /bin: 所有用户可用的基本命令程序文件;
  • /sbin: 供系统管理使用的工具程序;
  • /dev: 存储特使文件或设备文件;
  • /etc: 系统文件的配置文件,只能为静态;
  • /home: 普通用户的家目录统一存放位置;
  • /lib: 为系统启动或根文件系统上的应用程序提供共享库,以及为内核提供内核模块;
  • /lib64: 64位系统特有的存放64位共享库的路径;
  • /media: 便携式移动设备挂载点;
  • /mnt: 临时文件系统挂载点;
  • /opt: 附加应用程序的安装位置;
  • /root: 管理员的家目录;
  • /srv: services简写,当前主机为服务提供的数据;
  • /tmp: 为那些会产生临时文件的程序提供的用于存储临时文件的目录;
  • /usr: 全局共享的只读数据路径;
  • /var: 存储常发生变化的数据路径;
  • /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;
  • /sys: sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供了一种统一模型的接口;

相关文章

网友评论

      本文标题:Linux基础知识

      本文链接:https://www.haomeiwen.com/subject/mzgxeftx.html