计算机的组成及功能
cpu
cpu是计算机的核心部分,由两部分组成,分别是控制器和运算器。控制器读取存储器上存储的数据和指令,提供给运算器进行运算,并由控制器决定运算结果在存储器上的存储位置。
内存
内存,也就是存储器,用于存储数据和指令,供cpu读取,并且也存储cpu的运算结果。
输入
输入设备,可以将人们比较熟悉的信息形式转换未计算机可以理解的信息形式,例如鼠标、键盘。
输出
输出设备,可以将计算机的运算结果转化为人类比较容易理解的信息形式,例如显示器
硬盘
在冯诺依曼体系中,硬盘既不属于输入设备,也不属于输出设备,它是外存储器。相对于内存的易失性存储,硬盘可以在较长一段时间内稳定的存储数据,断电后也不会丢失数据(取决于使用的文件系统,对于某些文件系统,可能会丢失一部分没来得及同步到硬盘的数据)。
北桥
高速总线控制器,实现大量快速数据交换,离cpu较近,将硬盘直连北桥,可以在一定程度上提升IO能力。
南桥
用于连接各种外围设备,这些设备在南桥汇总后,通过北桥转给cpu。
Linux的发行版本和相互之间的关系
主流发行版本
- RedHat
- RedHat Enterprise
- CentOS
- Fedora
- RedHat Enterprise
- SlackWare
- SUSE
- Debian
- Ubuntu
相互之间的关系
所有Linux的发行版本使用的内核都是由Linus负责维护的Linux内核,这个内核是抽象了硬件的功能,管理硬盘和文件系统,并提供多任务功能的系统核心,不同的发行版本主要区别在于软件的管理上:RedHat系列的使用yum管理rpm格式的软件包;S.U.S.E软件包的格式也是rpm,使用zypper进行管理;Debian使用apt-get管理deb格式的软件包。
Linux的哲学思想
- 一切皆文件
在Linux系统中,一切皆文件。文件、目录、硬盘、DVD、字符设备、块设备等在Linux中都被看作是文件,在一套操作界面中进行操作。 - 小型单一用途的程序
Linux内核由众多实现单一功能用途的小型程序组成,所以可以高效的运行。 - 尽量避免与用户交互
- 使用文本文件保存程序配置信息
Linux命令
Linux命令使用格式
COMMAND [OPTIONS] [ARGUMENTS]
1.COMMAND:命令
2.OPTIONS:选项,当有多个选项时可以写在一起
3.短选项和长选项,例如-a等价于–all
4.中括号为可选项,非必须
i.e.
ls的命令使用格式:ls [OPTION]… [FILE]…
[bhps@test run]$ ls -lh
total 76K
drwxr-x--- 2 bhps root 4.0K Oct 19 2016 bin
drwxr-x--- 2 bhps root 4.0K Mar 9 2017 cfg
drwxr-x--- 6 bhps root 4.0K Jan 18 2016 data
drwxr-x--- 2 bhps root 4.0K Mar 2 2016 include
drwxr-x--- 4 bhps root 4.0K Dec 17 2015 java
drwxr-x--- 2 bhps root 36K Aug 18 00:14 log
drwxr-x--- 2 bhps root 4.0K Mar 9 2017 shell
drwxr-x--- 6 bhps root 4.0K Mar 1 2016 src
drwxr-x--- 2 bhps root 4.0K Jan 20 2016 tmp
drwxr-x--- 3 bhps root 4.0K Jul 6 2016 wkhtmltox
以上为将多个短选项写在一起执行,结果为当前目录下文件及目录的详细信息,大小以人类可读格式展示
[bhps@test run]$ ls --inode
1715958 bin 1715971 cfg 1711474 data 1715943 include 1715990 java 1711465 log 1715976 shell 1710783 src 1715956 tmp 1715939 wkhtmltox
上面的命令使用长选项,显示目录下所有文件夹和文件的inode号
[bhps@nopaper-1 run]$ ls -dl bin
drwxr-x--- 2 bhps root 4096 Oct 19 2016 bin
上面的命令使用命令,多个短选项和参数的形式,查看了bin目录的属性
Linux常用命令介绍
- ifconfig
ifconfig 用于配置网络设备,也可以查看网络设备的信息
基本命令格式
ifconfig [interface] 不加参数,查看所有启用网络设备的信息,加参数,查看具体某个设备的信息
ifconfig up interface启动某设备
ifconfig down interface 关闭某设备
ifconfig interface ip [netmask ip broadcast ip] 为某设备配置ip,子网掩码,广播地址
ifconfig interface apr 为某设备开启apr协议
ifconfig interface -apr 为某设备关闭apr协议
ifconfig interface hw {ether|ax25|ARCnet|netrom} hardware address 为网卡配置硬件地址,需要网卡支持此功能 - echo
echo 用于显示一段文本
echo [short option] string|variable
-n 不输出换行符,没有此选项的话,输出文本或变量内容后,自动换行
-e 转义斜线后的内容,\t水平制表符,\v垂直制表符,\b在此符号位置运行退格键删除前一个字符 - tty
tty输出连接到标准输入的终端的文件名称
-s 不输出任何内容,进返回退出状态0
–help 输出帮助信息
–version 输出版本信息 - startx
startx 在终端上启动X会话
-w 强制启动X会话
-z .xinitrc 使用脚本.xinitrc启动会话 - export
export -fnp [name[=word]] 管理环境变量
-f name 为函数名称
-n 从环境变量中移除name
-p 输出当前所有环境变量
=word 为环境变量赋值 - pwd
pwd 打印当前目录名称
-L 默认选项,使用逻辑路径,如果是连接文件,显示连接文件路径
-P 不适用逻辑路径,连接文件最终指向的文件 - history
history 显示命令行历史记录
-c 清空当前命令历史
-a 将历史命令缓冲区中命令写入历史命令文件中
-r 将历史命令文件中的命令读入当前历史命令缓冲区
-w 将当前历史命令缓冲区命令写入历史命令文件中
-n 打印最近n条历史命令 - shutdown
shutdown [OPTION] TIME 关闭系统
-r 关闭系统后重启
-h 关闭系统后,由系统决定停机还是断电。
-H 关闭系统后停机
-P 关闭系统后断电
-k 模拟关机,向登陆者发送告警信息,不会关机
-c 取消关机
i.e.
shutdown -h now 指定现在关机
shutdown +2 “The system is going down in two minutes.” 系统2分钟后关机 - poweroff
poweroff 关机命令相当于shutdown -P now,关闭系统后,断电。 - reboot
reboot 重启系统,相当于shutdown -r now - hwclock
hwclock
-w 将系统时间同步给硬件,覆盖当前硬件时间
-s 将硬件时间同步给系统
-r 输出硬件时间到标准输出 - date
date 展示,设置系统时间或日期
-s 设置时间
-d ‘n days ago’ 显示n天前的时间
+%Y%m%d 格式化输出时间,按照年月日输出
符号 | 含义 |
---|---|
%Y | 4位年份 |
%m | 2位月份 |
%d | 2位天数 |
%H | 小时,0~23 |
%M | 分钟,0~59 |
%S | 秒数,0~59 |
i.e.
date -d ‘7 days ago’ +%Y%m%d 按照年月日时分秒的格式输出7天前的时间,按照年月日的格式
如何获取Linux的帮助信息
- info
info COMMAND 对man的补充说明,支持ctl+b,ctl+f的上下翻页 - help
COMMAND –help 对于支持此选项的命令,可以使用–help查看命令帮助 - man
man COMMAND
man分章节,常见章节有8个
1.用户命令(一般位于这些目录/bin,/usr/bin,/usr/local/bin)
2.系统调用
3.库用户
4.特殊文件
5.文件格式(配置文件的语法,例如man 5 passwd)
6.游戏(贪吃蛇,推箱子,扫雷,linux默认没装)
7.杂项(Miscellaneous)
8.管理命令(/sbin,/usr/sbin/,/usr/local/sbin)
可以使用如下面命令查看whatis COMMAND 显示命令有哪些章节
Linux基础目录名称和命名法则及功能规定
- /boot:系统启动的相关文件,如内核,initrd,以及grub(bootloader)
- /dev: 设备文件
块设备:随机访问,数据块
字符设备:线性访问,按字符为单位(显示器,鼠标都是线性设备)
设备号:主设备号(major)和次设备号(minor) - /etc:配置文件目录
- /home:用户的家目录:默认为与用户名同名的目录/home/USERNAME
- /root:管理员的家目录
- /lib:库文件
静态库: .a
动态库: .dll(windows), .so(shared objects) —-任何库文件都需要载入的内存中才能供程序使用,共享库就是如此,载入到内存中,如果不同程序都用到了这个库,则无需重复载入。静态编译的话,程序本身就包含了库文件(静态库)。如果是动态库的话,迁移文件后,还要保证现有环境中存在此动态库。虽然静态库便于程序的迁移使用,但是动态库减少的程序的冗余,使得库可以在程序之间共享。库文件无法单独执行,没有程序的可执行入口,只能被程序调用
- /lib/modules:内核模块文件
- /media:挂载点目录,通常用于挂载移动设备,如光盘,u盘
- /mnt:挂载点目录,通常用于挂载额外的临时文件系统
对于linux来说,新添加的光盘或者硬盘,需要与根文件系统中的某个目录关联,才能对设备进行访问 - /opt:可选目录,早期用于安装第三方软件,现在第三方软件一般安装在/usr/local/下
- /proc:伪文件系统,是内核信息在文件系统上的映射,在系统未启动时,硬盘中的该目录为空。其中主要是内核的工作数据和可调参数
- /sys:伪文件系统,跟硬件设备相关的属性映射文件
- /tmp:临时文件(一般来说,如果文件在一个月内未被访问,系统会自动清除), /var/tmp
- /var:可变化的文件,系统日志位于/var/log下
- /bin:可执行文件,用户名命令
- /sbin:可执行文件,管理命令
- /usr/local :第三方软件的安装目录