Linux课堂笔记

Linux随堂笔记

一、Linux的背景

  1991年5月,Linux发明出来的,被誉为“Linux之父”

二、Linux一切皆文件

  Linux系统中所有的都是文件,包括鼠标键盘等。

  Linux中一切没有消息的消息就是最好的消息。

三、基本命令的学习

  命令的组成:cmd【选项】【参数】

  手册的查看:man---->打开首次;man man---->具体使用命令。

  命令展示:

    【pwd】显示当前路径。

    【cd】切换工作路径

        注:Linux文件系统结构从“根”开始,用“/”表示。

          当路径从根开始算,表示绝对路径。

          当路径从当前路径开始算,表示相对路径,其中  .---> 当前路径   ..---->上一级路径

    【ls】列出目录内容

        【-a】:显示所有文件(加点的表示为隐藏文件)

        【- l】:单列输出

        【-d】:将目录名像其他文件列出来,但不显示它内容(显示指定目录)

        【-h】:大小带单位,不带单位的以字节形式表现

        【- i】:显示ID,同一文件目录下,文件ID是唯一的

    【cat】查看文件内容的全部

    【more】查看文件的内容

    【less】按屏显示文件内容,“/”+关键字: 搜索,按“Q”退出,较【more】命令更灵活。

    【head】/【tail】显示文件的前/后几行

    【cp】复制文件,文件夹加上【-r】表示目录文件

    【mv】剪切文件,格式为:【mv】+源文件+目的目录

        注:切勿切电脑的本身文件。

          【mv】+文件名+当前文件夹  ---->重命名

    【rm】删除文件,格式为:【rm】+源文件,【-r】--->目录【-f】--->强制删除

    【touch】创建空文件

    【mkdir】创建空目录

      关机命令都有:(1)shutdown   -h   now    (2)poweroff (3)init 0 (4)halt

      重启命令都有:(1)shutdown   -r    now (2)reboot  (3)init 6

    【uname   -r】内核版本

    【history】查看历史命令

四、文件管理

    包括文件属性(元信息)、文件查找、文件的打包压缩

  文件属性

    查看文件属性:(1)stat  +  文件的路径 --->查看文件的全部属性    (2)ls   -l   --->查看文件的部分属性

  文件类型

    Linux不易后缀名区分文件类型,它只有7种文件类型:

        -  ---> regular   普通文件
          d  ---> directory   目录文件
          c  ---> charactor  字符设备文件
          b  ---> block      块设备文件
          l   ---> link      符号链接文件
          p  ---> pipe       管道文件
          s  ---> socket      套接字文件

  文件权限

    非目录文件权限:r--->读    w--->写    x--->执行  

            8进制表示法:1--->r、w、x   0---> —  8进制以“0”开头

            eg:0635  6--->110——>rw-  3--->011——>-wx  5--->101——>r-x

    目录文件权限:u--->拥有者    g--->所属组    o--->其他用户

      权限对于root没有意义,但是对于普通用户意义很大。

      修改文件权限:(1)chmod   u/g/o   a(+/-) r/w/x   +文件名

             (2)chmod   +  8进制  +  文件名

      修改文件的拥有者和所属组:chown  +  拥有者:所属组   +  文件名

    目录文件中的r/w/x:

        -r     将当前目录显示到终端  eg:ls

        -w   写目录  eg:touch/mkdir/rm

        -x    可搜索,可进入  eg:cd

     【umask】文件屏蔽字,为防止产生权限过大文件。

            普通文件的权限都是0666,最终权限取决于屏蔽字的大小。

            mode & ~umask ---> 文件真正的权限

     【-s】特殊权限,当所有用户在执行passwd命令,【-s】权限会将用户变为拥有着的身份。

        sudo   cat   /etc/shadow

        gedit    /etc/sudoers

    文件的硬链接:一个文件,多了个名,用命令【cp  -l】  / 【 ln】  创建

        inode是同一分区文件的唯一标识,故不能跨分区。

    文件的软链接:即符号链接,就是给文件创建一个快捷方式。

        用【ln   -s】创建,用于存放文件的路径,可跨区。

    创建用户

      useradd  +  用户名  --->创建用户

      passwd  +  用户名  --->给定密码

      su -   +   用户名  --->切换用户

      userdel -r  +  用户名 ---> 删除用户

      exit   --->   登出用户
       用户信息:   /etc/passwd
    组信息:    /etc/group
    密码:     /etc/shadow
    创建组   
        groupadd   +  组名  --->组创建
     groupdel   +  组名 ---> 组删除
        gpasswd   -a   +   用户名  +  组名   --->用户添加到组内
     gpasswd   -d   +   用户名  +  组名   --->用户从组中删除
  文件大小

    【ls   -l】只是查看文件的所占字节,不属于占磁盘空间大小

    磁盘空间大小  --->(block)   1 block = 512  bytes   可用命令【stat】查看

    【du  -sh  +  文件名】  查看文件所占用磁盘空间的大小

    【du    -s】  访问磁盘大小

    【du    -f】   查看当前磁盘分区占用情况

  文件时间

    最后一次访问时间:access   time

    最后一次更改时间:modify   time  ---->内容改变 【ls  -l】

    最后一次改动时间:change  time   --->属性改变

   文件的查找:分为可执行文件和非可执行文件
      可执行文件:
      环境变量:echo  $PATH   --->是个路径
           which/whereis  +  路径   --->内部命令,是当前解释器能实现的
      非可执行:
         locate filepath   --->遍历数据库
           updatedb   --->  更新数据库
            find(遍历磁盘空间)
             find   +  路径  +  选项
          选项有:
            -name   按名字找     eg: find /etc/ -name "passwd"
            -size      按文件大小查找  eg: find /etc/ -size n(b/c/k)
               -mtime  修改时间        eg:find /etc/ -mtime n(天)
            -type   类型       eg:find /etc/ -type f/d/c/b/p/l/s
            -exec   对于查找到的结果执行     eg:find /etc/ -name "hello" -exec ls -l {} \;   --->  只对找到的文件执行ls -l结果,不打印路径
            -ok       执行之前会询问    eg:find /etc/ -name "hello" -ok ls -l {} \;   ---> 在执行ls -l之前会询问
                 -print    打印查找的结果     eg:   find /etc/ -name "hello" -print  -exec ls -l {} \;   ---> 对找到的文件执行ls -l结果,打印路径
               -a      连接多个查找选项    eg:   find /etc/ -type d -a -size +10k
   文件的打包与压缩
       压缩格式都有:【.gz】、【.bz2】、【.zip】
       文件压缩为【.gz】格式:  gzip  +  文件名    解压命令为:gunzip
       文件压缩为【.bz2】格式:bzip2  +  文件名   解压命令为:bunzip
       文件压缩为【.zip】格式: zip  +  文件名.zip  +  源文件名     解压命令为:unzip  +  文件名
         【.zip】是将多个文件放入一个压缩包中,其本身具有压缩打包的功能。
       【tar】命令:打包并压缩
          其格式为:【tar】+  选项  +  文件名.tar.格式  +  [*]--->表示当前目录下所有文件
          常用选项有:
            -c  --->创建包
            -v  --->过程可视化
            -f   --->压缩包文件名(置于选项命令最后)
            -z  --->生成.gz格式的压缩文件
            -j   --->生成.bz2格式的压缩文件
               -J  --->生成.xz格式的压缩文件
               -C --->指明压缩路径
               -t   ---> 不解压不解包的情况下,查看压缩包中的内容
            -r   ---> 向压缩包内追加文件,只允许向包中放入新文件
   文件的重定向
        当用户登陆登陆成功后,有三个文件依次打开:
          标准输入(0)、标准输出(1)、标准错误输出(2)
             0< 标准输入重定向
             1> 标准输出重定向
             2> 标准错误输出重定向
             >> 追加
          "|"   --->   管道
            【wc  -l】 (line) ---->统计行数   【wc  -c】(charactor)---->统计单词个数    【wc  -w】(word)---->统计单词个数
          【grep】:筛选文件内容
              -n   --->   确定内容在文件的第几行
              -i    --->   忽略大小写
              -w  --->   精确查找
   【vim】--->编辑器 
        【vim】  +  文件名    ---->   打开vim,进入vim的一般模式
        从一般模式进入编辑模式:按(“i” “I” “a” “A” “o” “O” “s” “S”)
        从编辑模式进入一般模式:按(“Esc” 或 “ctrl  +  c”)
        从一般模式进入命令行模式:按(“w”  --->  保存   “q”  --->  退出)
        在一般模式下的命令:
            yy--->复制,需要复制几行,在前面加行数。    
            p--->粘贴    
            dd--->剪切,需要剪切几行,在前面加行数。
            u --->撤销 
            ctrl  +  r  --->还原
            x/X  --->光标所在字符处开始删除   ==【delete】
            r/R  --->替换  【R】--->一直替换到Esc为止
            gg  --->首行,到第几行前面加数字
            G   --->末行
            /  --->搜索
        在命令行模式下的命令:(都需用 “  :” 开头)
            w  --->保存
            q  --->退出,加  !表示强制退出
            w  +  文件路径   ---> 另存为  ==  saveas
            set  number/nonumber   --->显示/不显示行号
            %s/oldstring/newstring/g    --->将所有的oldstring替换为newstring
         2,5s/oldstring/newstring/g  --->将第2行到第5行oldstring替换为newstring
         set nu    --->显示行号
         set ts=4 ---> 将Tab设置为4个字符宽度
            x  --->  加密
五、软件包的管理
    源码包:
  .tar.gz .tar.bz2 .tar.xz
  <1>下载并解压解包
  <2>编译make
  <3>make install
    二进制包(.rpm)
        【yum】 安装:(/etc/yum.repo.d/xxx.repo)
         yum install 文件名     --->安装 
         yum remove 文件名  ---> 卸载 
         yum repolist   ---> 查看仓库中有多少软件包
         yum list     --->列出所有的软件包
         yum provides /usr/bin/ls   --->查看文件对应的软件包
         yum update   --->更新
         yum clean all    --->清除缓存
             yum源所在路径:/etc/yum.repos.d/xxx.repo
      本地yum源配置:
        1.将镜像文件挂载到文件系统
        2.创建镜像的挂载点 mkdir /mnt/centos7
        3.光盘镜像在/dev/cdrom目录
        4.挂载光盘镜像
            mount -t iso9660 -o loop /dev/cdrom /mnt/centos7
        5.配置镜像的yum源
            vim /etc/yum.repos.d/my.repo
                 文件的内容:
                   [local_centos7]
                   name=centos7
                   baseurl=file:///mnt/centos7
                   enabled=1
                   gpgcheck=0
     已下载的【rpm】软件包,安装:
        rpm -ivh +包名  ---> 安装已下载的rpm包
        rpm -e +包名     ---> 卸载
        rpm -U +包名    ---> 更新
        rpm -qa   --->  查询系统中所有已安装的rpm包
        rpm -qf  + 路径  --->  查询对应的软件包
六、网络管理
   【ifconfig】   ---> 查看ip地址,将iP,mac,网关等都显示出来
   【iP  addr】  ---> 查看mac地址
   【ip  route】 ---> 查看路由表
   【systemctl  status   +  服务名】  ---> 查看服务状态
   【systemctl  stop  +  服务名】      ---> 关闭服务状态
     手动配置静态ip:
         1、关闭NetworkManager     命令:【systemctl stop NetworkManager】
         2、配置/etc/sysconfig/network-scripts/ifcfg-xxx
            DEVICE=eth0
            BOOTPROTO=none
            NM_CONTROLLED=no
            ONBOOT=yes
            TYPE=Ethernet
            IPADDR=172.16.60.1
            PREFIX=24
            GATEWAY=172.16.60.254 
         3、重启网络服务   命令:【systemctl restart network】
    防火墙
        【systemctl  status  firewalld】   --->  打开防火墙
        【systemctl   stop    firewalld】   --->  关闭防火墙
        【systemctl  disable firewalld】  --->  禁用防火墙
    文件共享
        安装: 【yum  install  vsftpd】
        启动: 【systemctl  status   vsftpd】
        开机自启动:【systemctl   enable  vsftpd】
        配置文件:  【/etc/vsftpd/vsftpd.conf】
    访问共享目录:
        下载安装:【yum install lftp】
        访问地址:【lftp 192.168.5.129】
        get      ---> 下载非目录文件
        mirror  ---> 下载目录文件
        lcd    ---> 切换下载路径
        bye     ---> 退出
    nfs远程挂载
        下载安装;:【yum install nfs-utils rpcbind】
        启动服务:
          【systemctl start nfs】
          【systemctl enable nfs】

          【systemctl start rpcbind】

 

 

   

 

         【systemctl enable rpcbind】

 

        

 

    编辑共享路径:

    

 

            

 

          【vim /etc/exports】

    

    

 

    

 

          【/var/ftp/pub *(ro,sync,no_root_squash)】

    客户端挂载:
          【mount 192.168.5.129:/var/ftp/pub /mnt】

七、进程管理

    【ps   aux】  --->  查看当前系统信息

    【kill    -l】    --->  列出当前系统中的所有信号

    【kill  -2  +  进程号】    --->  终止  ==  ctrl  +  c

    【kill  -9  +  进程号】    --->  干掉一个进程,只要是用户创建的均可以干掉

    【man    7   signal】     --->  查看信号和信号行为,默认为15

    【top】   --->   实时查看系统中进程的运行状态

          运行状态有: R ---> 运行  S  --->  睡眠,可中断  ---> 终端     Z  --->  僵尸状态(zombie)

八、虚拟机内安装python的步骤:

    1、根据  pyenv.txt  逐步安装。注意:将  my.repo  中用户自定义安装的包删除或重命名。

    2、重启虚拟机后,依次用命令【which  python】和【which   pip3】查看两个文件是否在同一目录下。

    3、打开网络,用命令【pip3   install  ipython】,升级python

    4、升级中用到的命令:【pip   install  --upgrade   pip】

    5、开机自启动 network :【systemctl   enable   network】

    6、命令: 【/ sbin / chkconfig  network  on】

    7、用命令【ipython】 打开  python,用【exit】退出

九、【git】命令

          1、创建仓库:登陆github帐号,创建远程仓库

          2、同步到本地:

          ssh-keygen

          cat ~/.ssh/id_rsa.pub   --->  将密钥复制到帐号的key

          打开远程仓库,找到SSH,创建SSH密钥并且复制密钥的链接

          返回终端:git clone git@github.com:zhangzongyan/python20181119.git

              其中:git@github.com:zhangzongyan/python20181119.git  表示本地仓库

           3、用命令【ls】查看github库是否链接到本地文件夹

           4、进入文件夹,查看是否有文件REDM,存在表示链接成功

     远程仓库与本地文件夹之间的上传与下载

             cd  git  init

          git   add --->跟踪

          git   status --->查看仓库状态

          git    commit  -m  ---> 备注提交到仓库

          git     push     --->  推上服务器

          git     pull       --->  从服务器上把文件拉到本地

     【git】的基本命令

          git log ----->查看仓库日志(id)

          git reset --hard id ----->切换到指定版本

          git reflog ----->查看最新版本日志

          git rm ----->删除

posted @ 2018-12-03 15:53  听风诉语  阅读(196)  评论(0编辑  收藏  举报