关于linuxcast网站课程中linux安装配置基础课程的个人笔记

来源:互联网 发布:nodejs 数据库 编辑:程序博客网 时间:2024/04/28 15:04

linuxcast.NET(后期更名iter)网站已经关闭很久了

但是留下几部很不错的课程  内容简明扼要

特此进行整理


01linux安装


安装界面


install or upgrade    尽量安装驱动  

install system with    尽量保证基本图形界面
 
rescue installed     拯救已经安装的操作系统    会出现回复环境

boot from  local drive   本地硬盘启动    跳过光盘引导

memory test   内存测试 在生产环境下  测试硬件




注: 安装程序也是linux操作系统




是否校验光盘     可忽略  节省时间


CentOS    社区版红帽   诞生于社区的企业操作系统


选择磁盘驱动  
    basic storeage    普通PC或者实验机
    speciallzed   storage      存储 服务器  专用存储盘柜   以太网



是否格式化所有数据       新盘  选是



设置主机名


时区   UTC  格林威治时间


设置ROOT用户密码

磁盘分区

    所有空间   全盘自动创建分区

    修改
    
    使用空闲

大多分区比较危险  建议创建自制分区

硬盘   sda 第一块硬盘   sdb第二块硬盘    sda1 第一块盘的主分区第一块   
    software RAID 软RAID      LVM  逻辑卷  将所有硬盘统一整理

    swap  交换分区  超过4G 就设4G  小于4G 设内存两倍    服务器最多16G

    force to  be  primary partition   强制分到主分区

    Encrypt 目录加密   安全装置   影响性能   但 能从物理上保密

配置引导 若有多块 需要选择   默认MBR

    可对引导程序加密

发行版本开源软件的安装选择  默认最小化

    可选基础服务器  网络服务器  虚拟化服务等

    初学者可选择 桌面环境desktop

检查依赖性  可自动解决依赖关系


开始安装


重启进入grub界面  引导操作系统



启动  版权信息

    创建普通用户

    配置时间  synchronize  网络时间同步  服务器专用  NTP 网络时间服务

    Kdump  当死机时  可把当前内存数据备份出来  

    
重启   

02.Linux基本操作

 
第一节   GNOME图形界面基本操作

    edit behavior  始终以浏览器方式打开  可切换

    connect server  远程服务请登录

    界面用户  root


第二节     命令行BASH的基本操作

    CLI       命令行
    GUI    图形界面    主流操作系统默认图形界面

    GUI: GNOME  LEDX   Xfce
    CLI: BASH

    打开linux   打开模拟终端   

    BASH    

          提示符      # 根用户       $ 普通用户

        命令一般三个部分    命令  选项  参数   

             命令      例如:    hostname     ls     uname内核名

        参数     如:  uname -r     uname  -a      uname  --all

        
        firefox      打开火狐浏览器   但终端成为单进程
        firefox &     将火狐进程作为后台运行   放置终端成为单进程的程序   
        
        ctrl + C  中断终端命令程序操作
        
        tab键可以作为命令补全    按两下tab可以查看所有相应开头的命令


        tab也可以作为补全文件名   按两下tab可以查看所有相应开头的文件

        但是tab不能补全参数

        上下键可以浏览曾经执行过的命令
      
        history 可以查看命令历史

        !!可以执行上一个命令

        !字符    重复之前以“字符”开头的

        !num      重复前一个历史记录第num个的命令

        !?abc     重复之前包含abc的命令
                
        !-n    重复几个之前的命令


        ctrl+R  可以查找之前包含任何名的命令

        命令后按下 . 可以重复之前命令的参数   

    通配符    
        *    匹配零个或多个
        ?    匹配任意一个字符
        [0-9]    匹配一个数字范围
        [abc]    匹配abc列表里任何字符
        [^abc]    匹配abc列表以外的字符
    
    切换用户

        su -           切换到root用户(进入新root环境)
        su - test    切换到test用户  (前提是系统有这个用户)

        su         切换到root用户

        su  后的  -   不加    为仅仅切换身份  但不切换终端  可用exit退出root用户


        su -    切换到root用户(进入新root环境)

        su    切换到root用户 但不切换终端  可用exit退出root用户

        sudo     使用管理员身份执行命令   sudo su
    
        sudo + 命令   让普通用户能执行管理员的命令

        id      当前用户信息
        
        passwd     修改用户密码    不合规则或密码太短会被限制修改

        
    BASH 作业管理

        在命令后添加&  可以把命令放到后台运行
        jobs可以查看后台运行的命令

        sleep 5000   进程休眠5000秒   
        ctrl+C    终止
        ctrl+Z    暂停
        
        bg+后台编号     继续后台该编号的程序
        fg+编号    fg 2     吧后台拉到前台
        


第三节    LINUX文件系统结构

    linux文件为一个倒转的单根树状结构
    文件的根目录为“/”
    文件严格区分大小写
    路径用“/”分割
    win 用“\”
    
    
    /
    /dev  /boot      /etc  /home  /use          /var              /lib  /proc  

        /grub                /tmp     /log         /lib

                                /sa   /mall

    当前工作目录

        每一个shell 系统进程都有一个当前工作目录
    
        pwd可以查看当前工作目录

    
    文件名称
        
        文件严格区分大小写

        名称最多为255个字符

        除了斜线外都是有效字符

        通过touch来创建一个文件  或者更新已有文件的时间

        以“.”开头的文件为隐藏文件  大多是配置文件

    
    ls 命令

        ls -a          显示所有文件包括隐藏文件

        ls -l        显示详细信息

        ls -R        递归显示子目录结构

        ls -ld        显示当前目录信息和链接信息

        file+文件(文件夹)    查看文件类型

     绝对路径和相对路径

        绝对路径以“/”开头 递归每级目录到目标目录

        以当前目录为起点到目标目录  受到当前目录的限制

    切换目录

        cd + 目录    切换目录   
        
        cd ..        上一级目录
        
        cd ~        切换到家目录
        
        cd -         上一个目录


第四节 linux文件基本操作管理

    复制文件目录
        
        cp  源文件(夹)  目标文件(夹)

    常用参数

        -r       将目录下的所有文件和文件夹都复制

        -v    显示详细信息

    移动 重命名文件或目录

        mv  文件 目标目录

    如果指定文件名  可以重命名文件

        mv  文件 新文件名

    
    创建删除文件
    
        通过touch命令可以创建一个空文件或更新文件时间
    
        通过rm命令可以删除文件或者目录
    
            常用参数
                -i    交互式删除
                -r    递归的删除包括目录中的所有内容
                -f    强制删除 没有提示

        创建目录

            mkdir     创建目录
            rmdir    删除目录 无法删除非空文件夹

            rm -r (-f)  删除一个非空目录


第五节  linux系统目录架构
    

    
        

    
    /
        /dev  
        /boot      
            /grub
        /etc  
        /home  
        /use         
        /var
            /tmp
            /log
                /sa
                /mall
            /lib            
        /lib  
        /proc  



    目录功能

    / 根目录
    /
    /bin        保存的是可执行二进制文件  所有用户可用

    /boot         引导文件   vmlinuz  内核文件爱你
    
    /dev        所有设备模拟为文件  sda 硬盘    tty终端

    /ect        所有配置文件    都是纯文本  常是.conf结尾

    /home        家目录    用户的私有文档    家目录有所有正常一般用户的信息  root家目录单独一个

    /lib        库文件

    /media        自动挂载
    
    /mnt        临时挂载目录

    /opt        装大型软件    

    /proc        虚拟文件夹 只存在于内存    内存实时信息   进程会在其中创建一个数字文件夹  cpuinfo  acpi

    /sbin        super bin  只有超级用户才能执行的命令    

    /selinux    安全目录

    /sys        系统底层硬件

    /tmp        会自动删除

    /usr        一般软件安装的目录

    /var        服务器常变化的信息

    /



    
第六节  linux系统常用命令


    命令date 用查看设置当前系统时间  date -u 格林威治时间

        格式化显示      +%Y--%m--%d    年月日
                

        date -s    设置当前时间  需要超级用户

        hwclock 或者 clock  可以查看系统硬件时钟

        uptime    以查看系统运行时间

        cal    查看日历

    输出查看


        echo     显示输入内容

        cat     显示文件内容
    
        head    显示文件头几行   -n指定行数   默认10行

        tail    用以显示文件的末尾几行    -n指定行数    -f追踪显示文件更新   常用于查看日志


        more    翻页形式显示文件内容    只能向下翻

        less    翻页形式显示文件内容  能上下翻页

    查看硬件信息

        lspci    查看PCI设备    -v详细    
        
        lsusb    查看USB设备      -v详细

        lsmod    查看加载模块    (查看加载的所有设备驱动)


    关机重启

        shutdown 关机重启   -h 关机  -r 重启

        立即关机:    shutdown -h now

        10分钟后关机:    shutdown -h +10

        23:00关机:    shutdown -h 23:00

        立即重启:    shutdown -r now

        快捷命令
            poweroff      立即关机

            reboot        立即重启

    归档压缩

        zip压缩

            zip linuxcast.zip  myfile   将myfile压缩到linuxcast.zip

        unzip解压


            unzip    linuxcast.zip

        gzip压缩文件
            
            gizp     linuxcast.zip

        tar归档文件
 
            tar -cvf out.tar linuxcast    -c为创建   -v为显示细节  -f为指定文件

            tar -xvf linuxcast.tar        -x为解开归档

            tar -cvzf backup.tar.gz /etc    -z为调用压缩

            -z参数将归档后的文件进行gzip压缩以减少大小

            -v为显示细节  -f为指定文件   -c为创建   -z为调用压缩

du -sh file  查看file的大小

        查找

            locate 快速查找  需要预先建立数据库   默认数据库每天更新一次
                    可用updatedb  刷新数据库

            find    高级查找

                find 查找位置  查找参数
            例如:
                
                find . -name *linuxcast*       查找当前目录里包含linuxcast文件
            
                find / -name *.conf        以文件名从根目录查找以.conf结尾的文件

                find / -perm 777        从根目录查找权限为777的文件

                find / -type d            查找类型目录
    
                find . -name "a*" -exec ls -l {}\ ;    查找并执行
                    当前目录查找以a开头的文件  并且传递到下面用 ls -l 列出
                find . -name "a*" -exec ls -a {}\ ;
                find . -name "a*" -exec cat {}\ ;
                
            -perm     权限
            -name    文件名
            -user    用户
            -group    组
            -ctime    修改时间
            -type    文件类型
            -size    文件大小



第七节 vi与vim文本编辑器

        CLI下的文本编辑器  另外还有emacs  gedit

        vim  file     打开file开始编辑    如果不存在 则自动创建

        
        VIM有三种模式

            命令模式(常规)
                通过esc都可以回到该模式 可以取消 复制 粘贴
            插入模式
                在命令模式中按下“i”键  按esc可返回命令模式
            ex
                按下“:”进入   可以进行保存和退出

            
            i      在光标前插入文本
            o    在当前行下面插入新行
            dd    删除整行
            u    撤销上个操作
            yy    复制当前行  放入缓冲区
            p    将缓冲区内容放到光标后
            n+yy    将n行复制出来到缓冲区
            r    替换当前字符

            /    查找关键字   n可以各个光标切换


        命名模式下按下“:”可以进入ex模式

            :w    保存当前修改
            :q    退出
            :q!    不保存 强制退出
            :x    保存并退出
            
            :set number     显示行号
            :!系统命令     执行系统命令  enter继续

            :sh切换到命令行     ctrl+d可回到VIM编辑


03.Linux磁盘及文件系统管理
 
第一节    磁盘基本概念

        单盘片 多盘片  每个盘配磁头  转速越高 性能越好 7200  5400

        固态硬盘只是存储芯片  速度快500M/S

        机械硬盘基本概念

            柱面     cylinder       所有盘片某一圈的集合
            扇区    sector        中心到边缘的扇形区
            磁头    head        每个磁头大概512字节

        磁盘在linux中表示
        
            所有设备都被抽象为文件 保存在/dev下

            设备名字一般为 hd[a-z]  sd[a-z]  (a-z为分区号)
            如: hda,hdb,sda,sdb
    
            IDE设备的名称为 hd[a-z],SATA,SCSI,SAS,USB 等设备名称为sd[a-z]

            硬盘1      /dec/sda
            硬盘2    /dev/sdb
            硬盘3    /dev/sdc

        分区概念
    
            将磁盘逻辑分区 方便管理

            linux中是 设备名称+分区号

            硬盘1的第1分区    /dev/sda1
    
            硬盘1的第2分区    /dev/sda2

            硬盘2的第1分区    /dev/sdb1

            硬盘2的第2分区    /dev/sdb2

        主流分区机制为  MBR  和  GPT

            MBR(Master Boot Record)是传统的分区机制
            应用于绝大多数使用BIOS的PC设备  EFI代替BIOS

            MBR支持32bit和64bit系统
            MBR支持分区数量有限
            MBR仅仅支持不超过2T的硬盘 ,超过2T的硬盘则只能用2T

            MBR共512字节  
            前446字节为引导代码
            接下来4×16字节为分区表
            接下来两个字节为   55h  AAh             

            MBR分区
            主分区      最多四个主分区
            扩展分区    扩展分区会占用一个主分区位置  用于承载逻辑分区 无法直接使用
            逻辑分区    linux最多支持63个IDE分区和 15个SCSI分区
            
            /dev/sda
            /dev/sda1     /dev/sda2     /dev/sda3     /dev/sda4

            /dev/sda
            /dev/sda1     /dev/sda2     /dev/sda3     /dev/sda4    
                                    /dev/sda5------    /dev/sda6------    /dev/sda7
    
            GPT(GUI Partition Table)是一个较新的分区机制 解决了MBR了很多缺点
        
            支持超过2T的磁盘
            向后兼容MBR
            必须在支持UEFI的硬件上才能使用
            必须用64bit系统
            Mac和linux系统都能支持GPT分区格式
            
            Windows7 64bit ,WindowsServer2008 64bit支持GPT
            
第二节    使用fdisk进行磁盘分区

        FDISK分区工具来自IBM的老牌分区工具  支持大多系统
        几乎所有linux的发行版都有fdisk    包括linux  rescue模式下也能使用
        
        fdisk是个机遇MBR的工具    如果需要用GPT则无法使用fdisk   大于2T的磁盘无法使用

            fdisk只有超级用户权限才能用
            使用fdisk -l可以显示所有磁盘的信息
            使用fdisk /dev/sda可以列出所有安装的磁盘及其分区信息
            
                进入交互命令
                
                m    帮助
                n    创建分区
                p    列出分区
                t    修改号
                w    保存修改

                按下N创建分区
                    e    扩展分区
                    p    主分区
                    按下p创建主分区    
                        输入分区号
                        或输入大小  +2G
                按下N创建分区
                    e    扩展分区
                    p    主分区
                    按下e创建扩展分区
                        无需输入 直接确认
                按下N创建分区
                    l    逻辑分区  (永远从5开始)
                    p    主分区
                    按下l创建逻辑分区
                        输入分区号
                        或输入大小  +2G    
                
                按下T修改分区ID
                    输入类型数字
                    L    列出类型

                    按83linux为正常分区    按82swap为交换分区
                
            按下W保存写入并退出


            有时分区后需要用partprobe命令 让内核更新分区信息

            查看 /proc/partitions 查看分区信息


第三节    linux文件系统

        需要创建文件系统才能用    过程称为格式化   没有经过此过程的为裸设备raw

        常见的文件系统有fat32  NTFS  ext3  ext4  xfs HFS  等

        问阿金系统之间的区别 : 日志 支持分区大小  支持单个文件大小

            win下主流为NTFS
            linux主流为ext4

        linux支持的系统  ext    nfs  iso9660 gfs  jfs  vfat  fat(msdos)

        mke2fs    用来创建文件系统

            mke2fs -t ext4 /dev/sda3   将第一块硬盘的第三个主分区格式化为ext4文件格式

            常用参数:
            -b  +大小    指定文件系统块大小 每次读写系统块的大小  4K就是4096字节
            -c        建立文件系统时检查坏损快
            -L label    指定卷标  磁盘取名
            -j        建立文件系统日志    ext4带日志 无需使用

        mkfs亦可以创建文件系统  单相比mke2fs比较简单  但是支持的参数比较少 不能精细化控制

            mkfs.ext3 /dev/sda3    将第一块硬盘的第三个主分区格式化为ext3文件格式
            mkfs.ext4 /dev/sda3    将第一块硬盘的第三个主分区格式化为ext4文件格式
            mkfs.vfat /dev/sda3    将第一块硬盘的第三个主分区格式化为vfat文件格式

        dumpe2fs查看分区文件的系统信息
        
            dumpe2fs /dev/sda2
        日志
            带有日志的系统有较强的稳定性

            日志两阶段提交   将准备执行的事计入日志  然后操作   执行之后删除

        E2LABEL对文件系统打标签

            e2label /dev/sdb1  查看系统标签
            e2label /dev/sdb1 LINUX        打上LINUX标签

        FSCK用来检查修复损坏的文件系统

            fsck /dev/sdb1    检查系统()检查前需要卸载

            使用 -y 参数不提示且修复

            fsck自动判断文件系统类型 如果损坏比较严重 建议加上 -t 参数

            对于识别文件的损坏数据有些找不到记录,将会计入lost+found目录
    
            系统启动都校验磁盘


第四节 linux文件系统挂载管理

        磁盘创建好文件系统之后 挂载后才能使用

        win和mac都是自动挂载 一旦创建好之后自动挂载

        linux需要手工挂载

            /dev/sda2     到    /mnt

        mount挂载格式化的磁盘分区
    
            mount /dev/sda1 /mnt/     将第一块磁盘的第一主分区挂载到  /mnt目录下

            -t    指定系统类型  默认自动识别
            -o    指定挂载选项

                ro  rw   只读  还是  读写

                mount -o remount,ro /dev/sdb1 /mnt/  

                将sdb1以只读形式重新挂载到/mnt目录

            sync    代表不用缓存 将所有操作直接写入磁盘
            async    代表使用缓存 默认是async
            noatime    每次访问文件是不更新文件访问时间
            atime    每次访问文件是都更新文件访问时间
            remount    重新挂载文件系统

                mount -o remount,sync /dev/sdb1 /mnt/

                将sdb1以不用缓存写入形式重挂载到/mnt目录

                mount -o remount,ro,noatime /dev/sdb1 /mnt/

                将sdb1以 只读形式 且 访问时不更新文件时间形式 重新挂载到/mnt目录

        umount用来卸载已经挂载的文件系统  相当于win中的弹出

            umount    文件系统/挂载点

            umount /dev/sda3   即   umount /mnt/
    
        如果出现报错,则说明文件系统正在被使用,无法卸载
        
        可用fuser查看哪些进程在使用该文件系统

            fuser -m /mnt    

        可用lsof查看哪些文件被打开了

            lsof /mnt

        自动挂载

            配置文件/etc/fstab来定义需要自动挂载的文件系统
            fstab中每一行代表一个挂载的配置

            格式如下

            /dev/sda3    /mnt    ext4    defaults    0 0
            要挂载的设备    挂载点    格式    挂载选项    dump和fsck相关选项

            要挂载的设备也可以使用label进行识别  label可以取代第一路径

            label=卷标    /mnt    ext4    defaults    0 0
            要挂载的设备    挂载点    格式    挂载选项    dump和fsck相关选项

            mount -a命令会挂载所有fstab中定义的自动挂载项


04.Linux下获取帮助
 


 获取linux帮助信息

    没有必要记住所有东西

    linux提供了极为详细的工具和文档 养成查看文档的习惯
    
    help
        
        几乎所有命令都可以用 -h  --help  就能获取方法参数帮助

        ls --help

    man命令是常用帮助命令  

        man ls     将ls命令作为man命令的参数 查看帮助

        man文档类型共9种

        1    用户命令
        2    内核系统调用
        3    库函数
        4    特殊文件和设备
        5    文件爱你格式和规范
        6    游戏
        7    规范标准和其他页面
        8     系统管理命令
        9    linux内核API    

    man -k  关键字   可以用来查询包含关键字的文档

    info和man类似  但更加详细

        man和info都可以通过  /+关键字 查找

    doc帮助文档

        以TXT HTML PDF 保存在 /usr/share/doc文件夹中


05.用户及权限基础

第一节  linux用户基础

    用户,组

    当我们用linux是需要一个用户的身份登入,
    一个进程也需要一个用户的身份运行,
    希望根据用户来限制使用或者进程可使用的资源

    组用来方便组织管理用户

        每个用户拥有一个userID,操作系统实际使用的是用户ID,而非用户名
        每个用户属于一个主组,属于一个或多个附属组
        每个组拥有一个GroupID
        每个进程以一个用户身份运行,并受到该用户可访问的资源限制
        每个可登陆用户拥有一个指定的shell

    用户
        用户ID为32位  从0开始,但是为了和老系统兼容 ID限制在60000一下
    
        root用户(ID为0的用户就是root用户)
        系统用户(1~499)为了进程服务创建的   没有shell
        普通用户(500个以上)
        
        系统中的文件都有一个所属用户及所属组
        使用id命令可以显示当前用户的信息
        使用passwd命令可以显示当前用户的信息
        
    相关文件

        /etc/passwd    保存用户信息
        /etc/shadow    保存用户密码,加密的
        /etc/group    保存组信息

        passwd文件中
            7个部分每个都用:隔开
            第一个是用户名
            第二个是密码x 表示保存在shadow当中
            第三个是用户ID号
            第四个是组ID
            第五个是用户的描述信息  可能为空
            第六个是用户家目录信息
            第七个是用户登录的shell   1-499用户使用sbin中的nologing

        shadow文件中
            每个部分都用:隔开
            第一个是用户名
            第二个是密码 !!为用户没有创建密码   或加密后密码 $ 分割 加密类型  加密加入
            
        group文件中
            每个部分都用:隔开
            第一个是用户名
            第二个是组密码  早期换组用
            第三个是用户ID号

    查看登录的用户
        
        命令whoami显示当前用户
        命令who显示有哪些用户已经登录系统
        命令w显示有哪些用户已经登录并且在干什么

    创建一个用户
    
        命令useradd用来创建用户

            useradd 用户名

        这个命令会执行以下操作
    
            在/etc/passwd中添加用户信息
            如果使用passwd命令创建密码 则将密码加密保存在/etc/shadow
            为用户建立一个新的家目录/home/用户名
            将/etc/skel中的文件复制到家目录
            建立一个与用户用户名相同的组 并且新建用户默认属于这个组
        
        useradd支持的参数

            -d     指定家目录
            -s    登录shell
            -u    userID
            -g    主族
            -G    附属组(最多31个,用“,”分割)
            
        也可以通过直接修改/etc/passwd的方式实现,

    修改用户信息

        命令usermod用来修改用户信息

            usermod 参数 username
        
        命令usermod支持一下参数
        
            -l    新用户名
            -u    新userid
            -d    用户家目录位置
            -g    用户所属主组
            -G    用户所属附属组
            -L    锁定用户使其不能登录
            -U    解锁用户
        

    删除用户
    
        命令userdel用来删除指定用户
    
            userdel 用户名        但保留用户家目录

            userdel -r 用户名    同时删除用户的家目录

    组
        用过部门职能和地理创建组
        
            每个组都有一个ID
            组信息保存在/etc/group
            每个用户有一个主组  最多可以有31个附属组

    创建删除修改组

        命令groupadd用来创建组

            groupadd 组名

        命令groupmod用来修改组信息

            groupmod -n 新组名 旧组名
        
            groupmod -g 新组ID 旧组ID

        命令groupdel用以删除组
    
            groupdel 组名

        
第二节    linux权限机制

    权限
    
    权限是操作系统用来限制对资源访问的机制,权限一般分为 读 写 执行
    每个文件都拥有特定的权限 有所属用户和组
    
    每个进程都是以用户身份来运行

    linux三种权限  

        读r    可读取文件的内容    可可列出目录内容

        写w    可以修改文件内容    可在目录中创建删除文件

        执行x    可以作为命令执行    可访问目录内容

    目录必须有X权限,否则无法查看其内容

    UGO模型

        linux的权限基于UGO模型进行控制

            U代表User,G代表Group,O代表Other
    
            每个文件的权限基于UGO进行设置
        
            权限三个一组rwx,对应UGO分别设置

            每个文件拥有一个所属用户和所属组,对应UG,
            不属于该文件所属用户据或者所属组的使用O权限
        
        命令 ls -l 可以查看当前目录下文件的详细信息

            drwx-xr-- 2 sky testing 208 Oct 2 14:03 linux

             drwx-xr--     表示UGO

            2        表示连接数量

            sky        表示所属用户

            testing        表示所属组

            208        大小
        
            Oct 2 14:03     建立时间

            linux        文件名

            d为文件类型

            rwx    为U用户权限
            r-x    为G组权限
            r--    为其他权限

    修改文件所属用户和组

        命令chown用来改变文件的所属用户

            chown 用户名 要修改的文件名

            -R 参数递归的修改目录下所有文件的所属用户

        命令chgrp用来改变文件的所属组

            chgrp 组名 要修改的文件名

            -R 参数递归的修改目录下所有文件的所属组

    修改权限
        
        命令chmod用来修改文件的权限

            chmod 模式 文件

        模式为如下格式:

            u g o 分别代表用户,组和其他

            a可以代指ugo
        
            + - 代表加入或者删除对应权限

            r w x 代表三种权限

        模式示例

            chmod u+rw linux    要修改所属用户权限 加入rw权限
    
            chmod g-x linux     为组删掉X权限

            chmod go+r linux    为组和其他加上r权限
    
            chmod a-x linux        为所有组删掉X权限

        -R可以递归修改目录下所有文件权限

        也可以用数字的方式修改权限

            r=4     2^2
            w=2    2^1
            x=1    2^0
        
        使用数字权限表示
        
            rw     = 4+2      = 6
            rwx     = 4+2+1    = 7

        所以以数字修改要三个都修改

        

第三节  linxu默认权限 特殊权限

    默认权限

        每个终端都有 umask 属性  来确定文件默认权限    umask可查看

        umask使用数字权限表示 (后三位)  如  022   777    

        目录的默认权限是      777 - umask

        文件的默认权限是    666-umask

        普通用户的默认umask是     002  
        
        root用户的默认umask是    022

    
    特殊权限

        umask的第一位

        三个特殊权限

        suid    以文件命令的所属用户身份执行    对目录无影响
            而非执行文件的用户

        sgid    以文件所属组身份执行        在该目录中创建的任意性文件所属组与该目录的所属组相同
                            所有子文件都继承目录的组
        
        sticky    对文件无影响            对目录拥有写入权限的用户仅可以删除其拥有的文件
                            无法删除其他用户文件

        
    设置特殊权限

        设置suid

            chmod u+s linux

        设置sgid

            chmod g+s linux

        设置sticky

            chmod o+t linux

        和普通权限一样,特殊权限也可以使用数字方式表示

            - SUID = 4

            - SGID = 2

            - STICKY = 1

        所以我们可以通过以下命令设置

            chmod 1755 linux

06.Linux网络基本配置
 

第一节    网络基础

    网络编址 确定唯一定位PC个体
        
        IP编址是最常用的网络编址方案,一个IP地址标识一个主机(或者一个网卡接口)

    现在应用最广泛的是IPv4编址,已经开始逐步向IPv6编址切换

    IPv4地址为32位长,IPv6地址为128位长

    一个IPv4地址分为两个部分:网络部分和主机部分

    网络部分用来表示所属区域,主机部分用来标识该区域中的哪个主机

        32bit  网络部分 主机部分

    IPv4地址共32位,通常使用点分十进制方式表示

    整个IP地址分为4个部分    每个部分8位

        192    .    168    .    1    .    1
        11000000    10101000    00000001    00000001


    子网掩码
    
        IPv4地址的32bit分为网络部分和主机部分
    
        我们通过子网掩码来确定网络部分的位数

        子网掩码与IP地址一样    拥有32bit    
        
        每一位与IP地址中的每一位一一对应

        IP地址中相对应子网掩码中卫I的部分为网络部分

    例:

            192    .    168    .    1    .    1
            11000000    10101000    00000001    00000001
    子网掩码:
        
            255    .    255    .    255    .    0
            11111111    11111111    11111111    00000000

    证明这个IP地址前24为是网络部分,也就是说,
    与此IP地址处在同一个网络的其他主的IP地址前24为相同以证明在同一个网络


    同一个网络主机之间的通信需要用到MAC地址

    不同网络之间的通讯需要用到网关路由

    在不同网络之间传输数据的功能叫做路由功能,一般有多个接口。连接到不同的网络中
    并且通过路由表进行数据转发

    192.168.1.0/24     eth0
    172.16.1.0/16    eth1
    61.1.1.0/30    eth2

    域名

    IP地址难记  因此使用域名管理

    域名分三个部分    

    类型    标识此域名的类型    (com,net,org,edu.gov)
    域名    域名称
    主机名    该域名中的某台主机名称

        www    .    baidu    .    com
        主机名        域名        类型

    域名对大小写不敏感

    DNS

    每个域名代表一个IP 而DNS服务就是用来在IP与域名之间进行转换的

    www.linuxcast.net    61.1.1.1

    
    个人PC发出DNS请求到运营商服务器
    运营商服务器解析域名发送域名的IP地址到个人PC
    个人PC用IP访问到需要访问的服务器

        QQ能上   网页出问题    DNS出问题

    基本网络参数
    
    要配置一个局域网通讯的计算机
        IP地址
        子网掩码
    要跨网段通讯
        IP地址
        子网掩码
        网关
    要配置一个可上网的计算机
        IP地址
        子网掩码
        网关
        DNS服务器        


第二节    linux基本网络配置

    以太网连接

        linux中 以太网接口被命令为:eth0 eth1等  0,1代表网卡编号

        通过lspci命令查看网卡的硬件信息(如果是USB网卡则可能需要使用lsusb)

        命令ifconfig查看接口信息
            ifconfig -a    查看所有以太网卡信息

            lo为环回接口 所有网卡都有

            ifconfig eth0    查看特定网卡信息

        命令ifup,ifdown用来启用关闭一个接口

            ifup eth0    启用网卡
    
            ifdown eth0    禁用网卡

    setup命令可以配置网络信息

    网络相关配置文件

        网卡配置文件

            /etc/sysconfig/network-scripts/ifcfg-etho

        DNS配置文件

            /etc/resolv.conf
        
        主机名配置文件
            
            /etc/sysconfig/network

        静态主机名配置文件
        
            /etc/hosts


    网络测试命令

        测试网络连通
        
            ping命令

        测试DNS解析

            host    域名
            dig    域名

        显示路由表
        
            ip route 查看路由表

        追踪达到目标地址的网络路径

            traceroute www.linuxcast.net

        使用mtr进行网络质量测试(结合了traceroute和ping)

            mtr 域名

    修改主机名
        
        实时修改主机名

            hostname 新名字
            然后重新加载终端

            重启之后失效

        永久修改主机名
        
            /etc/sysconfig/network

            HOSTNAME=新名字


    故障排查
        网络故障排查遵循从底层到高层 从自身到外部

        先看网络配置
            ip    子网    网关    DNS

        再看网卡网关是否连通
            ping

        查看DNS解析是否正常
            host 域名


07.Linux管道、重定向及文本处理


第一节    linux多命令协作:管道和重定向

    不要重复发明轮子

        开源文化的核心理念之一就是不要重复发明轮子,很多开源软件都是先有软件代码功能的重新组合
        就好象通过零件装配机器一样,源代码的开放和共享让这成为了可能,同时也大大的提高了效率和生产力
    
    管道和重定向

        在linux中大多命令都很简单,我们可以通过将不同功能的命令组合一起来达到某个复杂的功能的目的

        linux中几乎所有命令的返回数据都是纯文本的(因为命令都是运行在CLI的)

        而纯文本形式数据大多是输入格式,就让很多命令协作成为可能

        linux的命令行为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的

    命令行shell的数据流有以下定义

        STDIN        标准输入    0    键盘

        STDOUT        标准输出    1    终端

        STDERR        标准错误    2    终端

    命令通过STDIN接受参数数据
    通过STDOUT输出结果
    通过STDERR输出错误


    通过管道和重定向我们可以控制CLI数据流

        重定向

            >    将STDOUT重定向到文件(覆盖)    echo"linuxcast" > outfile
                将命令的输出保存到文件中    ls > outfile
                无法保存错误报错信息

            >>    将STDOUT重定向到文件(追加)    echo"linuxcast" >> outfile
                将命令的输出保存到文件中    ls >> outfile
                无法保存错误报错信息

            2>    将STDERR重定向到文件        ls nothere 2> errorout
                只将命令的报错信息保存到文件    
                正常信息不会被保存

            2>&1    将STDERR和STDOUT结合        ls nothere 2> alloutput
                将命令输出和报错都保存到文件

            <    重定向STDIN            grep linuxcast < /etc/passwd
                把文件信息传递给命令



        管道
            |    将一个命令的STDOUT        ls -l |greo linuxcast
                作为另一个命令的STDIN        find / -user linuxcast | grep video



        注:重定向到  /dev/null 的信息都会丢弃处理



        管道用来组合命令    重定向用来保存信息


第二节    linux命令行文本处理

    基于关键字信息搜索
        
        命令grep用以基于关键字搜索文本

        grep 'linuxcast' /etc/passwd

        find / -user linuxcast |grep Video
    
        -i    搜索忽略大小写    
        
        -n    显示结果所在行数

        -v    输出不带关键字的行

        -Ax    在输出的时候包含结果所在行之后的指定行数    x为行数

        -Bx    在输出的时候包含结果所在行之前的指定行数     x为行数


    基于列处理文本

        命令cut用以基于列处理文本内容

        cut -d: -f1 /etc/passwd        使用:作为分割符将passwd文件处理为列 然后显示第一列
        
        grep linuxcast /est/passwd |cut -d: -f3

        -d    指定分割字符(默认是TAB)

        -f    指定输出的列号

        -c    基于字符进行切割
            cut -c2-6 /etc/passwd    只显示第二到第六个字符

    文本统计

        命令wc用以统计文本信息

            wc linuxcast

        -l    只统计行数

        -w    只统计单词

        -c    只统计字节数

        -m    只统计字符数
    
    
    文本排序

        命令sort用以对文本内容进行排序        不支持中文

            sort    linuxcast

        -r    进行倒序排序

        -n    基于数字进行·排序

        -f    忽略大小写

        -u    删除重复行

        -t c    使用c作为分隔符分割为列进行排序

        -k x    当进行基于指定字符分割为列的排序时 指定基于哪个列排序 x为数字

    删除重复行

        命令sort -u 可以用以删除重复行

        命令uniq用以删除重复的相邻行    默认只能删除相邻重复行
        
    文本比较

        命令diff用于比较两个文件的区别

        diff linuxcast linuxcast-new

        -i    忽略大小写

        -b    忽略空格数量的改变

        -u    统一显示比较信息(一般用以生成patch文件,补丁文件)

            diff -u linuxcast linuxcast-new > final.patch    将文件区别做成补丁文件

    检查拼写

        命令aspell用来检查英文拼写

            aspell check linuxcast
            
            aspell list <linuxcast

    处理文本内容

        命令tr用于处理文本内容

        删除关键字

            tr -d'TMD' < linuxcast

        转换大小写

            tr 'a-z' 'A-Z' < linuxcast

    搜索替换
    
        命令sed用来搜索并且替换文本   

            sed 's/linux/unix/g' linuxcast    将linux字符替换为unix

            sed '1,50s/linux/unix/g' linuxcast

            sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' linuxcast

            sed -f sededit linuxcast


        单引号之间为正则表达式   将linux字符替换为unix   /g为全局替换   s指定行数

            
 
08.Linux系统启动详解
 
    LINUX系统启动详解

    系统启动流程
        
        BIOS

        MBR:Boot Code

        执行引导程序 - GRUB

        加载内核
    
        执行init进程ID为1

        runlevel        


    BIOS

        基本输入输出系统  硬件程序

        计算机第一程序  检查启动设备

        可启动设备在BIOS设置中进行定义 如USB  CDROM  HD

    MBR

        BIOS找到可启动设备后执行的引导代码

        引导代码为MBR的前446字节

    GRUB
    
        Grub是现在linux主流引导

        可以引导几乎现在所有操作系统

        Grub的相关文件在/boot/grub目录中

        Grub配置文件为/boot/grub/grub.conf

        配置格式

            title CentOS
                root(hd0,1)
                kernel /boot/vmlinuz-2.6.32-279.el6.i686 ro root =UUID=77272833-B6BB-4D53-B043-9541D1102EBD
                initrd /boot/initramfs-2.6.32-279.el6.i686.img
    
    kernel
        
        MBR的引导代码将负责找到并且加载linux的内核

        linux内核保存在 /boot/vmlinuz-2.6.32-279.el6.i686

        一般还会加载内核模块打包文件: /boot/initramfs-2.6.32-279.el6.i686.img

        linux为何保持kernel的精简将一些不常用的驱动,功能编译为模块,在需要的时候动态加载。而这些模块被打包保存为一个initramfs

        早期版本的linux使用initrd文件,initramfs是initrd的替代优化版本,比initrd更加节省空间,更加灵活

        命令dmesg可以查看本次启动是内核的输出信息

    INIT

        系统第一进程

        调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务

        linux运行级别

            -0     关机
        
            -1     单用户模式

            -2     不带网络的多用户模式

            -3     多用户模式

            -4     未使用

            -5     X11图形化模式

            -6     重新启动

        可以通过/etc/inittab配置文件修改默认的运行级别

        每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d

        命令runlevel可显示当前以及上一个运行级别

        命令init可以改变当前的运行界别    init 3  

    单用户修改ROOT密码

        为内核传递参数 1 或者 single   让系统进入单用户模式
        
        单用户模式下不启动任何服务

        单用户模式直接以root用户登录,且需要密码

        可以使用passwd修改root密码

    GRUB加密

        通过在grub.conf中的启动配置中加入如下参数可对grub加密

        password --md5

        加密后的密码可以通过grub-md5-crypt生成

 




 


0 0
原创粉丝点击