Linux编程-基础知识

2023-11-02

前言

我使用的环境是在VMware虚拟机 + centOS8 + Xshell7 + Xftp7,但是对于我们而言,环境不做过多分析,只需要学习了解Linux编程就行啦。

Linux 目录结构

  • Linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录。
  • 在 Linux 世界里,一切皆文件.
  • 在根目录下的文件:
    在这里插入图片描述

具体目录结构

  • /bin [常用] (/usr/bin /usr/local/bin)
    是 Binary 的缩写, 这个目录存放着最经常使用的命令。

  • /sbin (/usr/sbin /usr/local/sbin)
    s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序。

  • /home [常用]
    存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名.
    在这里插入图片描述

  • /root[常用]
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /lib
    系统开机所需要最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库.
    /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /etc [常用]
    所有的系统管理所需要的配置文件和子目录, 比如安装 mysql 数据库 my.conf。

  • /usr[常用]
    这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows 下的 program files 目录。

  • /boot [常用]
    存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /proc [不能动]
    这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。

  • /srv [不能动]
    service 缩写,该目录存放一些服务启动之后需要提取的数据。

  • /sys[不能动]
    这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs =》【不要修改】。

  • /tmp
    这个目录是用来存放一些临时文件的。

  • /dev
    类似于 windows 的设备管理器,把所有的硬件用文件的形式存储。

  • /media [常用]
    linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下。

  • /mnt [常用]
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。 类似 d:/myshare。

  • /opt
    这是给主机额外安装软件所存放的目录。如安装 ORACLE 数据库就可放到该目录下。默认为空。

  • /usr/local[常用]
    这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。

  • /var [常用]
    这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。

  • /selinux [security-enhanced linux]
    SELinux 是一种安全子系统,它能控制程序只能访问特定文件, 有三种工作模式,可以自行设置。

Vi 和 Vim 编辑器

Linux 系统会内置 Vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计,其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

Vi 和 Vim 的三种模式

正常模式

以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。

插入模式 | 编辑模式

按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可。你可以进行修改与插入。

命令行模式

输入 esc 再输入 :进入命令行模式,可以输入相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作。

操作:

#使用vim编辑Hello.java文件
vim Hello.java 

正常模式
在这里插入图片描述

键盘输入 i
在这里插入图片描述
键盘按下左上角 esc 键 进入到普通模式,再按下 :进入命令行模式。
在这里插入图片描述
在这里插入图片描述

VIM更多快捷键:https://www.cnblogs.com/markleaf/p/7808817.html

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux编程-基础知识 的相关文章

  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • python+win32:检测窗口拖动

    有没有办法检测何时使用 python pywin32 在窗口中拖动不属于我的应用程序的窗口 我想对其进行设置 以便当我拖动标题与桌面边缘附近的图案匹配的窗口时 当松开鼠标时它会捕捉到边缘 我可以编写代码 以便在释放鼠标时将所有具有该标题的窗
  • 用于验证 IIS 设置的 Powershell 脚本

    是否可以使用 Power Shell 脚本获取 IIS 设置 我希望使用脚本获取 检查以下信息 检查 Windows 身份验证提供程序是否正确列出 协商 NTLM 检查是否启用了 Windows 身份验证 Windows 身份验证高级设置
  • 如何在线程创建和退出时调用函数?

    include
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 检测计算机何时解锁 Windows

    我用过这个优秀的方法 https stackoverflow com questions 20733441 lock windows workstation using python 20733443锁定 Windows 计算机 那部分工作
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 以编程方式从 java 代码中查找 java.exe 的绝对路径

    如果我有一个由用户启动的 java jar 或类文件 假设在环境变量中设置了 java 路径 那么我如何从代码中找出 java exe javaw exe 的绝对路径文件正在启动 就像在 ubuntu 上一样 我们可以运行 which ja
  • Git 扩展 - 无法在 Windows 上推送到网络驱动器中的 git bare 存储库

    我正在 Windows 上学习 git 我已经安装了 Git 扩展 版本 2 47 3 并使用了它 我在我的 C 单元中创建了一个裸存储库 作为中央存储库 并在硬盘中的其他任何位置创建了个人存储库 我对硬盘中的这两个存储库进行提交 推送和拉
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 如何使用来自 Microsoft-Windows-NDIS-PacketCapture 提供程序的实时 ETW 事件?

    更大的问题是一般如何使用实时 ETW 网络堆栈事件 但我特别感兴趣Microsoft Windows NDIS PacketCapture 提供程序 所有其他网络堆栈提供程序都部分工作 但 NDIS PacketCapture NDIS P
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 不在焦点时响应键盘? (C#、Vista)

    我正在尝试编写一个应用程序 只要按下 Shift 键 无论当前哪个应用程序具有焦点 它都会做出响应 我尝试过这个SetWindowsHookEx 与GetKeyboardState 但这两种方法仅在应用程序窗口具有焦点时才有效 我需要它在全
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include

随机推荐

  • LinearAlgebraMIT_6_ColumnSpaceAndNullSpace

    这节课的两个重点是column space列空间和null space零空间 x 1 pre multiply left multiply and post multiply right multiply 对于pre multiply le
  • 了解MQ和安装使用RabbitMQ

    什么是消息队列 本质是一个队列 队列中出存放的是跨进程的通信机制 用于上下游传递消息 MQ是常见的上下游 逻辑解耦 物理解耦 的消息通信服务 在使用MQ之后 消息发送上只需要依赖MQ 不用依赖其他服务 功能 1 流量削峰 举个例子 系统最多
  • 最新抖音快手小红书西瓜全平台解析接口api开发文档

    简介 从短视频平台APP中复制出来的分享链接 通过接口获取或通过主页在线一键解析获取短视频中的 视频标题 视频封面 无水印视频地址 图集列表等参数信息 接口地址 https eeapi cn 返回格式 JSON 请求方式 GET 客户UId
  • 常见的Java框架有哪些?

    作为一名合格的Java开发工程师 不仅需要了解开发技术 还需要了解清楚Java主流框架信息 那么常见的Java框架有哪些 常见的Java框架有哪些 1 Spring框架 Spring框架是现在Java后端框架家族里面最强大的一个 拥有IOC
  • 【PTA】约瑟夫环问题

    n个小孩围成一圈 从第一个小孩开始从1到m报数 报到m的小孩出列 下一个小孩继续从1开始报数 出列的小孩不参与报数 问小孩的出列顺序 import java util public class Main public static void
  • 【Proteus仿真】【51单片机】简易信号发生器设计

    文章目录 一 主要功能 二 使用方法 三 硬件资源 四 软件设计 1 主要代码 五 实验现象 联系作者 一 主要功能 1 可生成常用波形 方波 锯齿波 三角波 阶梯波 正玄波 2 可通过按键切换不同波形输出 二 使用方法 系统运行后 按下K
  • 如何在git中修改用户名和密码

    随着开源软件的不断发展 git已成为了极其流行的版本控制系统 git是一个非常强大的工具 引入了一系列的概念和机制 便于软件工程师跟踪他们的代码变化 这篇文章将会谈论如何在git中修改用户名和密码 git是什么 Git是一个由Linus T
  • 分治法-Strassen-矩阵乘法详细代码

    public class Matrix 初始化一个随机nxn阶矩阵 public static int initializationMatrix int n int result new int n n for int i 0 i lt n
  • 全网最全Android Framework框架总结,Android如何入门Framework层

    每一个Android开发 基本都了解或者学习过系统的知识 一是因为国内软件行业内卷 找工作时 面试造火箭 工作拧螺丝 的局面导致的 另一方面 从客观角度来讲 学习Android系统 Framework 等源代码或者其工作方式也可以提升我们
  • Nginx系列教程(五)

    冷备份是定期复制 不能保证数据可用性 热备份又分为异步热备和同步热备 异步热备是指 多份数据副本的写入操作异步完成 同步热备是指 多份数据副本的写入操作同时完成 服务层面 失效转移 如某块磁盘损坏 将从备份的磁盘读取数据 首先是已经提前做好
  • 九问国产操作系统,九大掌门人万字回应!

    整理 屠敏 责编 唐小引 出品 CSDN ID CSDNnews 在国产基础软件发展的多年间 众多摸着石头过河的先行者无数次感叹 蜀道之难 难于上青天 不仅包含数据库 中间件 芯片 操作系统等核心软硬件研发 也覆盖了每种技术领域的生态建设
  • 【反序列化漏洞-01】序列化与反序列化概述

    为什么要序列化 百度百科上关于序列化的定义是 将对象的状态信息转换为可以存储或传输的形式 字符串 的过程 在序列化期间 对象将其当前状态写入到临时或持久性存储区 非关系型键值对形式的数据库Redis 与数组类似 以后 可以通过从存储区中读取
  • VMWARE虚拟机网络环境配置

    VMWARE虚拟机网络环境配置 1 查看物理机ip信息 命令 ipconfig 2 配置网络适配器环境 点击 控制面板 选择 网络和Internet 点击 查看网络状态和任务 点击 更改适配器设置 选择VMnet8那个适配器 邮件选择 属性
  • 如何设计好API

    语言首先是写给人看的 只是恰巧 incidentally 能够运行 计算机程序的构造和解释 好的API应对客户端友好 换言之就是能够直接通过其方法签名而理解它做的事情 而不用深入去阅读方法的实现 甚至深入阅读API所在的整个类 单纯的介绍如
  • LeetCode 263. 丑数

    题目链接 https leetcode cn problems ugly number C 代码如下 class Solution public bool isUgly int n if n lt 1 return false while
  • C/C++ rand()产生随机数 模拟 掷骰子 小游戏代码

    1 源代码如下 file 模块名 文件名 tossGame cpp 相关文件 文件实现功能 模拟掷骰子的随即过程 同时掷出2个骰子 如果结果和为7或者11则玩家获胜 如果结果为2则玩家失败 其他结果可以按回车继续 或者输入q结束程序 作者
  • XML格式Word文档表格常用标签

    常用标签 名称 描述 w p 文本段落 w pPr 段落设置 w ind 缩进 w jc 文本位置 left center right w r 文字块 w rPr 文本设置 w rFonts 字体设置 w color 文字颜色 w sz 文
  • 【Qt串口波形绘图】基于QCustomPlot的串口波形绘图上位机,源码开放

    之前写了一款串口调试上位机 有很大的功能欠缺 整体感觉十分不爽 这次在原有基础上进行了优化 并且增加了协议帧捕获功能 使用QCustomPlot进行波形绘图的功能 可应用于实时动态绘图 直男审美 实在不懂UI设计 望吐槽时嘴下留情 GitH
  • 我需要Python代码,构建一个微信小程序

    我可以为你提供一些关于如何构建一个微信小程序的Python代码 你可以使用微信小程序的开发工具 使用Python编写小程序的业务逻辑 并在小程序的前端界面中使用HTML CSS和JavaScript实现界面的设计和交互
  • Linux编程-基础知识

    Linux基础 前言 Linux 目录结构 具体目录结构 Vi 和 Vim 编辑器 Vi 和 Vim 的三种模式 正常模式 插入模式 编辑模式 命令行模式 前言 我使用的环境是在VMware虚拟机 centOS8 Xshell7 Xftp7