linux的一些复杂命令 熟悉linux常用命令

   2023-02-09 学习力0
核心提示:用与改变root目录可以用pivot_root和chroot命令,但是这两者之间是有区别的pivot_root :直接将整个文件系统的root目录改为指定目录chroot :对于运行的指令以目标目录作为root目录,只影响单个进程. exec :用于结束当前执行的进程并继承其上下文,开始一个新的进

用与改变root目录可以用pivot_root和chroot命令,但是这两者之间是有区别的

pivot_root :直接将整个文件系统的root目录改为指定目录

chroot :对于运行的指令以目标目录作为root目录,只影响单个进程.

 

exec :用于结束当前执行的进程并继承其上下文,开始一个新的进程.PID不会改变. 和souse命令的不同之处在于exec会结束当前进程而souse不会.

如果不想结束当前进程可以用fork()建立新的进程再调用exec命令.这个过程和system是一样的.

 

mount --bind :绑定挂载. 用于将文件系统绑定到两个不同的位置,目标挂载点原本文件系统将被隐藏掉.umount之后又能看到被隐藏的文件系统.

另外根据原始挂载点的传播类型标记(shared, private, slave, unbindable)不同也会导致镜像和本体之间的映射关系不同.用findmnt -o PROPAGATION 查看挂载点的传播类型标记 :

shared 表示允许创建镜像,一个镜像内的挂载和卸载操作会被自动传播到所有其他镜像中.

slave 表示自动继承主挂载点中挂载和卸载操作,但是自身的挂载和卸载操作不会反向传播到主挂载点中.

private 表示既不继承主挂载点中挂载和卸载操作,自身的挂载和卸载操作也不会反向传播到主挂载点中.

unbindable 表示禁止对该挂载点进行任何绑定(--bind|--rbind)操作.

 

mount --move :用于将一个目录移动到另一个地方而文件物理地址不变.相当于先umount再mount.但是对于传播类型标记为shared的挂载点无法进行操作.

 

mount --noatime :用于挂载时禁止更新文件与目录的inode访问时间,以获得更快的访问速度(实际影响并不大).

 

mount -t ramfs ; mount -t tmpfs  :mount -t type type表示文件系统类型,这个命令指定要挂载的文件系统类型,可以使用逗号分割多种类型.

ramfs是Linux下一种基于RAM做存储的文件系统.在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储效率.但是ramfs有一个很大的缺陷就是它会吃光系统所有的内存,即使你mount的时候指定了大小,同时它也只能被root用户访问.

tmpfs也是Linux下的一个文件系统,它将所有的文件都保存在虚拟内存中,umount tmpfs后所有的数据也会丢失,tmpfs就是ramfs的衍生品.tmpfs使用了虚拟内存的机制,它会进行swap,但是它有一个相比ramfs的好处:mount时指定的size参数是起作用的,这样就能保证系统的安全,而不是像ramfs那样,一不留心因为写入数据太大吃光系统所有内存导致系统被卡住.总结:

ramfs会因为数据的写入自动增长空间,所以可能导致最后系统所有的内存耗完

tmpfs可以再mount时限定大小,不会自动增长

ramfs不会用swap

tmpfs会使用swap

两者都是用来提升效率,但是tmpfs比ramfs的性能更好

 

/dev/urandom ; /dev/random :两者都是用来提供随机数的,通过采集环境噪音来产生随机数据并存入熵池. 只是random提取随机数时会将所提取的数据清除,urandom不清除数据而重复使用,属于伪随机. 也是由于这个原因/dev/random产生数据的速度比较慢,有时候还会出现较大的停顿,而/dev/urandom的数据产生速度很快,基本没有任何停顿。

/dev/null  :  /dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF.被称为"比特桶"或"黑洞".
/dev/zero :/dev/zero是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL,ASCII NUL, 0x00).  其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件(命令 dd). 与/dev/null类似,/dev/zero也可以作为一个数据源或数据池,所有写往/dev/zero将返回成功,没有其他影响,/dev/null也是一样,但是作为数据池更常用。所有对/dev/zero的读操作,将返回请求数目的"NUL"字节.

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 【强转】QEMU+GDB调试linux内核全过程
    【强转】QEMU+GDB调试linux内核全过程
    昨天更新了一篇名为《QEMU+GDB调试linux内核全过程》[link][https://blog.csdn.net/weixin_37867857/article/details/88138432]的博客,发现排版比较混乱,而且思维也比较混乱。咋一看下来简直是惨不忍睹,而且会给读者在安装过程中一种云里雾里的感觉,加上
    03-08
  • Linux下Bochs,NASM安装和使用 linux bom
    Linux下Bochs,NASM安装和使用 linux bom
    以Ubuntu为例,先更新一下:sudo apt-get updatesudo apt-get upgrade然后安装Bochs环境:sudo apt-get install build-essential xorg-dev libgtk2.0-dev安装NASMNASM官网下载,这以nasm-2.14.02.tar.gz为例:用tar zxvf nasm-2.14.02.tar.gz解压后编译安装cd
    03-08
  • 把玩Alpine linux(一):安装
    把玩Alpine linux(一):安装
    导读Alpine Linux是一个面向安全应用的轻量级Linux发行版。它采用了musl libc和busybox以减小系统的体积和运行时资源消耗,同时还提供了自己的包管理工具apk。Alpine 的内核都打了grsecurity/PaX补丁,并且所有的程序都编译为Position Independent Executabl
    03-08
  • 日志审计与分析实验三(rsyslog服务器端和客户端配置)(Linux日志收集)
    日志审计与分析实验三(rsyslog服务器端和客户
     Linux日志收集一、实验目的:1、掌握rsyslog配置方法2、配置rsyslog服务收集其他Linux服务器日志:C/S架构:客户端将其日志上传到服务器端,通过对服务器端日志的查询,来实现对其他客户端的日志进行集中管理;下面实现就是通过两套机器来实现,(server:19
    03-08
  • Linux学习系列--如何在Linux中进行文件的管理
    Linux学习系列--如何在Linux中进行文件的管理
    文件在常见的Linux的文件系统中,经常使用能了解到的文件管理系统是分为多个文件夹进行管理的。如何查看文件路径 pwd ,在文件目录中,会有一个点(.)代表的是当前目录,两个点(..)代表的是当前目录的上层目录在Linux下,所有以点开始的文件都是“隐藏文件
    03-08
  • [JetBrains] 我想在 Linux 上使用 macOS 键绑定!
    [JetBrains] 我想在 Linux 上使用 macOS 键绑定
    很高兴认识你,我的名字是kitakkun。我最近开始实习,是工程界的新手。顺便说一句,这是我的第一篇文章。你最喜欢的操作系统是什么?视窗?苹果系统?还是Linux?我将它们全部用于不同的目的,但感觉就像 macOS ≒ LinuxWindows。一两个月前,我最喜欢 Linux
    03-08
  • linux 配置Socks51
    linux 配置Socks51
    ***大家耳熟能详,但是socks用到的人比较少,那什么是socks呢?请看第二段或者百度百科,socks分别有4和5两个版本,现在5为主流。工作中经常用***访问国外,但是同时国内的速度又慢了,让人很纠结,实际上这个时候可以考虑使用socks。指定某一个程序使用国外s
    02-10
  • linux下如何单独编译设备树? linux设备树是什
    答: make vendor/device_name.dtb  如: make freescale/fsl-1043a-rdb.dtb
    02-10
  • linux下mysql开启远程访问权限及防火墙开放3306端口
    linux下mysql开启远程访问权限及防火墙开放3306
    开启mysql的远程访问权限默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。主流的有两种方法,改表法和授权法。相对而言,改表法比较容易一点,个人也是比较倾向于使用这种方法,因此,这
    02-10
  • 移植linux3.7到nuc900系列开发板遇到的问题
    通过移植学习linux新版本内核,大概了解一下内核变化。记录一下移植过程中遇到的问题或值得注意的地方。1,添加一款arm9芯片的支持首先修改\arch\arm\tools\mach-types文件添加一行w90p950evbMACH_W90P950EVBW90P950EVB同目录下的脚本文件在编译内核时会根据
    02-10
点击排行