计算机和linux基础

计算机的组成及其功能

计算机硬件主要由5部分组成:运算器控制器存储器inputoutput

但是这和我们平时见到的计算机不一样?我们平时见到的计算机有CPU,内存,硬盘,显示器,鼠标键盘,显卡、主板等。
这些东西也都归在以上五类设备中。下面我们简单介绍一下计算机这五个组成部分。

运算器:

运算器是计算机中做运算的部分,可以执行各种指令,加减乘除,与或非等,是真正用来计算的部分。
运算器处在计算机的CPU中,是CPU 的重要组件。CPU的运算能力是计算机的重要指标。

控制器

控制器主要是用来控制总线的使用权限,完成控制内存的访问等。

存储器

存储器对应的就是计算机组成部分中的内存,临时存放正在运行的数据和指令用的。
也叫RAM(randon access memory) ,因为是临时存储器,断电后所有数据会消失。

Input

Input并不是计算机运行的核心部件,只是为了方便人类生产生活环境,适应人类操作计算机的
方式而出现的输入设备。包括硬盘,鼠标,键盘,扫描仪,摄像机等,都是输入设备。

Output

Output并不是计算机运行的核心部件,只是为了方便人类生产生活环境,适应人类操作计算机的方式而出现的输入设备。
包括硬盘,显示器,音箱等,都是输出设备。

PC常见硬件理解

CPU:
一个CPU中包含了计算机的2个部分,运算器和控制器,同时CPU中还包含了寄存器和缓存。
刚刚我们已经讲过运算器和控制器的功能。
那寄存器和缓存又是干什么用的呢?寄存器和缓存都是用来存储数据的,
存取速度,
因为计算机的处理速度很快,而数据的输入输出会成为计算机运算的瓶颈,
所以可以提前把可能要用的数据
先放在缓存和寄存器中,这样方便运算器运算的时候直接读取,而不需要再到内存中取。
所以我们可以知道寄存器,缓存,内存、硬盘的速度应该是逐渐下降的,
寄存器运行速度最快。这2个家伙只是加速用的,不是核心部件。

内存:内存对应的就是计算机组成部分中的存储器,存放正在执行数据。

硬盘,鼠标键盘等:

这些都是input设备,包括扫描机等,这些就不是计算机的核心部件了,只是人类为了输入数据或指令而发明的input设备。
据而已,断电也还在,不像RAM。所以他是input/output设备。

显示器,音箱等:

这些都是output设备,这些就不是计算机的核心部件了,只是人类为了输出数据不同形式而发明的output设备。

主板

为了更好的连接各个组成部分而制造的一块电路板。

显卡
是一个CPU+内存的集合体,只是因为各项指标更适合图形处理,主要处理图形任务。可以看成PC里的另一套计算系统。

Linux发行版本

Linux虽然提供kernel源代码,但是大部分人无法将其编译并拼凑成
操作系统,同样也不会安装任何应用程序
。所以就有公司或组织将其源代码和GNU组织的应用程序打包编译成二进制可执行文件,这就是linux的发行版。
到现在为止Linux已经存在数百个发行版本,主流的有三种Debian,Slackware,Red Hat

Debian

目前唯一一个还以网络社区方式运行的发行版本,这个发行版本限制更少,更开放,当然使用难度也更大。
Debian的发行及其软件源有五个分支:旧稳定分支(oldstable)、
稳定分支(stable)、测试分支(testing)、不稳定分支(unstable)、实验分支(experimental)。
Debian以稳定性闻名,所以蛮多点服务器使用Debian作为其操作系统。

  • Ubuntu:Debian的衍生版本,主要在用户界面努力,希望统一个人桌面和手机桌面
    他的衍生版本还有mint,在图形化界面的优化也比较优秀。主要用户群体在欧洲。

  • knopix:Debian的二次发行版。Knoppix的硬件支援极佳,即使是较新的产品,很多时都可以正常运用。
    但是Knoppix对中日韩环境的支援极差,在系统预建的汉字字型档里,错字、缺字连篇,字体比例亦不成比例。

  • kali:Debian的二次发行版,集成了很多渗透工具,黑客必玩。

Slackware

Slackware其实是SLS的分支,但是SLS昙花一现,后期主要衍生版本由Slackware衍生。它力图成为“UNIX风格”的Linux发行版本,
只吸收稳定的应用程序。设计理念“KISS”,Keep it Simple, Stupid。

  • S.u.S.E:SlackWare的发行版。OpenSUSE是其衍生版本。openSUSE在全世界
    ,尤其是在德国被广泛使用。它的开发重心是为软件开发者和系统管理者创造适用的开放源代码的工具,
    并提供易于使用的桌面环境和功能丰富的服务器环境。
    openSUSE针对桌面环境进行了一系列的优化,对Linux新手较为友好。

Red Hat

主要由Red Hat公司发行,非常主流。 Red Hat Enterprise Linux:Red Hat的二次发行版,服务费昂贵。 Centos:基于RHEL的二次发行版本,完全兼容RHEL,现在被红帽收购。

其他主流发行版

Gentoo,Archlinux,Fedora

Linux的哲学思想

  • 一切皆文件:linux系统将所有资源抽象为文件,硬件设备,通信接口等也通过文件表示。这样管理整个系统或修改配置系统
    其实就变成的文件管理工作。

  • 一个程序只做一件事情:linux系统由众多功能单一的小程序组成,复杂任务通过程序组合完成。
    这样带来的好处是:1小程序不容易出错  2大程序出错时很容易排查,你可以分析每一部分过程。

  • 程序启动尽量不和人交互:希望以编程的方式实现自动化,另一个是人总是比机器容易出错,尽量减少人的参与。

  • 文本保存配置信息:用最基本的编辑工具就能完成。备份,阅读都比较方便。熟悉配置之后就能快速部署。

Linux命令使用格式

linux命令的基本格式: COMMAND [OPTION] [FILE] [string]

linux命令最左侧为命令本身。并由空格隔开。

[OPTION]选项为命令运行的可调整项。可以跟多个选项,有些选项需要跟参数,
参数可能是文件,也可能是字符串。

命令后可能需要跟参数,也可能不跟参数。参数可能是文件,也可能是字符串。

基本命令介绍

ifconfig

这个命令是用来配置和查看网卡信息用的。

[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:32:B0:C8  
          inet addr:192.168.17.128  Bcast:192.168.17.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe32:b0c8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5710 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4259 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:536342 (523.7 KiB)  TX bytes:765653 (747.7 KiB)
          Interrupt:67 Base address:0x2024 

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:16436  Metric:1
          RX packets:3454 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3454 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5223176 (4.9 MiB)  TX bytes:5223176 (4.9 MiB)

[root@localhost ~]#

echo

回显命令

-n:回显不进行换行
-e:让转译符生效,\n换行,\t制表符

    [root@localhost ~]# echo "hello world"
    hello world
    [root@localhost ~]# echo -n "hello world"
    hello world[root@localhost ~]# 
    [root@localhost ~]# echo -e "hello world"
    hello world
    [root@localhost ~]# echo -e "hello \nworld"
    hello 
    world
    [root@localhost ~]# echo -e "hello \tworld"
    hello   world
    [root@localhost ~]# echo "hello \tworld"
    hello \tworld
    [root@localhost ~]# echo $SHELL
    /bin/bash
    [root@localhost ~]#

tty

查看登录信息。

物理终端返回:/dev/console

虚拟终端返回:/dev/tty#[1-6]

串行终端返回:/dev/pts/#

[root@localhost ~]# tty
/dev/pts/1
[root@localhost ~]#

startx

切换至GUI接口

export

用于设置或显示环境变量。

[root@localhost ~]# export -p
declare -x CVS_RSH="ssh"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD="/home/gentoo"
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_CLIENT="192.168.17.1 65424 22"
declare -x SSH_CONNECTION="192.168.17.1 65424 192.168.17.128 22"
declare -x SSH_TTY="/dev/pts/1"
declare -x TERM="vt100"
declare -x USER="root"
[root@localhost ~]# export SHLVL="7"
[root@localhost ~]# export -p
declare -x CVS_RSH="ssh"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD="/home/gentoo"
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="7"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_CLIENT="192.168.17.1 65424 22"
declare -x SSH_CONNECTION="192.168.17.1 65424 192.168.17.128 22"
declare -x SSH_TTY="/dev/pts/1"
declare -x TERM="vt100"
declare -x USER="root"
[root@localhost ~]#

pwd

显示当前目录

[root@localhost ~]# pwd
/root
[root@localhost ~]#

history

显示历史命令信息。

[root@localhost ~]# history 10
  659  who -a
  660  who -r
  661  clock
  662  w
  663  man w
  664  w -v
  665  w -V
  666  w -h
  667  w -s
  668  history 10
[root@localhost ~]# 
[root@localhost ~]#

相关环境变量:

  • HISTSIZE:命令保存命令的数量

  • HISTFILE:命令的保存路径,只有用户登出事才会保存

  • HISTFILESIZE:文件的大小,说明只能保存1000条,超出的会将之前的顶掉

-c:清空内存中的历史状态

-d offset N:批量删除N个指定历史命令 history -d 676 5

-r:从history文件中读回到内存

-a: 从内存中写到history文件

-w:把历史列表中的命令追加到历史文件中

History N:显示最近N条命令

!#再一次执行第#条命令

!!再一次执行上一条命令

!STRING再一次执行命令列表中往前追溯以STRING开头的命令

shutdown

关闭算计。

SYNOPSIS:/sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message]

-h:halt

-r:reboot

-c:cancel

TIME:
   now
   hh:mm
   +m

WALL

[root@localhost ~]# shutdown 20:00 "warnning"

Shutdown cancelled.
[root@localhost ~]#

poweroff

关闭计算机。

reboot

重启计算机。

hwclock

查看或设定硬件时钟。

    [root@localhost ~]# hwclock --set --date="9/14/16 14:21:30"
    [root@localhost ~]# 
    [root@localhost ~]# hwclock 
    Wed 14 Sep 2016 02:21:37 PM PDT  -0.016205 seconds
    [root@localhost ~]# hwclock -s 
    [root@localhost ~]# date
    Wed Sep 14 14:22:24 PDT 2016
    [root@localhost ~]# hwclock -s 
    [root@localhost ~]# hwclock 
    Wed 14 Sep 2016 02:22:30 PM PDT  -0.016007 seconds
    [root@localhost ~]#

date

显示和设置系统时间
SYNOPSIS

date [OPTION]… [+FORMAT]                    显示时间

date [MMDDhhmm[[CC]YY][.ss]]             设定时间,月日时分年秒

    [root@localhost ~]# date
    Tue Sep 13 23:08:39 PDT 2016
    [root@localhost ~]# date 091414102016.45
    Wed Sep 14 14:10:45 PDT 2016
    [root@localhost ~]# date
    Wed Sep 14 14:10:49 PDT 2016
    [root@localhost ~]#

如何在linux上获取帮助

  • help COMMAND命令可以获取帮助,但是只能查询内建命令。

  • COMMAND –help命令可以查外部命令。

  • man COMMAND手册查询

  • whatis COMMAND 命令能显示在man哪里找,但是并不一定所有命令都能用,需要手动更新数据库,通过makewhatis

  • info COMMAND获取在线文档

man文件内容分布

  • 第一章用户命令

  • 第二章系统调用

  • 第三章C库调用

  • 第四章设备文件&特殊文件

  • 第五章文件格式(配置文件格式说明)

  • 第六章游戏说明

  • 第七章杂项

  • 第八章管理工具和守护进程说明

linux发行版基础目录

  • /bin:供所有用户使用的基础命令程序文件。

  • /sbin:供管理员使用的命令程序文件。

  • /boot:引导加载器必须用到的各种静态文件:kernel,initramfs(initrd),grub等。

  • /dev:存储特殊文件或设备文件;设备有2种类型,字符设备(也叫线性设备,如键盘)和块设备(也叫随机设备,如硬盘)

  • /etc:主机特有配置文件,大部分都是文本文件。不能为二进制文件。至少有/opt子目录。

  • /home:是可选目录,普通用户家目录的集中位置。每个普通用户的家目录默认与用户名同名。

  • /root:管理员的家目录,可选。

  • /lib:为系统启动或根文件上的应用程序(bin/sbin)提供共享库,为内核提供内核模块。

    ld*:运行时链接器/加载器;

    ibc.so.* 动态链接C库;

    modules: 用于存储内核模块的目录;

  • /lib64: 64位系统特有存放64位共享库的路径。

  • /media: 为便携性设备提供挂载点。cdrom

  • /mnt: 其他文件系统的临时挂载点。

  • /opt:附加应用程序的安装位置;可选路径;

  • /srv:主机特有的为服务提供的数据。

  • /tmp:为那些会产生临时文件的程序提供用于存储零时文件的目录

  • /usr:独立层级结构,全局共享的只读数据路径。其下目录文件有:

    bin

    include:C程序头文件

    lib(lib64)

    local:独立层级结构,用户真正安装本地应用的路径。其下也有bin,sbin,man,share……

    sbin

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

    X11R6:X-Window程序安装位置。

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

  • /var:存储常发生变化的数据的目录。其下目录文件有:

    cache: application cache data

    lib: Variable state information

    local: variable data for /usr/local

    lock: lock file

    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

Edit By MaHua

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

评论列表(1条)

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

    看的出来,很认真的在做了,希望可以继续保持