当前位置: 首页 > 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.dtcms.com/a/296465.html

相关文章:

  • 【实时Linux实战系列】基于实时Linux的机器学习应用开发
  • 大模型微调学习笔记(基于讯飞星辰MaaS速学版)
  • Java 中 Future 与 Callable 的使用详解
  • pycharm在virtual环境下安装依赖失败的解决方案
  • 面试150 搜索二维矩阵
  • Mirauge3D 赋能:全自动建模,让城市规划与建筑设计拥有高分辨率实景三维模型
  • OpenHands:Manus 最强开源平替——本地部署与实战指南
  • KTH5791——3D 霍尔位置传感器--鼠标滚轮专用芯片
  • 【Ollama】open-webui部署模型
  • 高通平台基线升级时,从Android 13升级到Android 15遇到的selinux权限不生效问题分析
  • 【矩阵专题】Leetcode54.螺旋矩阵
  • Linux基础服务(NTP/Chrony)
  • 红队视角:实战渗透测试中漏洞利用的进阶技巧与防御
  • Python Playwright库详解:从入门到实战
  • 虚拟电厂——解读69页 2024虚拟电厂售电业务及共享储能等新型业态趋势【附全文阅读】
  • C 语言核心知识点详解:函数调用、数组传参与变量特性
  • 力扣20:有效的括号
  • 秋叶sd-webui频繁出现生成后无反应的问题
  • Java_多线程_生产者消费者模型_互斥锁,阻塞队列
  • P1308 [NOIP 2011 普及组] 统计单词数
  • 【Java】 Arthas 实战:用“侦探式”排查法定位 Java 异常根源
  • 用python自动标注word试题选项注意事项
  • LeetCode71简化路径
  • 【开源】WpfMap:一个基于WPF(Windows Presentation Foundation)技术构建的数据可视化大屏展示页面
  • 新能源汽车行业研究系列报告
  • Web前端交互利用Python跟大模型操作
  • multiprocessing模块使用方法(三)
  • multiprocessing模块使用方法(一)
  • PM2使用
  • HMAC算法之SHA256哈希C++实现详解