简 述:Linux 中,对于一些经常会使用到的命令(不做知识点的搬运工),作业个简短的记录📝,主要作为日后快速查找。还有对于操作系统的主次版本号的含义,shellbash 的区别等简单做一个说明。主要有如下知识点:

  • Linux 和 GNU 的区别
  • shell 和 bash 的区别
  • 光标相关快捷键
  • 文件目录的结构组成,
  • 文件 / 文件夹操作命令 tree,pwd,mkdir,rm,cp,mv,touch
  • 显示文件相关信息 cat,more,head,less,tial
  • 软硬链接 ln -s
  • 用户组,权限 chmod, chown
  • 文件查找和检索文件内容 find,grep
  • 压缩与解压 tar,rar,zip,gz,bz2

[TOC]


本文初发于 “偕臧的小站“,同步转载于此。


Linux 和 GNU 的区别与联系:

Linux 发行版 == Linux 内核 + GNU 应用软件的操作系统

  • Linux 是类 Unix 计算机操作系统的统称
  • Linux 操作系统的内核也是 ”Linux“
  • Linux 这个单词只表示 Linux 内核,但是实际上人们已经习惯用 Linux 来形容基于 Linux 内核的整个操作系统
  • Linux 是由芬兰大学生 Linus Torvallds 1991 年编写
  • GNU 是一个类 Unix 操作系统。它是由多个应用程序、系统库、开发工具乃至游戏构成的程序集合。

总结:

Linux 确实存在,许多人都在使用它,但它仅仅是所用系统的一部分。Linux是内核:它是为你运行的其他程序分配计算机资源的程序。内核是操作系统的基本部分,但是它自己并无用处;它只能在完整的操作系统框架下才能发挥作用。Linux一般和GNU操作系统一起使用:整个系统基本上就是GNU加上Linux,或叫GNU/Linux。所有被叫做“Linux”的发行版实际上是GNU/Linux发行版。

详细参考:


Linux 版本号和 PATH:

  • Linux 版本号: 主版本号是双数为 STL 支持 5 年;此版本.04 (4月份稳定版),.10为 debug 版本

  • 环境变量: 一些列的路径,在 shell 里面输入的命令,系统就会在这个路径里面去查找该命令是否存在;若存在则执行对应的操作

    echo $HOME 
    echo $PATH

shell 和 bash 的区别:

  • shell –unix 全称:Bourne(伯恩) shell
  • bash –linux 首字母缩写:Bourne age shell

解释一下,先有 Unix 系统,当时是以伯恩开发的和系统进行交互的软件,命名为 shell ;随后在出现 Linux (类 Unix)系统,伯恩想要将 shell 迁移到 Linux 上面,但是又不重名,所以称呼为 Bourne age shell,简写为 bash。


shell 命令参数风格:

命令参数,其实是由带 - 和不带 - 两种的。


光标相关快捷键:

  • history (crtl + p/n 向上向下遍历历史命令)
  • crtl + b/f (前进后退:backward,forward)
  • crtl + a/e (移动到首尾:begin,end)
  • crtl + u/k (删除一行、删除光标到结尾)
  • crtl + h/d (删除光标前面、后面一个字母: del)
  • Tab 单词提示补全

Linux 目录文件结构:

  • Linux 目录根文件/结构

  • /bin 二进制文件,可执行文件,shell 命令

  • /dev Linux 下一切皆文件,硬盘,显卡,显示器

  • /lib 动态库

  • /met 手动的挂载目录

  • /media 外设的自动的挂载目录,如 U 盘

  • /root 超级用户的家目录

  • /usr ->unix system resource

  • 头文件,游戏,用户安装的程序(usr/local)

  • /etc 存放配置文件

  • /opt 安装第三方应用程序(如:火狐浏览器,notepadqq)

  • /home Linux 操作系统下所有用户的家目录

  • /tmp 存放临时文件,可能重启会被清除里面的文件

  • /boot 系统开机的一些配置文件


文件目录相关的命令:

  • tree 查看目录的内容

    • # -C 表示输出带彩色, -N 直接显示编码输出(中文不乱码);alias tree='tree -CN'
    • -L 显示多少层的树
  • ls 查看文件或者目录

    • -a 显示包括影隐藏文件, -l 每个文件的详细信息

    • -F 若是文件夹,则文件夹名字后加 / 标识

    • -h 以人类能够看得懂的方式显示,大小带单位

      Linux 下文件夹永远是 4K; 而 unix 下不是 4K。

  • pwd 显示完整当前路径 (printf work dir)

  • mkdir 创建文件夹

    • -p 循环创建多个文件夹
  • touch 创建文件

    • 若是文件已存在,则只更改文件创建时间
  • rm 删除目录(删除之后,不能恢复)

    • -r 递归删除;-f 删除时候不弹出确认是否;-i 删除时候添加提示信息

      rmdir (辣鸡,只能删除空文件夹)

  • cp 复制文件、文件夹

    • cp fileA fileB (fileB 无,则创建;fileB 已存在,则覆盖)
    • cp dirA/ dirB
      • dirB 无 (dirA 文件夹(含) 拷贝到 目录 dirB)
      • dirB 存在 (dirA 文件夹(不含) 拷贝到 目录 dirB)
  • mv 移动、改名


显示文件内容命令 cat / more:

  • cat 把文件内容打印到终端
  • more 浏览文件(回车浏览下一行;空格翻页;q 退出)
  • less 和 more 相似
  • head 显示文件头部的前 10 行
  • tail 显示文件尾部 10 行

软硬链接:

软连接 ln -s:

  • 可以看做 快捷方式

  • ln -s 文件名 快捷方式名 (文件名带上绝对路劲,快捷方式任何地方都可用)

  • 目录也可以创建快捷方式

硬链接 ln:

  • ln 文件名 硬链接名 (不需要带路径)


用户权限,用户,用户组 chmod / chown:

  • 目录必须要有执行权限,才可以进去
  • 查看所属用户 cat /etc/passwd
  • 查看所属于组 cat /etc/group (看到的 x 表示加密的密码)
  • chmod 修改文件或者目录的权限(同命令,在 Linux 可运行,在 Unix 不一定可以通过);含义:u、g、o、a (usr/group/other/all)
    • 默认是使用 a(all) 所有人的权限
      • eg: chmod ugo+x 20200314_205632.png (加减不同权限用逗号)
      • eg: chmod 777 20200314_205632.png (覆盖权限)
      • eg: chmod -440 20200314_205616.png (加减权限)
  • chown 修改文件所有者或所属组
    • chown 新的所有者 文件名
    • chown 新的所有者:新的组 文件名
  • chgrp 修改文件所属组(可以看做弱一点的命令)
    • chgrp 新的组 文件名

文件查找和检索 find / grep:

  • find 根据文件属性查找

    • name、type、size、ctime/mtime/atime (创建、修改、访问日期)、mindepth/maxdepth/ (最浅、深的层数)

      • eg: find ~/ -name “*.txt”
      • eg: find . -type d (七种文件类型:f,d,l,p,s,c,b)
      • eg: find . -size +4k -size -1M (4k < 文件大于 < 1M)
      • eg: find . -ctime -2 (在2天之内创建的文件)
      • eg: find . -maxdepth 2 (查找当前目录下最深为 2 层的目录)
    • 高级查找:

      • find . -type d -exec ls -l {} ; (ls -l 为具体的shell 命令,红色为固定格式 )

        # exec 也可以替换为 ok; ok还会弹出确认提示,要加上分号
        find . -type d -exec 命令 {} \;  
        find . -type d -ok 命令 {} \;  
      • find . -type d | xargs shell命令 (用管道效率比上面高)

  • grep 根据文件内容查找

    • grep -r (有文件夹) ”查找的内容“ 搜索路径 -n; (-n 显示匹配到的字符串的行数)
      • eg: grep -r “aa” ~/Desktop -n (文件夹可以没有)

压缩包的管理:

Linux 常见压缩格式 .gz / .bz2:

  • .gz –gzip 工具压压缩出来的
  • .bz2 –bzip2 工具压压缩出来的
  • 上面两个命令,只能压缩文件,很弱,一般是被间接使用

常用压缩命令 tar / rar / zip:

总结:

压缩:

tar zcvf 压缩包名 原材料 (若含文件夹,压缩则需要 -r)

rar a 压缩包名 原材料 (若含文件夹,压缩则需要 -r)

zip 压缩包名 原材料 (若含文件夹,压缩则需要 -r)

解缩:

tar zxvf 压缩包名 -C 解压路径

rar x 压缩包名 解压路径

unzip 压缩包名 -d 解压路径


  • tar –压缩解压
    • 参数:
      • c -创建压缩文件
      • x -释放压缩文件
      • v -打印提示信息(可不写)
      • f -指定压缩包的名字
      • z -使用 gzip 压缩文件 -xxx.tar.gz
      • j -使用 bzip 压缩该文件 -xxx.tar.bz2
    • 压缩:
      • tar 参数 压缩包名字 原材料
      • tar zcvf test.tar.gz A b.txt c.png d.exe
    • 解压:
      • -C -解压目录
      • tar zxvf test.tar.gz -C 解压目录

  • rar –压缩解压
    • 压缩: rar a 压缩包名(不用指定后缀) 压缩内容 (有目录则加 -r 参数)
    • 解压: rar x 压缩包名 解压目录

  • zip –压缩解压
    • 压缩: zip 参数 压缩包名 原材料
    • 解压缩: unzip 解压文件 -d 解压路径

系列地址:

https://github.com/xmuli/linuxExample

欢迎 star 和 fork 这个系列的 linux 学习,附学习由浅入深的目录。