计算机组成、Linux命令基础

计算机组成

  1. 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。

  2. 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

  3. 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

  4. 输入(Input system): 输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。

  5. 输出(Output system):把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。

Linux发行版

  • Debian

    • ubuntu:界面华丽

    • mint

    • knopix

  • Slackware

    • SLES

    • OpenSUSE

    • S.u.S.E

    • RedHat:

      • Redhat 9.0:
           *               RedHat Enterprise Linux: RHEL
                      *                    CentOS: Community ENTerprise OS
           *           Fedora Core:6个月更新一次。

    Linux的哲学思想:

    1. 一切皆文件:
      把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;            open(), read(), write(), close(), delete(), create()

    2. 由众多功能单一的程序组成;一个程序只做一件事,并且做好;    组合小程序完成复杂任务;

    3. 尽量避免跟用户交互;目标:易于以编程的方式实现自动化任务;

    4. 使用文本文件保存配置信息;

    Linux基础命令:

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

    1. ifconfig(ip addr list):查看活动接口的ip地址;

    2. echo:回显
      echo [SHORT-OPTION]… [STRING]…
      -n: 不进行换行;
      -e:让转义符生效;
      \n:换行
      \t:制表符
      STRING可以使用引号,单引号和双引号均可用;
      单引号:强引用,变量引用不执行替换;
      ~]# echo ‘$SHELL’
      双引号:弱引用,变量引用会被替换;
      ~]# echo “$SHELL”

    3. tty:查看当前的终端设备;

    4. startx: 驱动GUI。

    5. pwd: printing working directory
                 显示工作目录

    6. history:
      命令历史:shell进程在其会话中保存此前用户提交执行过的命令;
           ~]# history
                 定制history的功能,可通过环境变量实现:
                     HISTSIZE:shell进程可保留的命令历史的条数;
                     HISTFILE:持久保存命令历史的文件;
                         .bash_history
                     HISTFILESIZE:命令历史文件的大小;
          命令用法:
                 history [-c] [-d 偏移量] [n]  
                 或 history -anrw [文件名]  
                 或 history -ps 参数 [参数…]
                 -c: 清空命令历史;
                 -d offset:删除指定命令历史
                 -r: 从文件读取命令历史至历史列表中;
                 -w:把历史列表中的命令追加至历史文件中;
                 history #:显示最近的#条命令;
             调用命令历史列表中的命令:
                 !#:再一次执行历史列表中的第#条命令;
                 !!:再一次执行上一条命令;
                 !STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;
                     注意:命令的重复执行有时候需要依赖于幂等性;
             调用上一条命令的最后一个参数:
                 快捷键:ESC, .
                 字符串:!$
             控制命令历史记录的方式:
                 环境变量:HISTCONTROL
                     ignoredups:忽略重复的命令;
                     ignorespace:忽略以空白字符开头的命令;
                     ignoreboth:以上两者同时生效;
                 修改变量的值:
                     NAME=’VALUE’

    7. 关机或重启命令:shutdown
      shutdown [OPTIONS…] [TIME] [WALL…]

      • OPTIONS:
                       -h: halt
                       -r:reboot
                       -c:cancel

      • TIME:
                       now
                       hh:mm
                       +m
                           +0

      • WALL

    8. wclock, clock:硬件时钟
                     显示或设定硬件时钟
                         -s, –hctosys:以硬件为准,把系统调整为与硬件时间相同;
                         -w, –systohc:以系统为准,把硬件时间调整为与系统时钟相同;

    9. 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帮助命令

    获取命令的使用帮助:

    • 内部命令:
             help COMMAND

    • 外部命令:

      • SECTION:
                   NAME:功能性说明
                   SYNOPSIS:语法格式
                   DESCRIPTION:描述
                   OPTIONS:选项
                   EXAMPLES:使用示例
                   AUTHOR: 作者
                   BUGS: 报告程序bug的方式
                   SEE ALSO: 参考
                   …

      • SYNOPSIS:  
                   []:可选内容;
                   <>:必须提供的内容;
                   a|b|c:多选一;
                   …:同类内容可出现多个;

      • 使用手册:压缩格式的文件,有章节之分;
               /usr/share/man
                   man1, man2, …
                   1:用户命令;
                   2:系统调用;
                   3:C库调用;
                   4:设备文件及特殊文件;
                   5:文件格式;(配置文件格式)
                   6:游戏使用帮助;
                   7:杂项;
                   8:管理工具及守护进行;
               ~]# man CHAPTER COMMAND
                   注意:并非每个COMMAND在所有章节下都有手册;
                       查看:
                           ~]# whatis COMMAND
                           注意:其执行过程是查询数据库进行的;
                               手动更新数据库:
                                   ~]# makewhatis

      • man命令打开手册以后的操作方法:
               翻屏:
                   空格键:向文件尾翻一屏;
                   b: 向文件首部翻一屏;
                   Ctrl+d:向文件尾部翻半屏;
                   Ctrl+u:向文件首部翻半屏;
                   回车键:向文件尾部翻一行;
                   k: 向文件首部翻一行;
                   G:跳转至最后一行;
                   #G: 跳转至指定行;
                   1G:跳转至文件首部;
               文本搜索:
                   /keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
                   ?keyword:从文件尾部向文件首部依次查找;
                       n: 与查找命令方向相同;
                       N: 与查找命令方向相反;
               退出:
                   q: quit

      • 命令自带简要格式的使用帮助
               # COMMAND –help

      • 使用手册:manual
               位置:/usr/share/man
               # man COMMAND

    Linux基础目录

    • Filesystem Hierarchy Standard

      • /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设备提供一种统一模型的的接口;

    原创文章,作者:conan,如若转载,请注明出处:http://www.178linux.com/47772

    (0)
    上一篇 2016-09-19 15:13
    下一篇 2016-09-19 15:41

    相关推荐

    • N21沉舟11周作业

      1、请描述一次完整的http请求处理过程; (1) 建立或处理连接:接收请求或拒绝请求 (2) 接收请求: (3) 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息 (4) 访问资源:获取请求报文中请求的资源 (5) 构建响应报文 (6) 发送响应报文 (7) 记录日志 …

      Linux干货 2016-09-26
    • Linux进程篇16.4top命令:进程管理工具

      top命令:进程管理工具

      2017-12-18
    • 马哥教育网络班21期+第9周课程练习

      1、写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash while read line; do     if [[ $line&n…

      Linux干货 2016-09-01
    • 命令find应用

      作业:  查找/var目录下属主为root,且属组为mail的所有文件 [root@localhost bin]# find /var/ -user root -group mail     2. 查找/var目录下不属于root、lp、gdm的所有文件    [root@localhost bin…

      Linux干货 2016-08-22
    • find命令详解

      写在前面,命令总览: 文件名:-name  -iname   glob     从属关系: -user  -group  -uid  –gid  -nouser  -nogroup 按类型:-type []  ,f,d,l,b,c…

      Linux干货 2016-02-14
    • N22-℡浮生.若夢 ╮第九周作业

      1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash ## declare -i log_user declare -i notlog_user for i …

      Linux干货 2016-12-12

    评论列表(1条)

    • 马哥教育
      马哥教育 2016-09-20 11:22

      可以多列举一些常用命令的常用参数,加油