• 2019-2020-1 20199302《Linux内核原理与分析》第一周作业


    2019.9.13

    说明:可能是因为网速问题,笔记本上一直没有办法加载实验楼的学习界面,所以没有使用实验楼提供的环境,而是用的ubuntu进行的所有实验。

    二、学习第二章,对shell命令有了一个大概的了解。
    (一)首先是快捷键的学习,会使得以后的学习简便很多。
    1、【Ctrl】+【F1~F6】切换用户。
    2、【Tab】命令补全
    3、【Ctrl】+【c】强行终止当前程序
    4、【Ctrl】+【d】键盘输入结束或退出终端
    5、【Ctrl】+【z】将当前程序放入后台运行
    6、【Ctrl】+【a】光标移至最前
    7、【Ctrl】+【e】光标移至最后
    8、【Ctrl】+【k】删除光标开始到行末
    9、【Alt】+【Backspace】向上删除一个单词
    10、【shift】+【PgUp】显示向上滚动
    11、【shift】+【PgDown】显示向下滚动
    (二)模糊匹配 *与?[c1-c2] {c1..c2}等
    (三)输出图形字符命令
    1、首先展示pv命令(此处为自己扩展内容)
    1)安装pv,

    2)使用预先输好的内容像是敲击键盘一样的显示出来。

    后面的数字表示字符显示速度,数字越小,速度越慢。
    2、toilet
    1) 安装toilet与安装pv类似
    2)使用命令以及出现的结果

    3.figlet
    与上面两个命令用法相同。
    三、第三章内容
    (一)零碎知识
    1、通过之前学到的内容,切换用户时,有1-6六个用户,当F7时,切换到的是ubuntu的图形化界面。
    2、root权限是Linux和Unix系统中的最高权限,当黑客进行攻击时,会提权到root。
    3、创建用户与切换用户


    4、查看当前用户所属分组

    5、cat /etc/group | sort 查看/etc/group文件内容 sort表示将文件中的内容用字典排序的方式显示出来

    6、/etc/group包括用户组,用户组口令,GID以及该用户组所包含用户,每个用户组一条数据
    为lilei分组到sudo,使lilei可以将权限提到root

    7、删除用户lilei

    四、文件权限
    (一)

    所显示的信息分别代表的含义如下图所示:

           上图摘自 https://blog.csdn.net/zhuoya_/article/details/77418413
    
          1、 其中d表示文件类型为目录   (说明:d表示目录,l表示软链接:类似于windows的快捷方式,b表示块设备,c表示字符设备,s表示socket,p表示通道,-表示普通文件,/dev中是设备文件)。
          2、三部分权限分别为:拥有者权限,所属组权限以及其他用户权限。
          3、权限的表示:r代表允许读,w代表允许写,x表示允许执行。(一个目录通常要有读权限和执行权限才可以查看内部文件,要有目录的写权限才可以在该目录中创建写权限。)
          4、查看隐藏文件
               ls -A
          5、查看某一个目录的完整属性
               ls -dl
          6、查看所有文件大小。S为显示文件大小,s为按文件大小排列
               ls -AsSh
               man ls之后所显示的内容中,关于排序的包括:(用的是谷歌浏览器,但是不知道为什么图片不能显示出来,手动链接看图吧!)
                ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914224245674-1408434534.png)
                ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914224434517-1850325069.png)
                ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914224559344-417152891.png)
                ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914224752246-1404782083.png)
                ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914224824315-1672910520.png)
    
            7、变更文件所有者:sudo chown变更后名称 变更文件(注:该命令需要在变更后的所有者的身份下执行)
                ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914224905946-437420119.png)
            8、修改文件权限
              方法一: ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914224940506-1193581646.png)
              方法二:chmod gou+/-rwx  文件名   g代表group o代表others u代表user
            9、adduser和useradd
                 adduser像是一个程序需要输入用户的相关信息,但是useradd只是单纯地创建用户,不需要设置相关信息。
           10、作业
                 首先创建用户,将该用户设为有sudo权限,创建文件,将文件修改权限,修改权限时,前面需要加sudo
               ![](https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190914225015944-1515345301.png)
    

    五、文件管理
    1、FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)。
    2、第一层:/etc放置配置文件;/bin,/sbin放置可执行文件。
    第二层:/user/share放置共享数据;/var/log放置系统日志文件。
    3、(1)相对路径:当前目录为起点,目标目录为终点。
    4、nl是比-n更加专业的添加行号并打印的命令,我还以为是cat -nl 文件名,实际上应该是nl 文件名=cat -n 文件名。
    5、(1)相对路径:从当前目录开始。
    (2)绝对路径:从根目录开始。
    4、复制文件命令:cp 文件名 要复制到的路径
    5、由于登陆的用户不具有创建和复制文件(夹)的权限,所以操作时需要加sudo,且复制文件夹时要加参数-r。

    六、环境变量与文件查找
    1、遇到问题 输入declear时,出现common not found错误提示。
    解决:是因ubuntu默认为dash
    首先查看自己当前shell:ls -l /bin/sh 可以看到ubuntu默认用的是dash
    这时候就要将这个sh转换为bash,方法如下:
    sudo dpkg-reconfigure dash,此时会弹出窗口,点击“否”
    成功后,执行ll /bin/sh,此时可以看到已经转换成了bash
    这样就可以解决那些找不到命令的问题。
    2、将可执行文件放在bin文件夹中并且设置好PATH变量后,再运行这些可执行文件的时候,直接文件名即可,不需要加前面的"./"
    可以将可执行文件固化到环境变量中,在关闭当前shell再打开时,不需要再去配置环境变量。
    将该path添加到.shrc中(bash为.bathrc,zsh为.zshrc等等)
    3、编写shell脚本文件之后,执行该文件时,首先要确定此时的用户有这个文件的执行权限,执行该脚本文件时,直接输入./文件名。
    编写c语言文件后,使用gcc命令执行c语言程序文件。
    c语言程序的执行时遇到问题,错误提示为:syntax error near void token “(”……
    解决办法:因为自己在用gcc生成可执行文件之后,在运行程序时候没有用生成的目标文件,而是用编辑的那个文件。
    3、搜索文件的命令 whereis ,witch,find,locate
    作业:(https://img2018.cnblogs.com/blog/1800801/201909/1800801-20190915214946489-2143858750.png)
    4、用tar打包文件时,tar -cf 压缩后文件名.tar 要压缩的内容 中,要压缩的内容路径应该是相对路径,如果要写绝对路径应该加上参数-P

  • 相关阅读:
    SQLite剖析之异步IO模式、共享缓存模式和解锁通知
    SQLite剖析之动态内存分配
    SQLite剖析之锁和并发控制
    SQLite剖析之临时文件、内存数据库
    SQLite剖析之数据类型
    关于Docker目录挂载的总结(一)
    docker常用命令
    玩转docker(一)
    go hello
    术语“go”不被识别为cmdlet,函数,脚本文件或可操作程序的名称
  • 原文地址:https://www.cnblogs.com/eosmomo/p/11517665.html
Copyright © 2020-2023  润新知