Linux笔记之一

news2024/11/19 2:24:55

Linux笔记之一

  • 一、Linux基本概念
    • 1.1 概念
    • 1.2 为什么要学Linux
  • 二、Linux基本目录
  • 三、Linux基本命令
    • 3.1 相对路径
    • 3.2 绝对路径
    • 3.3 Linux基本命令
      • 3.3.1 处理目录的命令
      • 3.3.2 创建文件的命令
      • 3.3.3 内容查看命令
  • 总结


一、Linux基本概念

1.1 概念

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

1.2 为什么要学Linux

因为我们要部署服务,Linux系统一直以其稳定性而闻名,它们可以连续运行多年而不发生任何重大问题。事实上,很多Linux用户都从未在自己的环境中遇到过系统崩溃的情况。相对windows而言,挂起和崩溃完全是一种常态。

Windows由于是商业产品,源代码封闭,我们无法知道微软在里面做了什么手脚。而Linux由于是源代码开放操作系统,不存在这个问题

二、Linux基本目录

在Linux系统中一切皆文件。以下为Linux系统的目录层级结构:

在这里插入图片描述

新创建的Linux系统的目录
在这里插入图片描述

  • /bin,目录通常包含了一些基本的、系统级别的命令,这些命令并不是简单地“放到一个文件里面”,而是每个命令都对应一个独立的可执行文件。这些文件通常是由C、C++等编程语言编写的程序,经过编译链接后生成的可执行文件。如 ls(列出目录内容)、cp(复制文件或目录)、mv(移动或重命名文件)、rm(删除文件或目录)等。
  • /usr/bin, 目录则包含了更多的用户级命令
  • /sbin,存放系统管理员使用的系统维护命令
  • /usr/sbin,存放更多的系统管理员命令
  • /usr/local/bin,通常用于存放用户自己安装的程序的可执行文件
  • /boot,这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /dev,目录是Linux系统中用于存放设备文件的特殊目录。通过设备文件,用户和应用程序可以实现对硬件设备的访问和控制。这些设备文件分为字符设备文件和块设备文件两类,分别用于处理字符流和块数据的传输。
  • /etc,目录是一个非常重要的系统配置文件目录。它包含了大量的配置文件,这些文件用于控制系统和应用程序的行为。/etc 目录中的文件通常是全局性的,对所有用户都有效,且大多数文件只能由root用户(或具有相应权限的用户)进行修改。
  • /home,用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
  • /lib,目录是一个存放共享库(shared libraries)文件的目录。共享库是一种特殊类型的文件,它们包含了程序运行时所需的代码和数据,但可以被多个程序同时访问和使用,从而节省磁盘空间和内存。
  • usr/lib,这个目录也用于存放共享库文件,但主要用于存放用户级别的库文件(即不是系统核心组件所需的库文件)。随着Linux系统的发展,越来越多的库文件被放置在/usr/lib或其子目录中,以更好地组织和管理它们。
  • /lost+found,目录是一个特殊的目录,它通常位于文件系统的根目录(/)下或者是其他挂载的文件系统(如分区或外部存储设备)的根目录下。这个目录的主要作用是存放那些在系统非正常关机(如突然断电)或文件系统错误修复(如使用fsck命令)过程中恢复的文件碎片或孤立文件。
  • /media,linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下
  • /mnt,目录是一个传统的挂载点目录,用于临时挂载文件系统或存储设备。它并不是系统启动时必须自动挂载的目录之一,但通常用于用户或管理员手动挂载文件系统、硬盘分区、USB驱动器、CD/DVD光驱等外部设备。
  • /opt,目录是一个用于存放第三方应用程序的目录。这个目录的设计初衷是为了提供一个集中的位置,用于安装那些不由Linux发行版官方包管理器管理的软件。/opt 目录的使用有助于保持系统目录(如/usr、/bin等)的整洁,同时使得第三方软件的管理更加灵活和方便。
    -/proc: 这是一个虚拟文件系统,包含了系统运行时的信息,如进程、内核参数、硬件信息等。它不是存储在磁盘上的,而是由内核在运行时动态生成的。用户可以通过读取/proc目录下的文件来获取系统信息。
  • /root,这是系统管理员(root用户)的家目录。只有root用户才能访问这个目录,里面通常包含了root用户的个人文件和配置文件
  • /selinux,Security-Enhanced Linux是一个安全模块,用于为Linux系统提供访问控制安全策略。/selinux目录可能包含SELinux相关的配置文件和策略文件,但具体的文件和目录结构可能因发行版而异。请注意,并非所有Linux发行版都默认启用SELinux。
  • /srv,这个目录用于存放服务数据。服务数据是指由系统或第三方服务提供的数据,这些数据不是由用户直接产生的,但可能需要由用户访问。例如,web服务器可能会将网站数据存放在/srv/www目录下。
  • /sys,类似于/proc,/sys也是一个虚拟文件系统,它提供了对内核对象(如设备、驱动等)的访问接口。通过这个目录,用户可以查询和修改内核参数,而无需直接编辑内核源代码或重新编译内核。
  • /tmp,这个目录用于存放临时文件。系统重启后,/tmp目录下的文件通常会被自动删除(尽管这取决于系统的具体配置)。任何用户都可以在这个目录中创建和删除文件,但应注意不要将重要数据存放在这里。
  • /usr,/usr目录包含了大量的用户级程序、库文件、文档等。它通常被划分为多个子目录,如/usr/bin(用户级可执行文件)、/usr/lib(用户级库文件)、/usr/share(共享文件,如文档和图标)等。
  • /var,目录用于存放经常变化的数据,如日志文件、邮件队列、打印作业等。这些文件的内容会随着系统的运行而不断增加,因此需要定期清理和维护
  • /run,目录是一个较新的目录,用于存放自系统启动以来运行中的信息。它替代了之前版本中使用的/var/run目录。/run目录中的文件在系统重启后会被自动清空。

下面比较重要的几个目录,切忌不要误删:
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。值得提出的是 /bin、/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

三、Linux基本命令

3.1 相对路径

从当前工作目录(Current Working Directory)开始的路径。它不包含从根目录开始的完整路径,而是基于当前目录的位置来指定目标文件或目录的位置。相对路径不使用斜杠(/)作为开头。
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法

3.2 绝对路径

绝对路径是从根目录(/)开始的完整路径。它包含了从根目录到目标文件或目录所需经过的所有目录的完整列表,中间用斜杠(/)分隔。
例如,如果你想要访问位于/home/username/documents/file.txt的文件,那么这个路径就是file.txt的绝对路径

3.3 Linux基本命令

3.3.1 处理目录的命令

接下来我们就来看几个常见的处理目录的命令吧:

  • ls(英文全拼:list files): 列出目录及文件名
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示目前的目录
  • mkdir(英文全拼:make directory):创建一个新的目录
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录
  • rm(英文全拼:remove): 删除文件或目录
  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

ls(列出命令):
选项与参数:

-a :全部的文件,连同隐藏文件,文件名以.开头(常用)
-d :显示详细信息(常用)
-l :查看目录属性(常用)
-h:与l配合使用显示详细文件大小

将目录下的所有文件列出来(含属性与隐藏档):
在这里插入图片描述其中上述:u所有者 g所属组 o其他人 r读 w写 x执行

mkdir (创建新目录):
选项与参数:

-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask)
-p :递归创建(常用)

在这里插入图片描述
rmdir (删除空的目录):
选项与参数:

**-p :**从该目录起,一次删除多级空目录

在这里插入图片描述
不过要注意的是,这个 rmdir 仅能删除空的目录,可以使用 rm 命令来删除非空目录。

cp (复制文件或目录):
选项与参数:

-r :递归复制,复制目录
-p:保留文件属性
-i:若已经存在时,在覆盖时会先询问动作的进行(常用)

在这里插入图片描述

mv (移动文件与目录,或修改名称):
选项与参数:

-f :如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件已经存在时,就会询问是否覆盖!

在这里插入图片描述

rm (移除文件或目录):

选项与参数:

-f :强制执行
-i :在删除前会询问是否删除
-r :递归删除啊!最常用在删除目录

在这里插入图片描述

3.3.2 创建文件的命令

(1)使用touch命令
touch命令常用于创建空文件或更新文件的访问和修改时间。要创建一个.txt文件,你可以这样做:

touch 文件名.txt

(2)使用文本编辑器
可以使用文本编辑器(如nano、vim、gedit等)来创建并编辑文件。这些工具允许你直接在文件中输入内容。

nano 文件名.txt

vim 文件名.txt

(3)使用重定向操作符>
可以使用重定向操作符>来创建并写入文件。这个命令通常用于将命令的输出保存到文件中,但你也可以用它来创建一个空文件或覆盖一个已存在的文件。

echo -n > 文件名.txt

3.3.3 内容查看命令

Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。

cat第一行开始显示文件内容:
选项与参数:

-n :显示行号;
-b :列出行号,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
-A :相当於 -vET 的整合选项;

在这里插入图片描述
tac最后一行开始显示
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
在这里插入图片描述
more一页一页翻动

在 more 这个程序的运行过程中,你有几个按键可以按的:

空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

主要是当文件的内容比较多时,可以慢慢向下翻动

less一页一页翻动

less运行时可以输入的命令有:

空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;

head取出文件前面几行
选项与参数:

-n :指定行数

在这里插入图片描述
tail取出文件后面几行

选项与参数:

-n :后面接数字,代表显示几行的意思
-f :动态显示文件末尾内容
tail [-n 输入要显示后多少行] 文件名 

在这里插入图片描述

总结

这篇文章主要简单介绍Linux的基本概念、目录结构以及常用的命令。这些内容都是需要掌握的。

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

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

相关文章

啥?你没听过SpringBoot的FatJar?

写在最前面: SpringBoot是目前企业里最流行的框架之一,SpringBoot的部署方式多数采用jar包形式。通常,我们使用java -jar便可以直接运行jar文件。普通的jar只包含当前 jar的信息,当内部依赖第三方jar时,直接运行则会报…

Python 空间和时间高效的二项式系数(Space and time efficient Binomial Coefficient)

这里函数采用两个参数n和k,并返回二项式系数 C(n, k) 的值。 例子: 输入: n 4 和 k 2 输出: 6 解释: 4 C 2 等于 4!/(2!*2!) 6 输入: n 5 和 k 2 输出: 10 解释: 5 C …

关于GIS的概念方面在前端编程中的理解

关于GIS的概念方面在前端编程中的理解 一. 什么是gis二. 关于地球的建模(了解)三. GIS坐标系表现形式四.GIS的数据4.1 矢量数据4.2 栅格数据4.3 矢量数据和栅格数据的不同 一. 什么是gis 地理坐标系统,其目的就是通过地理坐标系可以确定地球上任何一点的位置。 二. …

springboot网吧信息管理系统-计算机毕业设计源码31030

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3 本课题主要工作 1.4论文结构与章节安排 2系统分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 2.2.2 数据删除流程 2.3 系统功能分析 2.…

YOLO之boxes小记

import cv2 from ultralytics import YOLO # 加载模型 model YOLO(modelyolov8n.pt) results model(sourceanimal.jpg)result results[0] img result.plot() from matplotlib import pyplot as plt # matplotlib :rgb模式 # cv:bgr模式 plt.imshow(Ximg[:,:,::-1])result.b…

海睿思问数(TableGPT):开创企业新一代指标应用模式

1 指标建设对企业经营管理数字化的价值分析 指标是将海量数据中关键信息提炼和挖掘出来,以数据为载体展示企业经营管理和分析中的统计量。它通过分析数据,形成一个具有度量值的汇总结果,使得业务状态可以被描述、量化和分解。指标通常由度量…

【记录】如何使用IDEA2023

前言: 记录IDEA2023的激活与安装 第一步:官网下载安装包: 下载地址:https://www.jetbrains.com/idea/download/other.html 这个最好选择2023版本,用着很nice。 安装步骤就不详解了,无脑下一步就可以了…

上位机图像处理和嵌入式模块部署(mcu项目1:用户手册)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 一个完整的产品,除了上位机软件、固件、硬件、包装之外,一般还需要一个用户手册。好的用户手册应该能够兼顾到大多数人的认…

Java数据结构-树的面试题

目录 一.谈谈树的种类 二.红黑树如何实现 三.二叉树的题目 1.求一个二叉树的高度,有两种方法。 2.寻找二叉搜索树当中第K大的值 3、查找与根节点距离K的节点 4.二叉树两个结点的公共最近公共祖先 本专栏全是博主自己收集的面试题,仅可参考&#xf…

强技能 展风采 促提升——北京市大兴区餐饮行业职工技能竞赛精彩呈现

6月19日,由大兴区总工会、区商务局、青云店镇人民政府联合主办,区服务工会、区餐饮行业协会承办的“传承中国技艺,打造新一代餐饮工匠”2024年大兴区餐饮行业职工职业技能竞赛决赛在北京华联创新学习中心隆重开幕。区总工会副主席郝泽宏&…

运维锅总详解计算机存储

本文从计算机存储简介、存储设备介绍、软件定义存储(SDS)、常见的Kubernetes CSI存储插件介绍、如何平衡成本和存储性能等方面对计算机存储进行详细分析;本文最后还通过图形展示了存储在计算机体系结构中的重要作用。希望对您有所帮助! 一、计算机存储简…

沉浸式三维园区场景漫游体验

利用图扑三维可视化技术展示园区在不同时间段的变化,提供全景漫游体验,帮助用户全方位感受和理解园区环境,实现智能化管理与优化。

昇思第10天

RNN实现情感分类 二分类问题:Positive和Negative两类 步骤: 1.加载IMDB数据集 2.加载预训练词向量:预训练词向量是对输入单词的数值化表示,通过nn.Embedding层,采用查表的方式,输入单词对应词表中的index,…

OPENCV(图像入门笔记)

使用OpenCV读取图像 使用cv.imread()函数读取图像。 第一个参数为图像名称 第二个参数是一个标志,它指定了读取图像的方式。分别有三种 cv.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。 cv.IMREAD_GRAYSCALE:以…

武汉免费 【FPGA实战训练】 Vivado入门与设计师资课程

一.背景介绍 当今高度数字化和智能化的工业领域,对高效、灵活且可靠的技术解决方案的需求日益迫切。随着工业 4.0 时代的到来,工业生产过程正经历着前所未有的变革,从传统的机械化、自动化逐步迈向智能化和信息化。在这一背景下&…

windows USB 设备驱动开发-控制传输的数据包

每次在主机控制器和 USB 设备之间移动数据时,都会发生传输。 通常,USB 传输可大致分为控制传输和数据传输。 所有 USB 设备都必须支持控制传输,并且可以支持用于数据传输的端点。 每种类型的传输都与设备缓冲区USB 端点 的类型相关联。 控制传…

vscode远程连接linux(配置免密)

远程连接 1.首先保证物理机和虚拟机网络可以ping通 2.查看ubuntu得ip地址 ifconfig IP为:192.168.52.133 3.连接远程主机 配置免密 1.打开cmd运行ssh-keygen -t rsa 一路回车就行 2.打开window文件夹C:\Users\xbj\.ssh 3.用记事本打开id_rsa.pub文件复制公…

没有tpm2.0,你就不打算升级win11?屁孩君小白式教学如何跳过

屁孩君终于回归了,回归首文 博主的姥爷电脑已用此方法成功 目录 屁孩君终于回归了,回归首文下载win11镜像将镜像进行提取删除检测文件断网,防止windows重新补全检测文件点击setup,进行检测安装 完成屁孩君终于回归了,记…

idea使用技巧---超实用的mybatisX插件

一、使用原因 传统创建mybatis项目之后,在mapper接口和xml映射文件之间手动切换非常麻烦:不仅需要记住文件的所在位置,而且每次在mapper当中添加一个新的接口,都需要单独手动点开xml再编写sql; eg:在item…

CSS中 实现四角边框效果

效果图 关键代码 border-radius:10rpx ;background: linear-gradient(#fff, #fff) left top,linear-gradient(#fff, #fff) left top,linear-gradient(#fff, #fff) right top,linear-gradient(#fff, #fff) right top,linear-gradient(#fff, #fff) left bottom,linear-gradient(…