一、计算机的组成及其功能
众所周知,现代计算机设备是由五大部分组成,分别为:运算器、控制器、存储器、输入设备、输出设备,也就是现实生活中可以直观看到的CPU、内存、硬盘、主板、鼠标、键盘、显示器等设备。那么,这五大部分与现实生活中看到的硬件设备是怎样的对应关系呢?下面我会一一说明。
CPU:中央处理器(Central Processing Unit),是一块超大规模的集成电路,包括了运算单元、控制单元与寄存器,运算单元主要是指算术逻 辑运算单元,控制单元也就是CPU指令,指令又分为特权指令与普通指令两种,寄存器怎是用来保存指令执行过程中临时需要存放的数据。运 算器、控制器、寄存器三者共同构成了CPU。 内存:Memory,是一个编制存储设备,是CPU能直接寻址的存储空间,是由一些电路板、芯片、金手指组成,用于暂时存放CPU中的运算数据以及与 硬盘等外部存储设备进行数据交换,在计算机运行过程中,CPU会把需要运算的数据存储到内存中,运算时直接从内存中进行调用数据,运算 完成后,再把结果输出到内存当中。 硬盘:计算机的主要存储媒介之一,用来保存计算机运行所需要的程序。当今,硬盘基本分为两大类:机械硬盘(HDD)与固态硬盘(SDD),HDD 采用磁性碟片的方式来存储数据,SDD则采用闪存颗粒来存储数据。 主板:MainBoard,主要用于将CPU、内存、硬盘、外设等设备进行连接。主板上最重要的构成组件是芯片组,芯片组通常是由南桥和北桥组成,北 桥芯片提供对CPU的类型和主频、内存的类型和最大容量、PCI/AGP/ISA插槽等支持,南桥芯片则是提供对键盘控制、时钟控制、总线控制等 支持。 鼠标、键盘:输入设备 显示器:输出设备
二、Linux各个发行版之间的联系与区别
Linux发行版主要有slackware、debian、redhat、ArchLinux、Gentoo等。 slackware:主流发行版为S.u.S.E,基于S.u.S.E的二次发行版则是openS.u.S.E debian:主流发行版为ubuntu,基于ubuntu的二次发行版为mint redhat:主流发行版为RHEL(RedHat Enterprise Linux),CentOS则是RHEL的克隆版,并且完全免费试用,但RHEL不提供任何的技术支持;Fedora 则是RHEL的实验版本,每次更新都会合入新的功能,测试成功的功能则会合入到RHEL的版本中 ArchLinux:是一个轻量简洁的发行版 Gentoo:据说是一款非高手不可玩的自由操作系统
三、Linux哲学思想
一切皆文件 由众多单一目的的小程序组成,组合小程序来完成复杂的任务 尽量避免跟用户交互 使用纯文本文件保存配置信息
四、命令使用格式以及常用命令介绍
COMMAND [OPTIONS...] [ARGUMENTS...] 选项:用于启用或关闭命令的某个或某些功能; 短选项:-c, 例如:-l, -h 多个短选项可命令使用,例如-l -h, 可写作-lh; 长选项:--word,例如:--long, --human-readable 参数:命令的作用对象
详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用
ifconfig:configure a network interface(配置内核固有的网络接口)
命令格式:
ifconfig [-v] [-a] [-s] [interface] ifconfig [-v] interface [aftype] options | address …
如果ifconfig没有给定参数,那么则会显示当前系统当中活动的网络接口的状态,例如
[root@localhost ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.99 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::20c:29ff:fe59:590b prefixlen 64 scopeid 0x20<link> ether 00:0c:29:59:59:0b txqueuelen 1000 (Ethernet) RX packets 45596 bytes 20196166 (19.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20734 bytes 3212158 (3.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 16 bytes 1224 (1.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16 bytes 1224 (1.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果给定的参数是一个接口,那么就会显示这个接口的状态
[root@localhost ~]# ifconfig eno16777736 eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.99 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::20c:29ff:fe59:590b prefixlen 64 scopeid 0x20<link> ether 00:0c:29:59:59:0b txqueuelen 1000 (Ethernet) RX packets 45596 bytes 20196166 (19.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20734 bytes 3212158 (3.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果给定-a选项,则会显示内核当中所有的网络接口信息,包括down掉的网络接口,例如:
[root@localhost ~]# ifconfig -a eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.99 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::20c:29ff:fe59:590b prefixlen 64 scopeid 0x20<link> ether 00:0c:29:59:59:0b txqueuelen 1000 (Ethernet) RX packets 45717 bytes 20207023 (19.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20798 bytes 3219966 (3.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 16 bytes 1224 (1.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16 bytes 1224 (1.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:f7:9e:82 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0-nic: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 52:54:00:f7:9e:82 txqueuelen 500 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果给定-s选项,则会以简短的信息显示内核当中活动的网络接口信息,例如:
[root@localhost ~]# ifconfig -s Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 45758 0 0 0 20828 0 0 0 BMRU lo 65536 16 0 0 0 16 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU
使用up、down选项则会将指定的网络接口打开或关闭,例如:
[root@localhost ~]# ifconfig lo down [root@localhost ~]# ifconfig lo up
echo:Echo the STRING(s) to standard output.(将字符串输出到标准输出)
命令格式:
echo [SHORT-OPTION]... [STRING]... echo LONG-OPTION
使用-n选项,则是在尾部继续输出,不启用新的行,例如:
[root@localhost ~]# echo -n /etc/issue /etc/issue[root@localhost ~]#
使用-e选项,则允许使用反斜杠转义
使用-E选项,则不允许使用反斜杠转义(默认值)
在-e选项生效的情况下,可以使用反斜杠进行转义,来达到要实现的目的,例如:
\\ backslash 对反斜杠进行转义 \b backspace 退格 \n new line 新的一样 \r carriage return 回车 \t horizontal tab 水平制表符 \v vertical tab 垂直制表符 [root@localhost ~]# echo -e '\\abc\babc\n\raaa\tabc\vabc' \ababc aaa abc abc
tty:print the file name of the terminal connected to standard input.(打印来自标准输入终端的文件名)
命令格式:
tty [OPTION]...
不给定任何参数,则直接输出当前终端的文件名称,例如:
[root@localhost ~]# tty /dev/pts/2
-s选项,不打印任何东西,仅返回推出状态,例如:
[root@localhost ~]# tty -s [root@localhost ~]# echo $? 0
startx:initialize an X session(初始化一个图形界面的会话)
命令格式:
startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]
举例:
[root@localhost ~]# startx -- --depth 16
export:set the export attribute for variables(设置属性变量)
命令格式:
export name[=word]... export -p
显示当前属性变量:
[root@localhost ~]# export -p [root@localhost ~]# export
设置环境变量:
[root@localhost ~]# export PATH=/local/bin:$PATH
pwd:print name of current/working diretory(打印当前或工作目录的名称)
命令格式:
pwd [OPTION]... -L,--logical,使用PWD环境,即使包含符号链接 -P,--physical,避免所有的符号链接
history:管理历史命令
命令格式:
history [OPTION]...
-a: 追加本次会话新执行的命令历史列表至历史文件中
[root@localhost ~]# history -a
-d: 删除历史中指定的命令
[root@localhost ~]# history -d
-c: 清空命令历史;
[root@localhost ~]# history -c
快捷操作:
!#:调用历史命令中的第#条命令 !string:调用历史中最近一个以string开头的命令 !!:上一条命令
shutdown:halt,power-off or reboot the machine(停止、关闭电源、重启机器)
命令格式:
shutdown [OPTIONS...] [TIME] [WALL...]
-H,–halt:停止机器
[root@localhost ~]# shutdown -H
-P,–poweroff:关闭机器的电源
[root@localhost ~]# shutdown -P
-r,–reboot:重启机器
[root@localhost ~]# shutdown -r
-h:等同于poweroff,除非–halt被指定
[root@localhost ~]# shutdown -h
-k:不进行停止、关闭电源、重启的操作,只是发送这些消息
[root@localhost jobs]# shutdown -k Shutdown scheduled for Sun 2016-06-19 20:14:19 CST, use 'shutdown -c' to cancel. [root@localhost jobs]# Broadcast message from root@localhost.localdomain (Sun 2016-06-19 20:13:19 CST): The system is going down for power-off at Sun 2016-06-19 20:14:19 CST!
poweroff:halt,power-off or reboot the machine(停止、关闭电源、重启机器)
命令格式:
halt [OPTIONS...] poweroff [OPTIONS...] reboot [OPTIONS...]
–halt:停止机器,不管是调用三个命令中的哪一个
[root@localhost jobs]#poweroff --halt
-P,poweroff:关闭机器的电源,不管是调用三个命令中的哪一个
[root@localhost jobs]#poweroff -P
–reboot:重启机器,不管是调用三个命令中的哪一个
[root@localhost jobs]#poweroff --reboot
reboot:与poweroff用法基本一样,此处不再赘述
hwclock:query or set the hardware clock(查询或者设置硬件时间)
命令格式:
hwclock [function] [option...]
-s,–hctosys:将硬件时间设置为系统时间
[root@localhost jobs]# hwclock -s
-w,–systohc:将系统时间设置为硬件时间
[root@localhost jobs]# hwclock -s
date:print or set the system date and time(打印或者设置系统日期和时间)
命令格式:
date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
FORMAT: 格式符号
%D %F %T
date [MMDDhhmm[[CC]YY][.ss]]:设置
MM: 月分 DD:几号 hh: 小时 mm: 分钟 YY: 两位年份 CCYY: 四位年份 .ss: 秒钟
五、获取命令帮助
内部命令
help COMMAND
外部命令
获取命令位置
which、whereis
获取帮助:
1、COMMAND –help
COMMAND -h
2、使用手册manual
man COMMAND
手册页位于/usr/share/man目录下,分为man1、man2、……man8
man1:用户命令 man2:系统调用 man3:C库调用 man4:设备文件及特殊文件 man5:配置文件格式 man6:游戏 man7:杂项 man8:管理类命令
注意:有些帮助文档不止存在于一个章节中,查看指定的章节
man # COMMAND
man命令的配置文件:/etc/man.conf,指明新的手册文件搜索位置 MANPATH /PATH/TO/SOMEWHERE
man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手册也并显示
帮助手册的段落说明:
MANE:名称 SYNOPSIS:摘要 []:可选内容 <>: 必选内容 a|b:二选一 ...: 同一内容可出现多次 DESCRIPTION:描述 OPTIONS:选项 EXAMPLES:例子 AUTHOR:作者 REPORTING BUGS:提交BUGS SEE ALSO:参考其他
man命令的操作方法:
Space, ^V, ^f, ^F: 向文件尾翻屏; b, ^B: 向文件首部翻屏; d, ^D: 向文件尾部翻半屏; u, ^U: 向文件首部翻半屏; RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行; y or ^Y or ^P or k or ^K:向文件首部翻一行; q: 退出; #:跳转至第#行; 1G: 回到文件首部 G:翻至文件尾部
文件搜索:
/KEYWORD:以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写; n: 下一个 N:上一个 ?KEYWORD: 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写; n: 跟搜索命令同方向,下一个 N:跟搜索命令反方向,上一个
3、信息页
info COMMAND
4、程序自身的帮助文档
README、INSTALL、ChangLog
5、程序官方文档
Documentation
6、发行版的官方文档
7、Google
六、Linux发行版的基础目录名称命名法则以及功用规定
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader、grub)都存放于此目录 /bin:供所有用户使用的基本命令,不能关联至独立分区,OS启动即会用到的程序 /sbin:管理类的基本命令,不能关联至独立分区,OS启动即会用到的程序 /lib:基本共享库文件,以及内核模块文件(/lib/modules) /lib64:专用于x86_64系统上的辅助共享库文件存放位置 /etc:配置文件目录(纯文本文件) /home/USERNAME:普通用户家目录 /root:管理员的家目录 /media:便携式移动设备挂载点 cdrom usb /mnt:临时文件系统挂载点 /dev:设备文件及特殊文件存储位置 b:block device,随机访问 c:character device,线性访问 /opt:第三方应用程序的安装位置 /srv:系统上运行的服务用到的数据 /tmp:临时文件存储位置 /usr:universal shared,read-only data /bin:保证系统拥有完整功能而提供的应用程序 /sbin:管理类的基本命令 /lib:基本共享库文件 /lib64:专用于x86_64系统上的辅助共享库文件存放位置 /include:C程序的头文件(header files) /share:结构化独立的数据,例如doc,man等 /local:第三方应用程序的安装位置,包含/bin,/sbin,/lib,/lib64,/etc,/share /var:variable data files /cache:应用程序缓存数据目录 /lib:应用程序状态信息数据 /local:专用于为/usr/local下的应用程序存储可变数据 /lock:锁文件 /log:日志目录及文件 /opt:专用于为/opt下的应用程序存储可变数据 /run:运行中的进程相关的数据,通常用于存储进程的pid文件 /spool:应用程序数据池 /tmp:保存系统两次重启之间产生的临时数据 /proc:用于输出内核与进程信息相关的虚拟文件系统 /sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统 /selinux:security enhanced Linux,selinux相关的安全策略等信息的存储位置
原创文章,作者:Anaconda,如若转载,请注明出处:http://www.178linux.com/16849
评论列表(1条)
写的太棒了,而且还有案例做辅助说明,非常好!