学习linux系统的几个简单案例

  • 修改网卡信息
  • 重启网络服务
  • 创建一个文件系统
  • swap分区创建步骤
  • 配置仓库的配置文件:
  • 源码编译安装
  • 伪文件系统(存放在内存中)
  • 文件管理命令
  • 用户管理:
  • 组管理
  • 密码管理
  • 修改资源的拥有者和所属组
  • 修改权限方法

从案例中学习linux系统,从linux系统中掌握基本使用!

修改网卡信息

#1.通过命令配置网卡地址:(临时生效,重启失效)
    ifconfig DEVICE [IP] netmask [MASK]
 #2.修改网卡配置文件(永久生效)
    /etc/sysconfig/network-scripts/ifcfg-eth0
    #网卡配置文件内容
        DEVICE="eth0"      #网卡设备名称
        BOOTPROTO="static"  #网卡启动协议(dhcp通过dhcp自动获取地址,static静态指定,none什么都不做)
        HWADDR="00:0C:29:78:7C:85"  #网卡mac地址
        NM_CONTROLLED=no  #是否接受另一个服务控制
        ONBOOT=yes    #网卡是否开机激活
        TYPE="Ethernet"  #网卡类型
        UUID="f332d9b1-4da0-4faf-83f7-cb893abff9bc"  #网卡在系统中唯一身份标识
        IPADDR=10.1.1.161  #ip地址
        NETMASK=255.255.255.0  #子网掩码
        GATEWAY=10.1.1.254  #网关
        DNS1=114.114.114.114  #dns服务器
        DNS2=115.115.115.115

重启网络服务

/etc/init.d/network restart
service network restart

创建一个文件系统

0.查看硬盘使用情况,确保有足够空间分区     #fdisk -l /dev/sda 
1.分区(fdisk,parted)    sda--> sda1 sda2 ... 
2.格式化(mkfs)          sda1 --> sda1 
3.挂载(mount)  #可选
4.写入/etc/fstab
5.mount -a测试


 0.查看硬盘使用情况,确保有足够空间分区 
    #fdisk -l /dev/sda 
    #常用命令
        p  #print打印分区表
        m  #menu打印命令的帮助
        l  #list列出已知的分区类型
        t  #type修改分区类型id
        n  #new新建分区(主分区,扩展分区,逻辑分区)
        d  #delete删除分区
        w  #write保存分区信息到分区表
        q  #quit不保存退出

    #需要重读分区表(通过重启或者命令重读)
        partx -a  /dev/sda

    #lsblk  列出所有可用块设备的信息

1.分区(fdisk,parted)    sda--> sda1 sda2 ... 
        #交互模式
            (1)、fdisk -cu FILE ——> 只适用于MBR分区
            (2)、parted FILE
                            mklabel msdos/gpt
                            mkpart     

2.格式化(mkfs)          sda1 --> sda1 
语法:  mkfs -t FS_TYPE 分区文件路径
    #mkfs -t ext4 /dev/sda5
    #mkfs -t ext4 /dev/sda6
    #mkfs -t ext4 /dev/sda7

3.挂载(mount)  #可选
语法: mount [option] SOURCE MOUNT_POINT
    #option
        -t FS_TYPE
        -a  #挂载fstab文件中的设备,测试fstab中设备是否能够正常挂载
        -o    option[,option]...  #指定文件系统挂载选项
            #文件系统独立挂载选项
            defaults    #不指定则使用此默认挂载选项,包含rw, suid, dev,exec,auto, nouser, async, and relatime 
            ro  #readonly,只读
            rw  #read&write,读写
            suid #此文件系统中的文件的suid位生效
            nosuid #suid不生效
            dev    #字符设备和块设备生效
            nodev  #不生效
            exec  #运行执行可执行文件
            noexec 
            auto  #可以被mount -a挂载
            noauto
            user  #允许普通用户挂载文件系统
            async  #异步写入
            sync  #同步写入
            realatime #实时更新atime

            #其他挂载选项
                remount  #重新挂载(不需要卸载)
                loop    #挂载本地的文件到本地的目录,用于挂载iso镜像文件

    #SOURCE
        设备路径
            /dev/sda5
        LABEL(一般不用,因为卷标是可以重复的)
            LABEL=xxx 
            #设置卷标
                e2label DEVICE [LABEL_NAME]
        UUID(设备在系统中的唯一身份标识)
            UUID=xxx
            #查看设备uuid
                blkid 块设备  
                #blkid /dev/sda5 

#umount  卸载
    前提: 文件系统或挂载点不能被其他进程占用
    lsof 
    fuser -av 

4.查看
    #blkid ——> 磁盘信息
    #free/swapon -s ——> swap分区信息

5.写入/etc/fstab
    linux的uuid码也是有内核提供的,在/proc/sys/kernel/random/uuid这个文件内
    格式:    SOURCE  MOUNT_POINT  FS_TYPE  FS_MOUNT_OPTION  dump fsck
        #    /dev/sda5              /mnt/movie              ext4    defaults        0 0
        #    UUID="d1b8d741-cf79-4c26-8b2c-5b81f4e9d989"    /mnt/music      ext4    defaults 0 0
        #    LABEL=entertainment    /mnt/yule      ext4    defaults 0 0

6.mount -a测试

swap分区创建步骤

方法一:  fdisk分区去扩展swap
1.创建分区
    fdisk -cu /dev/sda 
2.格式化成swap分区
    mkswap /dev/sda8
3.挂载
    #查看swap分区信息
        free
        swapon -s
    #挂载swap分区
    swapon  /dev/sda8 
    swapoff /dev/sda8
4.写入fstab

方法二:  使用大容量文件去挂载
1.生成一个大容量的文件
    dd if=/dev/zero of=/root/BIGFILE bs=1M count=500
2.格式化
    mkswap /root/BIGFILE
3.挂载
    swapon /root/BIGFILE
4.写入fstab

配置仓库的配置文件:

0.清除官方仓库配置文件(官方仓库速度慢)
    rm -rf /etc/yum.repos.d/*

1.创建一个仓库配置文件(/etc/yum.repos.d/以.repo结尾的文件)
vim /etc/yum.repos.d/local.repo
    [local_repo]  #仓库名称(不能有空格)
    name=xxx  #仓库说明
    baseurl=    #仓库位置url
            #baseurl=file:///media/cdrom
            #baseurl=http://mirrors.163.com/centos/6/os/x86_64/
            #baseurl=ftp://10.1.1.251/cdrom
gpgcheck=0    #是否检查证书 0 | 1
enabled=1      #是否启用此仓库 1启用(默认) 0禁用
gpgkey=PATH    #自动导入证书

2.测试仓库可用性
    yum clean all  #清除yum缓存
    yum repolist  #测试仓库可用性
    yum install #软件名称

源码编译安装

源代码    (编译器)    链接    目标代码
#automake,autoconf

#步骤:
    1.下载源码包(.tar.gz 或 .tgz)
        wget http://nginx.org/download/nginx-1.13.5.tar.gz -C /usr/local/nginx
    2.解压(tar -xf FILE)

    3.生成Makefile(定义软件功能开关,检查源码依赖的库是否齐全)    
        ./configure    --prefix=/usr/local/nginx 

    4.安装makefile定义的内容编译源码生成文件
        make 

    5.将目录代表安装到系统中
        make install

伪文件系统(存放在内存中)

proc  #进程信息,系统状态信息(cpu,内核,swap等)
    数字目录  #进程信息(扩展了解进程信息文件)
    cpuinfo  #cpu信息 
    meminfo  #内存信息(扩展了解文件各种参数意思)
    uptime  #运行时间
    cmdline  #内核启动时参数
    sys目录  #可修改内核参数映射文件

#/proc/sys  可修改内核参数映射文件
    net/ipv4/icmp_echo_ignore_all  #忽略icmp所有报文
    net/ipv4/ip_forward    #ip转发功能(0关闭,1开启)


#修改内核参数
    1.临时修改(不能用vi去改)
        echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    2.永久修改(/etc/sysctl.conf)
        #修改配置文件 /etc/sysctl.conf
        net.ipv4.ip_forward = 0

#让内核重新加载sysctl.conf读取新的内核参数: sysctl -p 

文件管理命令

创建文件
    vi/vim NEW_FILE
    touch FILE    #文件存在:修改文件时间戳,文件不存在:创建空文件 
    mkdir DIR 
        -p  #parents,自动创建父目录
        -v  #verbose

    #创建文件或目录对inode和block的影响
        1.向文件系统申请空闲inode用来存放文件的元数据
        2.在文件上一级目录的block中写入entry(文件与inode对应关系)
        3.如果往文件写入内容向文件系统申请空闲block

查看文件
    ls [option]... PATH... #查看文件内容
        -a  #all,显示所有文件包含隐藏文件
        -l  #long,显示文件属性
        -i  #inode,显示文件inode编号
        -d  #directory,显示目录本身
        -R  #recursive,递归性地显示文件内容

        通配符  #功能是用于匹配文件名(在路径中使用)
            *  #任意个任意字符
            ?  #单个任意字符
            []  #字符集合,可以是[]中的任意一个字符
                #shell定义的一些字符集:
                    [:digit:]    #数字集合  
                    [:alpha:]    #字母集合
                    [:upper:]
                    [:lower:]
                    [:alnum:]    #数字+字母    
                    [:blank:]    #空白字符(制表符,空格,换行符)
                    [:space:]    #空格


    du  #查看文件占用磁盘大小
        -s  #summary 汇总,只显示目录大小
        -h  #human-readable,显示单位
    场景:磁盘空间不足需要清除日志文件,清除前需要查看文件占用磁盘大小
        du -sh * | grep G #按媒体文件、图片等类型查看G级别的文件大小


复制文件  cp
    #语法: cp [OPTION]... [-T] SOURCE DEST
          cp [OPTION]... SOURCE... DIRECTORY
        选项:
            -a  #archive,归档,用于备份文件
            -r  #recursive,递归,用于拷贝目录
            -f  #force,强制,忽略交互
            -i  #interactive,交互
            -v  #verbose,输出拷贝过程信息

        #拷贝文件对inode和block影响
            #DEST是一个文件
                1.向DEST所在的文件系统申请空闲inode
                2.在DEST上一级目录中的block写入entry
                3.申请空闲block将源文件的block拷贝到新的block中


删除文件  rm
        #语法:  rm [option]... FILE...

        选项:
            -r  #递归
            -f  #强制
            -i  #交互
            -v  #过程信息

        常用选项:
            rm -rf *


移动文件  mv(可以直接移动目录)
        # 语法: mv  SOURCE  DEST 
        选项:
            -v
            -i
            -f 

        #移动对inode和block影响
            情况一:在同文件系统中移动
                #只是将文件的entry移动过程

            情况二:在不同文件系统中移动(cp+rm)

用户管理:

    useradd hehe   /etc/passwd
        #创建用户时,系统默认会自动创建一个与用户名同名的组作为用户的基本组,同时在/home目录下创建一个与用户名同名的目录作为用户的家目录,并从/etc/skel/目录中拷贝配置文件到家目录,用户邮箱文件(/var/spool/mail/USERNAME)
        #用户创建完成后必须要配置密码才能够登录(passwd USERNAME设置)
        #选项
            -u UID #uid
            -g GID #gid
            -G GROUP 
            -m  #创建home目录(默认会创建)  -M不创建home目录
            -d DIR  #设置用户家目录
            -s SHELL #设置用户的默认shell
            -r      #创建系统用户(/sbin/nologin,不需要home目录,不需要邮箱文件)

    userdel    USERNAME  #默认不会删除home目录和邮箱
        -r  #删除home目录和邮箱(如果家目录有重要文件请备份)

    usermod USERNAME  #修改用户属性
        -u
        -g
        -s
        -d

    id USERNAME  #查看用户信息

组管理

    groupadd /etc/group
        -g  GID  
        -r  #创建系统组
    groupdel USERNAME  #删除组
    groupmod USERNAME  #修改组属性

密码管理

passwd USERNAME    /etc/shadow

修改资源的拥有者和所属组

chown [-R] USER.GROUP FILE      #可以同时修改拥有者和所属组
    #USER.GROUP
    #USER
    #.GROUP

chgrp [-R] GROUP  FILE  #只能改所属组

修改权限方法

chmod [option] EXP  FILE
#option
    -R  #recursive,递归,修改目录中的所有文件

#EXP1
    u  +  r 
    g  -  w
    o  =  x
    a 

    #eg:
        chmod u+w FILE
        chmod ug+w FILE
        chmod ugo+w FILE  # 等于 chmod a+w FILE
        chmod u+w,g+x FILE 
        chmod ug=rwx FILE 

#EXP2
    r w x
    0 0 0  #0
    1 1 1  #7

    chmod 755 FILE  # rwxr-xr-x  
    chmod 644 FILE  # rw-r--r--  

#给文件添加特殊权限
    chmod u+s FILE
    chmod g+s FILE
    chmod o+t FILE
    chmod 2775 FILE  #rwxrwsr-x

你可能感兴趣的:(linux系统)