码迷,mamicode.com
首页 > 系统相关 > 详细

linux 复习2

时间:2015-12-28 15:38:34      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:

==========================1========================
 

计算机 :硬件 +软件

 
硬件 -----操作系统------应用程序
 
 
硬件 
技术分享
 
       中央处理 控制单元  cpu  :寄存器 ,缓存 (协调各之间速度不协调而设定的)
        存储器 :两段组成:内核空间 用户空间  (  row   ram组成地址空间)
                        row 只读存储器
                        raw 随机存储器
                存储空间寻址能力取决于 cpu的位数  32位 是 2的32次方  64位是2的64次方
 
                cpu通电 首先到rom内执行一些指令  bios
        
        io桥接芯片 :链接到主板,主板所有芯片的线 连入cpu总线   北桥南桥。高速总线 低速总线
                        离cpu近的是北桥    
 
 
        io 控制器: 外部 键盘等  接入 交给ios桥接芯片
                        有 轮询poll 和  中断    cpu跟中断控制器    
 
        io端口:来的知道是网卡ping或着键盘键输入
 
        系统调用:
    将底层细节隐藏起来,将其功能统一起来,封装上,作为中检层, 其跟硬件接触,上面是应用程序来进行交互。 将硬件设备的功能输出输出来 这个输出就叫做系统调用
 
        库:
        二次封装的系统调用。   被称作api  也就是库一致 在另一机器系统也能跑。 api一致
 
        库一致规范  POSIX  api规范
 
 
不同机器编译程序不能跑的原因 : 库的不一致
 
api也就是库都一样都可以编译,但是能不能执行 : 又涉及到 ABI  比如二进制程序格式 不一样, 比如  WINDOWS exe   linux 是elf后缀格式
 
 
 
 
操作系统启动 没有程序运行,还有很多进程。
        windows 是服务进程
        linux 是守护进程
        因为系统需要运行。
 
  
用户需要跟计算机接触的程序 :shell 外壳 ,也是一个程序  。谁来负责启动shell,shell启动找 接口,但是接口也是程序?谁来启动接口,所以就要有开机启动 程序。  所以开机必须要启动shell程序。
 
 
 
内核运行在内核空间  程序运行在用户空间
 
 3 :7
 
理论上 操作系统 启动后 内核程序应该退出,除非一些特权操作。所以大部分是应用程序在跑
 
 
所以内核程序先启动,提供接口, 在启动应用程序
 
外壳shell 程序  的父进程是谁呢?其不是第一个  init 是生产必要的进程的
 
内核是上帝的话,init 是上地的使者, 是用户空间的第一个进程。  用户空间进程的祖宗是init 
 
1991年 linxu 内核
 
linux: unix-like  类unix系统 
 
linux 出现之前
gun  : gpl协定  gcc emacs vi   但是就是缺少个核心、所以linux 出现有划时代意义
 
所以GUN Linux 就结合了。 GUN/linux
 
 
技术分享
 
GUN/Linux : 是有版本号的
 
α 内侧    β 公测   rc 发行候选
 
link: www.kernel.org 
 
3.13.2  
3 主版本  机制变
13 次版本号    重要更新
2   小漏洞bug
 
2.6之后 不看奇偶
 
使用centos 6.4 
 
 
linux :内核 
        init  早期是个脚本, 红帽6 用了ubantu的upstart  红帽7 传统linux兼容的 systemd
 
        shell 启动个 外壳 shell: bash 
                        bash版本号 : bash-3.4.1  bash-4.2.2
 
 
 
 
 
源码:  #前两者都有商业组织, 第三个是民间组织。 真正为技术人员喜欢的是 debian
        linux 发行商 :
                redhat   :比如 为redhat提供测试机制的 fedora  ,Centos,Mandriva
                    假设 不同发行商的版本的编号跟linux 内核没有关系
                       redhat4 : 2.4 内核  2.1 init    3.1 shell
                        redhat5 :2.6          new2.3     4.1  
                suse : SLES (suse企业版)  开放版opensuse
                debian :ubantu ---mint
                gentoo:提供通常都是iso都需要编译安装,比较难比上面的三个。
                LFS :
                bt:backtrace
 
程序包管理器:
 
    Redhat,Suse : RPM
    Debian: deb dpkg
 
 
 
 
 
安装引导程序 ,是跑在内核上的。接下来是init  
 
 
硬盘 : 
        分区 、
        格式化 : 其实穿件文件系统 方便管理众多文件
        键盘布局 
        时区
        设置用户
        发行版大量程序包 只选择自己需要的
 
    安装程序 :
            redhat 叫 anaconda  支持自动化配置,提供配置文件可以自动安装。 该文件叫kickstart。cobbler
        
linux 终端:
             物理设备 
                        表现为 /dev/console
            串行终端
                        表现为 /dev/ttyS#
 
            虚拟终端   
                        表现 /dev/tty# 
                        附加在物理终端上,一旦系统启动 就是虚拟了 ctrl+alt+f1-f6
                        图形终端ctrl+alt+f7  如果要进图形 要先启动图形服务startx ==== gnome kde
                        startx & 后台运行,释放命令提示符号
           
           伪终端 :模拟终端   
 
                    表现 /dev/pts/#
 
                    也叫模拟终端
                           1  远程链接终端   2 图形界面的右键打开的命令接口
                            xshell  crt 是伪终端
                        如何判断呢?
                            输入命令tty
                            [root@saltstack_s ~]# tty
                               /dev/pts/0
 
 
没有超过缓冲区的我们可以翻屏
shift+pageup/pagedown 翻屏
ctrl+c:终止当前程序
 
# tty命令 : 显示当前终端对应终端设备文件               
# who:  查看当前系统上登陆的所有用户
 
 
linux在实现操作系统hi的哲学思想:
    1 一切皆文件
             open read write close
    2 由众多目的单一应用程序组成,一个程序只做一件事,且做好;
     3组合目的单一的小程序完成复杂任务
      4 尽量避免跟用户交互
     5 使用文本文件保存配置信息
       6 提供机制,而非策略
 
一个accic码 是1个字节 byte 
 

技术分享

 
自由软件含义: 
        自由使用
        自由学习和修改
        自由 分发
        自由创建衍生版
 
 
shell 外壳两类:
            GUI :接口
                  桌面windows 
                    GNOME
                    KDE
                     XFACE
              CLI:命令行
                    bsh   csh  tcsh  ksh  bash  zsh
 
任何shell都是有环境的。
        各发行版默认使用的 bash
    
bash : 
        管理员  提示符# 
        普通用户 提示符是$
        提示符前面的是
        环境变量:
            变量说白了就是 内存空间,值是内存地址。
            ps1 :1级命令提示符   bash 根据这个来确定提示符的前面的内容
               
            #echo 命令
            
             引用一个变量 :${变量名}
                        技术分享    
                        \u :当前用户
                        \h:主机名
                        \W :工作目录的路径基名    
  对于linux 来讲 路径分隔符: /
        绝对路径:从顶层开始
         相对路径:从当前位置 开始的路径
  
 
目录是个路径映射符
 
技术分享
 
 
linux 出了根分区之外的其他分区是不能直接 作为操作系统入口使用的。只有根才可以。
 
其他分区只能在  根分区下的目录作为入口进入本分区
 
 
 
linux 文件系统结构:
             层次化 
                /:根
 
  用户 :自己所有操作权限的目录,家目录
 
工作目录: 当前所处的目录
 
cd :chage directory
        cd 目标
 
技术分享
        
basename :取路径基名
dirname:取路径目录名
 
 
linux系统特性:
            1 文件名 可以使用除/ 以外的任意字符,但总长度不超过255个
             2 严格区分大小写 abc ABC
 
 
如何获取命令帮助:
    bash 中,命令有两种类型
                builtin :在shell程序中实现的命令即为内建命令
                外部命令  :在文件系统上的某个位置,有一个与命令名称对应的可执行文件
    如何判断命令是内部还是外部? type 命令
技术分享
 
 
shell : 事先通过一个变量(PATH)设定好了多个路径,当用户输入命令时,首先在内部找,内部没有,然后在$path内从左向右找。有优先选择
        
        查找到并执行的命令会被保存到一个hash查找边中,可以使用hash命令查看此表
 
技术分享
 
hash查找hash查找表
 
查看命令或者可执行程序的具体路径:使用which 命令
 
命令的使用格式: 
        command  options  arguments
            命令              选项        参数
            选项: 修改调整 命令的执行特性的:
                    选项可以有多个, 有所谓的长选项,短选项  多个选项之间必须以空格分割
                           短选项: -char
                            长选项: --world
                            短选项可以合并  长选项一般不可以合并
                            有些选项也需要参数;
                             
            命令参数 : 命令的作用的对象。命令对谁生效的。
                有些命令可以带多个参数,各参数键需要使用空格分隔。 
                       
      程序基本四部  二进制  配置文件  库文件  帮助文件
获取命令帮助:
        内置命令: 
                    #help 命令名】
 
        外置命令:
                  #  命令 --help
                   使用手册 :manual
                               # man  命令  其实是调用了 less命令
                                        使用段落    
                                            NAME
                                            SYNOPSIS
                                            EXAMPLES
                                            DESCRIPTION
                              使用帮助中命令格式中的字符意义:
                                        []:   可选的部分
                                        {a|b}:分组的  a和b作为一个使用单元,
                                            | :表示只能选其一
                                          <> :表示必须不能少的部分
                                          ... : 表示 同类内容中可以出现多个
                    man的使用机制
                         翻屏
                                空格:向下翻一
                                     b: back 往回翻屏
                                  回车:一次向下翻一行
                                  k     :向上翻一行
                                ctrl+d :向文件尾部 翻半
                                ctrl+u :向首部翻半屏
                            文本搜索
                                        /keyword 向下搜索
                                                    n向下搜索  跟搜索命令相同方向 下一个
                                                    N 向上逆着  跟搜索命令相反方向 上一个
                                        ?keyword 向上搜索
                                   
                              q:退出
 
                        补充: man其实能为命令(普通命令、 管理命令)、 程序的配置文件格式、系统调用、库调用、游戏及其他 不方便归类的文件提供帮助手册
                                        passwd  配置文件 /etc/passwd
 
                                MAN    的分段机制:
                                    1-8
                                        1 :用户命令
                                         2 :系统调用
                                         3:库调用
                                        4:设备文件
                                        5: 文件格式
                                         6:游戏
                                         7:  杂项
                                         8 :守护进程
 
技术分享
 
        查看某关键字在哪个段落中有使用帮助,可以使用
            #whatis Keyword 
                    精确查找
                        提示: 如果刚装完系统即刻使用,whatis数据库还没有生成,可以使用makewhatis手动进行,执行等待时间比较长
            # man -k Keyword
                    模糊查找
                    如果我事先不知道命令有几段:用whatis 看 或者man -k
 
 
 
         info命令:   获取在线文档帮助命令info
 
            很多应用程序自带的有文档,
                     /usr/share/doc/
                    changlog install readme
           
        google :获取 帮助文档
            谷歌黑客  
            linux filetype:pdf
            keyword site:magedu.com
        redhat 官方文档:
            www.redhat.com/docs   
                                
 
        shutdown
        reboot
        halt
         date,hwclock
 
 
==================3========================
 
技术分享
 
 
 
 
系统管理命令
 
       # shutdown:   [options] ..  TIME
                -r  reboot
                -h  安全方式关机并切断电源
                -c  取消关机或重启任务
                 -H 
                  -P 
                
                 时间格式: 
                    now 
                        +num:  多少份子后
                      hh:mm
 
        #reboot
        # halt -p  切断电源
        # poweroff 
    
 
日期时间管理
        #date
                date 月日时分年.秒
               #date  显示时间
               # date MMDDhhmm[CC]YY.ss  设置时间
                技术分享  技术分享
             
 
        #hwclok  硬件时钟查看时间命令
 
 
        技术分享
 
        linux 有两个时钟: 
                硬件时钟: linux 刚开机 读的是硬件时钟
 
                软件时钟
 
 
 
 
总结: man,info,help,date,hwclock,cal,shutdown,reboot,halt,poweroff,type,cd,which,dirname,basename,who,which,whatis,makewhatis,echo,hash,tty
 
 
回顾:
只有一个入口
管连到根的分区叫根分区,根分区的系统叫文件系统,rootfs
 
其他分区要想访问,必须管理到根分区的某个目录,这个过程就是挂载
解除过程叫卸载
 
 
文件和目录管理类的命令:
   
命令行展开:能把一个特殊字符换成一个路径   
            比如~
                {,} 展开为多个条目
                        x/{a,b}  =  x/a , x/b
 
比如 cd ~user   切换到user的家目录
技术分享
 
目录:
            当前目录叫工作目录,还有家目录
 
 
             mkdir   创建目录
                -p 先创建父目录  递归创建
                -v  显示详细过程
 
                
                x/a , x/b , x/a/m , x/a/n
                    mkdir -pv x/{a/{m,n},b}
                a_c a_d  b_c b_d
                    mkdir -pv {a,b}_{c,d}
 
 
练习 一条命令不用空格创建
        技术分享
mkdir -pv  /tmp/mylinux/{usr/local/{bin,sbin},etc/{sysconfig,init.d},bin,sbin}
 
        执行输出结果
    mkdir: created directory `/tmp/mylinux‘
    mkdir: created directory `/tmp/mylinux/usr‘
    mkdir: created directory `/tmp/mylinux/usr/local‘
    mkdir: created directory `/tmp/mylinux/usr/local/bin‘
    mkdir: created directory `/tmp/mylinux/usr/local/sbin‘
    mkdir: created directory `/tmp/mylinux/etc‘
    mkdir: created directory `/tmp/mylinux/etc/sysconfig‘
    mkdir: created directory `/tmp/mylinux/etc/init.d‘
    mkdir: created directory `/tmp/mylinux/bin‘
    mkdir: created directory `/tmp/mylinux/sbin‘
 
 
练习创建 /tmp/a b
    shell 中的引用 
            ‘‘ "" ``
            mkdir -p /tmp/a\ b
            mkdir -p /tmp/‘a b‘
            mkdir -p /tmp/"a b"
 
rmdir  删除空目录
                -p  必须是一线单传的目录
 
 
 
 
上面创建目录 用到 引号
 
 
  shell 中的引用 
            ‘‘  :强引用,变量替换不会进行
            "": 弱引用,能够执行变量替换
            ``  :命令引用,引用命令的执行结果,命令替换的另一种符号$(命令)
 
            变量替换 :${变量名}
            
 
命令总结 : pwd mkdir rmdir
 
 
shell 特性之三 : 命令历史
 
    bash 保存过去曾经执行过的命令列表:
        当前shell 进程的保存在缓冲区中:
               缓冲区中的命令会在shell退出时保存至文件中,凡是以点开通的文件都是隐藏文件 .bash_history 
        
    使用上下箭头来看曾经执行过的命令
 
 
     history  查看命令列表  history 
              当前shell进程下的记录的
                每个伪终端 窗口都是一个单独的进程,会自己记录命令
            
               快捷键 :
                        !数字:!加数字表示执行该条 对应的命令
                        !! :表示上一条命令
                        !-数字:表示执行命令历史列表中的倒数第几条命令
                        !$ :表示 上一个命令的参数 :ESC  .    先按esc 松开再按点
                        !string : 最近一次以string 开头的命令
              选项
                    -c            :清空命令
                    -d  编号  :删除该编号的命令
                    -a            :追加当前会话的历史命令至历史文件中去;
                    -n            : 把文件历史命令加入到当前 history中
                    -w             : 把当前shell 的history显示的追加到文件中
                    -r             :
                查看历史命令值:
                    HISTSIZE:命令历史中可以保存的命令个数
                    HISTFILE: 命令历史文件
                    HISTFILESIZE: 命令历史文件可以保存的个数
                    HISTCONTROL: 控制命令历史的生成
                            igoredups : 忽略记录重复的命令,连续相同的命令才叫重复的
                            ignorespace: 不记录以空格开头的命令
                            ignoreboth:同时具有上面两种特性
 
linux 文件系统特性: 
        凡是以点开通的文件都是隐藏文件  用ls -a查看。
 
 
 
        shell 变量的赋值
                变量名=值
                注意: 变量在赋值时候不能用$
                            变量名,只能包含字母数字 和下划线,而且不能以数字开头
                            变量名区别大小写
 
 
 
FHS :
       linux系统目录结构 的标准
  
/bin  /sbin 是操作系统 启动就执行的
 /usr/bin /usr/sbin 除了系统的基本功能的命令 大部分正常功能都放在 /usr/bin /usr/sbin
/usr/local/bin /usr/local/sbin 用于按安装第三方应用程序  
 
    /bin :  binary 二进制 可执行程序,所有用户都能用的 超级管理员和普通管理员都能
    /sbin : 超级管理员有执行权限的命令
            /usr/bin
            /usr/sbin
            /usr/local/bin
            /usr/local/sbin
 
    /boot:存放系统引导文件:内核、init  ramfs文件、bootloader(grub):
 
    /dev :设备文件存放目录
    
    /etc: 配置文件的存放目录
            /etc/sysconfig:  系统的配置信息 网卡等
            /etc/init.d : 系统的服务脚本存放目录
    /home : 普通用户的默认与其用户名名称相同的家目录
    /root : 管理员的家目录
    /lib , /lib64  :库文件     
                64位系统有时候能装32位程序其实是为其提供了32 的库
    /media : 专用的挂载位置  通常用来挂载便携式设备  
    /mnt : 专用挂载设备,挂载额外存储设备
    /misc : 备用目录
    /opt: 备用目录,但通常用来安装第三方软件    扫描漏洞工具  nesus
    /proc:伪文件系统,是一种映射,运行中的内核参数特性的映射。有些是只读,有些可以改,一关机就没了。其显示的文件都不是文件  内核状态参数的 内核的所有参数映射成文件。文件内容就是变量的值。 遵循linux法则一切皆文件
 
    /sys : 伪文件系统,系统级别的用于外围设备特性的参数
    /srv:为本机服务提供数据存放位置的 早期
    /tmp: 临时文件系统 大家都放,但是只能各自管理自己的。
    /usr :  这个目录在装完系统是最大的。
            shared 所有可以遵循FHS各系统之间可以移植的  ,   readonly 
             必须要有   bin include lib  local  sbin  share
            /usr/include: 头文件,包含其他库,对其他库的引用的    编译安装linux时候  必须要接触的
    /var :频繁发生变化的文件,
                cache #搭建 vanish用到  yum包
                 lib 
                local 
                lock   #判断某个服务是否启动了,不让其启动第二次,写服务脚本时候
                 log 
                  opt
                 run  #一些服务的进程进程号id 
                    spool 
                    tmp
    
文件管理类的 命令
 
文件类型
 
bash 其他特性
 
shell中的管道和重定向
 
文本编辑器
 
正则表达式
 
文件查找
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

linux 复习2

标签:

原文地址:http://www.cnblogs.com/liujianzuo888/p/5082657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!