alin的学习之路(Linux系统编程:二)(压缩、文件权限、vim)

alin的学习之路(Linux系统编程:二)(压缩、文件权限、vim)

1.压缩和解压命令

  1. tar.gz
    1. 压缩:tar -cvf 压缩包名 文件名
    2. 解压:tar -xvf 压缩包名 -C 解压到的路径
  2. tar.bz2
    1. 压缩:tar -cjf 压缩包名 文件名
    2. 解压:tar -xjf 压缩包名 -C 解压到的路径
  3. zip
    1. 如果电脑没有zip需要下载sudo apt install zip
    2. 压缩:zip 压缩包名(无后缀)文件名
    3. 解压:unzip 压缩包名(可无后缀) -d 解压到的路径

2.用户和用户组相关命令

  1. 用户操作
    1. 创建用户
      1. adduser 用户名
      2. 如果创建用户成功,会在家目录下创建和用户名相同的目录。并且在 /etc/passwd 目录里添加一条新用户信息。信息如下:
        1. newuser:x1003:1007:,:/home/newuser:/bin/bash
        2. newuser 用户名
        3. x 表示密码,不可见。
        4. 1003 表示用户ID,唯一。
        5. 1007 表示用户所在组,组ID,唯一。
        6. 组ID后面的内容表示解释说明的内容
        7. /home/newuser 表示该用户的家目录
        8. /bin/bash 指定该用户用的是哪个命令解析器
    2. 删除用户
      1. sudo deluser 用户名:只删除用户,不删除该用户的家目录
      2. sudo userdel -r 用户名:删除用户的同时删除该用户的家目录
    3. 切换用户
      1. su 用户名:仅切换为该用户
      2. su - 用户名:切换为该用户并定位到该用户的家目录
    4. 修改用户密码
      1. sudo passwd 用户名
    5. 退出用户
      1. exit退出当前用户切换到上一个用户
      2. 如果当前用户是登陆终端的第一个用户,则退出终端
    6. 查看当前用户
      1. whoami
  2. 组操作
    1. 创建组
      1. sudo addgroup 组名
    2. 删除组
      1. sudo delgroup 组名
    3. 修改一个用户组
      1. groups 用户名:查看该用户所属的主组和附加组信息
      2. 修改用户主组:usermod -g 组名 用户名
      3. 修改用户附加组
        1. 指定新的附加组,原附加组舍弃:usermod -G 组名 用户名
        2. 在原附加组的基础上追加新的附加组:usermod -aG 组名 用户名
  3. 主组和附加组的用途
    1. 每个文件或目录在创建的时候都会有一个主组
    2. 每个文件都会有同个主组和附加组下其他用户的权限
    3. 举例:如果你所在的组对某个文件具有权限,那么你相应也具有对该文件的权限。

3.文件和目录权限相关命令

  1. 权限的组成

    1. 权限对象:文件和目录
    2. 针对三种目录:普通用户,同一用户组的用户,其他用户
    3. 读(r)、写(w)、执行(x)
  2. Linux中文件和目录的默认权限

    1. 文件默认权限:rw-rw-r,664
    2. 目录默认权限:rwxrwxr-x,775
  3. umask掩码

    1. umask命令查看掩码,默认0002
    2. 文件创建时的默认权限:默认最高权限-掩码
  4. 修改文件和目录的权限

    1. 字母法
      1. u代表所属用户,g代表用户组,o代表其他用户,a代表全部用户,+代表增加权限,-代表减少权限
      2. 例如:chmod u-x,g+x,o+wx a.txt
    2. 数字法
      1. 每一组权限用八进制表示 421
      2. r 是 4 ,w 是 2 ,x 是 1
      3. 再将三组权限拼起来组成一个三位数
      4. 例如:chmod 654 a.txt
  5. 修改文件的所有者和所属用户组

    1. 修改所有用户:chown 用户 文件名

    2. 修改所属用户组:chgrp 组名 文件名

4.管道

  1. 管道符:|

  2. 管道是一个命令,可以将前一个命令的输出作为第二个命令的输入

  3. 例如:把 ls 的结果分屏显示:ls -al | more

5.重定向

  1. 命令的输出结果默认打印到屏幕上,可以通过重定向将结果输入到文件中

  2. 重定向的语法

    1. >当命令的执行结果重定向到文件中,如果文件有内容,则先删除。
    2. >>当命令的执行结果将内容追加到文件尾部。
  3. 例如:ls -al > a.txt

  4. 用一个命令实现将键盘键入写入文件:cat > a.txt

6. echo和witch命令

  1. witch查看命令的路径

    1. which ls:输出:/usr/bin/ls
  2. echo 向屏幕输出内容

    1. 输出一个字符串:echo “hello world”
    2. 输出一个变量的值:echo $PATH
  3. env

    1. 输出环境变量
    2. 输出环境变量中的变量的值:echo $XXX
    3. 其中最重要的PATH路径:当执行命令时,命令解析器会在PATH中存的路径中去找该程序,如果有该程序,执行;如果没有该程序则报错
    4. 在PATH中添加路径:export PATH=$PATH:/xxxx/,例如:export PATH=$PATH:/home/itcast

7.vim命令

  1. vim的三种模式:

    1. 命令模式:拷贝、剪切、移动光标、删除内容,内容缩进……
    2. 编辑模式:对文件的内容进行编辑
    3. 末行模式:退出,保存,关闭,执行一些命令,查找,替换,分屏……
  2. 三种模式的切换:

    1. 命令模式->编辑模式:i;a;s;o
    2. 编辑模式->命令模式:ESC
    3. 命令模式->末行模式::
    4. 末行模式->命令模式:ESC
  3. 进入vim编辑器:vim 文件名:如果存在该文件则编辑该文件,如果不存在则创建

  4. 末行操作模式:

    1. w+回车:保存文件
    2. wq+回车:保存并退出
    3. q+回车:退出
    4. q!+回车:强制退出,不保存
  5. vimplus 插件包的安装

    1. 执行命令:git clone https://github.com/chxuan/vimplus.git
    2. cd ./vimplus
    3. sudo ./install.sh
  6. 工作管理

    1. 当正在vim中编辑时,首先切到命令模式,再按Ctrl+Z即可将本任务挂到后台
    2. 使用jobs命令即可查看后台的任务
    3. 使用命令fg+任务号即可将指定任务调到前台

思考

  1. 如何将一个任务放在后台运行?如何将一个后台任务恢复到前台?
    1. 按Ctrl+Z
    2. 用jobs命令可以查看挂载到后台的任务,使用fg+任务号即可恢复指定任务到前台
  2. 什么是管道?管道有什么用?如何实现只查看 ls 结果前 5 行内容?
    1. 管道是一个命令,可以将一个命令的输出作为另一个命令的输出
    2. ls | head -5
  3. 如何使用cat 命令向文件中输入内容?
    1. cat > xxx.txt 截断写文件
    2. cat >> xxx.txt 追加文件
  4. 如何打印 PATH 环境变量的值?PATH 有什么用,至少举一个例子。
    1. echo $PATH
    2. PATH变量中存的是可执行文件的路径,在命令行输入一个命令,会先在PATH中的路径中搜索有没有这个程序,如果有这个程序的话则执行该程序,如果没有则执行
    3. 例如:/usr/bin下的 ls 即是在PATH中保存了/usr/bin
  5. 存储用户信息的文件是那个文件? /etc/passwd
  6. 存储组信息的文件是那个文件? /etc/group
  7. 哪些命令可以实现文件解压缩?
    1. 解压tar.gz文件:ar -xcf 压缩包名 -C 解压到的路径
    2. 解压tar.bz2文件:tar -xjf 压缩包名 -C 解压到的路径
    3. 解压zip文件:unzip 压缩包名 -d 解压到的路径
  8. 如何从当前用户切换到其他用户?
    1. su 用户名:仅切换用户
    2. su - 用户名:切换用户且定位到该用户的家目录
  9. tar -cvf 命令压缩文件的扩展名是什么? tar.gz
  10. tar -cjf 命令压缩文件的扩展名是什么? tar.bz2
  11. 对于目录而言,读写执行权限分别代表什么含义?
    1. 读权限:对目录进行ls,tree等操作
    2. 写权限:在该目录内touch,mkdir等
    3. 执行权限:进入到该目录 cd
  12. Linux 默认的文件的最大权限是什么?默认的目录最大权限是什么?umask 是什么?有什么用?
    1. 文件默认最大权限:rw-rw-r–,664
    2. 目录默认最大权限:rwxrwxr-x,775
    3. umask是掩码,创建文件或目录的时候文件的默认权限是:最大权限-掩码

猜你喜欢

转载自blog.csdn.net/qq_41775886/article/details/107323450
今日推荐