• 【Python Learning第一篇】Linux命令学习及Vim命令的使用


    学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*)

    此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多多包涵

    以下是我上课做的一些笔记,非常的凌乱,(⊙﹏⊙)反正是留给自己看的

    Day1学习:

    以Ubuntu为例子
    Ctrl + Shift +‘+’ 变大
    Ctrl + ‘-’变小
    ls 能显示当前路径下的所有文件名及文件夹名的命令
    Ubuntu没有盘符的概念,只有一个根目录

    bin 放的是程序相关的
    boot 和Ubuntu的启动项相关,开机项相关
    cdroom 光盘相关
    dev 和设备相关 device
    etc 几乎所有程序 配置的地方
    lib 库存放的地方
    home 里面有个图标为家的目录 ls查找的默认目录即为home中家目录Sakura的文件夹下
    ls默认显示的是根目录下的home文件下的Sakura文件夹下的所有文件名及文件夹名

    /斜杆
    反斜杠
    -横杆
    _下划线
    |竖杠

    pwd命令 查看当前所处的目录路径
    clear 清屏
    cd 切换目录
    touch 文件名 创建文件命令
    mkdir 文件夹名 创建文件夹命令

    创建的文件名如果以.开头,说明该文件为隐藏的文件
    例如 touch .123.txt

    ls -a 显示所有文件(包括隐藏文件)

    ls -l 显示列表
    ls -l -h 显示文件的单位大小
    ls -a -l -h 以列表的方式显示 并且每个文件单位显示 并且隐藏的文件也显示
    (-a -l -h先后顺序无要求)
    ls -alh / -lah /...这样写效果一致

    vi 文件名 编辑文件

    ls(命令) --help 查看ls的帮助文档

    200-300个命令
    man ls 查看ls命令的文档 上下键可以调整文档的字幕,f键可以往后(下一个)屏幕的切换,b键可以往前(上一个)屏幕的切换
    press h for help or q to quit

    gedit 文件名 编辑文件内容命令
    tab 自动补全命令

    cat 文件名 查看文件内容命令
     
    history 显示你之前执行过的所有命令

    !行数 执行该行数对应的命令(可以从历史中去找对应行数)

    rm 文件名 删除命令

    ls 1* 列出以1开头的所有文件 通配符 *替换的是N位
    还有一种是位数的通配符
    比如我们有文件如下:
    23 234 2333 23.txt

    ls 2?(一个问号代表一位数)
    显示结果为23
    ls 1?3.txt 在第1位和第3位相同的情况下列出满足的所有文件

    ls 1[12345]3 中括号也是一种通配符 在第1位和第3位相同的情况下列出满足当前的第2位范围在1-5的所有文件
    写法和ls 1[1-5]3一样 都是正则表达式的写法

    重定向
    把原本显示在终端的内容写入文件中,这就是重定向

    demo 示例

    ls > xxx.txt 把当前显示的文件名写入xxx.txt文件中,相当于是把ls显示内容存入到xxx.txt文件中,gedit xxx.txt打开可以查看结果
    ls -alh > xxx.txt 也是一样的意思

    ls >> xxx.txt

    如果当前xxx.txt文件里面有内容,>>的意思是追加内容,就是在原内容的基础上增加新内容
    而>的意思是删除原来的内容,添加一个新的内容到该文件中

    more xxx.txt 查看文件内容命令
    more命令和cat命令的区别:
    cat命令一次性把所有内容都显示出来
    而more命令显示一屏幕,f键可以往后(下一个)屏幕的切换,b键可以往前(上一个)屏幕的切换。
    more命令对于大文件(内容比较多)会很方便

    ls -alh /bin | more 把显示的所有内容存到|里面,然后通过more去调用|来去显示出分屏的效果
    |称之为管道

    如果你想同时运行两个命令,例如ls和ls -alh
    那么我们对于这种情况可以用分号来进行隔开操作 即ls;ls -alh

    cd /根目录/其他目录/.../

    cd ./桌面 点.表示当前路径
    cd .. 表示当前路径的上一路径

    cd ../..表示当前路径的上一路径的上一路径
    比如当前路径/home/sakura/桌面
    cd ../..的结果是/home

    cd / 直接跳到根目录下
    cd - 传送到上一次工作所在的路径(只记忆一次)
    cd ~ 回到用户主目录,即默认原始路径/home/sakura


    目前理解概念:带颜色的为文件夹 不带颜色的为普通文件


    Ctrl+C不执行,终止,相当于换行

    rm *.txt 删除文件类型为.txt的所有文件(利用到通配符)

    tree 以目录树的方式显示内容

    mkdir A/B/C/D/E -p 表示递归创建目录 p表示parents
    如果你想创建A并且在A目录下创建B子目录,没有-p是行不通的

    rmdir 文件夹名 删除当前路径下的文件夹

    rmdir不能删除非空文件夹
    而rm既可以删除文件,还可以删除文件夹
    删文件夹时需要加一个选项,为-r
    rm 文件夹名 -r 递归处理,将指定目录下的所有文件与子目录一并处理

    mv 原文件名 新文件名 重命名命令 既可以重命名文件,也可以重命名文件夹

    软链接 硬链接
                
    文件中的数据 -> 1.txt   <-- 1.softlink.txt
                 -> 1.hardlink.txt

    ln -s 源文件 目标文件

    ln -s 1.txt 1-softlink.txt

    某一个文件(源文件)在另外一个位置建立一个不同的链接(目标文件),
    -s 是software的意思,加上-s以后,这个链接称为软链接,相当于Windows中的快捷方式
    一旦删除了源文件 软链接文件找不到源文件以后就会报错

    ln 1.txt 1-hardlink.txt 创建一个硬链接
    即使删除了源文件 硬链接相当于拷贝了一份源文件 仍然能够打开并读取到源文件中的内容


    grep "内容" 文件名 搜索当前文件中的"内容"相关的东西
    grep -v "内容" 文件名 搜索当前文件中不包含"内容"相关的东西 -v是否的意思

    例如 grep "ntfs" xxx.txt 表示搜索xxx.txt文件中含有ntfs内容的东西
    而grep -v "ntfs" xxx.txt 表示搜索xxx.txt文件中不包含ntfs内容的东西

    而搜索ntfs开头的内容 我们采用的命令如下:grep "^ntfs" xxx.txt
    ^向上箭头表示从头开始
    而我们如果要搜索以ntfs结尾的内容时,我们采用的命令如下:grep "ntfs$" xxx.txt
    $表示结尾内容为当前内容

    mv 文件名 文件夹名/ 把当前文件剪切并粘贴到目标文件夹里面

    顺带功能前面已经给出,给文件或者文件夹改名

    mv 原文件名 新文件名 重命名命令 既可以重命名文件,也可以重命名文件夹


    cp 文件名 文件夹名 将当前文件复制并粘贴到目标文件夹下
    如果要拷贝文件夹,只需要在末尾加上-r即可
    如:cp A B/ -r 将A文件夹拷贝到B文件夹下

    Day2学习: 

    find 用来在特定目录下搜索符合条件的文件
    find / -name "*name*" *是通配符,意思是去查找当前目录下符合有name字样条件的文件,-name的意思是按照名字去查找
    这样查找会出现有些文件显示权限不够,我们可以加上sudo增加权限,命令为sudo find / -name "*name*"

    find / -name "name" 查找当前目录下全名为name的文件

    sudo find / -size 1G 搜索当前目录下大小为1G的文件

    sudo find / -size +1G 搜索当前目录下大小大于1G的文件
    sudo find / -size -1G 搜索当前目录下大小小于1G的文件

    ll 该命令相当于ls -la命令

    tar -cvf 包名 需要打包的文件 把当前路径下需要打包的文件打包到指定的包中,仅仅只是打包
    tar -xvf 包名 把当前路径下的包进行解压

    tar -cvf test.tar *.py 把当前路径下以.py结尾的文件打包到test.tar文件中
    tar -xvf test.tar 将test.tar这个包进行解压,解压路径为当前所在的路径

    tar -zcvf xxx.tar.gz *.py 把当前路径下需要打包的文件(.py文件)打包到指定的包(xxx.tar)中,并压缩 -z表示要进行一个压缩,所以打包的文件后缀应加上.gz
    tar -zxvf xxx.tar.gz 将xxx.tar.gz压缩包进行一个解压缩 -z是针对.gz结尾的压缩文件进行的操作

    tar -jcvf yyy.tar.bz2 *.py 将*.py文件打包并压缩到yyy.tar.bz2文件中 -j是针对.bz2结尾的压缩模式的命令
    tar -jxvf yyy.tar.bz2 将yyy.tar.bz2压缩包进行一个解压缩 -j是针对.bz2结尾的压缩模式的命令

    zip zzz.zip *.py 把*.py文件打包并压缩到zzz.zip文件中
    unzip zzz.zip 把 zzz.zip文件进行解压缩

    总结一点 .gz结尾的文件<.bz2结尾的文件<.zip结尾的文件 .rar结尾的文件

    .zip文件的解压缩指定路径为 -d ./目录
    upzip -d ./test myzip.zip

    .gz文件的解压缩指定路径为 -C 指定目录/
    tar -zxvf test.tar.gz -C dongge/

    我们所敲的所有命令都是 bin/ 文件夹下的一个文件

    which的作用是用于查找并显示给定命令的绝对路径

    which ls显示结果为/bin/ls


    cal 显示当前的某年某月某日

    cal -y 年份 显示指定年份的全年的日历

    date 查看当前的时间

    date "+%Y=====%m=====%d" 显示当前的年月日 +代表显示
    结果为2018=====02=====26
    date "+%y=====%m=====%d" 显示当前的年月日 +代表显示
    结果为18=====02=====26
    两者区别在这

    date "+%Y年%m月%d日"
    结果为2018年02月26日

    date可以修改时间

    ps(process进程) 查看进程信息

    ps -aux 查看当前所有进程的信息 从头到尾显示一遍

    top 显示当前电脑进程的运行情况

    htop 查看电脑当前的运行情况

    ps top htop 均用来查看电脑当前的运行情况

    kill -9 9822 首先-9的意思是强制性 强制关闭代号为9822的进程,我们要查看代号只需要敲击ps命令即可查看


    reboot 重启命令

    shutdown -h now  立刻关机
    shutdown -h +10  十分钟以后关机
    shutdown -h 20:20 今天晚上8:20电脑自动关机

    init 0 关机
    init 6 重启


    df

    df -h 显示当前整个硬盘的使用情况


    ifconfig 可以查看ip地址 还可以改IP地址
     
    ping IP地址 可以测某一网段是否是通的

    sudo useradd 账户名字 -m 添加新账号命令 -m的意思是顺便在/home目录下创建一个文件夹,文件夹的名字为账户的名字

    ls /home/ home里面包含了用户信息,可以查看用户信息

    cat /etc/passwd 最后一行可以查看用户数量及信息

    su 用户  切换用户命令

    sudo passwd 用户名 更改用户的密码

    whoami 显示当前的用户名

    exit 退出当前用户

    Ubuntu有多用户的功能


    ssh 用户名@ip地址 远程登陆电脑

    Ctrl+Shift+t 打开多个终端并合并

    Alt+数字键(非小键盘) 切换终端

    who 查看当前登陆的用户
    当远程登陆一个用户时,这边也会显示有一个用户登陆

    userdel 删除用户

    userdel 用户名 删除用户

    而一般操作是 sudo userdel -r 用户名 删除指定用户的用户名及家目录/home -r是删除家目录下的文件


    su - xxxx 登陆xxxx用户,-表示会切换目录

    例子:
    sudo useradd xxxx -m
    sudo passwd xxxx
    输入新的UNIX密码:123456
    重新输入新的UNIX密码:123456
    passwd:已成功更新密码
    su xxxx
    密码:123456

    pwd
    /home/python

    exit

    pwd
    /home/python

    路径没有切换

    su - xxxx

    pwd
    /home/xxxx

    路径切换了


    sudo -s 切换root权限(超级管理员权限)


    ifconfig 网卡型号(例如ens33) IP地址(例如172.16.7.33) 对网卡的IP地址进行修改


    ~$ 该符号为普通用户的账户
    ~# 该符号为root权限用户的账户

    文件拥有者 用户组


    cd ~ 跳到根目录


    sudo groupadd YYY 创建或添加组

    cat /etc/group 可以查看组是否创建

    sudo groupdel YYY 删除组

    groupmod+多敲几次Tab 查看当前所有组组名
    所以总结一点:两种方式查看组名

    cat /etc/group | grep sudo
    sudo:x:27:python <---

    cat/etc/group | grep adm
    adm:x:4:syslog,python <---
    lpadmin:x:113:python

    sudo usermod -a -G adm 用户名 usermod是修改用户的意思,-a是添加的意思,-G是指定账户 指定adm这个组的账户
    sudo usermod -a -G sudo 用户名 usermod是修改用户的意思,-a是添加的意思,-G是指定账户 指定sudo这个组的账户


    chgrp修改文件所属组
    命令格式如下:
    chgrp 我们所需要修改成的用户组名 文件名

    chown修改文件拥有者
    命令格式如下:
    chown 我们需要修改成的文件拥有者名 文件名

    ll显示以后的第一列有十个字母的位置
    第一个位置用来标识文件和文件夹
    -表示的是普通文件,d表示的是文件夹,这是真正区分文件和文件夹的方式,不能用文件的颜色去区分是否是文件夹
    后面每三个字母为一组分别表示为以下权限:
    文件拥有者的权限(u) 同组者的权限(g) 其他人的权限(o)


    rwx r是读入 w是写入 x的意思是可执行
    r - - 只能读入
    r - x 可读 可执行 但是不能写入
    带-说明没有权限

    举个栗子:
    以Ubuntu 14.04为例子,当前pwd路径为:/home/sakura/桌面
    drwxr-xr-x

    我们先进行拆分:d rwx r-x r-x
    d表示这个是一个文件夹
    rwx说明该文件夹的文件拥有者有可读可写可执行的权限
    r-x说明该文件夹同组者的权限有可读可执行但是不能写入
    r-x说明该文件夹其他人的权限有可读可执行但是不能写入


    chmod u=rwx 1.py 对1.py文件的文件拥有者的权限进行修改,修改为可读可写可执行

    chmod u=r,g=r,o=r 2.py 对1.py文件的文件拥有者权限 同组者权限 其他人权限都修改为只可读

    数字法:

    r------->4
    w------->2
    x------->1

    1   x
    2   w
    3   wx
    4   r
    5   rx
    6   rw
    7   rwx

    编辑器讲解

    Sublime Text3
    Ctrl+Shift+t 快速复制

    代码移动 选中你需要移动的代码 然后按tab键就好了(向右移动)
                                  按住Shift+tab(向左移动)

    Vim编辑器讲解


    按ESC退出编辑(插入)模式,进入命令模式
     
    然后写入 : 进入末行模式


    按下大写的 I 在行首插入
    按住i可以进入插入代码格式(写入文本) 插入光标前一个字符

    按下大写的 A 在行末插入
    a:插入光标后一个字符

    按下大写的 O 在上一行插入
    按下小写的o(小写字母)进入下一行编辑模式


    yy:复制光标所在的这一行
    4yy:光标所在的行开始向下的4行

    p:粘贴

    dd:剪切光标所在的这一行
    2dd:剪切光标所在的行开始向下的2行
    D:从当前的光标开始剪切 一直到行末
    d0:从当前光标开始剪切,一直到行首
    x:删除当前的光标(从后删) 每次只会删除一个(都是剪切的一些命令)
    X:删除当前的光标(从前删) 每次只会删除一个(都是剪切的一些命令)
    dw:删除光标开始位置的字 包含光标所在字符 其实就是删掉一个单词的字母(都是剪切的一些命令)

    代码上下左右键:
    h 左 j 下 k 上 l 右

    H:当前屏幕的最上方
    M:当前屏幕的中间
    L:当前屏幕的最下方


    Ctrl+f 向下翻一页代码
    Ctrl+b 向上翻一页代码

    Ctrl+d 向下翻半页代码
    Ctrl+u 向上翻半页代码

    行号 -G 移动到指定行
    20G:快速的定位到第20行代码
    G:快速的回到 整个代码的最后一行
    gg:快速的回到 整个代码的第一行

    w:向后跳一个单词的长度 即跳到下一个单词的开始处
    b:向前跳一个单词的长度 即跳到上一个单词的开始处

    u:撤销上一步的操作


    Ctrl+r:反撤销

    选中一片
    v:按字符移动 选中文本
    V:按行移动 选中文本可视模式可以配合d,y,>>,<<实现对文本块的删除(剪切),复制,左右移动

    >>:向右移动代码(整段文本)
    <<:向左移动代码(整段文本)
    .:重复上一次的命令


    {:按段移动 上移 代码一片一片的跳
    }:按段移动 下移 代码一片一片的跳
    代码是一片一片的写,不是挨在一起的

    r:替换一个字符
    R:替换当前光标以及后面的字符

    搜索命令
    末行模式下输入:/str
    /str 查找字符 str为任意字符
    比如我们搜索/hello 我们发现文本中有10个hello的字样,我们可以通过按n/N去进行上下的查看
    n:下一个
    N:上一个


    替换命令:
    末行模式下输入::%s/原字符串/将要替换成的新字符串/g
    Example:
    %s/hello/world/g 将文本中的hello字样全部替换成world
    这种方式是将当前文本中所有的原字符串替换成新字符串

    末行模式下,将第1行至第10行之间的hello替换成world,命令如下:
    :1,10s/hello/world/g

    末行模式下敲:w为保存,:q为退出,:wq为保存并退出

    如果文本有编辑,但是未保存,直接写入:q,会提示未保存
    如果我们想强制退出,在末行模式下输入:q! 这样就行了

    命令模式下:Shift+zz 相当于:wq 

     全部掌握以后就是初级大神了啦啦啦♪(^∇^*)

  • 相关阅读:
    数组对象去重
    数组对象中key值为数组的数据处理成多个对应的数组对象
    数组对象相同的key值合并,并且把对应的id放到一个数组
    vue使用element-ui tabs切换 实现按需加载
    vue使用element-ui tabs切换echarts 解决宽度100% 问题
    递归获取所有JSON对象
    JS通过内核判断各种浏览器区分360与谷歌
    vue 跳转当前页面不刷新问题
    docker 常用命令
    java 比较时间的几种方法
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/8479097.html
Copyright © 2020-2023  润新知