linux基础知识

1:基本知识

微内核:是一种提供必要服务的操作系统内核,大部分内核都作为单独的进程在特权模式先运行,他们通过消息传递进行通讯
单内核:单内核是个很大的进程,他的内部又悲愤为若干个模块,是个单独的二进制但印象,其模块间的通讯是通过直接调用其他模块中的函数实现的,而不是消息传递。
这里写图片描述

linux分几种应用程序级别
Ring 0 特权模式 一般是系统底层运行级别
Ring3 应用程序级别 一般的级别
有时候应用进程为了调用系统底层的模块,可能会在用户空间和内核空间之间进行来回的切换,这是很耗时间的,平时工作中应注意避免

2:linux中的库

linux中库分为两种,一种是静态库,另一种是动态库
   通常情况下,对函数库的连接时放在编译使其完成的,所有的相关对象文件与牵扯到的函数库被连接合成一个可执行的文件,程序在运行的时候,与函数库再无瓜葛,因为所有需要的函数已拷贝至自己相应的目录下,所以这些函数库被称为静态库。由此可以看出,如果每个应用函数都加载一份这样的相同的函数库到自己的应用文件目录中,则在程序运行时,内存中会有大量重复的库文件,耗CPU,耗内存

动态库,则是在程序运行时在函数运行时再载入(类似于懒加载机制吧)

两者区别:
1:静态库的使用需要
1:包含一个对应的头文件告知lib文件里面的具体内容
2:设置lib文件允许编译器去查找已经编译好的二进制代码
2:动态库的使用
1:程序使用时需要动态的加载动态库,对动态库有依赖性,需要手动的加载动态库

动态库的优点:
    1:可是实现进程间的资源共享
    当某个程序需要调用某个动态库中的函数时,操作系统会首先检查内存中是否已经存在(可能是之前运行的程序要需要这个函数库,会加载函数库到内存中),如意存在就共享同一个函数库,这样以来节省了额外的开销,尽管共享同一份资源,但是进程的数据还是属于各个进程私有
  2:将一些程序的升级变得简单,用户只需升级动态库=连接库,而无须重新编译链接其他原有的代码,就可以完成整个程序的升级,window就是这样的例子
在linux中  后缀为 .so代表共享对象 
window中则为.dll 例如orcal中的oci.dll

3:linux的基本原则

  • 一切皆文件
  • 配置文件保存为纯文本格式(如果需要对linux进程修改,使用命令只是进行了临时的修改,如果想要进行长久的使用,需要大配置文件中修改)
  • 由单一的小程序组成,组合的小程序却可以完成复杂任务
  • 尽量避免捕获用户接口

4:linux的系统目录

-  /boot:系统启动相关文件,例如内核,initrd
-  /dev:设备文件
    -  设备文件:
        - 块设备:随机访问,数据块
        -  设备文件:线性访问,按字符为单位
        -  设备号:分为主设备号和次设备号
- /etc:配置文件 一般系统的配置文件都在这个目录中
-  /home:用户 的家目录,每一个普通用户通常默认的家目录是/home/username; 用户在自己的家目录下面拥有该目录的全部权限
-  /root:管理员的家目录
-  /lib :库文件
    - .a 静态库
    - .dll, .so【share Object】 动态库
-   /media :挂在点目录,移动设备,我们可以挂载硬盘,光盘到这个目录下面
-  /mnt 挂载点目录,额外的临时文件系统
-   /opt 可选目录,第三方程序的安装目录
-   /proc :伪文件系统,内核映射文件
-   /tmp 临时文件 ,/var/tmp
-   /bin 可执行的文件纸文件,用户命令
-  /sbin 系统管理命令,只用root用户可以执行 ,例如 reboot命令

5:linux的命令分为内置命令和外部命令

1:内置命令 shell内部自己提供的 常驻内存 
    例如我们常见的cd pwd等命令就是内置命令,可以使用【type 命令】 进行查看,例如 type cat 结果为“cd is a shell builtin”表示shell内建的命令 

2:外部命令 shell自己内部不加载
    例如 man命令 type man 

6:linux的文件类型

  • d 目录文件
  • c 块设备文件
  • p 命令管道文件
  • l 链接文件
    • 普通文件
  • s 套接字文件

  • 使用【ls -l 】命令就可以 详细的列出当前目录下的所有文件
 [root@node01 /]# ls -l ./
total 102
dr-xr-xr-x.   2 root  root   4096 Jul 21 03:42 bin
dr-xr-xr-x.   5 root  root   1024 Jul 21 03:44 boot
drwxr-xr-x.   4 nginx nginx  4096 Jul 22 15:56 data
...
...

以上内容按空格大概可以分为八组

  • 第一组:代表了文件的类型以及权限
    例如 d 代表了该文件是目录类型的文件
    后面的共有9位 每三位一个 分别代表宿主的权限,宿组的权限,一起其他用户的权限,例如:r-x|r-x|r-x 代表了宿主具有可读可执行的权限,素组可读可执行,其他用户也具有可读可执行的权限
  • 第二组代表了文件硬链接次数
  • 第三组,四组代表宿主,宿组是谁例如 【dr-xr-xr-x. 2 root root 4096 Jul 21 03:42 bin】,则代表了宿主是root宿组是root,而【drwxr-xr-x. 4 nginx nginx 4096 Jul 22 15:56 data】则代表了宿主宿组都是nginx
  • 第五组代表了文件大小,以字节为单位
  • 六七八组则是最后一次修改的时间
  • 九组 代表了文件名

6:linux的系统时间

linux的系统时间是一个容易忽略但却非常重要的知识点
linux的系统时间分为硬件时间和系统时间
#:硬件时间是指主板上的时钟设备,也就是通常可以在BIOS中设置的时钟,这个时间有 
   主板上的电池供电维持
#:系统时间是指操作系统中的时钟,所有linux相关指令与函数都是读取系统时钟的设定
linux中有几个命令
【date】:时间管理  可以获得当前的系统时间也可以设置系统时间

通过该命令设置系统时间 【date -s “2016-07-22-21:24:00”】
硬件时间
hwclock ,clock[软连接实际指向hwclock命令]
【hwclock】有两个比较总要的命令参数
【-s】 – hctosys 参考硬件时间设置系统时间
【-w】 –systohc 参考系统时间设置硬件时间
例如:
[root@node01 /]# hwclock -s
但是在生产环境中我们一般不这样设置,一般企业中会有一台中心服务器连接带外网来更新时间,更新资源,其他的服务器通过内网连接到这台中心服务器来更新自己的系统时间

6.1配置ntp服务

ntp服务:网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC(Universal Time Coordinat
配置自己的ntp服务需要如下步骤:
1:安装ntpdate服务
【yum install ntpdate】安装完成后需要查看是否安转成功 ,如下图则代表安装成功

2:修改 /etc/ntp.conf 文件【不是必须需要修改的】 在文件的25行可以通过 vim +25 /etc/ntp.conf 直接打开文件

 20 # Use public servers from the pool.ntp.org project.
 21 # Please consider joining the pool (http://www.pool.ntp.org/join.html).
 22 #server 0.centos.pool.ntp.org iburst
 23 #server 1.centos.pool.ntp.org iburst
 24 #server 2.centos.pool.ntp.org iburst
 25 #server 3.centos.pool.ntp.org iburst
 26 server 0.uk.pool.ntp.org

从22 - 25 行代表的是centos官网自己提供的ntp服务器,
这里我把原来文件自己提供的ntp服务地址注释了,添加了一个新的ntp服务器的地址,如果在生产环境中,公司内部配置了ntp服务器,那么这个地址就是配置了ntp服务的那台主机地址
3:chkconfig ntpd on 设置ntpd服务开机自启动,这样ntpd服务就会每隔一段时间就去更新一下自己的时间,始终保持准确的时间
4:由于是第一次设置ntpd服务,虽然设置了开机自启动,但是需要重新启动主机才能自启动服务,为了不重启主机,在这里手动的开启一下服务,service ntpd start

进入/var/run/ 目录下使用ls命令,你会看到有一个叫做ntpd.pid文件,就代表你的ntpd服务正常启动了

几个常用的命令
chkconfig –list | grep ntp 查看ntp服务是否安装起来
chkconfig ntpd on 设置ntp服务开机自启动
service ntpd [start | restart] 手动启动ntpd服务

ntpd 和ntpdate的区别
ntpd:服务
ntpdate:命令,我们可以使用ntpdate命令达到以上同时的效果例如执行
[ntpdate 0.uk.pool.ntp.org] 就会修改本地的时间和远程互联网上的ntp服务器上的时间同步(前提是能连接到外网去)
ntpdate坏处:如果和实际时间差别较大,ntpdate会直接跨过去,而ntpd有缩短或缓略增长策略(算法) 会缓慢增加

暂时没写全,仅仅是一些零碎的内容,以后会慢慢补全

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值