LINUX学习!!

1. linux 简介

    什么是linux?
    
    Linux是一个多任务、多用户的 操作系统
    多任务:某一时刻,可以同时执行多个任务
    多用户:多个用户  普通用户 + 超级用户(管理员)
    ------------------------------------------------------------------------------------------------------------------------------
    1.1 linux发展历史
    美国贝尔实验室 + 通用电气AT&T + 麻省理工学院(大型的多任务多用户的系统)
    (肯·汤姆逊): 星际旅行   Unix(多用户、多任务的系统) 
    (Unix花钱 + 闭源)
    (Linux免费+开源)    
    C -- 丹尼斯·里奇 
    Unix(肯·汤姆逊) ----> Minix(塔能·鲍姆) ----> Linux(林纳斯·托瓦兹)
    www.kernel.org
    ---------------------------------------------------------------------------------------------------------------------------
    1.2 linux和unix区别和联系

        (1)时间
        Unix系统时间 早于 Linux 
        Linux的思想源于Unix
    
        (2)金钱
        Unix  花钱闭源 
        Linux 开源免费
------------------------------------------------------------------------------------------------------------------------------
    1.3 GNU和GPL
  
        1.3.1 GNU
        
        (1)什么是GNU?
        
            理查德·斯托曼
            GNU //自由软件联盟 
            GNU is Not Unix 
        
        (2)GNU宗旨:
        
            提供开源免费的软件供大家使用        
---------------------------------------------------------------------------------------------------------------------------------
        1.3.2 GPL
        
        (1)什么是GPL?
        
            general public license
            注册版权协议
---------------------------------------------------------------------------------------------------------------------------------
    1.4 linux 内核版本号和版本

        1.4.1 内核版本号
        
        (1)查看内核版本号
            uname -a 
            Linux ubuntu 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux


        (2)内核版本号组成
             3.2.0
             3 //主版本号,有重大更新的时候,才会更新主版本号
             2 //次版本号  偶数:稳定版本 奇数:测试版本
             0 //末版本号


        (3)下载内核(kernel)
            
            www.kernel.org

---------------------------------------------------------------------------------------------------------------------------------
        1.4.2 Linux发行版本
      
            ubuntu 
            Suse 
            redhat
            Debian 
            红旗 
            
            所有的用的都是Linux内核,所以统称为 Linux系统
---------------------------------------------------------------------------------------------------------------------------------
2. linux 使用(一切皆文件)
    
    Linux系统里面一切皆文件 
    
    (1)终端作用
    
        可以在终端输入命令,实现与系统的交互
    
    (2)开启新的终端
    
        ctrl + alt + t //开启一个新的终端
        ctrl + shift + t //开启一个新的终端 
        ctrl + shift + n //开启一个新的终端
    
    ls 命令 
    ls //查看目录文件的列表 (看看这个文件夹子里面有啥完扔)

    ls Pictures/ //查看当前目录下的Pictures
    //蓝色:目录文件 
    //白色: 普通的文本文件
    //绿色:可执行的二进制文件
    
    cd 命令
    
    ##功能: 进入目录文件
    cd 你要进入的目录文件的名字
    
    cd Pictures //进入到当前目录下的Pictures目录文件
    cd .. //返回上一级目录
   
    pwd //命令,打印当前所在位置的绝对路径 
    
    指南针:在Linux里面迷路了,敲pwd,看看自己在那儿
    
    -----------------------------------------------------------------------------------------------------------------------
    2.2 目录
    
        2.2.1 目录结构
        
        (1)Linux系统下一切皆文件
        (2)Linux文件系统犹如一颗倒置的树 
        
        /       //根目录
        home    //普通用户的家目录 home目录下,会有与普通用户同名的目录文件作为该用户的工作目录
        root    //root 超级用户管理员
        bin     //存放常用命令(命令就是可执行的程序 同a.out)
        dev     //device 设备文件
        etc     //配置文件
        lib     //library 库文件
        mnt     //可移动的U盘     挂载服务
        media   //可移动光盘 挂载 
        boot    //开机启动引导程序
        proc    //存放内核相关信息
        opt     //第三方软件安装的认路径
        var     //存放的是经常变化的文件 系统日志
        usr     //存放的是不经常变化的文件文件 stdio.h   壁纸
        
        bin   cdrom  etc   initrd.img  lost+found  mnt  proc  run   selinux  sys  usr  vmlinuz
        boot  dev    home  lib         media       opt  root  sbin  srv      tmp  var

---------------------------------------------------------------------------------------------------------------------------------
        2.2.2 相对路径和绝对路径
        
        相对路径:相对于当前目录 
        
        cd Pictures //相对路径方式进入
        
        绝对路径:以根为起点的路径 //绝对路径在任何情况下都好用
        
        cd /home/linux/Pictures/

        相对和绝对路径哪个是万能的??? 
        
        绝对路径是万能的
        
        相对路径简单 
---------------------------------------------------------------------------------------------------------------------------------
    2.3 命令

        2.3.1 linux快捷键:
        
            (1)上下键: 
                
                调用历史命令
        
            (2)tab键 
                
                自动联想补全已经存在的文件或目录的名字
                
            (3)清屏
            
                clear //命令 
                ctrl + l
        
---------------------------------------------------------------------------------------------------------------------------------  
        2.3.2 cd 命令
    
        /home/linux/Pictures //第一个 /代表根目录 后面的两个/代表路径间的分隔符
        
            cd ..  //返回上一级 
            
            cd ~   //返回当前用户的工作目录 
            
            cd .   // 语句 无意义  . //当前目录下的意思'
            
                    cd Pictures // cd ./Pictures 
            
            cd ../.. //返回上一级的上一级
            
            cd -  //反回上一次访问的目录,并打印当前位置的绝对路径
---------------------------------------------------------------------------------------------------------------------------------
        2.3.3 pwd命令     
            
            #功能:防止迷路 打印当前所处位置的绝对路径 
---------------------------------------------------------------------------------------------------------------------------------
        2.3.4 man 命令
        
        ###查看函数或命令的帮助文档
        
        man ls //查看ls命令的帮助文档
        
        //当命令和函数的名字出现同名的时候,需要区分类
        
        man 1 ls //查看ls命令的帮助文档 1 类别 是命令
        man 2 _exit //查看_exit函数的帮助文档 2类别 是系统调用
        man 3 printf // 查看printf函数帮助文档 3 类别 库函数
        man strcpy //查看strcpy函数的帮助文档,不需要加3,是因为没有同名的命令
        
---------------------------------------------------------------------------------------------------------------------------------
        2.3.5 touch 命令
        
        #功能:创建一个普通的文本文件
        
        touch 文件的名字
        touch 路径修饰(相对路径或绝对路径)/文件的名字
        
        linux@ubuntu:~$ touch haha.c  //在当前目录下创建haha.c 
        linux@ubuntu:~$ touch Pictures/xixi.c //在当前目录下的Pictures下创建xixi.c 
        linux@ubuntu:~$ touch /home/linux/Pictures/hehe.c //绝对路径的方式,在Pictures下创建hehe.c 

        //如何删除文件 
        
        rm // remove 的缩写
        rm 文件的名字
        rm 路径修饰(相对路径或绝对路径)/文件的名字
        
        linux@ubuntu:~$ rm haha.c //删除当前目录下的haha.c 
        linux@ubuntu:~$ rm Pictures/xixi.c //删除当前目录下的Picture是目录下的xixi.c 
        linux@ubuntu:~$ rm /home/linux/Pictures/hehe.c //用绝对路径的方式,删除Pictures下的hehe.c
        
---------------------------------------------------------------------------------------------------------------------------------
        
        2.3.6 mv 命令  
        
        mv ---- move缩写 
        
        #功能 剪切和重命名功能
        
        mv 源 目的
        
        改名功能
        mv test.c wuwu.c //将test.c 改名为 wuwu.c 
        
        剪切功能 
        mv wuwu.c Pictures //将当前目录下的wuwu.c 剪切到当前目录下的Pictures目录下 
        mv Pictures/wuwu.c ./ //将当前目录下的Pictures目录下的wuwu.c 剪切到当前目录下
        
        剪切并改名
        mv wuwu.c Pictures/heihei.c //将当前目录下的wuwu.c,剪切到当前目录下的Pictures目录下并改名为heihei.c

---------------------------------------------------------------------------------------------------------------------------------
        2.3.7 mkdir 命令 
        
        mkdir ---> make directory
        #功能:创建一个目录文件
        //你怎么用touch命令,就怎么用mkdir命令
        
        #功能:创建一个普通的文本文件
        
        mkdir 目录文件的名字
        mkdir 路径修饰(相对路径或绝对路径)/目录文件的名字
        
        linux@ubuntu:~$ mkdir haha  //在当前目录下创建haha目录文件 
        linux@ubuntu:~$ mkdir Pictures/xixi //在当前目录下的Pictures下创建xixi目录文件 
        linux@ubuntu:~$ mkdir /home/linux/Pictures/hehe //绝对路径的方式,在Pictures下创建hehe目录文件 
        
        #注意点:删除目录文件,需要加-r参数
    
        linux@ubuntu:~$ rm -r haha //删除当前目录下haha目录文件 
        linux@ubuntu:~$ rm -r Pictures/xixi //删除当前目录下的Pictures目录下的xixi目录文件
        linux@ubuntu:~$ rm -r /home/linux/Pictures/hehe //绝对路径的方式删除Pcitures目录下的hehe目录
            
        -p //参数,用来创建多级目录
        
        mkdir -p a/b/c/d/e  //a目录下有b,b目录下有c,c目录下有d,d目录下有e
---------------------------------------------------------------------------------------------------------------------------------
        
        2.3.8 cp 命令
        cp //copy 拷贝 可以拷贝普通文件 拷贝目录文件
        
        #注意:拷贝 目录文件需要加-r 参数 
        
        cp wuwu.c test.c //复制当前下的wuwu.c一份到当前目录下名字叫test.c 
        
        cp wuwu.c Pictures//复制当前下的wuwu.c到当前目录下的Pictures目录下
        
        cp wuwu.c Pcitures/didi.c //复制当前下的wuwu.c到当前目录下的Pictures目录下并命名为didi.c
        
        #注意:拷贝 目录文件需要加-r 参数 
        cp -r Pictures Public  //复制当前目录下的Pcitures目录,到当前目录的Public目录下 
---------------------------------------------------------------------------------------------------------------------------------
        
        2.3.9 rm 命令 remove的缩写 
            
            删除文件 
            rm hehe.c 
            rm -r hehe //删除目录文件需要加-r参数
---------------------------------------------------------------------------------------------------------------------------------
        
        2.3.10 文件查看命令
        
        cp /usr/include/stdio.h ./ //注意 .不能省略不写,代表当前目录
            

            2.3.10.1 cat命令 
            
            cat 命令,通常用来查看短小的文件
            
            cat hello.c //查看hello.c的内容
            cat -n hello.c //显示文件内容 带行号
            
            2.3.10.2 more 命令
            
            more stdio.h  
            
            回车 //向下走一行 
            
            空格 //向下走一页

            ctrl + b //向前翻一页 
            
            q //退出 
            
        
            2.3.10.3 less 命令 
            
            less  stdio.h 
            
            方向键:向上 和 向下 
            回车 //向下走一行 
            空格 //向下走一行 
            ctrl + b //向前翻一页 
            
            //可以查找关键字
            /printf  查找printf关键字
            
            n //向下查找关键字
            N //向上查找关键字

            2.3.10.4 head 命令

            #功能:只查看文件的开头部分
            
            head stdio.h //认值显示 stdio.h文件的前10行 
            head -5 stdio.h //只显示stdio.h的前5行
            head -11 stdio.h //只显示stdio.h的前11行
            
            2.3.10.5 tail 命令
            #功能:只查看文件的结尾部分
            
            tail stdio.h //认值显示 stdio.h文件的最后10行 
            tail -5 stdio.h //只显示stdio.h的最后5行
            tail -11 stdio.h //只显示stdio.h的最后11行
                                
---------------------------------------------------------------------------------------------------------------------------------
        2.3.11 grep 
        
        #功能: 去文本文件搜索关键字
        
        grep "int" c基础/wuwu.c //去wuwu.c文件中查找int 出现的位置

        grep -r "printf" /home/linux  //去linux目录的所有子目录中的所有的文本文件搜索printf关键字

---------------------------------------------------------------------------------------------------------------------------------

        2.3.12 ls命令 
        
        ls -a // -a all 显示所有文件包括隐藏文件 
        
        Linux系统中以.为开头的是隐藏文件
        
        ls -l //查看所有文件的详细信息
        
        d rwxr-xr-x  2 linux linux  4096 Sep 22  2012 Templates
        - rw-rw-r--  1 linux linux    44 Jul  7 03:48 test.c
        
        (1) 文件属性
        
        d //目录文件 directory
        - //普通文件
        c //字符设备文件 char
        b //块设备文件 block
        l //链接文件 link
        s //套接文件 socket 
        p //管道文件 pipe 
        
        (2) 文件的访问权限 
            
           文件所属者     文件的所属组        其它用户
           rwx           r-x                 r-x
           rw-             rw-                    r--
            
        r //读权限read 
        w //写权限write
        x //可执行权限 
        - //没有对应的权限
        
        (3)
        1 //硬链接
        (4) 
            文件的所属者        文件的所属组 
            linux                 linux

        (5) 文件大小 
        4096
        
        (6) 最后被修改的时间
        Sep 22  2012
        
        (7) 文件的名字
        test.c
---------------------------------------------------------------------------------------------------------------------------------
        
        #重要 
        2.3.13 chmod 命令(*****)
        
        #功能修改文件权限
        
            (1)全部修改(所属者 所属组 其它用户
                
                chmod +r test.c //给所属者 所属组 其它用户增加读权限
                chmod -r test.c //给所属者 所属组 其它用户去掉读权限    
                w +w -w
                x +x -x 同理
                
            (2)逐个增加权限
            u user g group  o other
            
                chmod u+x test.c //给所属者 增加可执行权限
                chmod u-x test.c //给所属者,去掉可执行权限
                chmod g+r test.c //给所属组,增加读权限
                chmod g-r test.c //给所属组,去掉读权限
                chmod o+w test.c //给其它用户增加写权限
                chmod o-w test.c //给其它用户,去掉写权限
            
                //将 x 换成 r和w同理
                
            (3)按位进行修改权限
            
            6    3 
            110  011
            
            //有权限,用1来表达,没有权限用0表达 
            rw- rw- r--
            110 110 100
            6   6   4
            5   6   3
            101 110 011
            r-x rw- -wx
            
            chmod 523 test.c 
            
            ##将haha.c权限处理成  所属者 有读无写有执行 ,所属组 无读有写有执行
            
                                    ##其他用户:无读无写有执行
                                    
            r-x -wx --x 
            101 011 001
            5   3   1
            chmod 541 haha.c 
            
            rm -f haha.c //-f 忽略问题提示,直接删除

---------------------------------------------------------------------------------------------------------------------------------

在华清的学习一天一天过去,学习的内容越来越多,努力坚持下去,会有很大的收获的。加油!!

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...