Linux基础

0,Linux历史
    Linux诞生于1991年,创始人是 林纳斯.托瓦茨
    Linux是一套免费使用且开源的类Unix操作系统。
    UNIX系统是一个多用户,多任务的分时操作系统。
    
   Linux可划分为四个部分:
    Linux内核
    GNU工具组件:  
        GNU由美国著名黑客 理查德·斯托曼发起的GUN project
        GNU = GNU is Not Unix, 发行版权是copyleft
    图形化桌面环境
    应用软件
    
1,ubuntu 的安装
    ubuntu是Linux的一个发行版本,很适合初学者学习。
    (1)vmware tools安装
        点击虚拟机->更新vmware tools
        复制 VMwareTools-10.0.5-3228253.tar.gz 到家目录
        cd ~
        解压: sudo tar zxvf VMwareTools-10.0.5-322
        cd vmware-tools-distrib/
        sudo ./vmware-install.pl
        等到返回命令行==>vmware tools安装成功了
        
        我们就可以设置共享文件夹啦:linux与windows共享的文件夹
            虚拟机(M)->设置(s)->选项->共享文件夹
        cd /mnt/hgfs/
            hgfs: Host Guest File Share  
            
    (2)配置网络
        1.虚拟机(M)->设置(S)->硬件->网络适配器->
          桥连接模式,把复制物理网络连接状态打勾
        2,以太网设置(ethernet network)
        Edit Connections -> Edit -> IPV4setting -> Method:DHCP
        
        ping  www.baidu.com  测试是否可以连接外网
        ifconfig 查看自己的网络信息
        
        
2,APT(Advanced Packging Tool)
    ubuntu中功能最强大的命令行软件包管理工具,用于获取、安装、
    编译、卸载和查询软件包,以及检查软件包的依赖关系。
    
    工作原理:
        /etc/apt/sourcse.list
        该文件内容为ubuntu软件源服务器地址
        cat sources.list 查看文件内容看是不是163的镜像地址
        如果不是怎么办呢?
            cd /etc/apt
            sudo mv sources.list sources.list.bak  修改源文件名字
            cd /mnt/hgfs/share
            sudo cp sources.list /etc/apt/  把sourcse.list复制到该文件夹
    
    APT命令:
        apt-get:用于管理软件包,包括安装、卸载、升级操作
        apt-cache:用于查询软件包
        apt-proxy:用于搭建APT代理服务器
        apt-show-versions:用于显示系统中软件包的版本信息
        apt-config:用于读取APT配置文件的简单工具
        apt-cdrom:用于将CD-ROM加入到软件源配置文件
        
    (1)apt-get 用法
        apt-get  subcommands  pkgname
                   子命令      特定包名
        subcommands:
            update:下载更新软件包列表信息
                /etc/apt/sources.list文件只是列出来服务器的地址,
                至于服务器上到底有哪些软件,我们事先不知道。这时
                我们就可以用命令apt-get update,来下载服务器上有的
                软件包的列表信息。
                eg:  sudo  apt-get  update
                
            upgrade:将系统中所有软件包升级到最新版本
                eg: sudo apt-get upgrade
            
            install:安装。下载所需软件包并进行安装配置。
                eg: sudo apt-get install vim
                eg: sudo apt-get install ibus-googlepinyin
                
            remove: 卸载软件包
                eg: sudo apt-get remove ibus-googlepinyin
                
            autoremove:将不满足依赖关系的软件包自动卸载
                eg: sudo apt-get autoremove
                
            source:源代码。下载某个安装包的源代码。
                eg: sudo apt-get source vim
                
            clean:删除缓冲区所有已经下载的包文件
                eg: sudo apt-get clean
                
            autoclean:删除缓存区中老版本的已经下载的包文件
                eg: sudo apt-get autoclean
                
            check:检查系统中依赖关系的完整性。
                
    (2) apt-cache命令 完成查询软件源和软件包的相关信息
        apt-cache subcommands  pkgname
                    子命令     特定包名
        subcommands:
            search: 根据正则表达式检索软件包
                eg:  sudo apt-cache search sougou
            showpkg/show: 获取软件包的常规描述信息
                eg:  sudo apt-cache show vim
            showsrc:获取源码包的详细描述信息
                eg:  sudo apt-cache showsrc vim
            depends:获取该软件包的依赖信息
                eg: sudo apt-cache depends vim
            pkgnames:列出所有已经安装的软件包的名字
                eg: sudo apt-cache pkgnames
            stats: 获取软件包的统计信息
                eg: sudo apt-cache stats
                
3, vim
    vim 是vi的改进版本
    vi/vim是unix/linux中最基本、最常用、功能最强大的文本编辑器。
    vi/vim有两种模式            
        编辑模式:键盘上所有输入的字符都当成文本内容
        命令模式:键盘上所有输入的字符都当成命令
        当进入vim时,默认是命令模式
        
    vim 1.c
    
    命令模式->编辑模式
        i:  insert 进入编辑模式后,光标不动
        I:  insert 进入编辑模式后,光标移动到本行行首
        
        o:  open 向下开路。在光标的下一行,新开一行
        O:  open 向上开路。在光标的上一行,新开一行
        
        a:  append 追尾。进入编辑模式后,光标向后移动一个字符
        A:  append 追尾。进入编辑模式后,光标移动到行尾。
                
    编辑模式->命令模式 Esc        
    
    vim的退出命令
        :q  (quit)不保存退出(若修改过文件内容则会询问是否保存)
        :q! (quit) 不保存强制退出
        :w  (write) 保存
        :w filename  保存内容到指定的文件名(另存为,会拷贝新建一个文件)    
        :wq  保存并退出
        :x   保存并退出
        
    vim的删除与修改命令
        x: 删除光标所在的字符
        dd: delete 删除光标所在的行,并把删除的内容保存在剪切板里
            ndd: n表示一个数字,删除包括光标所在的n行
        r:  replace 替换光标所在的单个字符
        R: replace 替换光标及后面的多个字符(按Esc退出替换模式)
        
    vim的拷贝和粘贴命令
        yy: 把当前的内容拷贝到剪切板中
            nyy把包括光标所在的n行的内容拷贝到剪切板中
        p: paste 将剪切板中的内容粘贴在光标的所在的行的后面
        P:paste 将剪切板中的内容粘贴在光标的所在的行的前面    
        
    vim撤销命令
        u :undo
        
    vim 分屏命令
        :sp filename  上下分割,并打开filename文件
        :vsp filename  左右分割,并打开filename文件
        ctrl+ww 切换窗口
        
    vim 搜索命令
        /pattern
            eg:  /abc
                n: 跳转到下一个搜索结果
                N:跳转到上一个搜索结果
    
    vim 光标移动命令
        :set nu   显示行号
        :set nonu 取消显示行号
        :行号    把光标跳转到特定的行
        :$     跳转到文件的最后一行
        j: 移动下一行
        k: 移动上一行
        h: 左移一个字符
        l: 右移一个字符
        
    vim 挂起操作
        ctrl+z  挂起
        fg 返回
        
4,查看Linux说明手册(manual)
    eg:   man  3  printf //查看printf的库调用相关说明
          man  -f printf //查看关于printf有哪些章的内容
    man手册总共有9章,按q退出
        1 - commands 命令
        2 - system calls 系统调用
        3 - library calls 库调用
        4 - special files 特殊文件
        5 - file formats and convertions 文件格式与其变化
        6 - games for linux 游戏
        7 - macro packages and conventions 宏指令数据包和协议
        8 - system management commands 系统管理命令
        9 - 其它
        
5,基本的系统维护命令
    sync  同步,把缓冲区数据写入文件
    shutdown   关机
        shutdown -h 0  立即关机
    reboot 重启
    passwd [用户名]    修改密码
    su  username  切换用户
        sudo -s   进入root用户
        普通用户获取管理员权限 sudo
    exit  退出用户或者终端
    clear  清屏
    echo "string" 在标准输出设备(终端)显示字符串
    date  输出当前的日期
    ` `   反撇号(TAB上面)。里面加一个命令,表示引用命令的输出结果
        echo date
        echo `date`
    TAB键  命令自动补全
    上下方向键   调出执行过的命令
    
6,用户管理
    /etc/passwd  用户信息管理文件
        用户名:密码:用户ID(UID):用户组ID(GID):用户组目录:用户shell
    /etc/group:  用户组的信息管理文件,在UNIX下面用分组来管理用户
        用户组名:密码:GID号:成员列表
            这里组名是创建这个组的用户(组长)的名字
            GID是创建这个组的用户(组长)的ID
            
    adduser username  创建一个普通用户
    userdel username  删除一个用户
    
7,进程管理  process
    ps:   process status  查看进程的状态信息
        -e : every 每一个
        -f :full 全部的
        ps -ef  查看每一个进程的全部信息
        每个进程的信息都保存在一个文件目录中
        /proc/$PID/
        
    kill : 杀死一个进程
        kill  -9  $PID    必杀
    top : 以CPU占用率来实时排名
    
8,Linux文件系统
    Linux文件系统的组织形式:树状
        绝对路径:以"/"(根目录)开头的路径,叫绝对路径
        相对路径:不以"/"(根目录)开头的路径,叫相对路径
        ★相对路径是以当前路径为参照的。系统在查找文件时,
        本质上都是以绝对路径去查找。用相对路径时,是把
        当前路径与相对路径合成绝对路径再查找。
        
    pwd:  显示当前路径。
    cd:  change directory
        cd /home/gec
        每个目录下面都会有两个特殊的隐藏目录
            .   表示当前目录  
            ..  表示上一层目录
            cd .. 返回上一层目录
            cd -  返回上一次目录
            ./程序名  运行该程序
            
    ls: list status 把某个文件(包括目录)的状态信息给列出来
        ls [options] [文件名/目录名]
            options:
                -a : all,把所有的文件都列出来
                     在linux下面,以.开头的文件,视为隐藏文件
                -l : 把文件的详细信息列出来
        例子:
            -rw-rw-r-- 1 gec gec 56 Feb  6 11:22 1.c
            
        第一个字符表示文件类型:
            -:普通文件(regular file),ASCII文本文件,二进制文件
            d:directory目录(文件夹)
            b:block 块设备文件(任意顺序进行访问,以块为单位访问,如硬盘)
            c:char  字符设备文件(串行顺序依次访问,如鼠标,屏幕)
            l:link 符号链接文件,指向另外一个文件
            p:pipe 管道文件
            s:socket 套接字文件
        
        后面九个字符rwx表示文件对不同对象的权限
            r: read 读的权限
            w: write 写的权限
            x: excute 可执行权限,对目录可执行,表示可以进入目录
            -:没有对应的权限
            分三组
            owner/group/other
            
            1: 硬链接数
            gec gec 该文件的属主和属主所在的组
            56:文件的大小,单位是字节
            Feb  6 11:22   文件最近的修改时间
            1.c  文件名
            
    chmod: change mode 改变文件的模式(权限)    
        chmod 权限 文件名
        权限的指定有两种方式:
            (1) u/g/o/a   +/-  r/w/x
                chmod u+x  a.out
            (2) 以八进制的形式表示权限位
                chmod 0777 1.c
                chmod 0664 1.txt
       
    chown: change owner 改变文件属主
        chown   root:root    test.txt
              新属主:新组

    rm: remove 移除,删除
        rm [options] DEST
            DEST:要删除的目标,即可以是普通文件,也可以是目录
            options:
                -r: recursive(递归),若DEST是目录文件,必须要用
                    递归删除。
                -f: force(强制)。非交互模式删除
                    交互模式:在正式删除之前会询问用户是否确定要删除
                    非交互模式:不询问用户是否确定删除
            rm -rf  Music/      输出Music这个目录
            
    cp: copy 
        cp  [options] SOURCE DEST
            SOURCE:源文件。即可以是普通文件,也可以是目录
            DEST:目标文件。即可以是普通文件,也可以是目录
            options:
                -r: recursive(递归),若DEST是目录文件,必须要用
                    递归删除。
                -f: force(强制)。非交互模式
                    
        cp 1.c   Music/
        cp 1.c   Music/2.c
        cp -rf  ./Music1/    /home/gec/test/
        
    mv: move 移动(即可以是普通文件,也可以是目录)
        mv   SOURCE   DEST
            把SOURCE移动到DEST中去
        eg:  mv  1.txt  2.txt  //把1.txt改名为2.txt
        
    mkdir :make directory 创建一个空目录
        mkdir  Music/
        mkdir -p /home/gec/xx/1/
            -p:parent 创建目录时,如果父目录不存在,则一并创建
            
    rmdir :remove directory 删除一个空目录
    
    touch filname: 创建一个空的普通文件
    
    file filename:查看一个文件的格式。在UNIX里,文件扩展名不决定
                  文件的格式
                  
    显示文本文件内容
        cat 把文本文件的内容全部一次性打印到终端屏幕上。
        more 分屏显示一个文本文件的内容,按Enter一行一行的显示,
            空格键一屏一屏的显示,按q退出。
        less 分屏显示一个文本文件的内容,方向键上/下,按q退出
        
        head -num  显示文件前num行
        tail -num  显示文件末尾num行

    创建链接文件
        硬链接
            ln      target   link_name
        软链接(符号链接)
            ln  -s  target   link_name
            
        硬链接文件都指向同一个inode结点,删除一个硬链接文件,
        并不影响其他有相同inode号的文件(删除的本质是断链接)。
        软链接文件的内容其实保存的是其链接的文件的路径名

文件的压缩与解压
    文件的压缩实质上分为归档和压缩两个过程
        归档文件: 将一组文件或目录打包到一个文件中去。
            tar [options]  tarfile  filelist
                 -c   create 创建一个归档文件
                 -f   file  指定归档文件的名字
                 -x   extract 释放一个归档文件
        eg:
            tar -cf  1.tar  1.txt 2.txt 3.txt   //归档
            tar -xf  1.tar                      //释放
            
        压缩文件:将一个文件进行压缩
            a.压缩  gzip    xx  ==> xx.gz
              解压  gunzip  xx.gz ==> xx
            b.压缩  bzip2   xx  ==> xx.bz2
              解压  bunzip2 xx.bz2 ==>  xx
        
    我们可以一步完成归档和压缩
        tar [options] tarfile filelist
            -c   create 创建一个归档文件
            -f   file  指定归档文件的名字
            -x   extract 释放一个归档文件    
            -v   显示归档或释放的过程信息
            -z   由tar生成归档文件,然后由gzip压缩
            -j   由tar生成归档文件,然后由bzip2压缩
            
    eg:  压缩
        tar -zcvf  mp3.tar.gz  1.mp3  2.mp3  3.mp3
        tar -jcvf  mp3.tar.bz2 1.mp3  2.mp3  3.mp3
        
        解压
        tar -vxf  mp3.tar.gz  -C  解压目标目录
        tar -vxf  mp3.tar.bz2 -C  解压目标目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值