N25-第一周博客作业

  • 计算机的组成及其功能

  • Linux的发行版介绍

  • Linux的哲学思想

  • Linux命令格式及一些基础命令

  • 在Linux系统上获取命令的帮助信息

  • Linux发行版的基础目录

计算机的组成及其功能

简单来说,计算机系统是由 硬件系统(hardware system)和 软件系统(software system)两部分组成。


硬件的基本组成: 运算器、存储器、控制器、输入输出设备。

  • 运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理

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

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

  • 输入输出设备:输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机.输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来.

软件: 主要分为系统软件和应用软件

  • 系统软件: 系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作.

  • 应用软件: 应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序.应用软件包是利用计算机解决某类问题而设计的程序的集合,供多用户使用。

Linux的发行版介绍

因为并不是每个人都具有源码安装各种软件的能力,满足各种用户需求的Linux发行版应运而生,发展的蓬蓬勃勃,到今天已经达数百种之多。其中最为主流的有以下几个分支。

  • Redhat
    在该分支中主要有RHEL(商业收费版),CentOS((RHEL的社区克隆版本,免费),Fedora Core(桌面版,免费)

  • slackware
    slackware下最有名的分支当属SuSe,SuSE有SLES(企业版)和openSUSE(社区版)

  • Debian
    Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最具特色的是apt-get / dpkg包管理方式。
    Debian下比较有名的分支有Ubuntu,Mint

  • Gentoo
    追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点。Gentoo的哲学是自由和选择。

  • ArchLinux
    Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版。

Linux的哲学思想

  1. 一切皆文件,把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等;
    资源(文件,硬件设备)的管理更加简单,方便。

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

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

  4. 使用文本文件保存配置信息
    配置信息可以持久保存,极大的发挥了文本编辑器的作用

Linux命令格式及一些基础命令

命令的语法通用格式:

COMMAND OPTIONS ARGUMENTS

COMMAND:
发起一命令:请求内核将某个二进制程序运行为一个进程; 程序 –> 进程 静态 –> 动态(有生命周期)

  • 命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;

  • 多数系统程序文件都存放在:/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
32bits的库:/lib, /usr/lib, /usr/local/lib
64bits的库:/lib64, /usr/lib64, /usr/local/lib64

注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件

  • 命令必须遵循特定格式规范:exe, msi, ELF(Linux)
    ~]# file /bin/ls 查看文件内容格式类型

  • 命令分为两类:
    由shell程序的自带的命令:内置命令(builtin)
    独立的可执行程序文件,文件名即命令名:外部命令

查看命令类型:
type COMMAND
OPTIONS:
指定命令的运行特性
选项有两种表现形式:

  • 短选项:-C, 例如-l, -d
    注意:有些命令的选项没有-;
    如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld

  • 长选项:–word, 例如–help, –human-readable

注意1:长选项不能合并;

注意2:有些选项可以带参数,此称为选项参数; 短选项用空格分割, 长选项用等号分割

ARGUMENTS:
命令的作用对象;命令对什么生效;
注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔


基础命令

  • ifconfig: 查看、配置、启用或禁用网络接口;
    注意: 命令立即生效,重启失效

    ifconfig   #处于激活状态的网络接口
    ifconfig -a  #所有配置的网络接口,不论其是否激活
    ifconfig eth0  #显示eth0的网卡信息  
    ifconfig eth0 down  #关闭eth0网卡
    ifconfig eth0 up    #开启eth0网卡
    ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE  #修改MAC地址  
    ifconfig eth0 192.168.1.56 netmask 255.255.255.0  #给eth0网卡配置IP地址,并加上子掩码  
    ifconfig eth0 mtu 1500  #设置能通过的最大数据包大小为 1500 bytes

    示例:

配置网卡ip地址并启动  


[root@node1 ~]# ifconfig eno16777736 172.16.0.150 netmask 255.255.0.0 up



添加网卡别名  


[root@node1 ~]# ifconfig eno16777736:0 172.16.0.151 netmask 255.255.0.0
[root@node1 ~]# ifconfig eno16777736:1 192.168.0.100 netmask 255.255.255.0  


保留网卡别名信息   


1. 将增加ip别名的命令填写到/etc/rc.local文件中,这个方法最方便,但不太可靠,有时会失灵。  
2. 手动编写ip别名的网卡配置文件
所有网卡的配置文件都保存在/etc/sysconfig/network-scripts目录中,一个网卡对应一个配置文件  

[root@node1 network-scripts]# cp ifcfg-eno16777736 ifcfg-eno16777736:0
[root@node1 network-scripts]# vim ifcfg-eno16777736:0



清除别名  

[root@node1 network-scripts]# ifconfig eno16777736:0 down
[root@node1 network-scripts]# ifconfig eno16777736:1 down
  • echo 回显
    格式: echo [SHORT-OPTION]… [STRING]…
    -n: 不进行换行;
    -e:让转义符生效;
    \n:换行
    \t:制表符

[root@node1 network-scripts]# echo -e "hello \nworld"
hello
world
  • tty 查看当前的终端设备

    [root@node1 network-scripts]# tty
    /dev/pts/2
  • startx 启动图形化界面
    在某一虚拟终端接口运行命令:startx &

  • export 显示和设置环境变量值
    设置环境变量
    export JAVA_HOME=/usr

  • pwd 显示工作目录
    -P 符号链接时,显示真实路径

    [root@node1 ~]# pwd
    /root
  • history 命令历史
    shell进程会其会话中保存此前用户提交执行过的命令
    定制history的功能,可通过环境变量实现:
    HISTSIZE:shell进程可保留的命令历史的条数;
    HISTFILE:持久保存命令历史的文件;
    HISTFILESIZE:命令历史文件的大小;

命令用法:
history [-c] [-d 偏移量] [n]
或 history -anrw [文件名]
或 history -ps 参数 [参数…]

常用参数:
-c: 清空命令历史(内存中的);
-d offset:删除指定命令历史
-r: 从文件读取命令历史至历史列表中;
-w:把历史列表中的命令追加至历史文件中; history #:显示最近的#条命令;

调用命令历史列表中的命令:
!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;
调用上一条命令的最后一个参数:
快捷键:ESC, . 按esc,放开,按.

示例: 显示最近的两条命令
histroy 2

  • shutdown 关机或重启命令
    shutdown [OPTIONS…] [TIME] [WALL…]
    OPTIONS:
    -h: halt 关机
    -r:reboot 重启
    -c:cancel 取消关机或重启(未到时间)

TIME:
now 现在
hh:mm 几点几分
+m 几分钟后
+0相当于now 现在

WALL 给所有终端发送的告警信息

示例:

现在关机:  shutdown -h now  
现在重启:  shutdown - r now   
取消关机或重启:  shutdown -c
  • poweroff 关机

  • reboot 重启

  • hwclock 显示或设定硬件时钟,clock是hwclock的软连接
    hwclock : 显示硬件时钟
    -s, –hctosys:以硬件为准,把系统调整为与硬件时间相同;
    -w, –systohc:以系统为准,把硬件时间调整为与系统时钟相同;

示例:

以硬件为准,把系统调整为与硬件时间相同; 
[root@node1 ~]# date
2016年 12月 01日 星期四 01:44:07 CST
[root@node1 ~]# hwclock
2016年12月01日 星期四 01时43分50秒  -0.621642 秒
[root@node1 ~]# hwclock -s
[root@node1 ~]# hwclock
2016年12月01日 星期四 01时44分37秒  -0.849592 秒
[root@node1 ~]# date
2016年 12月 01日 星期四 01:44:40 CST
  • date 显示日期时间

格式: date [OPTION]… [+FORMAT]

FORMAT:格式符
                            %F      相当于%Y-%m-%d
                            %T      相当于  %H:%M:%S
                            %Y      年
                            %m      月
                            %d      日
                            %H      时
                            %M      分
                            %S      秒
                            %s: 从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数;

示例:

~]# date +%F
2016-11-17
~]# date +%T
23:22:07
~]# date +%F-%T
2016-11-17-23:22:48
~]# date +"%Y-%m-%d %H:%M:%S"
2016-11-17 23:25:52
~]# date +%s
1479396446

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

内部命令:
help COMMAND
外部命令:
(1) 命令自带简要格式的使用帮助
COMMAND –help
(2) 使用手册:manual

# man COMMAND

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

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

            注意:并非每个COMMAND在所有章节下都有手册;
                            查看命令在那些章节有手册:
                                ~]# whatis COMMAND

                     注意:其执行过程是查询数据库进行的;
                                    手动更新数据库
                                                                             Centos 6:
                                        ~]# makewhatis
                                                                             centos7:
                    ~]# mandb    

                    man命令打开手册以后的操作方法:
                              翻屏:
                                  空格键:向文件尾翻一屏;
                                  b: 向文件首部翻一屏;
                                  Ctrl+d   或d:向文件尾部翻半屏; 
                                  Ctrl+u 或 u:向文件首部翻半屏;
                                  回车键:向文件尾部翻一行;
                                  k: 向文件首部翻一行;
                                  G:跳转至最后一行;
                                  #G: 跳转至指定行;
                                  1G:跳转至文件首部;

                              文本搜索:  不区分字符大小写
                                  /keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
                                  ?keyword:从文件尾部向文件首部依次查找;    
                                      n: 与查找命令方向相同;
                                      N: 与查找命令方向相反;

                              退出:
                                  q: quit   
                      man手册可以放到任意目录下,需要指定
                 选项:
                     -M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之;

(3) info COMMAND
获取命令的在线文档;man手册的补充;

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

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

(6) 程序官方的文档:

(7) 搜索引擎 google
keyword filetype:pdf
keyword site:domain.tld

man手册的章节是如何划分的?

  1. 用户命令

  2. 系统调用

  3. C库调用

  4. 设备文件及特殊文件

  5. 文件格式(配置文件格式)

  6. 游戏使用帮助

  7. 杂项

  8. 管理工具及守护进行

使用示例:

~]# man CHAPTER COMMAND
              man 8 lvcreate
              man 1 passwd
              man 5 passwd

Linux发行版的基础目录

FHS: 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:命令手册页和自带文档等架构特有的文件的存储位置 ,/usr/share/man  /usr/share/doc
                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   变化数据(/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设备提供一种统一模型的的接口;主要用来管理硬件设备

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

(0)
hansjhansj
上一篇 2016-12-02
下一篇 2016-12-02

相关推荐

  • ansible

    Ansible 1、  特性: 模块化:调用特定的模块,完成特定任务; 基于Python语言实现部署简单:agentless; 支持自定义模块; 支持playbook;编排任务; ansible自身并不实现任何管理任务,它的所有管理任务,统统都使用模块完成;             &nb…

    Linux干货 2016-11-11
  • CentOS系统启动流程与grub

    本文主要讲述CenOS系统启动的整个流程。 对于CentOS系统来说,整个启动过程可分为4个阶段,分别是:加点自检,加载MBR,加载内核并执行初始化信息,初始化用户空间。下面就具体来描述每个过程都做了什么。 一.加点自检(power on system test,POST) 任何一种操作系统的启动,第一步必定是加点自检,主要功能是装载在硬件芯片CMOS之上的…

    Linux干货 2016-11-29
  • N25-第六周作业

    第6周作业 — 请详细总结vim编辑器的使用并完成以下练习题 vim是模式化的全屏文本编辑器。vim分为三种模式:分别是编辑模式;输入模式;末行模式; 打开文件的方式有:vim +# FILE打开文件FILE并把光标定位到#行的行首;vim +/PATTERN FILE打开文件并让光标处于第一个被PATTERN匹配到的行的行首。(支持正则表达式)…

    Linux干货 2017-02-22
  • memcached简析

    一. memcached简介      memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in    &nbs…

    2016-10-29
  • 学习宣言

    如果自己都不愿意动,没有人能帮助我成功!

    Linux干货 2016-12-26
  • 日志收集工具EFK之fluent部署手稿

    Edit EFK fluent部署安装 1. 环境介绍 Centos 6.5 64bit 2. 安装 td-agent介绍 fluent 考虑到灵活可扩展性,使用Ruby编写,部分功能考虑性能使用C语言编写。普通用户安装操作Ruby daemon还是有一定难度的。考虑到flunt的上手难度, fluent专门发布了稳定发布包,就也是所谓的td-agent. …

    Linux干货 2016-03-24