unix 命令 vi操作 相关命令总结

学习unix命令
一.os的组成
  计算机组成硬件和软件
  软件分为系统软件和应用软件
  系统软件就是操作系统
  1.kernel 内核
     1.管理硬件
     2.管理内存(内存分配)
     3.管理交换空间(虚拟内存)
     从硬盘启动一部分空间,操作系统通过频繁的换入换出达到内存够用的效果
     4.管理进程
       程序 静态的
       进程 启动程序成了进程,每个进程都对应程序的唯一标识
       线程  一个进程对应多个线程
      5.控制系统硬件和系统程序(驱动)
      6.管理守护进程
        运行在后台,系统启动时启动,系统关闭时关闭
      7.管理文件系统

  2.shell 提供用户发送命令的界面
     是用户和kernel之间的接口
     扮演解释者和翻译者
       人能够识别的高级语言
       机器能够识别的机器语言

       whoami 查看当前用户的用户名
       $代表普通用户
       #代表管理员
      第一次切换管理员身份需要设置管理员密码
      sudo passwd root
      切换用户
        普通到超级su
        超级到普通exit

  3.File system 文件系统,所有的硬件都会映射成一个文件
    由文件,目录,子目录形成倒立的树形结构  /代表根目录
     路径
      路径名:唯一区分文件
      相对路径 相对于当前路径
      绝对路径 相对于根路径
         相对路径不会以/开头  

二.

    修改普通用户密码 passwd
    修改普通用户密码有一定要求,对超级用户没有要求
     1.密码长度6到8个字符
     2.密码至少包含2个字符,和一个数字或者一个特殊字符
     3.密码不能和用户名相同
     4.新密码和旧密码至少3个字符不同
   查看所有用户信息    cat /etc/passwd
     返回的用户信息       briup:x:1000:1000:briup,,,:/home/briup:/bin/bash     
     各部分的含义         用户名:密文的占位符:uid:gid:备注:用户的家目录:默认使用的shell
   sudo cat /etc/shadow 查看密码相关信息
   sudo 临时提升权限
     遵循最小权限原则:操作尽量有普通用户完成
           $6$R/HxX3gQ$kj2E2Z3p8IE86s.I6bnLccqClB0vTBQAfndFAzeZngovuyAJfDNVmDweKtGF/AznY1NqAur7V2T5F7G4vxLMl0:18102:0:99999:7:::

  空格区分命令行不同部分
  单行命令最多输入256个字符
   与doc不同
     大小写敏感
     不同的命令提示符
 1.clear 清屏
 2.pwd 查看当前所在目录
   cd 进入某个路径地址目录
   cd .. 回到上级目录   cd .. ..  连续返回两级
 3.ls 显示当前目录下的文件和目录
     ls -l 显示当前目录下的文件和目录的详细信息
     ls / 显示根目录下的文件和目录
     ls /etc 显示etc下的文件和目录
     ls -l /etc  显示etc下的文件和目录的详细信息
     ls -d -l /etc 显示自身的详细信息可以写一块 ls -dl /etc
     ls -R /etc 显示子目录以及子子目录直到最后的里面的信息
     ls -a:显示所有文件和目录包含隐藏文件和目录
     ls -t:根据最后一次修改的时间进行排序展示
     ls -F 显示文件类型                                                                                                                                                                        目录文件  /             可执行文件  *        文本文件   (none)

 4.touch 创建文件或者更新访问时间和修改的时间
     touch b.txt c.txt test     创建多个文件
     touch创建的只能是文件,不能根据后缀名进行判别
5.mkdir 创建目录
     mkdir gam
     mkdir gam1 gam2
     mkdir gam/lol
     mkdir game/game1 如果父目录不存在则默认无法创建
     mkdir -p game/game1 会自动创建多级目录
      有些目录去创建是需要一定的权限的
      sudo mkdir /etc/gam    

6.chmod    更改文件的权限     

d rwx r-x r-x    4    user    nobody 1024   Feb 22 09:20   a.txt
文 拥  同  其    链     拥       拥     大     最后一次        文
件 有  组  它    接     有       有     小     修改时间        件
类 者  人  人    号     者       组                           名
型 权  权  权    
   限  限  限

                 
      chmod o+w a.txt     other增加写权限
      chmod g-w a.txt      group减去写权限
      chmod g=rw a.txt    group权限设置为可读可写
      chmod u-x,g+w a.txt
      chmod 664 a.txt      以数值型的方式更改权限

 7. cp复制文件
      1.把源文件复制到目标文件
         cp -i a.txt d.txt
      2.把源文件复制到目标目录
        cp a.txt gam
        cp b.txt abc(文件) gam
        cp b.txt c.txt gam
      3.把源目录复制到目标目录
          cp -r gam2 gam1
  -i如果目标文件已经存在则会提示是否覆盖,如果目标文件不存在则不会提示而且会自动创建文件,覆盖文件内容
   cp后面跟多个文件,最后一个会去判别是否是目录,其他则为文本文件
  -r复制的是目录
 
  8. vi a.txt    进入a.txt文件进行编辑

      1. vi上下左右移动

          命令模式下方向键进行移动

      2. vi中如何删除一个字符、删除一行、替换一个字符

           命令模式下光标移动到指定位置按x

           dd删除当前行

           r替换一个字符

     3. vi中如何拷贝一个单词、拷贝一行、粘贴

          命令模式下 yw 拷贝光标所在位置到第一个空格内的单词

           yy 拷贝当前行

          进行拷贝操作后 p 进行粘贴

     4. vi中如何存盘、另存为、存盘并退出vi

           :w 存盘

           :w newfile 存成新文件 

           :wq 存盘并退出vi

     5. vi如何将文件档中所有的单词hello,都换成hi

          命令模式下输入 :1,$s/hello/hi/g

    6  vi查找操作 

          命令模式下      /要查找的关键字  (向下查找)                                                                                                                                                  ?要查找的关键字 (向上查找)

    7.常用操作:

    在命令模式下,可以输入如下命令:

    i:在当前光标的前面插入一个字符

    I:移动光标到行首

    a:在当前光标的后面插入一个字符

    A:移动到行末

    o:移动到下一行

    O:移动到上一行  

    yy:复制光标所在的这一行

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

    p:粘贴

    dd:剪切 光标所在的这一行

    2dd:剪切 光标所在的行向下2行

    D:从当前的光标开始剪切,一直到行末

    d0:从当前的光标开始剪切,一直到行首

    x:删除当前的光标,每次只会删除一个

    X:删除当前的光标前面的那个,每次只会删除一个

    h:向左移动   j:向下移动   k:向上移动   l:向右移动

    H:移动到当前屏幕的上方

    M:移动到当前屏幕的中间

    L:移动到当前屏幕的下方

    ctrl+f:向下翻一页代码

    ctrl+b:向上翻一页代码

    ctrl+d:向下翻半页代码

    ctrl+u:向上翻半页代码

    20G:快速的定位到第二十行代码

    gg:快速回到整个代码的第一行    

    G:快速的定位到整个代码的最后一行

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

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

    u:撤销刚刚的操作

    ctrl+r:反撤销

    选中一片代码使用下列2个命令

    v:从当前光标开始向后选择,需要继续按上下左右方向键

    V:选中一行,需要继续按上下左右方向键

    >>:向右移动代码

    <<:向左移动代码

    . :重复执行上一次的命令

    { :按段移动,上移

    }:按段移动,下移

    dw:删除光标开始位置的字(一个单词),包含光标所在字符

    r:替换一个字符

    R:替换光标以及后面的字符

    /要查找的内容:搜索(需要按回车)

    n:下一个

    N:上一个

    shift+zz:相当于wq

   在末行模式下,如下:

    :%s/abc/123/g :末行模式下,吧当前文件的abc替换成123

    :1,10s/abc/123/g:吧第一行到第十行之间的abc替换成123

    w:保存

    q:退出

    wq:保存并退出

    q!:强制退出,不保存

    在编辑模式下,如下:

    输入ctrl+n 或者 ctrl+p会自动补全,列表的方式显示有同样前缀的名称。

8.mv   移动文件或目录
   将源文件移动到目标文件                  源文件存在,将源文件内容粘贴过去,并删除源文件
     mv b.txt c.txt
     源文件不存在,无法剪切复制
     mv ab.txt c.txt 
     目标文件不存在,源文件存在 如果目标文件不存在,则为修改文件名称
     mv c.txt ab.txt
   将源文件移动到目标目录
    mv a.txt game
    mv ab.txt game2
    mv d.txt game2 gam2
   将源目录移动到目标目录
   mv gam1 game
   mv gam2/d.txt gam
   mv gam/d.txt a.txt

 9. rm   删除文件和目录
     rm -i gam/c.txt gam/b.txt
    rmdir gam
    rmdir只能删除空目录
    rm -r gam
    rm删除非空目录,需要-r标识为目录
    rm -r game3
 10.man  显示一个指令下有哪些操作   
    man  ls   查看ls命令有哪些指令
    空格键:一屏一屏的显示
    b:回滚到上一屏
    f:下一屏
    enter:一行一行的显示
11./      

    /string 要查找的字符串
    /a
    n:查找下一个相关的字符串
    q:退出
  根据关键词查找
    man -keyword tou

三  元字符:具备一定特殊意义的字符,可以代替一些内容
    作用:
       1.简化字符串
       2.模糊匹配
       ;$,<>,*,|,>
     1.~代表家目录
     2.*代表0到多个字符
       touch a.txt b.txt c.txt ab.txt abc.txt
       mkdir gam gam1 gam3
     ls a*
     ls ab*
     ls a*c
     rm a*
     ls *.txt
     3.?代表单个字符有且只有一个字符,占位符
      ls a?.txt
       以c结尾,倒数第三个字符是a的文件
       ls *a?c
      4.[] 一系列字符匹配单个字符
      touch  link1.txt link2.txt n.txt k.txt

       ls *link*.txt      2
       ls *[link]*.txt    4
       ls [linka].txt
       匹配到中括号中任意一个单个字符的文件
     5.;连接多条命令,命令之间没有关系
     date:日期
     cal:当前月份的日历
     cal 2017 获取对应年的所有月份日历
     cal 4 2017 显示对应年份和月份的日历
     date;cal

     6.|管道命令
       前一个命令的输出作为下一个命令的输入
        more:分屏显示
    ls -l /etc | more
     7.>,>>,<重定向命令
      >重定向输出
      >>重定向输出
      <重定向输入
     标准输出---屏幕
     标准输入---键盘
     和cat连用
     cat /etc/passwd > a.txt
     将文件内容不再显示到屏幕上,而是放在指定文件中,
     且将信息内容放到文件中会覆盖
     sudo cat /etc/shadow >>a.txt
    将文件内容不再显示到屏幕上,而是放在指定文件中,
     且将信息内容放到文件中会追加
     cat < a.txt

     cat /dev/null>a.txt
     /dev/null黑洞文件,放不进去东西,也拿不出来东西
    8.:是个空操作
    :>a.txt
    上述两种方式都是清空文件

猜你喜欢

转载自www.cnblogs.com/lnh666/p/11266231.html
今日推荐