软链接

《现代操作系统(中文第四版)》课后习题答案 第四章 文件系统

假如想象 提交于 2019-12-02 06:50:39
题目略。 如有错误答案,请各位评论指出,多谢多谢 1、使用 . 或 …切换文件路径 /etc/passwd /./etc/passwd /././etc/passwd /./././etc/passwd /etc/../etc/passwd /etc/../etc/../etc/passwd /etc/../etc/../etc/../etc/passwd /etc/../etc/../etc/../etc/../etc/passwd 2、Windows方法是使用文件扩展名。每个扩展名对应一个文件类型和一些处理该类型的程序。另一种方法是记住哪个程序创建了文件并运行该程序。麦金托什就是这样工作的。 3、这些系统直接将程序加载到内存中,并在单词0处开始执行,这就是幻数。为了避免试图以代码的形式执行头,幻数是一条分支指令,目标地址就在头的上方。通过这种方式,可以将二进制文件直接读取到新进程的地址空间中,并在0处运行它,而不必知道头有多大。 4、首先,如果没有打开,则每次读取时都需要指定要打开的文件的名称。然后,系统将不得不为它获取i节点,尽管可以缓存。快速出现的一个问题是何时将i节点刷新回磁盘。然而,它可能会超时。这可能有点笨拙,但可能会奏效。 5、如果要再次读取文件,只需随机访问字节0。 6、对。重命名调用不会更改创建时间或上次修改时间

python os 方法

北战南征 提交于 2019-12-02 03:38:45
Python3 OS 文件/目录方法 os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示: 序号 方法及描述 1 os.access(path, mode) 检验权限模式 2 os.chdir(path) 改变当前工作目录 3 os.chflags(path, flags) 设置路径的标记为数字标记。 4 os.chmod(path, mode) 更改权限 5 os.chown(path, uid, gid) 更改文件所有者 6 os.chroot(path) 改变当前进程的根目录 7 os.close(fd) 关闭文件描述符 fd 8 os.closerange(fd_low, fd_high) 关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略 9 os.dup(fd) 复制文件描述符 fd 10 os.dup2(fd, fd2) 将一个文件描述符 fd 复制到另一个 fd2 11 os.fchdir(fd) 通过文件描述符改变当前工作目录 12 os.fchmod(fd, mode) 改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。 13 os.fchown(fd, uid, gid) 修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定

linux inode节点数报警处理

好久不见. 提交于 2019-12-01 18:39:56
1.问题描述 zabbix 收到一台服务器的 Free inodes is less than 20% on volume / 报警 登陆服务器查看 产生原因:一般就是小文件比较多,占用大量的inode节点,如果inode占满,也会报 “no space left on device” 2.问题解决 一般不是自己程序建立的文件比较多时,都是/var/spool/postfix/maildrop目录下文件比较多 如果直接ls -l 会直接卡死 用 find /var/spool/postfix/maildrop -type f -mtime +30 | xargs rm -rf 这样直接删除这个目录下30天前的文件 如何查找那个目录下文件最多 首先切到根目录 / cd / 然后执行 for i in /*; do echo $i; find $i | wc -l; done 或者 for i in `ls -1A | grep -v "\.\./" | grep -v "\./"`; do echo "`find $i | sort -u | wc -l` $i"; done | sort -rn | head -10 这样会依次返回/目录下文件最多的目录,进入这个目录,再执行上述命令,就这样层层深入最终确定是那个目录文件最多 扩展: 解决inode爆满问题

linux ln 命令使用参数详解(ln -s 软链接)

China☆狼群 提交于 2019-12-01 16:34:20
http://www.jb51.net/LINUXjishu/150570.html 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。 当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 例如:ln -s /bin/less /usr/local/bin/less -s 是代号(symbolic)的意思。 这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

Linux基础重点习题讲解

こ雲淡風輕ζ 提交于 2019-12-01 12:58:23
第一章 一个EXT4的文件分区,当时使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df-h命令查看磁盘大小时,只使用了60%的磁盘空间,为什么会出现这种情况? 解答: 使用 df-ih 命令查看,会发现是inode满了,说明有大量小文件占用了磁盘空间,用find命令查找所有的小文件并删除即可。 第二章 对名为fido的文件用chmod 551 fido进行修改,则他的许可权是? 解答: -r-xr-x--r 第三章 文件系统中软硬链接的区别? 解答: 1)软链接可以跨越文件系统 ,硬链接不可以 2)硬链接与源文件的inode节点相同,软链接与源文件的inode不同。 3)软链接可以对一个不存在的文件名进行链接。 4)软链接可以对目录进行链接。 加入一些个人的理解: 第四章 Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解? 4.1 开机启动流程 4.2 忘记密码破解方式 第五章 请取出系统中所有的用户名及UID,并过滤出不可登录的用户 解答: 第一步:cat /etc/passwd 查看passwd下的全部内容,可以看到用户名和UID分别是第一列和第三列 第二步: cat /etc/passwd |awk -F ":" '{print $1,$3 }' 取出所有的用户名和UID 因为不可登录的用户

【原】rsync使用

自闭症网瘾萝莉.ら 提交于 2019-12-01 12:23:05
在使用jenkins当跳板机的场景下,有使用git pull 代码到jenkins机器后,需要将代码复制到另一台机器上,常用的复制命令有scp和rsync;现就使用到了rsync进行详解: rsync是一种快速且通用的文件复制工具,以其Delta传输算法,通过仅发送源文件和目标文件中现有文件之间的差异来减少网络发送的数据量。 常用参数: -z:传输时进行压缩提高效率 -v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息 -P:显示文件传输的进度信息 -a --archive:归档模式,表示递归传输并保持文件属性,等同于"-rtopgDl" -r --recursive:以递归模式拷贝目录 -R --relative:使用相对路径 -l --links:如果文件是软链接,则拷贝软链接本身而非软链接所指向的文件 -L --copy-links:如果文件是软链接,拷贝软链接指向的文件 -W --whole-file:拷贝文件时不进行增量检测 -t --times:保持 mtime 属性 rsync 默认用"quick check"算法决定哪些文件需要增量传输。此算法只比较文件的大小和 mtime,即使其它属性不同也会认为它们是完全相同的文件,从而不需要增量传输 建议任何时候都加上"-t",否则目标文件 mtime 会设置为系统时间,导致下次更新检查出 mtime

Linux的硬链接和软链接

筅森魡賤 提交于 2019-12-01 11:34:25
一、Linux链接概念 Linux链接分两种,一种为硬链接(Hard Link),另一种为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 1、硬链接 硬链接指通过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的链接。只删除一个连接并不影响索引节点本身和其它的链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬链接文件均被删除。 2、软链接 另外一种链接称之为符号链接(Symbolic Link),也叫软链接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号链接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。 二、示例 [root@centos76 test]# touch file1 [root@centos76 test]# ln file1 file2 [root@centos76 test]# ln -s file1

httprunner学习17-linux上安装httprunner环境

与世无争的帅哥 提交于 2019-12-01 07:19:41
前言 如果你是在linux上安装httprunner环境,用的是python3的环境,安装成功后会发现hrun命令找不到,需添加软链接。 环境准备: centos 7.6 python 3.6 httprunner 1.5.8 linux环境安装 先保证你的linux环境里面安装了python3.6的环境,python3.6的环境安装查看这篇 https://www.cnblogs.com/yoyoketang/p/10195102.html 使用pip3安装httprunner pip3 install httprunner==1.5.8 查看版本号 hrun -V 结果出现:-bash: hrun: command not found 添加软链接 出现上面报错因为指令没找到,默认没添加到/usr/bin目录下,我们先查看hrun的安装目录 [root@yoyo ~]# find / -name hrun /usr/local/python3/bin/hrun 接着添加软链接,把上面的目录加到/usr/bin目录下即可 ln -s /usr/local/python3/bin/hrun /usr/bin/hrun 如果这一步提示文件已经存在了,那就是之前加的不对,需先删除 [root@yoyo ~]# ln -s /usr/local/python3/bin/hrun /usr

linux命令详解三

别来无恙 提交于 2019-12-01 04:22:35
输出重定向 场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。 >:覆盖输出,会覆盖掉原先的文件内容 >>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加 2>:错误输出,会覆盖掉原先的文件内容 2>>:错误追加输出,会覆盖掉原始文件内容,会在原始内容末尾继续添加 &>:将标准输出与错误输出共同写入到文件中。覆盖原有内容 &>>:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。 案例1:使用覆盖输出(覆盖原文内容) [root@ken ~]# vim test [root@ken ~]# cat test this is ken [root@ken ~]# echo "this is oscar" > test [root@ken ~]# cat test this is oscar 案例2:使用追加输出(原文中追加) [root@ken ~]# cat test this is oscar [root@ken ~]# echo "this is

CentOS6给网站开通免费https

不打扰是莪最后的温柔 提交于 2019-11-30 23:15:32
安装 let's encrypt 免费ssl证书,需要python3(最低要2.7吧,为了省事直接用3),为了不必要的操作直接yum安装。 00 准备工作 下载 certbot # 以 nginx + centos6 为例 wget https://dl.eff.org/certbot-auto sudo mv certbot-auto /usr/local/bin/certbot-auto sudo chown root /usr/local/bin/certbot-auto sudo chmod 0755 /usr/local/bin/certbot-auto 01 第一步 安装python3 yum install epel-release 安装python34 注意 :可能需要先安装 tcl 和 tk ,直接 yum 安装即可。 yum -y --disablerepo="*" --enablerepo="epel" install python34 python34-devel python34-tools curl -O https://bootstrap.pypa.io/get-pip.py 安装pip /usr/bin/python3.4 get-pip.py 02 创建必要文件夹 不手动创建文件夹好像 certbot-auto 会尝试自动安装python