1.描述计算机组成及其功能
在学习Linux操作系统之前,首先我们要对计算机硬件进行简单的了解,随着计算机硬件的快速发展,现代计算机设备主要分为五个部分,分别是运算器、控制器、存储器、输入以及输出设备。
控制器(Control):正确的分布的完成每一条指令规定的功能。比如控制内存数据给CPU或者CPU结果放入存储器等。
运算器(Datapath):对数据进行算术运算和逻辑运算。要提到的是计算机的算术运算都是转换成加法进行计算的。
存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要的时候提供这些信息
输入(input system):输入设备,常见的输入设备有键盘、鼠标、摄像头等。
输出(output system):输出设备,常用的输出设备有显示器、打印机等。
其中运算器和控制器组成了电脑中的CPU(中央处理器)。所以CPU也成了计算机的核心组成部分,主要负责对数据的运算。存储器包括了硬盘,内存,负责存储和便于读取数据。输入输出设备,用于与外界信息交互。互相之间通过bus总线来连接传输。
CPU控制是基于大量的指令集来运行的,而用户态的应用程序并不能直接控制CPU,所以就需要操作系统在中间作为中转,应用程序进行系统接口调用,OS运行特权指令。
然后就引出了操作系统的概念。
操作系统的定义:操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。
操作系统的内核的定义:操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,其中包括:文件系统、内存管理、设备管理和进程管理。
2.Linux的发行版本
Linux发展到现在已经有几百种发行版本。Linux的内核源代码和linux的应用程序都可以自由获得,因此很多公司组织开发了属于自己的Linux发行版。目前有三大主流发行版本,分别是slackware,debain,Redhat。在主流发行版本基础之上,还有这很多常见的二次发行版本和三次发行版本(界面等更优化),比如slackware(最古老的linux版本)的二次发行版本中的suse和三次发行版本opensuse,sles(企业级发行版)。debain(更原汁原味非常遵循GNU规范的版本)的二次发行版乌班图三次发行版本mint,Redhat,rhel(企业版),fedora(桌面版,现在被fedora社区开发研究)。
这些发行版本内核上基本没区别。不过有的内核是优化过的,比如适合平板的内核,它集成了相当多触摸屏的驱动,其它没有优化的内核要自己安装触摸屏的驱动。 每个发行版本,不光是图形终端不同。 还有安全方面,文件打包方面,还有源方面。
注:按软件包管理系统的不同,分为Redhat的rmp包管理系统和Ubuntu的基于DPKG包管理系统。使用前者的发行版包括SLES、Fedora、openSUSE、centos、RHEL等,包文件以rpm为扩展名;使用后者的包括Ubuntu系列,Debian系列等,包文件以deb为扩展名。
Red Hat Enterprise Linux:因为它是所有Linux/UNIX系统中最容易安装,同时也是应用最广的一种Linux操作系统。而Linux操作系统多数是用作服务器的,由于使用Linux的成本十分低廉,因此目前许多Internet服务器都是使用Linux操作系统。
操作系统的特点:多用户(在同一时刻可以有多个用户同时使用linux操作系统而且他们互不干扰)和多任务(任何一个用户在同一时间可以在linux操作系统上运行多个程序)
3.Linux的哲学思想
1、一切皆文件
一切皆文件是Linux(Unix)的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待,可以说在linux中一切看到的都可以当做是文件。
2.自由开源
可以自由使用(增删改),自由学习交流,自由发行
这意味着:
1. 你有自由以任何目的来运行该程序。
2. 你有修改程序满足自己需求的自由。
3. 你有权利重新发布副件,既可以白送也可以收取一定费用。
4.你有权利发布该程序修改过的版本,从而让其他人得益于你的改进。
3.单一程序
每个程序都只完成一个简单的任务,所以完成一个复杂的任务则需要多个程序组成
4.尽量避免与用户交互
使用脚本来完成各种自动化任务
5.使用文本保存配置信息
既方便读又方便修改,是一个很棒的方式。
4.linux系统上,命令使用格式
linux命令的语法通用格式为:
command [options] [arguments]
命令:提示shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交内核分配资源然后运行。简单来说就是告诉操作系统要执行什么。
命令类型有两种:
1. 内置命令:由shell程序自带的命令,通过某命令形式提供。
2.外部命令:独立的可执行程序文件,当前系统的某文件系统路径下有此可执行程序文件。(使用which或whereis查看文件位置)
注:我们可以使用type [conmmand]来查看命令类型。
options:可选的,选项是用来调整使用或者关闭命令的某个或某些功能。也就是命令执行的方式。
选项有两中表现形式:
1. 短选项:例如-c,-d,-r,多个短选项是可以合并的
2.长选项:例如--help,不能合并
arguments:命令的作用对象,即命令生效对象,想命令提供数据,有些命令的对象可以用多个,使用空格分开
5.Linux基础命令
1.ifconfig,用来查看IP地址,MAC地址,收发包和丢包数目和错误包的个数等。
[root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.128 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::bc24:411:5420:a7b1 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:83:57:6c txqueuelen 1000 (Ethernet) RX packets 209231 bytes 192665288 (183.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 89907 bytes 13673732 (13.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 1 (Local Loopback) RX packets 461 bytes 32970 (32.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 461 bytes 32970 (32.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.echo,用来回显命令
[root@localhost ~]# echo 'hello world' hello world
3.tty,显示当前终端的文件名
[root@localhost ~]# tty /dev/pts/0
4.startx, 开启图形化界面,最小化安装时无法打开图形化界面
5.export,设置和显示环境变量,单独使用export可以查看当前系统下的环境变量
export [-fnp][变量名称]=[变量设置值]
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。
6.pwd,显示当前位置。
[root@localhost ~]# pwd /root
7.history,显示执行命令的历史信息,用户在登录系统时,会读取历史文件记录下的命令:~/.bash_history
[root@localhost ~]# history 7 cd /opt 8 ls 9 su egon 10 vim /etc/passwd 11 vim /etc/group 12 vim /opt/a.txt 13 id egon ... 1001 ifconfig 1002 echo 'hello world' 1003 tty 1004 export 1005 pwd 1006 history
history的选项:
-c:清除历史信息
-n:显示最近的n行
-a:将命令历史信息写到history_file文件中,默认会写到~/.bash_history下
-r:读取histor_file的内容到当前的history
-w:将目前的history内容写到history_file中
-d:删除指定行的命令历史
!编号:再次执行某一行的命令
!!:执行上一条命令
8.shutdown,关机命令
-c:将shutdown的命令取消,取消关机
-H:停止设备
-P:关闭电源
-r:重启设备
-h:将系统关机
-k:只送出信息,但是不关机
--no-wall:关机但是不送出任何信息
注:poweroff(关闭电源),reboot(重启系统)
9.hwclock,clock,显示或设定硬件时间
[root@localhost ~]# date Thu Jul 13 12:53:16 EDT 2017
设定时间:date 月日时分年。
[root@localhost ~]# date 071400562017.30 Fri Jul 14 00:56:30 EDT 2017
11.whoami
列出目前登陆Linux系统所使用的用户名
[root@localhost ~]# whoami root
12.who
列出目前哪些用户在系统上工作。who命令的输出结果:显示当前登录的所有用户,以及当前的日期和时间。
[root@localhost ~]# who root tty1 2017-06-04 02:29 root pts/0 2017-08-28 02:05 (192.168.0.1) root pts/1 2017-08-28 02:21 (192.168.0.1) root pts/2 2017-09-01 03:15 (192.168.0.1)
13.cal
显示某月的日历。
[root@localhost ~]# cal September 2017 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
如果具体要查看某一年的某个月可以使用命令为:cal 月 年
[root@localhost ~]# cal 8 2017 August 2017 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
14.clear
快速清屏或者使用Ctrl+l
15.su
从当前的用户切换到另一个指定的其他用户。
[root@localhost ~]# su - jeff Last login: Sun May 21 03:53:19 EDT 2017 on pts/0 [jeff@localhost ~]$ su - root Password: Last login: Fri Sep 1 03:25:59 EDT 2017 on pts/2
6.命令帮助
在linux中获取命令帮助的方式有:
1.help command,一般内部命令可以使用help加命令可以获取命令帮助
2.command --help,外部命令可以使用长选项--help来获取帮助
3.info conmmand,获取命令的在线文档
4.man[options][arguments],通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信息;
-P:指定内容时使用分页程序;
-M:指定man手册搜索的路径。
对于man的参数:数字指定从哪本man手册中搜索帮助(一般在man1到man8中); 关键字指定要搜索帮助的关键字。
man的一般组成部分:
(1)NAME:功能性说明
(2)SYNOPSIS:语法格式
(3)DESCRIPTION:描述信息
(4)OPTION:选项
(5)EXAMPLES:使用示例
(6)AUTHOR:作者
(7)BUGS:报告程序bug的方式
(8)SEE ALSO:参考
7.基础目录的命令法则和功用规定
linux文件命名法则:
1.文件名严格区分大小写
2.文件可以使用除/以外任意字符
3.文件名长度不能超过255字符
4.以.开头的文件为隐藏文件
在各种版本的linux发行版中,文件系统必要遵循FHS(Filesystem Hierarchy Standard,文件系统结构标准),它定义了一个发行版所必须有的文件目录和可选的文件目录
linux发行版的命名法则及功用规定
/bin:所有用户可用的基本命令程序文件(常用的可执行文件);
/sbin:供系统管理使用的工具程序(系统的可执行文件);
/boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等;
/dev:存储特殊文件或设备文件:设备有两种类型:字符设备、块设备;
/etc:系统程序的配置文件,只能为静态;
/home:普通的家目录的集中位置,一般每个普通用户的家目录默认为此目录下与用户名同名的子目录:/home/jeff,家目录用来存放用户自己的文件或目录,root的家目录是/root;
/lib:为系统启动或跟文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块等;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点:cdrom,floppy等;
/mnt:其它文件系统的临时挂载点,通常可移除式硬件会被挂载在/media或/mnt目录之下;
/opt:附加应用程序的安装位置;可选路径;
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
/usr:usr Hierarchy:全局共享的只读数据路径;
绝对路径:必须以一个正斜线(/)开始。绝对路径包括从文件系统的根节点开始到要查找的对象(目录或文件)所必须遍历的每一个目录的名字,它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径找到所需的文件。
相对路径:不是以正斜线(/)开始,相对路径可以包含从当前目到要查找的对象(目录或文件)所必须遍历的每一个目录的名字。