linux学习笔记二

基本文件系统。

1.0 ext4文件系统 Windows通常使用NTFS文件系统,早期版本使用FAT32,而DOS则使用FAT文件系统。Linux的多数发行版采用ext4文件系统。Linux也支持上述提到的文件系统。 2.0 Linux目录结构

linux学习笔记二目录结构.png

A 根目录(/),是Linux系统的顶层目录。在许多系统中,/目录是唯一的分区。如果有其他分区,必须挂载在/目录下的某个位置。 B bin目录,为命令目录,也称为二进制目录,包含重要的Shell命令的二进制可执行文件,包括Shell解释器。该目录不应包含子目录。

root@kali:/# ls -a.   bin     dev   initrd.img      lib64       mnt   root  srv  usr      vmlinuz.old..  boot    etc   initrd.img.old  lost+found  opt   run   sys  var0   .cache  home  lib             media       proc  sbin  tmp  vmlinuz

C boot目录,存放系统内核文件和引导加载程序文件。

root@kali:/bin# ls -a.              echo        mkdir           pidof                     systemd-sysusers..             egrep       mknod           ping                      systemd-tmpfilesbash           false       mktemp          ping4                     tarbunzip2        fgconsole   more            ping6                     systemd-tty-ask-password-agent

D dev目录,也称为设备(device)文件目录,存放与计算机上设备(如终端、光驱、网卡等)相应的文件,包含字符文件和块文件等。

root@kali:/# cd bin/root@kali:/bin# ls -a.              echo        mkdir           pidof                     systemd-sysusers..             egrep       mknod           ping                      systemd-tmpfilesbash           false       mktemp          ping4                     systemd-tty-ask-password-agentbunzip2        fgconsole   more            ping6                     tar

E etc目录,存放系统的大部分配置文件和子目录,比如profile等。X Window系统的文件保存在/etc/X11目录中,与网络配置相关的文件保存在/etc/sysconfig中。

root@kali:/# cd dev/root@kali:/dev# ls -a.                fd                  port      stdout  tty25  tty43  tty61    vcsa..               full                ppp       tty     tty26  tty44  tty62    vcsa1agpgart          fuse                psaux     tty0    tty27  tty45  tty63    vcsa2

F home目录,包含系统各个用户的家目录,其子目录名即为各用户名。

root@kali:/etc# ls -a.                           gconf               miredo.conf        samba..                          gdb                 mke2fs.conf        sane.dadduser.conf                gdm3                modprobe.d         scalpel...root@kali:/etc/X11# cd ..root@kali:/etc# cd sysconfigbash: cd: sysconfig: 没有那个文件或目录

G lib目录存放各种编程语言库,典型的Linux包含C、C++、Python等库。/lib/modules目录包含可加载的内核模块,其它重要库文件存放在/usr/lib目录中。

root@kali:/# cd /homeroot@kali:/home# ls -a.  ..

H lost+found目录,在ext2、ext3、ext4文件系统中,当系统意外崩溃或机器意外关机时,产生的文件碎片会放在这里。系统再次启动时,fsck工具会检查此目录,并修复已损坏的文件系统。

root@kali:/lib# ls -a.              crda        ifupdown                              lsb         terminfo..             cryptsetup  init                                  modprobe.d  udevconsole-setup  firmware    klibc-k3La8MUnuzHQ0_kG8hokcGAC0PA.so  modules     x86_64-linux-gnucpp            hdparm      live                    ...root@kali:/lib# cd /usr/libroot@kali:/usr/lib# ls -a.                           libcdt.so.5.0.0                     libtidy.so.5..                          libcgraph.so.6                      libtidy.so.5.2.0accountsservice             libcgraph.so.6.0.0

I opt目录表示可选的意思,有些软件会安装在这里,某些第三方应用程序也会安装在这里。

root@kali:/# cd lost+foundroot@kali:/lost+found# ls -a.  ..

J root目录,为系统管理员的家目录。

Get笔记 Get笔记

Get笔记,一款AI驱动的知识管理产品

Get笔记 125 查看详情 Get笔记

root@kali:/# cd optroot@kali:/opt# ls -a.  ..  Teeth

K usr目录,是Linux系统中最大的目录。在许多系统中,该目录作为独立分区挂载,主要存放一些不经常变化的数据和系统中的应用程序。

root@kali:/# cd rootroot@kali:~# ls -a.                                             a.txt          Documents      ml.txt    .rnd..                                            .bash_history  Downloads
root@kali:/# cd /usrroot@kali:/usr# ls -a.  ..  bin  games  include  lib  local  sbin  share  src  var

一些比较实用的Linux命令—

Linux的哲学是,一切皆文件,甚至外部设备也可以作为文件处理。路径用/表示,与Windows下的正好相反。

root@kali:~# rm dflxrm: 无法删除'dflx': 是一个目录root@kali:~# rm -rf dflx
root@kali:~# cd dflxroot@kali:~/dflx# mkdir dddroot@kali:~/dflx# ls -a.  ..  dddroot@kali:~# rmdir dflxrmdir: 删除 'dflx' 失败: 目录非空root@kali:~# rmdir -p dflxrmdir: 删除 'dflx' 失败: 目录非空root@kali:~# rmdir -p dflx/ddd/这样就可以递归删除非空目录,或者rm -rf dflx

which [选项] 命令名,用于查询命令或别名的位置。

root@kali:~# which ls/bin/ls

locate [选项] 查找的字符串

root@kali:~# locate cp/bin/cp/bin/cpio...

find [路径] 查找条件 [操作]

root@kali:~# find --helpUsage: find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]默认路径为当前目录;默认表达式为 -print

du [选项] [目录或者文件]

Linux操作系统基础及应用,我已经看了大约100多页,大约是一半的内容。这是我找到的一本我认为最简单、最实用的书。其它的书要么很厚,要么讲解得太深奥,要么介绍许多不常用的东西。

天下文章一把抄,我这不会侵权了吧,害怕,害怕,所以版权不属于我

以上就是linux学习笔记二的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/514141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 02:20:34
下一篇 2025年11月9日 02:21:38

相关推荐

  • Go开发中cannot find package错误解析与GOROOT配置指南

    本文旨在解决go语言开发中常见的`cannot find package`错误,特别是当标准库如`fmt`或`runtime`无法找到时。该问题通常源于`goroot`环境变量的错误配置,它导致go工具链无法正确识别其安装路径及标准库位置。教程将详细解释`goroot`的作用,分析错误原因,并提供最…

    好文分享 2025年12月16日
    000
  • Go语言变量作用域与声明:解决if/else块中的变量访问问题

    本文深入探讨go语言中变量的作用域规则,特别是在条件语句(如`if/else`)中声明变量时遇到的常见问题。通过解析`:=`短声明与`=`赋值操作的区别,文章阐明了变量在不同代码块中的生命周期。我们提供了一种标准解决方案,即在更广阔的作用域内声明变量,然后在条件块中进行赋值,从而有效避免“变量已声明…

    2025年12月16日
    000
  • Go语言文件操作深度解析:O_APPEND模式与文件偏移量的行为

    在使用go语言进行文件操作时,`os.openfile`配合`o_append`模式会强制所有写入操作定位到文件末尾,从而忽略之前通过`seek`设置的文件偏移量。这一行为并非go语言的bug,而是底层操作系统`open(2)`系统调用的特性。理解这一机制对于避免文件写入逻辑错误至关重要,尤其是在需…

    2025年12月16日
    000
  • 深入理解Go语言变量作用域与声明:解决条件语句中的“未声明”问题

    本文旨在深入解析go语言中变量的作用域规则,特别是针对在`if/else`等条件语句块内使用短变量声明`:=`时常遇到的“变量未声明”或“声明未使用”问题。文章将详细阐述`:=`与`=`的区别,并通过代码示例演示正确的变量声明与赋值实践,帮助开发者避免常见的go语言作用域陷阱,编写出更健壮、可维护的…

    2025年12月16日
    000
  • .NET与Go语言库互操作性实现指南

    本文探讨了go语言与.net应用程序之间实现互操作性的方法,重点介绍了通过在go应用中宿主.net clr(common language runtime)来调用.net库的技术路径。文章详细阐述了创建c语言可调用dll以封装clr宿主逻辑的原理,并讨论了该方法的技术细节、潜在挑战及替代方案,如rp…

    2025年12月16日
    000
  • Golang文件操作:理解O_APPEND与Seek行为的冲突与解决方案

    在golang中,使用`os.o_append`模式打开文件时,`seek`操作将无法改变写入位置。这是因为`o_append`是一个操作系统级别的特性,它会在每次写入前强制将文件指针定位到文件末尾。本文将深入探讨这一机制,解释其原理,并提供在需要指定写入位置时应采用的正确文件操作方法。 理解os.…

    2025年12月16日
    000
  • Go语言文件操作:os.O_APPEND模式下文件定位行为解析

    在go语言中,使用`os.o_append`模式打开文件时,所有写入操作(包括通过`io.copyn`等)都将强制发生在文件末尾,即使在此之前调用了`seek`方法来定位文件指针。这种行为并非go语言运行时特性,而是底层操作系统`o_append`标志的固有设计,旨在确保并发追加的原子性。理解这一机…

    2025年12月16日
    000
  • Go与.NET互操作:深度探讨在Go应用中集成.NET库的策略

    本文深入探讨了go应用程序与.net库进行互操作的策略。核心方法是在go应用中通过c-callable dll宿主.net clr,从而实现对.net功能的直接调用。文章详细阐述了这种方法的原理、实现考量及潜在挑战,并提出了远程过程调用(rpc)作为一种高性能、解耦的替代方案,旨在帮助开发者根据具体…

    2025年12月16日
    000
  • Go与.NET互操作:在Go应用中调用.NET库的策略

    本文探讨了在go应用中集成.net库或ui的策略。核心方法是通过在go进程中宿主.net clr,利用c-callable dll作为桥梁。文章将介绍这种技术的可行性,并讨论实现过程中可能遇到的技术细节和注意事项,帮助开发者实现go与.net之间的互操作性。 引言 在现代软件开发中,跨语言互操作性是…

    2025年12月16日
    000
  • Go语言中接口与自定义类型切片的实践:实现高效过滤

    本文深入探讨了go语言中自定义切片类型与接口的结合使用。通过一个具体的过滤操作示例,文章详细阐述了如何为自定义类型实现接口方法,并着重强调了在go语言中处理切片数据时,应优先采用遍历并构建新切片的方式进行数据过滤或转换,而非尝试原地删除元素,从而展现go语言在类型系统和数据结构操作上的惯用模式和最佳…

    2025年12月16日
    000
  • Go语言中模拟联合类型 (Union Types) 的策略与实践

    go语言原生不支持联合类型(union types),但在处理异构数据或实现抽象语法树等场景时,这类结构是必需的。本文将探讨go语言中模拟联合类型的几种常见策略,包括基于`interface{}`的显式封装、利用`type switch`进行类型判断,以及通过定义接口实现编译时类型分组。通过具体示例…

    2025年12月16日
    000
  • Golang如何优化模块依赖_Golang 模块依赖优化实践

    Go模块依赖管理需定期执行go mod tidy清理未用依赖,显式锁定最小必要版本,避免间接依赖膨胀,结合GOPROXY加速拉取并验证完整性,提升项目可维护性与构建效率。 Go 模块依赖管理在项目变大或团队协作增多时变得尤为关键。处理不当会导致构建缓慢、版本冲突、包重复等问题。优化模块依赖不只是减少…

    2025年12月16日
    000
  • Golang如何应用状态机模式管理状态_Golang 状态机模式实践

    状态机模式通过定义状态、事件、转移和动作来清晰管理对象生命周期,适用于订单等场景。 在 Go 开发中,状态机模式是管理对象生命周期状态的有效方式。它能清晰地表达状态流转逻辑,避免散乱的 if-else 判断,提升代码可维护性。尤其适用于订单、任务、审批流程等有明确状态和转换规则的场景。 什么是状态机…

    2025年12月16日
    000
  • Golang如何删除未使用的依赖包_Golang 未使用依赖清理实践

    使用go mod tidy可自动清理未引用的依赖,结合unimport和unused等工具精准识别局部无用包,注意处理间接依赖、测试依赖等特殊情况,建议定期在CI和开发流程中执行清理以维护项目健康。 在 Golang 项目开发中,随着功能迭代和重构,一些曾经引入的依赖包可能不再被使用。这些残留的依赖…

    2025年12月16日
    000
  • 如何在Golang中实现自动化部署

    答案:通过CI/CD工具集成Git仓库,利用Go交叉编译生成带版本信息的二进制文件或Docker镜像,经测试后通过SSH、Ansible或K8s自动部署至目标环境,实现从代码提交到服务上线的完整自动化流水线。 在Golang项目中实现自动化部署,核心是将代码构建、测试、打包和发布流程通过工具链自动完…

    2025年12月16日
    000
  • Golang接口与自定义切片类型:实现高效数据过滤

    本文将深入探讨如何在go语言中为自定义切片类型实现接口方法,并着重讲解如何高效地进行数据过滤。我们将通过一个具体的例子,展示如何为`[]float64`的自定义类型`sequence`实现一个`greaterthan`方法,该方法返回一个新切片,仅包含大于特定值的元素。核心思想是利用`append`…

    2025年12月16日
    000
  • Golang HTTP客户端如何配置自定义TLS根证书

    本教程详细阐述了在go语言中,如何为`http.client`动态配置自定义tls根证书,以验证服务器身份。通过读取pem格式的`.crt`文件,创建`x509.certpool`并将其赋值给`tls.config`的`rootcas`字段,我们能够替换或扩展系统默认的信任链,从而实现灵活且安全的h…

    2025年12月16日
    000
  • Go语言中调用交互式终端程序(如Vim)的正确姿势

    在go语言程序中,通过`os/exec`包启动vim这类交互式终端应用时,常见的挑战是程序无法正常启动或陷入阻塞。核心问题在于子进程的标准输入输出流未与父进程的终端正确连接。本文将详细阐述如何通过将子进程的`stdin`和`stdout`重定向到父进程的相应流来解决此问题,确保交互式程序能够正常运行…

    2025年12月16日
    000
  • 为什么 Golang 中的反射性能较低_Golang 反射性能开销与优化建议

    反射慢因运行时动态类型检查、函数调用开销、内存分配及编译器优化失效;优化策略包括优先使用代码生成、接口抽象、缓存反射结果、减少循环内反射和避免空接口。 Go语言的反射(reflect)虽然功能强大,但确实会带来显著的性能开销。这主要是因为它将本该在编译期完成的工作推迟到了运行时。 反射为什么慢? 理…

    2025年12月16日
    000
  • 如何避免Golang错误被忽略_Golang显式错误检查规范

    答案:避免Go错误被忽略需显式检查每个error,使用errcheck工具检测,封装统一处理逻辑,并通过团队规范与代码审查强化落实。 在Go语言中,错误处理是代码健壮性的关键。由于Go不使用异常机制,而是通过函数返回值显式传递错误,开发者很容易忽略错误检查,导致程序行为异常或隐藏bug。要避免Gol…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信