• 202020211 20209320 《Linux内核原理与分析》第一周作业


    总结与思考

    1.用户及文件权限管理


    1.1 修改文件权限方法

    mode法 格式:chmod who opt per file
    数字法 格式:chmod XXX file

    1.2 set,env,export的区别

    env 这是一个工具,或者说一个Linux命令,显示用户的环境变量。
    set 显示用户的局部变量和用户环境变量。
    export 显示导出成用户变量的shell局部变量,并显示变量的属性;就是显示由局部变量导出成环境变量的那些变量 (比如可以 export WWC导出一个环境变量,也可通过 declare -X LCY导出一个环境变量)
    declare 跟set一样,显示用户的shell变量 (局部变量和环境变量)

    1.3linux权限s权限和t权限

    s权限: 设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。
    t权限:要删除一个文档,不一定要有这个文档的写权限,但一定要有这个文档的上级目录的写权限。也就是说,即使没有一个文档的写权限,但有这个文档的上级目录的写权限,也能够把这个文档给删除,而假如没有一个目录的写权限,也就不能在这个目录下创建文档。

    2.文件基本操作

    • 新建文件:touch test
    • 新建目录:mkdir mydir mkdir -p father/son/grandson
    • 复制目录:cp test father/son/grandson 要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制
    • 删除文件:使用 rm(remove files or directories)命令删除一个文件,可以使用 -f 参数强制删除,要删除一个目录,也需要加上 -r 或 -R 参数,遇到权限不足删除不了的目录也可以和删除文件一样加上 -f 参数。
    • 移动文件:使用 mv(move or rename files)命令移动文件(剪切)。命令格式是 mv 源目录文件 目的目录
    • 重命名文件:mv 命令除了能移动文件外,还能给文件重命名。命令格式为 mv 旧的文件名 新的文件名
    • 批量重命名:使用通配符批量创建 5 个文件:touch file{1..5}.txt
      批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文
      件:rename 's/.txt/.c/' *.txt
    • 查看文件: 使用 cat,tac 和 nl 命令查看文件,加上 -n 参数显示行号,使用 more 和 less 命令分页查看文件,使用 head 和 tail 命令查看文件只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行.

    3. 文件打包与压缩

    3.1 zip压缩打包

    1. cd /home/shiyanlou
      zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop
      du -h shiyanlou.zip
      file shiyanlou.zip
      -r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向
      屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用 du
      命令查看打包后文件的大小
    2. 使用 -e 参数可以创建加密压缩包
      zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou/Desktop
    3. 将 shiyanlou.zip 解压到当前目录:unzip shiyanlou.zip
      将文件解压到指定目录:unzip -q shiyanlou.zip -d ziptest
      创建一个 tar 包 tar -P -cf shiyanlou.tar /home/shiyanlou/Desktop
      解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):
      mkdir tardir
      tar -xf shiyanlou.tar -C tardir
      只查看不解包文件 -t 参数:tar -tf shiyanlou.tar

    4. 文件系统操作与磁盘管理

    1. df 命令查看磁盘的容量 加-h易读
      du 命令查看目录的容量 只查看 1 级目录的信息du -h -d 0 ~
    2. 创建虚拟硬盘
      dd 命令从标准输入读入用户的输入到标准输出或者一个文件中
      dd if=/dev/stdin of=/dev/stdout bs=10 count=1

    5. 帮助命令

    5.1 help命令

    help 命令只能用于显示内建命令的帮助信息,ls --help

    5.2 man命令

    5.3 info命令

    查看 ls 命令的 info ,info ls 空格翻页

    6. crontab

    crontab 命令从输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常,crontab 储存的指令被守护进程激活,crond 为其守护进程,crond 常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell 脚本。

    • 添加一个计划任务:crontab -e
    • 查看我们添加了哪些任务:crontab -l
    • 查看到执行任务命令之后在日志中的信息反馈:sudo tail -f
      /var/log/syslog
    • 删除任务:crontab -r

    7. 命令执行顺序控制与管道

    7.1 顺序执行多条命令

    简单的顺序执行你可以使用 ; 来完成

    7.2 管道

    • 试用:ls -al /etc | less
      通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看
    • cut 命令,打印每一行的某一字段
      打印 /etc/passwd 文件中以 : 为分隔符的第 1 个字段和第 6 个字段分别表
      示用户名和其家目录:ut /etc/passwd -d ':' -f 1,6
    • grep 命令,在文本中或 stdin 中查找匹配字符串
      grep 命令的一般形式为:grep [命令选项]... 用于匹配的表达式 [文件]...
      -r 参数表示递归搜索子目录中的文件,-n 表示打印匹配项行号,-I 表示忽略二进制文件.
    • wc 命令,简单小巧的计数工具
      行数:wc -l /etc/passwd ;单词数:wc -w /etc/passwd;
      字节数:wc -c /etc/passwd;字符数:wc -m /etc/passwd;
      最长行字节数:wc -L /etc/passwd
      结合管道来操作一下,下面统计 /etc 下面所有目录数:
      ls -dl /etc/*/ | wc -l
    • sort命令
      默认为字典排序: cat /etc/passwd | sort
      反转排序:cat /etc/passwd | sort -r
      按特定字段排序:cat /etc/passwd | sort -t':' -k 3
    • uniq 去重命令
      过滤重复行: history | cut -c 8- | cut -d ' ' -f 1 | uniq

    8. 简单的文本处理

    8.1 tr命令

    • tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。
    • -d:删除和 set1 匹配的字符,注意不是全词匹配也不是按字符顺序匹配
    • -s:去除 set1 指定的在输入文本中连续并重复的字符

    8.2 col命令

    • col 命令可以将Tab换成对等数量的空格键,或反转这个操作。
    • -x:将Tab转换为空格
    • -h:将空格转换为Tab(默认选项)

    8.3 join命令

    • 用于将两个文件中包含相同内容的那一行合并在一起。
    • -t:指定分隔符,默认为空格
    • -i:忽略大小写的差异
    • -1:指明第一个文件要用哪个字段来对比,默认对比第一个字段
    • -2:指明第二个文件要用哪个字段来对比,默认对比第一个字段

    8.4 paste命令

    • paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。
    • -d:指定合并的分隔符,默认为 Tab
    • -s:不合并到一行,每个文件为一行

    9. 数据流重定向

    • 0 /dev/stdin 标准输入
    • 1 /dev/stdout 标准输出
    • 2 /dev/stderr 标准错误
    • 将一个文件作为命令的输入,标准输出作为命令的输出:
      cat Documents/test.c
    • 将 echo 命令通过管道传过来的数据作为 cat 命令的输入,将标准输出作为命
      令的输出:echo 'hi' | cat
    • 将 echo 命令的输出从默认的标准输出重定向到一个普通文件:
      echo 'hello shiyanlou' > redirect
      cat redirect
  • 相关阅读:
    webpack debug
    linux下光标操作
    windows 下 基于express搭建 https协议的网站
    js里的null 与undefined
    scrollIntoView 前的元素滚动到浏览器窗口的可视区域内 不止垂直滚动,还有水平滚动
    js 四舍五入实现
    react 踩坑记
    String.slice
    sublime 常用插件
    springcloud 自己挖坑 @ConfigurationProperties不生效
  • 原文地址:https://www.cnblogs.com/dyyblog/p/13798413.html
Copyright © 2020-2023  润新知