VI编辑器、ipython、jupyter及进程知识总结
2019-08-28

一、VI编辑器

1、三种模式

  一般模式(normal mode 默认) 

  插入模式(insert mode) 

  末行模式(last line mode)

2、模式切换

  一般模式------------------------------------------->插入模式: i,a,o,O,A,I

   i:当前光标处输入内容

      I:在当前光标所在行的行首

      a:在当前光标所在处的后面

      A:在当前光标所在行的行尾输入

      o:在光标所在行的下方新增一行空白行

   O:在光标所在行的上方新增一行空白行

  插入模式---------------------------------------------->一般模式: Esc

  一般模式---------------------------------------------->末行模式: 输入冒号:

  末行模式---------------------------------------------->一般模式: Esc

3、模式操作

  一般模式:

    dd删除:  从当前行一直删除到行尾:  :.,$d 回车

            yy复制:  复制15到17行:      :15,17y  回车

            p/P粘贴

            r替换:替换光标所在字符

            x清除:删除光标所在字符,后位补齐

            G:跳转至最后一行行首

    gg:跳转至第一行行首  23gg    跳转到23行

            /或?:查找   /root  查找root

     n/N:查找到后上下翻

            v:可视化模式

      进入可视化模式后可以,移动光标选择文本,键入y可以把选择的复制,键入d可以删除选择的内容,再次键入v回到一般模式

            u:撤销上一次操作

    ZZ:保存退出

  插入模式:

    i:当前光标处输入内容

       I:在当前光标所在行的行首

       a:在当前光标所在处的后面

       A:在当前光标所在行的行尾输入

       o:在光标所在行的下方新增一行空白行

    O:在光标所在行的上方新增一行空白行

  末行模式:

    退出:

      q!强制退出,不保存并退出

        wq 保存修改并退出

        x,保存并退出

      s:替换字符

二、I/O重定向

1、默认输入输出

  输入:键盘

  输出:显示器

2、输入重定向符 < , << 

  <:把一个文件内容作为输入  <file

    例如:wc <output.txt,把output.txt文件的内容输入给wc命令  

  <<:在命令行中输入的内容重新定向输入给一个命令,而不是把文件中的内容重定向输入,这种方式必须指定一个文本标记来标识输入内容的开始和结束

    例如:EOF(end of file)是开始和结束标志,可以是任意字符

      wc <<EOF

        data.......   

        EOF

3、输出重定向符 >,>>

  >:> file  (输出的内容放到file中,file中原来的内容被覆盖)  文件不存在,会自动创建;如果文件有内容,会把内容清空以后,重新写入

  >>:>> file (输出的内容追加到file的行尾,file中原来的内容不覆盖)  文件不存在,会自动创建;如果文件有内容,不会把内容清空,会把新数据附加到文件末尾

三、文件描述符重定向

  标准描述字 0:标准输入 stdin

  标准描述字 1:标准输出 stdout

  标准描述字 2:错误输出 stderr

1、> 只重定向标准输出,错误输出会显示到屏幕上

2、标准输出写入ok.txt 错误输出写入 err.txt

3、错误输出写到文件里面,标准输出输出到屏幕上

4、错误输出输出到屏幕上,标准输出输出文件里面

5、混合输出符:& (stdout和 stderr输出到同一处)

  两种方式:

    &>filename

    2>&1

6、特殊设备:/dev/null 黑洞

  有时我们关心的是命令是否执行成功了,而不是命令执行后输出的结果,可以把输出结果丢弃到黑洞设备里

四、 echo命令

  -n:去掉换行符

  -e:保留特殊意义的字符有特殊意义,例如:换行符,制表符

五、ipython

  1、简介

    ipython:属于交互式的加强型的python的解释器,高性能的并行计算工具。比Python自带的解释器好用,功能更加的强大。

    ipython优势:

       ①支持变量自动补全,自动缩进

              ②内置很多功能模块和函数(很好用)

              ③可以灵活的嵌入shell解释器

   通常Python编程过程中,我们一般使用Python的IDE工具(例如pycharm),

   但在实际的Python实际简单测试中(小单元或代码段),通常开启ipython,速度和效率比较高。

   在生产环境,模块化开发,代码多了测试不方便,就在ipython进行测试和查询帮助。

  2、安装

    sudo apt-get install ipython  安装ipython2版本

    sudo apt-get install ipython3  安装ipython3版本

    sudo apt-get install python3-pip   安装pip工具

  3、帮助查看

    ?:ipython的概述和简介

    help(name):查看帮助,要查看的名字要在括号里

    obj?:查看帮助,中间不要有空格

  4、特殊变量

    _:前一次输出

    __:倒数第二次输出

    ___:倒数第三次输出

    _dh:目录历史

    _oh:输出历史

  5、ipython下执行shell命令(依赖于当前shell环境提供的命令)

    有些命令需要加!才可使用,有些不用

六、jupyter

  1、安装

    sudu apt-get install jupyter

    sudo apt-get install jupyter-core

  2、设置配置文件

    sudo jupyter-notebook --generate-config

  3、设置web登录密码

    sudo jupyter-notebook password

  4、登录  jupyter notebook

    遇到PermissionError: [Errno 13] Permission denied: "/home/guo/.jupyter/jupyter_notebook_config.json",就去修改相应的文件权限就可以了

    chmod 777 /home/guo/.jupyter/jupyter_notebook_config.json,修改后就可以输入登录了

七、进程管理

1、概念

  程序:保存在可存储介质中的可执行的代码和数据,属于静态保存的代码

       进程:在CPU和内存中运行的副本程序代码,属于动态执行的代码,每个进程可能都有父进程和子进程。

2、查看静态进程

  ps -ef 查看所有进程

  ps -aux 查看所有进程

  ps -aux --sort=-%mem | head -5  按照内存顺序从大到小查看前五个进程

  ps -aux --sort=-%cpu | head -5  按照cpu顺序从大到小查看前五个进程

3、进程状态

  ①运行状态:running

        ②准备状态:ready

        ③睡眠状态:可中断睡眠状态interruptable

                              不可中断uninterruptable

        ④停止状态:暂停在内存中,不会被调度,除非手动启动

        ⑤僵死状态:zombie

4、查看动态进程   top

5、查看进程PID  pgrep -l 进程名

6、查看进程树 pstree

  -p 显示进程号

  -h 高亮显示当前pstree命令的进程信息

7、杀死进程

  kill PID 

  kill 进程名

  kill -9 PID 强制杀死

  killall 进程名  杀死指定名称的所有进程

  killall -9 进程名  强制杀死指定名称的所有进程

  ctrl + c  终止程序

  ctrl +   退出程序

  ctrl + z  放置后台运行

  fg  从后台提到前台