当前位置: 首页 > news >正文

Linux命令基础完结篇

用户权限修改

chmod修改文件权限

文字设定法

  • u:所有者
  • g:所属组
  • o:其他人
  • a:所有
  • +:添加权限
  • -:删除权限
  • =:赋予权限

在这里插入图片描述

数字设定法

  • r:4
  • w:2
  • x:1
  • 每一组权限:0~7

在这里插入图片描述

  • 举例:

在这里插入图片描述

添加新用户和新用户组

  • 添加新用户:

    sudo adduser 新用户名
    
  • 查看用户:

    • /home目录下,多出新用户的宿主目录。
    • 在 /etc/passwd 文档的末尾,新增新用户相关信息。
    • 在 /etc/group 文档中,新增用户组相关信息。
  • 删除用户

    sudo deluser 用户名
    
    • 在 /etc/passwd 文件中,会对应删除相应用户数据。

    • 在 /etc/passwd 文件中,会对应删除相应用户组数据。

    • /home目录下,新用户的宿主目录不会自动被删除,可以使用

      sudo rm -rf
      
  • 扩展:

    • 添加用户组:

      sudo addgroup 组名
      
    • 删除用户组:

      sudo delgroup 组名
      

修改文件所有者和所属组

修改所有者:

语法:

sudo chown 用户名 文件名

修改所属组:

语法:

sudo chgrp 用户组名 文件名

一次性修改所有者和所属组

语法:

sudo chown 用户名:组名 文件名

查找和过滤

find

语法:find 搜索路径(绝对、相对)参数 条件

find参数:

  • -name:按文件名搜索
    • 通配符“*”:匹配0~N个任意字符。
    • 通配符“?”:匹配1个任意字符。

在这里插入图片描述

  • -type:按Linux文件类型搜索

    • 搜索普通文件,使用 f 。

      find ./ -type f
      
    • 搜索除普通文件之外的文件,按7中Linux文件类型。

      find /tmp -type s #搜索套接字文件
      find /dev -type c #搜索字符设备文件
      find ./ -type p #搜索管道文件
      
  • -size:按文件大小搜索

  • 注意事项:

    • 取范围时,要有两个 -size参数。

    • k必须小写,M,G大写。

      find ./ -size +3M -size -5M
      find ./ -size +3k -size -5k
      
  • 混合多个参数搜索:

    find ~/ -name "*2015.jpg" -size +1k -size -2M
    
  • -maxdepth:指定搜索层级深度

    find ~/ -maxdepth 4 -name "*2015.jpg" -size +1k -size -2M
    
  • -exec:将find搜索的结果,指定给某一个其他命令执行。

    • 语法:find 命令 -exec shell命令 {} ;

      find ~/ -maxdepth 4 -name "*2015.jpg" -size +1k -size -2M -exec ls -lh {} \;
      
    • 语法:find 命令 -ok shell命令 {} ; 会在执行命令时询问

  • “|”结合 xargs 实现将find搜索的结果,指定给某一个其他命令执行。

    find ~/ -maxdepth 4 -name "*2015.jpg" -size +1k -size -2M  | xargs ls -lh 
    
    • ​ 如果创建了带有特殊字符的文件,再进行检索需要修改 find 搜索结果集的分割条件。

      1. 创建带有空格的文件:

        在这里插入图片描述

      2. 使用 find | xargs 搜索,报错。

        在这里插入图片描述

      3. 解决:修改 find 搜索结果集的分割条件。 -print0

        find ./ -type f -print0 | xargs -0 ls -l;
        

        在这里插入图片描述

grep

按文件内容搜索

  • 语法:grep -r “关键字” 搜索目录位置

    grep -r "love" ./
    
    • -n:显示所在行行号。

    • -i:忽略大小写。

      grep -r "LOVE" ./ -n -i
      

压缩和解压缩

Linux 操作系统中,默认支持的压缩格式:gzip、bzip2。默认这两种压缩格式只能压缩单个文件,不支持打包。压缩后源文件消失。

在 Linux/unix 中压缩、解压缩,借助 tar 命令完成。tar 的作用是“打包”。

压缩

  • 格式:

    tar zcvf 压缩包名.tar.gz 压缩原材料
    tar jcvf 压缩包名.tar.bz2 压缩原材料
    
    • z:使用 gzip 压缩格式。
    • j:使用bzip2压缩格式。
    • c:创建压缩包。
    • v:显示压缩过程。
    • f:用来指定压缩包包名。f 必须是最后一个参数,后面紧跟压缩包名称。

在这里插入图片描述

解压缩

  • 格式:

    tar zxvf 压缩包名.tar.gz 
    tar jcvf 压缩包名.tar.bz2
    
    • x:解压缩。

    • 直接解压缩到当前目录

      在这里插入图片描述

    • 解压缩到指定目录,使用参数 -C:

    • tar zxvf 压缩包名.tar.gz 压缩原材料 -C 目录

vim编辑器

vim的三种工作模式

  • 命令模式:
    • 进入 vim/vi 后自动处于的一种模式。
    • 在此种模式下。用户键入的所有内容都被当做命令看到。
  • 编辑模式
    • 编写代码。
  • 末行模式
    • 在此种模式下,键入的指令都被当做末行命令。

在这里插入图片描述

切换编辑模式

  • i:改变工作模式为编辑模式,向光标 插入数据。

  • a:改变工作模式为编辑模式,向光标 插入数据。

  • o:改变工作模式为编辑模式,向光标所在行的 下一行 插入数据。

  • I(大i):改变工作模式为编辑模式,向光标所在行的 行首 插入数据。

  • A:改变工作模式为编辑模式,向光标所在行的 行尾 插入数据。

  • O:改变工作模式为编辑模式,向光标所在行的 上一行 插入数据。

  • s:改变工作模式为编辑模式,删除光标所选字符。

  • S:改变工作模式为编辑模式,删除光标所在行。

保存和退出

  • 命令模式:
    • ZZ
  • 末行模式:
    • w:保存
    • q:退出
    • q!:强制退出
    • x:保存、退出

光标移动

  • hjkl:左下上右
  • G:文件的末行
  • gg:文件的首行
  • gg=G:自动排版(缩进对齐)
  • 0:不改变工作模式,将光标移动至本行行首。
  • $:不改变工作模式,将光标移动至本行行尾。
  • NG:不改变工作模式,跳转至第N行。
  • 末行模式,跳转至指定行:
    • :N回车,跳转到第N行。

撤销、反撤销

  • 撤销:命令模式下 u
  • 反撤销:ctrl -r

复制、粘贴

  • 单行复制:
    • 光标移动至待复制行,放在任意字符上,按 yy 复制本行,移动光标至目标位置,p 向下粘,P 向上粘。
  • 多行复制:
    • 光标移动至待复制多行的首行任意字符上,按 Nyy 复制多行,移动光标至目标位置,p 向下粘,P 向上粘。
  • 片段复制:
    • 光标移动至待复制区域的首个字符上,先按 v ,再按 hjkl ,移动光标,选中待复制区域,按 y 复制,p 向后粘,P 向前粘。
  • 复制一个单词:
    • 光标移动至待复制单词首字符上,按 yw 复制一个单词,移动光标至目标位置,p 向后粘,P 向前粘。

剪切、删除

vim 中剪切不粘贴就是删除。

  • 单行剪切:
    • 光标移动至待剪切行,放在任意字符上,按 dd 剪切本行,移动光标至目标位置,p 向下粘,P 向上粘。
  • 多行剪切:
    • 光标移动至待剪切多行的首行任意字符上,按 Ndd 剪切多行,移动光标至目标位置,p 向下粘,P 向上粘。
  • 片段剪切:
    • 光标移动至待剪切区域的首个字符上,先按 v ,再按 hjkl ,移动光标,选中待剪切区域,按 d 剪切,p 向后粘,P 向前粘。
  • 剪切一个单词:
    • 光标移动至待剪切单词首字符上,按 dw 剪切一个单词,移动光标至目标位置,p 向后粘,P 向前粘。

查找、替换

查找

  • 想象一个关键词,在文件中查找。
    • 命令模式下,输入“/”,按 n 查找下一个。
  • 看到一个关键词,查找在文件后续出现的位置。
    • 将光标放在任意字符上:
      • 使用 * 向后查找。
      • 使用 # 向前查找。

替换

  • 单行替换

    • 将光标置于待替换行的任意位置,进入末行模式

      #:s/旧字符串/新字符 
      #只能替换首个
      #想替换全部,使用 /g
      #:s/旧字符串/新字符/g 
      #举例:
      :s/append/add/g
      
  • 通篇替换

    #:%s/旧字符串/新字符/g 
    #举例:
    :%s/append/add/g
    
  • 多行替换

    #:起始行号,终止行号s/旧字符串/新字符/g
    #举例:
    :173,180s/append/add/g
    

分屏

  • 横屏分:

    • sp:直接将当前文件划分为两个屏幕。
    • sp 新文件名:将新文件和现有文件,在同一个 vim 中打开。
  • 竖屏分:

    • vsp
    • vsp 新文件名
  • 切换:ctrl + ww

  • 退出:

    • 在哪个分屏窗口执行,q 或 wq,就退出哪个窗口。
    • wqall,可以一次性退出所有窗口。
      /add/g
  • 通篇替换

    #:%s/旧字符串/新字符/g 
    #举例:
    :%s/append/add/g
    
  • 多行替换

    #:起始行号,终止行号s/旧字符串/新字符/g
    #举例:
    :173,180s/append/add/g
    

分屏

  • 横屏分:
    • sp:直接将当前文件划分为两个屏幕。
    • sp 新文件名:将新文件和现有文件,在同一个 vim 中打开。
  • 竖屏分:
    • vsp
    • vsp 新文件名
  • 切换:ctrl + ww
  • 退出:
    • 在哪个分屏窗口执行,q 或 wq,就退出哪个窗口。
    • wqall,可以一次性退出所有窗口。
http://www.lryc.cn/news/598964.html

相关文章:

  • Mysql大数据架构设计:当表中数据超过800万时,对数据表进行分表操作,以及分页查询优化详解
  • C++STL系列之set和map系列
  • Node.js 中的内置模板path
  • 【时时三省】(C语言基础)怎样定义和使用指向函数的指针变量
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十九天-模拟面试前
  • io_uring:Linux异步I/O的革命性突破
  • Web前端开发:JavaScript reduce() 方法
  • 亚马逊云科技:以云为翼,助你翱翔数字新天空
  • 【高等数学】第五章 定积分——第三节 定积分的换元法和分部积分法
  • Zookeeper的分布式事务与原子性:深入解析与实践指南
  • 暑假集训篇之并发处理①练习题
  • C语言转义字符‘\\‘‘ 解析与常见误区
  • SAP全自动化工具开发:Excel自动上传与邮件通知系统
  • Python字典get方法使用解析
  • Spring之SSM整合流程详解(Spring+SpringMVC+MyBatis)
  • Windows上用于跨平台开发的环境工具
  • 数据集成难在哪?制造企业该怎么做?
  • 神经网络实战案例:用户情感分析模型
  • DPO:大语言模型偏好学习的高效方案
  • 平时遇到的错误码及场景?404?400?502?都是什么场景下什么含义,该怎么做 ?
  • 前端性能新纪元:Rust + WebAssembly 如何在浏览器中实现10倍性能提升(以视频处理为例)
  • Linux 磁盘挂载,查看uuid
  • OpenCV图像插值、边缘填充、图像掩膜、噪声消除实战指南
  • Effective Python 第16条:用get处理字典缺失键,避免in与KeyError的陷阱
  • 100条SQL语句分类精讲:从基础到进阶的实操指南
  • OpenGL绘制正方形、错误处理、统一变量、索引缓冲区
  • tcp基础协议
  • node.js中的path模块
  • MySQL深度理解-MySQL索引优化
  • AI服务器给一体成型电感带来多大的市场空间