py1119_Linux学习_第二周总结

Posted gec258

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了py1119_Linux学习_第二周总结相关的知识,希望对你有一定的参考价值。

linux 学习心法:
  (1)一切接文件
  (2)一切没有消息的消息就是最好的消息
安装虚拟机下linux环境:
  1,下载vm12或更高版本,获取其秘钥,下载centOS7.iso镜像
  2,安装vm,默认安装,路径无中文,输入秘钥。
  3,新建虚拟机,自定义下一步,下一步 空白磁盘 linux-版本-CentOS 7下一步,自定义名称、路径(路径磁盘剩余空间大于设定内存。)内核数是本机cpu核数的一半,内存是实际内存的一半,下一步,,下一步,创建新虚拟磁盘,50g,拆分多个文件。下一步。完成。
  4,设置虚拟机,dvd使用ISO映射文件。找到linux系统文件镜像。 4,启动虚拟机,挂载磁盘分配,boot 1G,swap 2g,home 15g。剩余磁盘空间全部给/。

 

1、基本命令
  (1)pwd查看当前工作路径
  (2)cd切换工作路径。
     cd .切换到上一级
     cd .. 切换到根目录中,
     cd path进入path中。
    绝对路径:/path从/开始算
    相对路径:. path从当前路径开始算

  (3)ls 列出当前工作路径下的文件
     -l 列出当前路径下文件的信息和总用量
     -i 显示当前路径下文件的inode号
     -h 常和l一起使用,显示文件占用磁盘空间大小
     -d将目录名像其它文件一样列出,不是列出其内容,通常不单独使用
     -a列出目录中所有文件,包括以.开头的文件
  (4)查看文件内容
    cat filepath 显示文件所有内容
    more/ less filepath 按屏显示(需翻页)
      /key 搜索内容
      q退出
    head -n filepath 显示 文件前n行
    tail -n filepath 显示文件后n行
  (5)复制cp
    cp filepath1 filepath2 将1路径下的某个文件 复制到2路径下
    cp -r 要复制的文件夹 复制到目标位置
  (6)剪切mv
    mv 源路径 目标路径
    例:mv /root/text/tar /root/
  (7)删除rm
     rm [-r(目录) -f(强制)] filepath
  (8)创建空目录 mkdir [path] dirname
  (9)创建空文件touch [path] filename
  (10)关机
      shutdown -h now
      poweroff
      init 0
      halt
    重启
      shutdown -r now
      reboot
      init 6
  (11)查看输入历史命令
    history

2、文件管理
  (1)查看文件属性:
    ls -l(部分)
      drwxr-xr-x. 3 root root 141 12月 3 11:48 桌面
      drwxr-xr-x. 3 root root 39 11月 28 10:24 python1119
    stat filepath(具体)
      [[email protected] ~]# stat python1119/
      文件:"python1119/"
      大小:39 块:0 IO 块:4096 目录
      设备:fd00h/64768d Inode:33584988 硬链接:3
      权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
      最近访问:2018-12-03 09:01:34.501382579 +0800
      最近更改:2018-11-28 10:24:07.000000000 +0800
      最近改动:2018-11-28 22:14:01.176429905 +0800
      创建时间:-

  (2)文件类型d
    不以后缀区分文件类型,,
    一共七种文件类型:
      - regular 普通文件
      d directory 目录文件
      c charactor 字符设备文件
      b block 块设备文件
      l link 符号链接文件
      p pipe 管道文件
      s socket 套接字文件
  (3)文件拥有者和所属组
     创建用户:useradd username
     给定密码:passwd username
     切换用户 su - username
     删除用户 userdel -r username
     登出用户exit


     用户信息:/etc/passwd
     组信息:/etc/group
     密码: /etc/shadow


     创建组:groupadd groupname
     删除组:groupdel groupname
    用户添加到组内:
      gpasswd -a user group
    用户从组中删除:
      gpasswd -d user group

  (4)文件权限
    拥有者 所属组 其他用户
      u   g   o     a(all)
    权限:(0755/drwxr-xr-x)
    修改文件权限:
      <1>chmod u/g/o/a(+-)r/w/x filepath
      <2>chmod 0666 filepath
    修改文件的拥有者和所属组:
      chown user:(group) filepath
    权限的意义:
      目录文件:
        r ls列出目录中文件
        w touch/mkdir/rm对目录中文件创建、删除目录或文件夹
        x cd进入目录
     非目录文件:
      r cat读取
      w echo写入
      x 执行
    防止产生权限过大的文件:
      umask
      mode&~umask== 文件真正的权限
    特殊权限:
    u+s 所有由此权限的可执行文件,可以使普通用户在执行此命令期间,将身份切换为文件拥有者
  (5)文件硬链接个数 2
    硬链接:一个文件,多一个名字
      iNode是同一个,同一个分区的唯一标示。
      硬链接文件不能跨分区。
      ln scrpath dest
      cp -l scrpath dest
    符号链接(软连接):一个源文件,多个快捷方式
      可跨分区,存储的是源文件的路径。
      必须使用绝对路径
      ln -s srcpath dest
      cp -s crcpath dest
  (6)文件大小
    查看文件大小stat filepath 中,块大小
    文件大小(size)!=所占磁盘空间大小(block)
      block=512 bytes字节
    查看文件所占磁盘空间大小

      du -sh filepath 

    查看磁盘分区占用情况  df -h
  (7)文件时间:
    最近访问:access time
    最近更改modify time ls -l内容改变
    最近改动change time 属性改变的
  (8)文件的查找
    可执行文件的查找:
      which cmd 只查找cmd的文件路径
      whereis cmd 和cmd相关的帮助文件一起找到
    非可执行文件:
      遍历数据库 locate filepath
      更新数据库 updatedb
      find(遍历磁盘空间)
        find path options key
        options:
          -name 按名字
          -size 按大小
          -mtime 修改时间(天)-mmin分钟数
          -type文件类型f/d/c/b/p/s/l
          -exec 对与查找到的结果执行
          find /etc/ -name hello -exec ls -l{} ;
          只对找到的结果执行ls -l结果,不打印路径。
          -ok 同上,执行ls -l之前会询问
          -print 打印查找的结果
          -a连接多个查找的选项
  (9)文件的打包
    压缩.gz .bz2 .zip
    gzip file 压缩为.gz
    gunzip file.gz 解压缩
    bzip2 file 压缩为bz2
    bumzip2 file.bz2
    zip xxx.zip file dir1
    unzip xxx.zip

    tar options xx.tar.xx file1...dir...
    options:
    -c创建
    -v可视化
    -f在最后,后跟包名
    -j生成bz2压缩格式
    -z生成gz压缩格式
    -J生成xz压缩格式
    -x 解压缩
    -C指定解压缩路径
    -t不解压不解包情况下查看压缩包中内容
    -r向包(不是压缩包)追加新文件
  (10)文件重定向
    当用户登录成功后,三个文件一次打开:
    标准输入stdin(0)、输出stdout(1)、标准错误输出stderr(2)
    标准输入重定向:0< 或<
    标准输出重定向:1<或<
    标准错误输出重定向:2>
    追加 >>

  (11)|管道:左边输出,右边输入,
    将左边输出的结果通过 | 管道输入到右侧
  (12)wc [-lwc] filepath
    -l line 统计filepath文件的行数
    -w word 单词个数
    -c charactor 字符个数
  (13)grep [-iwn] key filepath 筛选文件内容
    -i 忽略大侠写
    -w 单词完全匹配
    -n 输出行号

3、vim编辑器的使用:
  vim filepath---->打开--->一般模式
    --->进入编辑模式进行编辑(iIaAoOsS)
    --->从编辑模式进入一般模式(Esc / Ctrl+c)
    --->从一般模式进入命令行模式(:w保存 :q退出)
  一般模式下:
    2yy 复制2行
    p 粘贴
    2dd 剪切2行
    u 撤销
    Ctrl+r 还原
    x/X 删除光标字符
    r 替换
    R 一直替换到Esc为止
    块选择:  
      ctrl+v 方向键选择
      I / A 插入相应内容--->Esc Esc
    gg 首行
    G 末行
    5G 第5行

    命令行模式下:
    :
    w 保存
    q 退出
    q! 强制退出
    w filepath 另存为
    saveas filepath 另存为
    %s/oldstring/newstring/g 将所有的oldstring替换为newstring
    2,5s/oldstring/newstring/g 将第2行到第5行oldstring替换为newstring
    set nu 显示行号
    set ts=4 将Tab设置为4个字符宽度

4、软件包管理
  源码包
  .tar.gz .tar.bz2 .tar.xz  

    (1)下载并解压包
    (2)编译make
    (3)make install

  二进制包(.rpm)

    yum 安装:
      /etc/yum.repo.d/xxx.repo
      yum install xxxx 
      例如有如下软件包:
        coreutils-8.22-21.el7.x86_64.rpm
        coreutils包名

      yum install coreutils 安装
      yum remove coreutils 卸载
      yum repolist 查看仓库中有多少软件包
      yum list 列出所有的软件包
      yum provides /usr/bin/ls 查看文件对应的软件包
      yum update coreutils 更新
      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软件包,安装:
      xxxx.rpm

      rpm -ivh xxxx 安装已下载的rpm包
      rpm -e xxxx 卸载
      rpm -U xxxx 更新
      rpm -qa 查询系统中所有已安装的rpm包
      rpm -qf /usr/bin/ls 查询ls对应的软件包

5、网络管理  
  <1>查看ip, mac, netmask....
    ip addr
    ifconfig
  <2>查看/启动/重启/关闭/自启动/禁用服务
    systemctl status/start/restart/stop/enable/disable 服务名字
  <3>手动配置静态ip地址
    关闭NetworkManager
      systemctl stop NetworkManager
    配置/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
    重启网络服务
      systemctl restart network

  <4>防火墙
    关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld

  <5>vsftpd服务 ---> 文件共享
    安装:yum install vsftpd
    启动:systemctl start vsftpd
    开机自启动:systemctl enable vsftpd
    配置文件:/etc/vsftpd/vsftpd.conf

    访问共享目录:
    下载安装:yum install lftp
    lftp 192.168.5.129
    lcd --->切换下载路径
    get filepath 下载非目录文件
    mirror filepath 下载目录文件
    bye 退出
  <6>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


6、进程管理
  查看进程信息
    ps aux
  终止进程通过kill 发送信号
    kill -l查看所有的信号
    kill -9 3333    发送9号信号给进程号为3333的进程
  top 实时查看系统中进程的运行状态

7、创建pyenv虚拟环境

  (sudo) yum install openssl* 安装其所需要的库文件

  git clone https://github.com/yyuu/pyenv.git ~/.pyenv 下载pyenv

  echo ‘export PYENV_ROOT="$HOME/.pyenv"‘ >> ~/.bash_profile

  echo ‘export PATH="$PYENV_ROOT/bin:$PATH"‘ >> ~/.bash_profile

  echo ‘eval "$(pyenv init -)"‘ >> ~/.bash_profile

  exec $SHELL 重启终端运行的程序(shell)

  source ~/.bash_profile 重新加载配置文件.bash_profile

  pyenv install --list 列出所有我们可以通过pyenv安装的python版本

  pyenv install -v 3.6.4 用pyenv命令安装python3.6.4

  pyenv versions 查看当前系统中所有的python版本

  pyenv version 查看当前所使用的版本

  pyenv global 3.6.4 将使用版本切换到3.6.4

  pyenv version

  python

  重启系统

  

8、git的基本使用

  创建仓库
    登陆github帐号,创建远程仓库
    同步到本地
    生成key:
      ssh-keygen
      cat ~/.ssh/id_rsa.pub 将密钥复制到帐号的key
    git clone [email protected]:zhangzongyan/python20181119.git
    python20181119---》本地仓库

  基本使用命令
    git add .file---->追踪
    git commit -m "备注" ---->提交到仓库
    git push ---->提交到远程仓库
    git pull ---->下载到本地仓库
    git status ---->查看仓库状态
    git log ----->查看仓库日志(id)
    git reset --hard id ----->切换到指定版本
    git reflog ----->查看最新版本日志
    git rm ----->删除

 学习疑问:

  1,不清楚文件重定向的意义,有什么用处?

































































































































































































































































































































以上是关于py1119_Linux学习_第二周总结的主要内容,如果未能解决你的问题,请参考以下文章

linux的权限 第二周学习小总结

LINUX内核分析第二周学习总结:操作系统是如何工作的?

Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码

马哥教育学习第二周总结

《linux 内核分析》 第二周 实验

Linux内核分析——第二周学习笔记