zoukankan      html  css  js  c++  java
  • 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^ (^表示上一个版本)

  • 相关阅读:
    【数据结构】树的DFS序&欧拉序
    Codeforces 1335E2
    Codeforces 1335E1
    Codeforces 1338A/1339C
    【数据结构】ST算法
    Codeforces 1334C
    Codeforces 1333D
    Codeforces 1333C
    python中的socket编程实例与查看端口占用
    java中打印数组
  • 原文地址:https://www.cnblogs.com/zhanggd/p/10059116.html
Copyright © 2011-2022 走看看