python ——linux笔记

  1. 查看手册 man man
  2. pwd 显示当前工作路径
  3. cd 切换工作路径

      绝对路径 cd /home/alice  cd ~alice

      相对路径cd ..  cd .

  4.ls

    -a    all,查看目录下的所有文件,包括隐藏文件

    -l     长列表显示

    -i     显示文件的inode号

    -d    只列出目录名,不列出其他内容

    -h    human 以人性化方式显示出来  

  5.查看文件内容

    cat  filepath 显示文件全部内容

    more filepath 按屏显示

    less  filepath 按屏显示

    /关键字  搜索

    q 退出

    head -行数 filepath 显示文件前几行

    tail -行数 filepath 显示文件的后几行

  6.复制

    cp [-r(目录)]  srcpath  destpath

  7.剪切

    mv  srcpath  destpath

  8.删除

    rm [-r(目录) -f(强制)]  filepath  

  9.创建文件

    touch  filename 空文件

    echo “内容”> filename  往文件中写内容

  10.创建目录

    mkdir  dirname 空目录

  11.关机

    shutdown  -h  now

    poweroff

    init 0

    halt

  12.重启

    shutdown -r now

    reboot

    init 6

  13.history 查看历史命令    

文件管理

  1. 文件属性

    stat  filepath

    ls -l(部分属性)

  2.文件类型和权限drwxr-xr-x

    (1)文件类型d

        不以后缀区分类型

        七种文件类型

          -    regular  普通文件

          d  directory 目录文件

          c charactor   字符设备文件

          b block 块设备文件

          l link 符号链接文件

          p    pipe 管道文件

          s    socket  套接字文件

  (2)文件权限rwxr-xr-x

      拥有者 所属组 其他用户

        u       g         o        a(all)

      前三位表示拥有者权限

      中三位表示所属组权限

      后三位表示其他用户权限

  八进制    0开头

  十六进制   0x开头

  有1既有权限,有0既没权限

  1表示:rwx(有顺序性)

  0 表示:-

  修改文件权限:

    chmod u/g/o/a (+ -)r/w/x filepath

    chmod 0666 filepath

  修改文件的拥有者和所属组

    chown user:group filepath

   文件:

    r        只读

    w       写

    x        可执行

   目录:

    r        能够读取ls

    w       能创建删除文件touch / mkdir / rm

    x        是否能搜索,可进入 cd

   防止产生权限过大的文件:

    umask

    mode & ~umask === 文件真正的权限

   特殊权限

    u+s  所有有此权限的执行文件,可以使普通用户在执行此命令期间,将身份切换为文件拥有者

  3.硬链接和软连接

    (1)硬链接:同一个文件,多一个名字    

      2表示文件的硬链接个数 

      inode是同一个分区文件的唯一标识

      所以硬链接文件不能跨分区  

      ln  srcpath  dest

      cp -l srcpath  dest

      (2)符号链接(软链接):  就是一个快捷方式,存储是源文件的路径

      可以跨分区

      ln -s srcpath dest

      cp -s srcpath dest

  4.文件拥有者和所属组

    创建用户useradd username

    给定密码passwd username

    指定组 -g

    ~表示当前用户的家目录

    切换用户su – username

    删除用户userdel -r username

    登出用户exit

    用户信息:/etc/passwd

    组信息:/etc/group

    密码:/etc/shadow

    组创建groupadd groupname

    组删除groupdel groupname

    用户添加到组内:gpasswd -a user group

    用户从组中删除:gpasswd -d user group

   5.文件大小

    文件的大小(size) != 所占磁盘空间的大小(block)

    stat filepath 占磁盘大小(看块数)

    一块block == 512bytes

    du -sh filepath 查看filepath对应的文件所占用磁盘空间的大小

    不加s是查看目录下各文件大小

    df -h 查看磁盘分区占用情况

  6.文件时间

    access time   最后一次访问时间

    modify time  最后一次内容改变

    change time  最后一次属性改变 

  7.文件的查找

  可执行文件:

    which cmd   

    whereis cmd

  非可执行:

    遍历数据库 locate filepath

    更新数据库 updatedb

  find(遍历磁盘空间):

     -name 按名字找

     find /etc/ -name "passwd"

     -size 按文件大小查找

     find /etc/ -size n(b/c/k)

     -perm 按权限查找

     -type c(文件类型)

     find /etc/ -type f/d/c/b/p/l/s

     f 表示普通文件

     -maxdepth 按深度查找

     -mtime 按修改时间查找

        find /etc/ -mtime n(天)

      +1(1天以前)

      -1(1天以内)

    -mmin 按分钟查找

    -empty 查找空文件

    -exec 对于查找到的结果执行

    find /etc/ -name "hello" -exec ls -l {} ;

    只对找到的文件执行ls -l结果,不打印路径

    -ok

    find /etc/ -name "hello" -ok ls -l {} ;

    在执行ls -l之前会询问

    -print 打印查找的结果

    find /etc/ -name "hello" -print -exec ls -l {} ;

    对找到的文件执行ls -l结果,打印路径

    -a 连接多个查找选项的

    find /etc/ -type d -a -size +10k

    ll -h 带单位

    看目录加 -d

  8.文件的打包压缩

  压缩:

    .gz    .bz2    .zip

    gzip file 压缩为.gz

    gunzip file.gz 解压缩

    bzip2 file

    bunzip2 file.bz2

    zip xxx.zip file dir1 dir2

    unzip xxxzip

    主要tar options xx.tar.xx file1.... dir.....

         options:

          -c 创建

          -v 过程可视

          -f 在最后,后跟包名

          -j 生成bz2压缩格式

          -z 生成gz格式压缩文件

          -J 生成xz格式

          -x 解压缩

          -C 指定解压路径

          -t 不解压不解包的情况下查看压缩包中内容

          -r 向包中追加新文件

          *表示当前路径下所有文件

          解压缩 tar -xf 压缩包名

          查看压缩包 tar -tvf 压缩包名

          向包中追加文件 tar -rvf  xxx.tar filename

          单独拿出一份 tar -xvf 压缩包名 filename

  9.文件重定向

    当用户登陆成功后,三个文件依次打开:

      标准输入(stdin 0)

       标准输出(stdout 1)

      标准错误输出(stderr 2)    

      0< 标准输入重定向

      1> 标准输出重定向

      2> 标准错误输出重定向

      >> 追加

10. 文件统计和筛选

  | 管道

  ls -l /etc/ | wc -l 统计文件

  wc [-lwc] filepath

    -l文件的行数

    -w单词个数

    -c字符个数

  grep [-iwn] 关键字 filepath  筛选文件内容

    -n 行数

    -i 忽略大小写

    -w 精确查找

11. vim编辑器的使用:

  vim filepath  打开文件

  一般模式下:

    yy 复制(复制几行在y前面加数字几)

    p 粘贴(下一行) 大写的 P(上一行)

    dd 剪切(剪切几行在d前面加数字几)

    u 撤销

    Ctrl+r      还原

    x从光标向后删除

    X 从光标向前删除

    r 替换

    R 一直替换到Esc为止

    块选择:ctrl+v 方向键选择

    I / A 插入相应内容    Esc Esc

    gg 首行

    G 末行

    5G 第5行

    w/W按单词阅读

    一般模式进入命令模式(:)

  进入编辑模式:

          i 光标前     I行首

          a光标后    A行末

          o光标下一行插入   O光标上一行插入

            s删除光标位置      S删除光标所在行

            退出编辑模式进入一般模式:ESC 或ctrl+c

  命令行模式:

    :w 保存

    :q 退出

    :wq保存并退出

    :q! 强制退出

    :/关键字 搜索

    :w filepath 文件另存为

    :saveas filepath 另存为

    :x相当于wq

    :X设置密码

    :%s/oldstring/newstring/g 将所有的oldstring替换为newstring

    :2,5s/oldstring/newstring/g 将第2行到第5行oldstring替换为newstring

    : set number(nu) 显示行号

    :set ts=4 将Tab设置为4个字符宽度

软件包管理

  源码包(.tar.gz .tar.bz2 .tar.xz)

    下载并解压解包

    编译make

    make install

  二进制包(.rpm)

    yum 安装:/etc/yum.repos.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 列出所有的软件包

    Base 源

    Update 更新

    Extras其他的

    wget 远程下载

    baseurl + 源地址

    gpakey 官方验证

    -y所有询问都是yes

    yum provides /usr/bin/ls 查看文件对应的软件包

    yum update coreutils 更新

    yum clean all 清除缓存

            软件包所在位置/etc/yum.repos.d

    yum源所在路径/etc/yum.repos.d/xxx.repo

  本地yum源配置:

    ls  /mnt/

    ls /dev/cdrom

    mount 用于挂载

    umount 卸载

    ls /mnt/centos7/packages

    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包

       -q查询

       -U 更新

       -e 卸载

       -qa 查询系统中所有已安装的rpm包

       -qf /usr/bin/ls 查询ls对应的软件包

      nodeps 不检查依赖性

网络管理

  查看ip, mac, netmask....:

    ip addr

    ifconfig    

      回环测试:

           ping 127.0.0.1

      只显示ens33:

           ifconfig ens33

      查看路由表:

           ip route

  systemctl status服务名字  查看服务

       start           启动服务

       restart       重启服务

       stop                停止服务

       enable             自启动服务

       disable            禁用服务

  手动配置静态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

  防火墙

    关闭防火墙    

    systemctl stop firewalld

    systemctl disable firewalld

  vsftpd服务   文件共享

      安装:yum install vsftpd

      启动:systemctl start vsftpd

      开机自启动:systemctl enable vsftpd

      配置文件:/etc/vsftpd/vsftpd.conf

      访问共享目录:cd  /var/ftp/pub

     lftp 远程访问

      安装:yum install lftp

      lftp  ip地址

      lcd  切换下载路径

      get filepath 下载非目录文件

      mirror filepath 下载目录文件

      by 退出

  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)

    ro  只读

    sync 同步

    showmount -e 共享目录

  客户端挂载:

      mount 192.168.5.129:/var/ftp/pub /mnt

  no_root _squash  不压制root权限

进程管理

  ps aux    查看进程信息

  kill  信号  进程号     结束进程

  kill -l查看所有的信号

  kill -9 3333    发送9号信号给进程号为3333的进程

  man 7 signal  信号页

  top 实时查看系统中进程的运行状态

  q表示退出

  S表示可中断的睡眠态

  Z表示僵尸进程(Zombie)

创建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

  如果成功了 重启计算机

git的基本使用

  1.创建仓库

    登录github账号,创建远程仓库  xxx

    同步到本地

      ssh -keygen 

      cat ~.ssh/id_rsa.pub 将密钥复制到账号的key中

      git clone git@github.com:自己的账号名/xxx.git

  git 的命令

    git add filename 追踪文件

    git status 查看仓库状态

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

    git push 上传到远程仓库

    git pull  下载到本地仓库

    git log  查看仓库日志

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

    git reflog 最新版日志

    git rm 删除

    HEAD^ (^表示上一个版本)

原文地址:https://www.cnblogs.com/zhanggd/p/10059116.html