【Linux】总结1-命令工具

news2024/9/20 14:45:51

文章目录

  • 基础指令
  • shell命令以及运行原理
  • Linux权限
  • 粘滞位
  • 工具

基础指令

  • ls、pwd、touch、mkdir、netstat、cp、mv、cd、tar、zip、unzip、grep、pstack、ps、rm、cat、more、less、head、tail、find、ulimit -a、clear、whoami、man

  • touch:创建文件,也包括源代码文件;要注意,“-”:普通文件,“d”:文件夹文件。在Linux系统中,一切皆文件,且文件在Linux操作系统当中并不是以后缀来区分文件类型的。

  • rm:删除文件或文件夹,不可逆操作,慎用,删除文件夹加上-r参数:表示递归删除,此外,-i参数表示每一步都询问是否操作;-f:强制执行,不再进行询问

  • cat:查看文件内容;-n参数:在输出文件内容的同时也输出文件行号

  • head:查看文件内容,从文件头部开始默认查看10行

  • tail:查看文件内容,从文件尾部开始默认查看10行

  • find:查看文件所在路径 find [path] -name [filename]

  • grep:在文件中查找字符串的命令

shell命令以及运行原理

  • Linux严格意义上说是一个操作系统,称为“核心 ”(kernel),但是我们一般用户 ,不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通
  • 操作系统 = 操作系统内核 + 一堆应用;操作系统内核:管理计算机中的软硬件资源,本质上是一个软件
  • 从技术角度:shell是命令行解释器,主要是将用户输入的命令递交给操作系统内核;同时将内核执行的结果反馈给用户,起到了一个承上启下的功能
  • 简单总结一下:shell是一个命令行解释器;bash:一个具体的命令行解释器

Linux权限

  • 字符表现形式:r:可读;w:可写;x:可执行;rwx相对位置固定,如果没有某个权限在该权限的位用“-”表示

  • 八进制数值表现形式,有三个十进制数字,最左位标识r权限,中间位标识w权限,最右位标识x权限,每个数字由三位二进制数字转化为为十进制得到。在二进制中:rwx对应三个二进制数字,同样的,最左位标识r权限,中间位标识w权限,最右位标识x权限,每个二进制位若为1,则表示有该权限,为0则表示没有,比如100,则表示有r权限,没有w权限和x权限,转换为十进制是4,则十进制4表示r–权限
    在这里插入图片描述

  • 第一个字符标识该文件是普通文件还是文件夹,若是字符表现形式,则后面三个一组表示某类用户的权限,第一组表示文件所有者的权限(user–u),第二组表示所属组内用户针对该文件或文件夹的权限(group–g),第三组表示对于其他用户的权限(other–o),若是八进制数值表现形式,则每一个转换后的十进制数字单独为一组

  • 修改权限

    使用chmod命令:

    • 字符修改方式:chmod [u/g/o] [+/-] [r/w/x] [filename],eg:chmod u-w a.out;如果不体现[u/g/o],则针对三类用户都做出修改
    • 八进制数字修改方式:chmod [数字] [filename] eg:chmod 777 a.out
  • 不同权限针对文件/文件夹的作用

    • r:对文件而言,表示是否具有读取文件的权限;对文件夹而言,决定用户是否能够查看文件夹下的内容
    • w:对于文件而言,表示是否具有能够修改文件内容的权限;对于文件夹而言,决定用户是否能够移动/删除文件夹下文件
    • x:对于文件而言,表示是否具有执行文件内容的权限;对于文件夹而言,决定用户是否能够进入到文件夹

粘滞位

  • 使用场景:给文件夹设置粘滞位
  • 作用:设置了粘滞位的文件夹只能被以下用户删除文件:root用户(超级管理用户)、该文件夹的所有者、该文件的所有者
  • 用chmod + t [文件夹] 设置粘滞位

工具

  • 1、yum

    yum的常规操作:查询软件信息、安装软件、移除软件,合称yum的三板斧

  • 2、vim:代码编辑器

    常见的三种模式:正常模式、插入模式、底行模式

正常模式下的快捷操作:

移动:移动光标:

  • 上下左右键

  • h:左移;j:下移;k:上移;l:右移

  • gg:光标回到文本开始

  • G:光标回到文本末尾

  • ^:光标回到所在行行首

  • $:光标回到所在行行尾

删除:删除内容

  • x:删除光标所在字符
  • [num]x:删除num个字符,包含光标所在字符
  • X:删除光标所在位置前一个字符
  • [num]X:删除num个字符,向前删除
  • dd:删除本行内容
  • [num]dd:删除num行内容,向下删除

复制:

  • [num]yy/yy:复制当前光标所在/num行

  • p:粘贴到光标所在行的下一行

  • P:粘贴到光标所在行的上一行

替换:

  • r:替换光标所在字符,一次替换一个

  • R:替换光标所到之处的字符,一次可以替换多个

撤销:

  • u:撤销上一次误操作的操作

  • ctrl+r:反撤销

更改:

  • cw:更改光标所在处的字到字尾处,用了该命令后直接进入插入模式
  • [c#w]:#代表的是几个字,表示说能修改几个字

跳跃:

  • [#G]:#代表的是数字,eg:3G表示跳转到3行行首

删除:删除内容

  • x:删除光标所在字符
  • [num]x:删除num个字符,包含光标所在字符
  • X:删除光标所在位置前一个字符
  • [num]X:删除num个字符,向前删除
  • dd:删除本行内容
  • [num]dd:删除num行内容,向下删除

复制:

  • [num]yy/yy:复制当前光标所在/num行

  • p:粘贴到光标所在行的下一行

  • P:粘贴到光标所在行的上一行

替换:

  • r:替换光标所在字符,一次替换一个

  • R:替换光标所到之处的字符,一次可以替换多个

撤销:

  • u:撤销上一次误操作的操作

  • ctrl+r:反撤销

更改:

  • cw:更改光标所在处的字到字尾处,用了该命令后直接进入插入模式
  • [c#w]:#代表的是几个字,表示说能修改几个字

跳跃:[#G]:#代表的是数字,eg:3G表示跳转到3行行首

  • 3、编译器:gcc/g++
    gcc:编译C语言程序,后缀为.c
    g++:编译C++/C程序,后缀可以为:.c/.cpp/.cc/.cxx/.hpp
    生成可执行程序的4个过程:预处理(-E)、编译(-S)、汇编(-c)、链接

  • 4、gdb:调试器

    程序的发布方式有两种,一种是debug模式,一种是release模式,Linux下要得到debug版本的程序在编译时需要增加一个-g命令行参数,因为默认是不加-g的,则为release版本。debug比release多了调试信息,用gdb调试的时候一定是调试debug版本

    调试的基础方法:

    • l:查看源码,从main函数开始
    • l[func_name]:查看某个函数的源码
    • r:程序执行起来
    • n:逐过程
    • s:逐语句
    • b [行号]:在改行设置断点
    • i b:查看断点
    • c:继续执行
    • delete breakpoints:删除所有断点
    • delete breakpoints n:删除序号为n的断点
    • disable breakpoints:禁用断点
    • enable breakpoints:启用断点
    • info locals:查看当前栈帧局部变量的值
    • p [变量名]:查看变量的值,不仅可以查看内置类型变量,也可以查看自定义类型变量(struct、class、this)
    • bt:展示调用堆栈,可以通过调用堆栈来看代码执行的函数调用关系
    • q:退出

    三种使用场景:

    • 事前:可执行程序执行之前
    • 事中:可执行程序正在执行时
    • 事后:运行完毕,发生崩溃,调试崩溃程序产生的coredump文件,coredump文件:核心转储文件,是在程序在崩溃(内存访问越界、解引用空指针、double free)的一瞬间内存的映像(相当于案发现场)
  • 5、自动化构建项目:make

    make是一个命令,是自动化构建项目的工具;makefile/Makefile是一个文件,文件内容包含了编译程序时的规则。make根据makefile的文件内容,进行解析,编译程序(构建项目)

    make的工作方式:

    • 只为生成第一个目标对象而服务,如果生成了目标对象,则后续文件当中的内容不再进行解析,如果为了生成第一个目标对象,需要先生成依赖对象,则在makefile文件中查找生成依赖对象的方法,如果发现依赖对象不存在,就报错返回
    • 若依赖对象的最后一次修改时间先于目标对象的最后一次修改时间,则不再重新生成,意思就是依赖文件没有更新,目标对象就不必更新,不必再重新生成

makefile文件当中的自定义变量和内置变量:

内置变量:

  • $^:所有依赖的对象
  • $@:目标对象
  • $<:代表第一个依赖对象

自定义变量:自己给变量起名字,后续使用$符号进行解析

  • 6、git:版本管理工具

    • 克隆仓库
    • 提交到本地仓库
    • 推送到远端仓库
    • 将远端仓库内容更新到自己本地仓库
    • git status

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/840877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么合并多个视频?简单视频合并方法分享

合并多个视频可以将它们组合成一个更长的视频&#xff0c;这对于需要播放多个短视频的情况非常有用。此外&#xff0c;合并视频还可以使视频编辑过程更加高效&#xff0c;因为不必将多个独立的视频文件分别处理。最后&#xff0c;合并视频可以减少文件数量&#xff0c;从而使整…

移动开发最佳实践:为 Android 和 iOS 构建成功应用的策略

您可以将本文作为指南&#xff0c;确保您的应用程序符合可行的最重要标准。请注意&#xff0c;这份清单远非详尽无遗&#xff1b;您可以加以利用&#xff0c;并添加一些自己的见解。 了解您的目标受众 要制作一个成功的应用程序&#xff0c;你需要了解你是为谁制作的。从创建…

Vue2 第二十一节 Vue UI组件库

移动端常用UI组件 1. Vant https://youzan.github.io/vant 2. Cube UI https://didi.github.io/cube-ui 3. Mint UI http://mint-ui.github.io PC端常用UI组件 1. Element UI https://element.eleme.cn 2. IView UI https://www.iviewui.com 一. Element UI 的引入和使…

cordova 12 编译失败Could not find method compile() for arguments [com....]

问题&#xff1a; Could not find method compile() for arguments [com.tencent.mm.opensdk:wechat-sdk-android-with-mta:] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. 问题原因&#xff1a; 在Cordova项目中&…

Qt之C++

Qt之C 类的定义 C语言的灵魂是指针 C的灵魂是类&#xff0c;类可以看出C语言结构体的升级版&#xff0c;类的成员可以是变量&#xff0c;也可是函数。 class Box { public://确定类成员的访问属性double length;//长double breadth;//宽度double heigth;//高度 };定义对象 …

mysql-数据库-创建列表

一.创建列表 1..首先&#xff0c;进入mysql数据库 -->mysql -uroot -p 2. 其次&#xff0c;mysql默认的数据库类型为mydb&#xff0c;这时候&#xff0c;就得查看现在使用的类型 mysql> select database(); 3. 如果创建的类型不同&#xff0c;则使用create database …

tensorboard无法显示数据的几个原因与解决方案【已解决】

本博客记录本人在学习tensorboard时关于浏览器无法显示数据问题的解决方案。该问题也算是折磨本人长达3个小时&#xff0c;我也相信有不少人为此感到苦恼&#xff0c;希望本文能给你提供某些帮助。 1.确保电脑与logs路径名称为英文 首先需要确保电脑名称为英文&#xff0c;否则…

SpringCloud(30):Nacos快速入门

1 安装Nacos Server 1.1 预备环境准备 Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos&#xff0c;还需要为此配置 Maven环境&#xff0c;请确保是在以下版本环境中安装使用: 64 bit OS&#xff0c;支持 Linux/Unix/Mac/Windows&#xff0c;推荐选用 Linux…

【计算机网络】12、frp 内网穿透

文章目录 一、服务端设置二、客户端设置 frp &#xff1a;A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet。是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c;且…

力扣 -- 139. 单词拆分

一、题目 题目链接&#xff1a;139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; 二、解题步骤 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 三、参考代码 class Solution { public:bool wordBreak(str…

学生管理系统(升级版)

import java.util.ArrayList; import java.util.Random; import java.util.Scanner;public class Demo_学生管理系统 {public static void main(String[] args) {ArrayList<User> list new ArrayList<>();Scanner sc new Scanner(System.in);while (true) {Syste…

Transformer1.0-预热

一.Encoder encoder:译为编码器&#xff0c;负责将输入序列压缩成指定长度的向量&#xff0c;这个向量就可以堪称是这个序列的语义。然后可进行编码或特征提取等操作 在transformer中encoder由6个相同的层组成&#xff0c;每个层包含 Multi-Head Self-AttentionPosition-Wise …

SEO 链接建设:初学者指南 2023

链接在互联网上扮演着一种宝贵的角色&#xff0c;就像货币一样重要。当其他网页纷纷指向某个网页时&#xff0c;这个网页就会被视为很有"权威"&#xff0c;在搜索引擎&#xff08;比如谷歌&#xff09;中获得更高的排名。相反地&#xff0c;如果一个网页没有别的网页…

linuxARM裸机学习笔记(6)----UART串口通信和串口格式化函数移植实验

UART串口通信 协议介绍&#xff1a;串口通信协议_ft232和ch340是串口的哪种协议_夜路难行々的博客-CSDN博客 I.MX6U UART UART时钟源选择的是pll3_80m&#xff0c;然后在(bit5:0)设置分频值&#xff0c;设置为1分频 ADBR(bit14) &#xff1a;自动波特率检测使能位&#xff0c…

个人信息保护合规审计管理办法的发展方向

8月3日&#xff0c;为指导、规范个人信息保护合规审计活动&#xff0c;中央网信办就《个人信息保护合规审计管理办法》及配套的《个人信息保护合规审计参考要点》公开征求意见 个人信息保护合规审计参考要点 第一条 本要点依据《中华人民共和国个人信息保护法》等法律、行政法…

基于Spring Boot的在线视频教育培训网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的在线视频教育培训网站设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java sp…

zabbix触发器标签提取监控项子字符串实现对应告警恢复

0 实验环境 zabbix 6.0 1 监控项 1.1 监控项设置 通过zabbix agent自定义监控项&#xff0c;读取某文件内容模拟日志/trap告警&#xff0c;测试获取触发器标签中提取子字符串功能&#xff0c;以及相同标签的触发器自动恢复功能。 1.2 手工运行 手动触发之后&#xff0c;模…

嵌入式开发学习(STC51-17-DAC数模转换)

内容 使DAC(PWM)模块上的指示灯DA1呈呼吸灯效果&#xff0c;由暗变亮再由亮变暗&#xff1b; DAC介绍 简介 DAC&#xff08;Digital to analog converter&#xff09;即数字模拟转换器&#xff0c;它可以将数字信号转换为模拟信号&#xff0c;它的功能与ADC相反&#xff1b…

【Java设计模式】建造者模式 注解@Builder

概念 将一个复杂对象的构造与它的表示分离&#xff0c;使同样的构建过程可以创建不同的表示。它使将一个复杂的对象分解成多个简单的对象&#xff0c;然后一步步构建而成。 每一个具体建造者都相对独立&#xff0c;而与其它的具体建造者无关&#xff0c;因此可以很方便地替换具…

【HDFS】每天一个RPC系列----complete(二):客户端侧

上图给出了最终会调用到complete RPC的客户端侧方法链路(除去Router那条线了)。 org.apache.hadoop.hdfs.DFSOutputStream#completeFile(org.apache.hadoop.hdfs.protocol.ExtendedBlock): 下面这个方法在complete rpc返回true之前,会进行重试,直到超过最大重试次数抛异…