• 初识Linux及常用指令


    初识Linux及常用指令

    Linux简介

    ​ Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    ​ 与大家熟知的 Windows 操作系统软件一样,Linux 也是一个操作系统软件,与 Windows 不同之处在于,Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件。

    Linux特点:

    大量的可用软件及免费软件

    Linux 系统上有着大量的可用软件,且绝大多数是免费的,比如声名赫赫的 Apache、Samba、PHP、MySQL 等,

    良好的可移植性及灵活注

    Linux 系统有良好的可移植性,它几乎支持所有的 CPU 平台,这使得它便于裁剪和定制。我们可以把 Linux 放在 U 盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。

    优良的稳定性和安全性

    Linux 开放源代码,将所有代码放在网上,全世界的程序员都看得到,有什么缺陷和漏洞,很快就会被发现,从而成就了它的稳定性和安全注。

    支持几乎所有的网络协议及开发语言

    Linux 支持 TCP/IP 协议,支持现现今主流的语言C 、PHP、Java、C++ 、python等

    UNIX与Linux的关系

    二者的关系,不是大哥和小弟,"UNIX 是 Linux 的父亲"这个说法更怡当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实 Linux 与 UNIX 有很多的共通之处,简单地说,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。

    二者也有两个大的区别:

    1. UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;
    2. UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。

    常见Linux发行版本有哪些?

    从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。

    Linux 的发行版本可以大体分为两类:

    商业公司维护的发行版本,以著名的 Red Hat(红帽) 为代表;产品主要包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)。

    社区组织维护的发行版本,以 Debian 为代表。产品有 Ubuntu 。

    其他的一些发型版本

    版本名称 网 址 特 点 软件包管理器
    Debian Linux www.debian.org 开放的开发模式,且易于进行软件包升级 apt
    Fedora Core www.redhat.com 拥有数量庞人的用户,优秀的社区技术支持. 并且有许多创新 up2date(rpm),yum (rpm)
    CentOS www.centos.org CentOS 是一种对 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,由于 Linux 是开发源代码的操作系统,并不排斥样基于源代码的再分发,CentOS 就是将商业的 Linux 操作系统 RHEL 进行源代码再编译后分发,并在 RHEL 的基础上修正了不少已知的漏洞 rpm
    SUSE Linux www.suse.com 专业的操作系统,易用的 YaST 软件包管理系统 YaST(rpm),第三方 apt (rpm)软件库(repository)
    Mandriva www.mandriva.com 操作界面友好,使用图形配置工具,有庞大的社区进行技术支持,支持 NTFS 分区的大小变更 rpm
    KNOPPIX www.knoppix.com 可以直接在 CD 上运行,具有优秀的硬件检测和适配能力,可作为系统的急救盘使用 apt
    Gentoo Linux www.gentoo.org 高度的可定制性,使用手册完整 portage
    Ubuntu www.ubuntu.com 优秀已用的桌面环境,基于 Debian 构建 apt

    linux的重要的二级目录

    bin:放Linux上常用的命令
    dev:放设备的目录
    etc:Linux配置文件目录
    home:普通用户会在该目录下创建属于自己的目录
    root:管理员用户家目录
    media:即插即用型的设备的挂载目录,光盘自动挂载到media目录下
    usr:放安装的应用程序
    sbin:只有管理员才能执行的命令
    var:Linux日志默认存储目录

    常用的linux指令

    命令的基本格式
    [root@localhost ~]# 命令[选项][参数]
    命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,也能执行。
    
    ls

    list,用于列举一个目录或者文件

    a:所有的:列举包含隐藏文件
    l:long list 
    ls -l = ll
    

    示例:

    不加选项和参数:

    test@1:~/UA/3.0/shell$ ls
    1  1.txt  2  test
    

    加选项不加参数

    test@1:~/UA/3.0/shell$ ls -l
    total 8
    -rw-rw-r-- 1 test test    0 Aug 18 23:53 1
    -rw-rw-r-- 1 test test   14 Aug 19 02:10 1.txt
    -rw-rw-r-- 1 test test    0 Aug 18 23:53 2
    drwxrwxr-x 3 test test 4096 Aug 18 22:59 test
    
    

    加选项和参数

    test@1:~/UA/3.0/shell$ ls -l test/
    total 4
    drwxrwxr-x 3 test test 4096 Aug 18 22:54 1
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 1.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 2.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 3.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 6.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 t.txt
    

    多个参数组合

    test@1:~/UA/3.0/shell$ ls -lah test/
    total 12K
    drwxrwxr-x 3 test test 4.0K Aug 19 02:12 .
    drwxrwxr-x 3 test test 4.0K Aug 19 02:09 ..
    drwxrwxr-x 3 test test 4.0K Aug 18 22:54 1
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 1.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 2.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 3.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 6.txt
    -rw-rw-r-- 1 test test    0 Aug 19 02:12 t.txt
    
    pwd

    Print Working Directory (打印工作目录)的缩写,功能是显示用户当前所处的工作目录

    test@1:~/UA/3.0/shell$ pwd
    /home/test/UA/3.0/shell
    
    cd

    Change Directory 的缩写,用来切换工作目录。

    命令格式:

    cd [相对路径或绝对路径]
    

    示例:

    绝对路径:绝对路径一定是由根目录 / 开始写起

    test@1:~/UA/3.0/shell$ cd /home/test/UA/3.0/shell/
    test@1:~/UA/3.0/shell$ pwd
    /home/test/UA/3.0/shell
    test@1:~/UA/3.0/shell$
    

    相对路径:相对路径是相对于当前所在目录而言的

    test@1:~/UA/3.0/shell$ cd test/
    test@1:~/UA/3.0/shell/test$ pwd
    /home/test/UA/3.0/shell/test
    

    cd 命令后面可以跟一些特殊符号

    ~: 代表当前登录用户的主目录

    ~用户名:表示切换至指定用户的主目录

    -:代表上次所在目录

    ..:代表上级目录

    . :代表当前目录

    test@1:~/UA/3.0/shell/test$ pwd
    /home/test/UA/3.0/shell/test
    test@1:~/UA/3.0/shell/test$ cd ../
    test@1:~/UA/3.0/shell$ pwd
    /home/test/UA/3.0/shell
    test@1:~/UA/3.0/shell$ cd ./test/
    test@1:~/UA/3.0/shell/test$ cd ../../
    test@1:~/UA/3.0$ ls
    
    mkdir

    make directories 的缩写,用于创建新目录

    mkdir [-mp] 目录名
    

    -m 选项用于手动配置所创建目录的权限,而不再使用默认权限。

    -p 选项递归创建所有目录

    示例:

    test@1:~/UA/3.0/shell$ ls
    test@1:~/UA/3.0/shell$ mkdir test
    test@1:~/UA/3.0/shell$ ls 
    test
    test@1:~/UA/3.0/shell$ mkdir -m 722 test1
    test@1:~/UA/3.0/shell$ ls -l
    total 8
    drwxrwxr-x 2 test test 4096 Aug 19 02:21 test
    drwx-w--w- 2 test test 4096 Aug 19 02:21 test1
    test@1:~/UA/3.0/shell$ mkdir -p A/B/C
    test@1:~/UA/3.0/shell$ ls -l A/B/C/
    total 0
    test@1:~/UA/3.0/shell$ ls -l A/B/
    total 4
    drwxrwxr-x 2 test test 4096 Aug 19 02:21 C
    test@1:~/UA/3.0/shell$
    
    rmdir

    和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录

     rmdir [-p] 目录名
    

    示例:

    test@1:~/UA/3.0/shell$ mkdir -p A/B/C
    test@1:~/UA/3.0/shell$ ls
    A
    test@1:~/UA/3.0/shell$ rmdir -p A/B/C/
    test@1:~/UA/3.0/shell$ ls
    test@1:~/UA/3.0/shell$
    
    touch

    创建文件

     touch [选项] 文件名
    

    示例:

    test@1:~/UA/3.0/shell$ touch 1.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt
    test@1:~/UA/3.0/shell$ touch {1,2,3}.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt
    
    ln

    命令用于给文件创建链接

    软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。

    硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。

    ln [选项] 源文件 目标文件
    

    -s:建立软链接文件。如果不加 "-s" 选项,则建立硬链接文件;

    -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件;

    示例:

    硬链接,相当于复制

    test@1:~/UA/3.0/shell$ touch 1.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt
    test@1:~/UA/3.0/shell$ ln 1.txt 2.txt
    test@1:~/UA/3.0/shell$ ls 
    1.txt  2.txt
    test@1:~/UA/3.0/shell$ sha1sum 1.txt 2.txt 
    da39a3ee5e6b4b0d3255bfef95601890afd80709  1.txt
    da39a3ee5e6b4b0d3255bfef95601890afd80709  2.txt
    

    软链接,相当于创建快捷方式

    test@1:~/UA/3.0/shell$ ln -s ../img/ img
    test@1:~/UA/3.0/shell$ ls -l
    total 0
    -rw-rw-r-- 2 test test 0 Aug 19 02:28 1.txt
    -rw-rw-r-- 2 test test 0 Aug 19 02:28 2.txt
    lrwxrwxrwx 1 test test 7 Aug 19 02:30 img -> ../img/
    
    cp

    用来复制文件和目录

    cp [选项] 源文件 目标文件
    
    -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
    -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
    -i:询问,如果目标文件已经存在,则会询问是否覆盖;
    -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
    -r:递归复制,用于复制目录;
    -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用
    

    示例:

    基本使用

    test@1:~/UA/3.0/shell$ touch test
    test@1:~/UA/3.0/shell$ cp test ^C
    test@1:~/UA/3.0/shell$ touch test
    test@1:~/UA/3.0/shell$ mkdir 1
    test@1:~/UA/3.0/shell$ ls
    1  test
    test@1:~/UA/3.0/shell$ cp test 1/
    test@1:~/UA/3.0/shell$ ls -l 1/
    total 0
    -rw-rw-r-- 1 test test 0 Aug 19 02:32 test
    

    改名复制(复制后的路径后加自己想改的名字)

    test@1:~/UA/3.0/shell$ cp test 1/test1
    test@1:~/UA/3.0/shell$ ls -l 1/
    total 0
    -rw-rw-r-- 1 test test 0 Aug 19 02:32 test
    -rw-rw-r-- 1 test test 0 Aug 19 02:35 test1
    
    rm

    强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。

    rm[选项] 文件或目录
    
    -f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
    -i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
    -r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。
    
    test@1:~/UA/3.0/shell$ ls
    1  test
    test@1:~/UA/3.0/shell$ rm 1/
    rm: cannot remove '1/': Is a directory
    test@1:~/UA/3.0/shell$ rm -r 1
    test@1:~/UA/3.0/shell$ ls
    test
    test@1:~/UA/3.0/shell$ touch 1.txt
    test@1:~/UA/3.0/shell$ mkdir -p a/B/C
    test@1:~/UA/3.0/shell$ touch a/B/C/2.txt
    test@1:~/UA/3.0/shell$ rm -r a
    test@1:~/UA/3.0/shell$ ls
    1.txt  test
    test@1:~/UA/3.0/shell$ rm -r test
    test@1:~/UA/3.0/shell$ ls
    1.txt
    test@1:~/UA/3.0/shell$
    

    使用正则匹配要删除的文件

    test@1:~/UA/3.0/shell$ touch {1,3,4,5,f,w2,hfh,sda}.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  3.txt  4.txt  5.txt  f.txt  hfh.txt  sda.txt  w2.txt
    test@1:~/UA/3.0/shell$ rm -rf *.txt
    test@1:~/UA/3.0/shell$ ls
    test@1:~/UA/3.0/shell$
    
    mv

    move 的缩写,既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。

     mv 【选项】 源文件 目标文件
    
    -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
    -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
    -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
    -v:显示文件或目录的移动过程;
    -u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级;
    

    同 rm 命令类似,mv 命令也是一个具有破坏性的命令

    示例:

    常规移动

    test@1:~/UA/3.0/shell$ ls
    test@1:~/UA/3.0/shell$ touch 1
    test@1:~/UA/3.0/shell$ mkdir 2
    test@1:~/UA/3.0/shell$ ls
    1  2
    test@1:~/UA/3.0/shell$ mv 1 2/
    test@1:~/UA/3.0/shell$ ls
    2
    

    移动并重命名

    test@1:~/UA/3.0/shell$ touch 3
    test@1:~/UA/3.0/shell$ mv 3 2/4
    test@1:~/UA/3.0/shell$ ^C
    test@1:~/UA/3.0/shell$ ls 2/
    1  4
    test@1:~/UA/3.0/shell$
    
    clear

    用于清屏 快捷键:Ctrl+l

    history

    用于查看自己运行过的命令

    test@1:~/UA/3.0/shell$ history 
     1180  ls
     1181  cd 1/
     1182  cd META-INF/com/
     1183  ls
     1184  sz updater-script
     1185  cd ../../../tmp/
     1186  cd META-INF/com/
     1187  ls
     1188  sz updater-script
     1189  ls
     1190  sudo vim updater-script
     1191  cd ../../
     1192  zip -ry ../test.zip *
     1193  sudo zip -ry ../test.zip *
     1194  cd ../
     1195  sudo python3 ua1.py 
     1196  vim xml/rawinst.xml
    
    man

    取的是manual手册的意思,可以详细的列出指令的所有参数和使用方法

    man ls
    LS(1)                                                                                User Commands                                                                                LS(1)
    
    NAME
           ls - list directory contents
    
    SYNOPSIS
           ls [OPTION]... [FILE]...
    
    DESCRIPTION
           List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
    
           Mandatory arguments to long options are mandatory for short options too.
    
           -a, --all
                  do not ignore entries starting with .
    
           -A, --almost-all
                  do not list implied . and ..
    
    
    "> ,>>"

    重定向

    ">" 覆盖里面的内容

    test@1:~/UA/3.0/shell$ echo "321312231" > 1.txt
    test@1:~/UA/3.0/shell$ cat 1.txt 
    321312231
    test@1:~/UA/3.0/shell$ echo "311111" > 1.txt
    test@1:~/UA/3.0/shell$ cat 1.txt 
    311111
    

    ">>" 追加 在之前的内容之后

    test@1:~/UA/3.0/shell$ echo "dsasadsad" >> 1.txt
    test@1:~/UA/3.0/shell$ cat 1.txt 
    311111
    dsasadsad
    test@1:~/UA/3.0/shell$ 
    

    压缩和解压

    tar

    命令做打包解包操作

    tar [选项] 源文件或目录
    
    -c 将多个文件或目录进行打包。
    -A 追加 tar 文件到归档文件。
    -f 包名 指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
    -v 显示打包文件过程;
    -x 对 tar 包做解打包操作
    -C 指定解打包位置。 
    -z 压缩和解压缩 ".tar.gz" 格式;
    -j 压缩和解压缩 ".tar.bz2"格式。
    

    在使用 tar 命令指定选项时可以不在选项前面输入“-”。例如,使用“cvf”选项和 “-cvf”起到的作用一样

    *.tar格式

    打包

    多个文件逐一列出,使用-

    test@1:~/UA/3.0/shell$ touch {1,2,3}.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt
    test@1:~/UA/3.0/shell$ tar -cvf test.tar 1.txt 2.txt 3.txt 
    1.txt
    2.txt
    3.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test.tar
    test@1:~/UA/3.0/shell$
    

    多个文件逐一列出,不使用-

    test@1:~/UA/3.0/shell$ tar cvf test1.tar 1.txt 2.txt 3.txt 
    1.txt
    2.txt
    3.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test1.tar  test.tar
    

    *代表通配符所有文件

    test@1:~/UA/3.0/shell$ tar cvf test2.tar *.txt
    1.txt
    2.txt
    3.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test1.tar  test2.tar  test.tar
    test@1:~/UA/3.0/shell$
    

    解压

    test@1:~/UA/3.0/shell$ mkdir test1
    test@1:~/UA/3.0/shell$ tar xvf test1.tar -C test1/
    1.txt
    2.txt
    3.txt
    test@1:~/UA/3.0/shell$ ls -l test1
    total 4
    -rw-rw-r-- 1 test test 17 Aug 19 03:27 1.txt
    -rw-rw-r-- 1 test test  0 Aug 19 03:27 2.txt
    -rw-rw-r-- 1 test test  0 Aug 19 03:27 3.txt
    test@1:~/UA/3.0/shell$
    

    *.tar.gz

    打包

    第一种方法:

    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt
    test@1:~/UA/3.0/shell$ tar cvf test.tar *
    1.txt
    2.txt
    3.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test.tar
    test@1:~/UA/3.0/shell$ gzip test.tar 
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test.tar.gz
    test@1:~/UA/3.0/shell$
    

    第二种方法:

    test@1:~/UA/3.0/shell$ tar zcvf test1.tar.gz 1.txt 2.txt 3.txt 
    1.txt
    2.txt
    3.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test1.tar.gz  test.tar.gz
    test@1:~/UA/3.0/shell$
    

    解压

    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test1.tar.gz  test.tar.gz
    test@1:~/UA/3.0/shell$ mkdir test
    test@1:~/UA/3.0/shell$ tar -zxvf test.tar.gz -C test/
    1.txt
    2.txt
    3.txt
    test@1:~/UA/3.0/shell$ ls -l test
    total 12
    -rw-rw-r-- 1 test test 10240 Aug 19 03:31 1.txt
    -rw-rw-r-- 1 test test     0 Aug 19 03:27 2.txt
    -rw-rw-r-- 1 test test     0 Aug 19 03:27 3.txt
    test@1:~/UA/3.0/shell$
    

    *.tar.bz2

    打包

    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test
    test@1:~/UA/3.0/shell$ tar -jcvf test2.tar.bz2 *
    1.txt
    2.txt
    3.txt
    test/
    test/2.txt
    test/3.txt
    test/1.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test  test2.tar.bz2
    
    

    解压

    test@1:~/UA/3.0/shell$ mkdir test2
    test@1:~/UA/3.0/shell$ tar jxvf test2.tar.bz2 -C test2/
    1.txt
    2.txt
    3.txt
    test/
    test/2.txt
    test/3.txt
    test/1.txt
    test@1:~/UA/3.0/shell$ ls -l test2
    total 16
    -rw-rw-r-- 1 test test 10240 Aug 19 03:31 1.txt
    -rw-rw-r-- 1 test test     0 Aug 19 03:27 2.txt
    -rw-rw-r-- 1 test test     0 Aug 19 03:27 3.txt
    drwxrwxr-x 2 test test  4096 Aug 19 03:34 test
    test@1:~/UA/3.0/shell$
    
    zip

    zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩时使用。

    zip [选项] 压缩包名 源文件或源目录列表
    
    -r 递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。
    -m 将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。
    -v 显示详细的压缩过程信息。
    -q 在压缩的时候不显示命令的执行过程。
    -压缩级别 压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。 
    -u 更新压缩文件,即往压缩文件中添加新文件。
    -y 压缩软硬链接
    

    示例:

    压缩

    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt
    test@1:~/UA/3.0/shell$ zip test.zip *
      adding: 1.txt (deflated 99%)
      adding: 2.txt (stored 0%)
      adding: 3.txt (stored 0%)
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test.zip
    test@1:~/UA/3.0/shell$ mkdir test
    

    -r 递归

    test@1:~/UA/3.0/shell$ zip -r test1.zip *
      adding: 1.txt (deflated 99%)
      adding: 2.txt (stored 0%)
      adding: 3.txt (stored 0%)
      adding: test/ (stored 0%)
      adding: test/2.txt (stored 0%)
      adding: test/3.txt (stored 0%)
      adding: test/1.txt (deflated 99%)
      adding: test.zip (stored 0%)
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt  test  test1.zip  test.zip
    test@1:~/UA/3.0/shell$
    
    unzip
    -d 目录名 将压缩文件解压到指定目录下。
    -n 解压时并不覆盖已经存在的文件。
    -o 解压时覆盖已经存在的文件,并且无需用户确认。
    -v 查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。
    -t 测试压缩文件有无损坏,但并不解压。
    -x 文件列表 解压文件,但不包含文件列表中指定的文件。
    

    解压

    test@1:~/UA/3.0/shell$ unzip test.zip -d test
    Archive:  test.zip
      inflating: test/1.txt              
     extracting: test/2.txt              
     extracting: test/3.txt              
    test@1:~/UA/3.0/shell$ ls -l test
    total 12
    -rw-rw-r-- 1 test test 10240 Aug 19 03:31 1.txt
    -rw-rw-r-- 1 test test     0 Aug 19 03:27 2.txt
    -rw-rw-r-- 1 test test     0 Aug 19 03:27 3.txt
    test@1:~/UA/3.0/shell$
    
    gzip

    gzip 命令只能用来压缩文件,不能压缩目录

    gzip [选项] 源文件
    
    -c 将压缩数据输出到标准输出中,并保留源文件。
    -d 对压缩文件进行解压缩。 
    -r 递归压缩指定目录下以及子目录下的所有文件。 
    -v 对于每个压缩和解压缩的文件,显示相应的文件名和压缩比。
    -数字 用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6。 
    

    进本使用,压缩是会将源文件删除

    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt
    test@1:~/UA/3.0/shell$ gzip 1.txt 
    test@1:~/UA/3.0/shell$ ls
    1.txt.gz  2.txt  3.txt
    

    保留源文件

    test@1:~/UA/3.0/shell$ ls
    1.txt.gz  2.txt  3.txt
    test@1:~/UA/3.0/shell$ gzip -c 2.txt > 2.txt.gz
    test@1:~/UA/3.0/shell$ ls
    1.txt.gz  2.txt  2.txt.gz  3.txt
    test@1:~/UA/3.0/shell$
    
    gunzip

    一个使用广泛的解压缩命令,它用于解压被 gzip 压缩过的文件

    gunzip [选项] 文件
    
    -r 递归处理,解压缩指定目录下以及子目录下的所有文件。
    -c 把解压缩后的文件输出到标准输出设备。
    -f 强制解压缩文件,不理会文件是否已存在等情况。 
    -l 列出压缩文件内容。 
    -v 显示命令执行过程。 
    -t 测试压缩文件是否正常,但不对其做解压缩操作。
    

    普通解压

    test@1:~/UA/3.0/shell$ ls
    1.txt.gz  2.txt  2.txt.gz  3.txt
    test@1:~/UA/3.0/shell$ gunzip 1.txt.gz 
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  2.txt.gz  3.txt
    test@1:~/UA/3.0/shell$
    

    解压缩目录下的压缩包(-r)

    test@1:~/UA/3.0/shell$ ls -l test/
    total 12
    -rw-rw-r-- 1 test test 125 Aug 19 03:31 1.txt.gz
    -rw-rw-r-- 1 test test  26 Aug 19 03:27 2.txt.gz
    -rw-rw-r-- 1 test test  26 Aug 19 03:27 3.txt.gz
    test@1:~/UA/3.0/shell$ gunzip -r test/
    test@1:~/UA/3.0/shell$ ls test/
    1.txt  2.txt  3.txt
    test@1:~/UA/3.0/shell$
    
    bzip2

    同 gzip 命令类似,只能对文件进行压缩(或解压缩),对于目录只能压缩(或解压缩)该目录及子目录下的所有文件

    bzip2 [选项] 源文件 #源文件指的要压缩或解压缩的文件
    
    -d 执行解压缩,此时该选项后的源文件应为标记有 .bz2 后缀的压缩包文件。
    -k bzip2 在压缩或解压缩任务完成后,会删除原始文件,若要保留原始文件,可使用此选项。
    -f bzip2 在压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件,若使用此选项,则会强制覆盖现有文件。
    -t 测试压缩包文件的完整性。 
    -v 压缩或解压缩文件时,显示详细信息。
    -数字 这个参数和 gzip 命令的作用一样,用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高
    
    test@1:~/UA/3.0/shell$ touch {1,2,3}.txt
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt
    test@1:~/UA/3.0/shell$ bzip2 1.txt 2.txt 3.txt 
    test@1:~/UA/3.0/shell$ ls
    1.txt.bz2  2.txt.bz2  3.txt.bz2
    test@1:~/UA/3.0/shell$
    
    bunzip2

    使用和 gunzip 命令大致相同,bunzip2 命令只能用于解压文件

    bunzip2 [选项] 源文件
    
    -k 解压缩后,默认会删除原来的压缩文件。若要保留压缩文件,需使用此参数。
    -f 解压缩时,若输出的文件与现有文件同名时,默认不会覆盖现有的文件。若要覆盖,可使用此选项。
    -v 显示命令执行过程。
    -L 列出压缩文件内容。
    

    ".bz2" 格式也可以使用 "bzip2 -d 压缩包" 命令来进行解压缩

    test@1:~/UA/3.0/shell$ ls
    1.txt.bz2  2.txt.bz2  3.txt.bz2
    test@1:~/UA/3.0/shell$ bunzip2 1.txt.bz2 
    test@1:~/UA/3.0/shell$ bzip2 -d 2.txt.bz2 
    test@1:~/UA/3.0/shell$ ls
    1.txt  2.txt  3.txt.bz2
    test@1:~/UA/3.0/shell$
    

    查看相关指令

    cat

    可以用来显示文本文件的内容,适合查看小文件

    cat [选项] 文件名
    
    -A 相当于 -vET 选项的整合,用于列出所有隐藏符号;
    -E 列出每行结尾的回车符 $; 
    -n 对输出的所有行进行编号;
    -b 同 -n 不同,此选项表示只对非空行进行编号。
    -T 把 Tab 键 ^I 显示出来;
    -V 列出特殊字符;
    -s 当遇到有连续 2 行以上的空白行时,就替换为 1 行的空白行。
    

    cat 命令本身非常简单,我们可以直接查看文件的内容

    test@1:~/UA/3.0/shell$ touch 1.txt
    test@1:~/UA/3.0/shell$ echo "2131223213123" > 1.txt
    test@1:~/UA/3.0/shell$ cat 1.txt 
    2131223213123
    

    使用 "-n" 选项,则会显示行号

    test@1:~/UA/3.0/shell$ echo "2131223213123" > 1.txt
    test@1:~/UA/3.0/shell$ 
    test@1:~/UA/3.0/shell$ ls
    1.txt
    test@1:~/UA/3.0/shell$ cat -n 1.txt 
         1	2131223213123
    test@1:~/UA/3.0/shell$
    

    将文件 file1.txt 和 file.txt 的内容合并后输出到文件 file3.txt 中

    test@1:~/UA/3.0/shell$ echo "212321" > file.txt
    test@1:~/UA/3.0/shell$ echo "wdasda" > file1.txt
    test@1:~/UA/3.0/shell$ cat file.txt file1.txt > file3.txt
    test@1:~/UA/3.0/shell$ cat file3.txt 
    212321
    wdasda
    test@1:~/UA/3.0/shell$
    
    more

    命令可以分页显示文本文件的内容,适合查看大文件

    more [选项] 文件名
    
    -f 计算行数时,以实际的行数,而不是自动换行过后的行数。
    -p 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容。
    -c 跟 -p 选项相似,不同的是先显示内容再清除其他旧资料。
    -s 当遇到有连续两行以上的空白行时,就替换为一行的空白行。 
    -u 不显示下引号(根据环境变量 TERM 指定的终端而有所不同)。 
    +n 从第 n 行开始显示文件内容,n 代表数字。
    -n 一次显示的行数,n 代表数字。
    

    more 命令的执行会打开一个交互界面

    h 或 ? 显示 more 命令交互命令帮助。
    q 或 Q 退出 more。
    回车键 向下移动一行。
    空格键 向下移动一页。
    = 显示当前行的行号。 
    d 向下移动半页。
    b 向上移动一页。
    

    示例:

    常规使用

    test@1:~/UA/3.0/shell$ more ua.py
    

    每 10 行显示一屏,同时清楚屏幕

    more -c -10 ua.py
    

    显示指定文件前若干行的文件内容

    head [选项] 文件名
    
    -n K 这里的 K 表示行数,该选项用来显示文件前 K 行的内容;如果使用 "-K" 作为参数,则表示除了文件最后 K 行外,显示剩余的全部内容。
    -v 显示文件名;
    

    常规使用

    head ua.py #默认显示前10行
    

    显示开头指定多少行

    head -n 15 ua.py #第一种
    head -15 ua.py  #第二种
    
    tail

    和 head 命令正好相反,它用来查看文件末尾的数据

     tail [选项] 文件名
    
    -n K 这里的 K 指的是行数,该选项表示输出最后 K 行,在此基础上,如果使用 -n +K,则表示从文件的第 K 行开始输出。
    -f 输出文件变化后新增加的数据。
    

    常规使用 默认显示后10行

    tail ua.py
    

    指定显示行数

    tail -n 5 ua.py
    

    tail 命令有一种比较有趣的用法,可以使用 "-f" 选项来监听文件的新増内容

    test@1:~/UA/3.0/shell$ tail -f 1.txt 
    2131223213123
    
    

    追加

    test@1:~/UA/3.0/shell$ echo "2eqwewqewqeq" >> 1.txt 
    test@1:~/UA/3.0/shell$ echo "2eqwewqewqeq" >> 1.txt 
    test@1:~/UA/3.0/shell$ echo "2eqwewqewqeq" >> 1.txt 
    test@1:~/UA/3.0/shell$ echo "2eqwewqewqe1q" >> 1.txt
    

    此时-f 显示 #光标不会退出文件,而会一直监听在文件的结尾处

    test@1:~/UA/3.0/shell$ tail -f 1.txt 
    2131223213123
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqe1q
    
    grep

    grep 命令是用来在每一个文件或中(或特定输出上)搜索特定的模式

    grep [选项] 模式 文件名
    

    通配符

    .  将匹配任何一个字符,且只能是一个字符。
    [xyz] 匹配方括号中的任意一个字符。
    [^xyz] 匹配除方括号中字符外的所有字符。
    ^ 锁定行的开头。 
    $ 锁定行的结尾。
    

    选项

    -c 仅列出文件中包含模式的行数。
    -i 忽略模式中的字母大小写。
    -l 列出带有匹配行的文件名。 
    -n 在每一行的最前面列出行号。
    -v 列出没有匹配模式的行。
    

    常规使用

    test@1:~/UA/3.0/shell$ grep 1 *
    1.txt:2131223213123
    1.txt:2eqwewqewqe1q
    file3.txt:212321
    file.txt:212321
    test@1:~/UA/3.0/shell$ grep 1 1.txt 
    2131223213123
    2eqwewqewqe1q
    

    多个条件

    test@1:~/UA/3.0/shell$ grep -e "1" -e "2" 1.txt 
    2131223213123
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqe1q
    
    test@1:~/UA/3.0/shell$ grep [1,2,e]  1.txt 
    2131223213123
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqe1q
    test@1:~/UA/3.0/shell$
    

    不区分大小写

    test@1:~/UA/3.0/shell$ grep -i E 1.txt 
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqe1q
    

    打印行号

    test@1:~/UA/3.0/shell$ grep -i E -n 1.txt 
    2:2eqwewqewqeq
    3:2eqwewqewqeq
    4:2eqwewqewqeq
    5:2eqwewqewqe1q
    

    不包含的行号

    test@1:~/UA/3.0/shell$ cat 1.txt 
    2131223213123
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqe1q
    test@1:~/UA/3.0/shell$ grep -v e  1.txt 
    2131223213123
    test@1:~/UA/3.0/shell$
    

    匹配行首

    test@1:~/UA/3.0/shell$ cat 1.txt 
    2131223213123
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqe1q
    test@1:~/UA/3.0/shell$ grep ^21  1.txt 
    2131223213123
    test@1:~/UA/3.0/shell$
    

    匹配行尾

    test@1:~/UA/3.0/shell$ cat 1.txt 
    2131223213123
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqeq
    2eqwewqewqe1q
    test@1:~/UA/3.0/shell$ grep 1q$  1.txt 
    2eqwewqewqe1q
    test@1:~/UA/3.0/shell$
    
    passwd
    passwd [选项] 用户名
    
    [root@localhost ~]#passwd
    #passwd直接回车代表修改当前用户的密码
    Changing password for user vbird2.
    Changing password for vbird2
    (current) UNIX password: <==这里输入『原有的旧口令』
    New password: <==这里输入新口令
    BAD PASSWORD: it is WAY too short <==口令检验不通过,请再想个新口令
    New password: <==这里再想个来输入吧
    Retype new password: <==通过口令验证!所以重复这个口令的输入
    passwd: all authentication tokens updated successfully. <==成功修改用户密码
    
    chgrp

    用于修改文件(或目录)的所属组。

    chgrp [-R] 所属组 文件名(目录名)
    

    修改文件所属的组为root

    test@1:~/UA/3.0/shell$ touch 1.txt
    test@1:~/UA/3.0/shell$ ls -l 
    total 0
    -rw-rw-r-- 1 test test 0 Aug 19 04:54 1.txt
    test@1:~/UA/3.0/shell$ sudo chgrp root  1.txt 
    test@1:~/UA/3.0/shell$ ls -l 1.txt 
    -rw-rw-r-- 1 test root 0 Aug 19 04:54 1.txt
    test@1:~/UA/3.0/shell$
    
    chown

    用于修改文件(或目录)的所有者

    chown [-R] 所有者 文件或目录
    
    root@localhost ~]# sudo touch file
    #由root用户创建file文件
    [root@localhost ~]# ll file
    -rw-r--r--. 1 root root 0 Apr 17 05:12 file
    #文件的所有者是root,普通用户test对这个文件拥有只读权限
    [root@localhost ~]# chown test file
    #修改文件的所有者
    [root@localhost ~]# ll file
    -rw-r--r--. 1 test root 0 Apr 17 05:12 file
    #所有者变成了test用户,这时test用户对这个文件就拥有了读、写权限
    
    chmod

    通过 chmod 命令即可。chmod 命令设定文件权限的方式有 2 种,分别可以使用数字或者符号来进行权限的变更

    Linux 系统中,文件的基本权限由 9 个字符组成,以 rwxrw-r-x 为例,我们可以使用数字来代表各个权限,各个权限与数字的对应关系如下:

    r --> 4
    w --> 2
    x --> 1

    由于这 9 个字符分属 3 类用户,因此每种用户身份包含 3 个权限(r、w、x),通过将 3 个权限对应的数字累加,最终得到的值即可作为每种用户所具有的权限。

    拿 rwxrw-r-x 来说,所有者、所属组和其他人分别对应的权限值为:

    所有者 = rwx = 4+2+1 = 7
    所属组 = rw- = 4+2 = 6
    其他人 = r-x = 4+1 = 5

    所以,此权限对应的权限值就是 765。

    chmod [-R] 权限值 文件名
    

    示例

    数字的形式修改权限

    test@1:~/UA/3.0/shell$ touch 1
    test@1:~/UA/3.0/shell$ ls -l 
    total 0
    -rw-rw-r-- 1 test test 0 Aug 19 05:42 1
    test@1:~/UA/3.0/shell$ chmod 777 1 
    test@1:~/UA/3.0/shell$ ls -l 1 
    -rwxrwxrwx 1 test test 0 Aug 19 05:42 1
    

    使用字母修改文件权限

    基本权限就是 3 种用户身份(所有者、所属组和其他人)搭配 3 种权限(rwx),chmod 命令中用 u、g、o 分别代表 3 种身份,还用 a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使用 r、w、x 分别表示读、写、执行权限。

    如果我们要设定 test 文件的权限为 rwxr-xr-x,则可执行如下命令:

    test@1:~/UA/3.0/shell$ chmod u=rwx,go=rx test
    test@1:~/UA/3.0/shell$ ls -l 1 
    -rwxr-xr-x 1 test test 0 Aug 19 05:42 test
    test@1:~/UA/3.0/shell$
    

    要增加 test 文件的每种用户都可做写操作的权限

    test@1:~/UA/3.0/shell$ ls -l test 
    ---x--x--x 1 test test 0 Aug 19 05:42 test
    test@1:~/UA/3.0/shell$ chmod a+w test 
    test@1:~/UA/3.0/shell$ ls -l test 
    --wx-wx-wx 1 test test 0 Aug 19 05:42 test
    test@1:~/UA/3.0/shell$
    
    su、sudo、su - root

    su和sudo的区别

    共同点:都是root用户权限;
    不同点:su只获得root权限,工作环境不变,还是在切换之前用户的工作环境;sudo是完全获得root的权限和root的工作环境。
    sudo:表示获取临时的root权限执行命令。
    sudo执行命令的流程:

    1、当前用户切换到root(或其他指定切换到的用户), 2、以root(或其他指定的切换到的用户)身份执行命令, 3、执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。

    su - root和su root区别

    su - root:以root身份登录
    su root:与root建立一个连接,通过root执行命令。
    最直接的区别是su目录还是原先用户目录,su - root后目录就变为root用户的主目录。

    df

    用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。

    df [选项] [目录或文件名]
    
    -a 显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统;
    -m 以 MB 为单位显示容量;
    -k 以 KB 为单位显示容量,默认以 KB 为单位;
    -h 使用人们习惯的 KB、MB 或 GB 等单位自行显示容量;
    -T 显示该分区的文件系统名称;
    -i 不用硬盘容量显示,而是以含有 inode 的数量来显示。
    

    默认情况 (kb 单位)

    test@1:~/UA/3.0/shell$ df
    Filesystem     1K-blocks     Used Available Use% Mounted on
    udev             4004004        0   4004004   0% /dev
    tmpfs             806904     9516    797388   2% /run
    /dev/sda2      479089456 31510584 423219448   7% /
    tmpfs            4034516      264   4034252   1% /dev/shm
    tmpfs               5120        4      5116   1% /run/lock
    tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
    /dev/sda1         523248     3760    519488   1% /boot/efi
    tmpfs             806904       48    806856   1% /run/user/1000
    
    

    本例中,由 df 命令显示出的各列信息的含义分别是:

    • Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
    • 1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
    • Used:表示用掉的硬盘空间大小;
    • Available:表示剩余的硬盘空间大小;
    • Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
    • Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
    du

    统计目录或文件所占磁盘空间大小的命令。

    du [选项] [目录或文件名]
    
    -a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
    -h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
    -s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
    

    常规使用

    统计当前目录的总磁盘占用量大小,同时会统计当前目录下所有子目录的磁盘占用量大小,不统计子文件
    磁盘占用量的大小。默认单位为KB

    test@1:~/UA/3.0/shell$ du
    194084	./img
    194088	.
    

    另外2种

    test@1:~/UA/3.0/shell$ du -s
    194088	.
    test@1:~/UA/3.0/shell$ du -sh
    190M	.
    test@1:~/UA/3.0/shell$ 
    
    mount

    挂载,挂载指的是将硬件设备的文件系统和 Linux 系统中的文件系统

    mount -l 会显示出系统中已挂载的设备信息,使用 -l 选项,会额外显示出卷标名称

    test@1:~/UA/3.0/shell$ mount -l
    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
    proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
    udev on /dev type devtmpfs (rw,nosuid,relatime,size=4004004k,nr_inodes=1001001,mode=755)
    devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
    tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=806904k,mode=755)
    /dev/sda2 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
    securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
    tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
    tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
    cgroup on /sys/fs/cgroup/systemd type cgroup 
    
    
    mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
    
    -t 系统类型:指定欲挂载的文件系统类型。
    -L 卷标名:除了使用设备文件名(例如 /dev/hdc6)之外,还可以利用文件系统的卷标名称进行挂载。
    -n:在默认情况下,系统会将实际挂载的情况实时写入 /etc/mtab 文件中,但在某些场景下(例如单人维护模式),为了避免出现问题,会刻意不写入,此时就需要使用这个选项;
    -o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则使用默认值(defaults)
    
    rw/ro	是否对挂载的文件系统拥有读写权限,rw 为默认值,表示拥有读写权限;ro 表示只读权限。
    async/sync	此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步 async。
    dev/nodev	是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默认是 nodev。
    auto/noauto	是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto。
    suid/nosuid	设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有。
    exec/noexec	设定在文件系统中是否允许执行可执行文件,默认是允许。
    user/nouser	设定此文件系统是否允许让普通用户使用 mount 执行实现挂载,默认是不允许(nouser),仅有 root 可以。
    defaults	定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。
    remount	重新挂载已挂载的文件系统,一般用于指定修改特殊权限。
    

    示例:

    test@1:~/UAWORK/file/source/_temp_$ mkdir system
    test@1:~/UAWORK/file/source/_temp_$ mount -o loop -t ext4 my_sparse.img system/
    mount: only root can use "--options" option
    test@1:~/UAWORK/file/source/_temp_$ sudo mount -o loop -t ext4 my_sparse.img system/
    [sudo] password for test: 
    test@1:~/UAWORK/file/source/_temp_$ df
    Filesystem     1K-blocks     Used Available Use% Mounted on
    udev             4004004        0   4004004   0% /dev
    tmpfs             806904     9516    797388   2% /run
    /dev/sda2      479089456 31704684 423025348   7% /
    tmpfs            4034516      264   4034252   1% /dev/shm
    tmpfs               5120        4      5116   1% /run/lock
    tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
    /dev/sda1         523248     3760    519488   1% /boot/efi
    tmpfs             806904       52    806852   1% /run/user/1000
    /dev/loop0       5078656  1503364   3558908  30% /home/test/UAWORK/file/source/_temp_/system
    
    umount

    用于卸载已经挂载的硬件设备

    umount 设备文件名或挂载点
    
    test@1:~/UAWORK/file/source/_temp_$ df
    Filesystem     1K-blocks     Used Available Use% Mounted on
    udev             4004004        0   4004004   0% /dev
    tmpfs             806904     9516    797388   2% /run
    /dev/sda2      479089456 31704684 423025348   7% /
    tmpfs            4034516      264   4034252   1% /dev/shm
    tmpfs               5120        4      5116   1% /run/lock
    tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
    /dev/sda1         523248     3760    519488   1% /boot/efi
    tmpfs             806904       52    806852   1% /run/user/1000
    /dev/loop0       5078656  1503364   3558908  30% /home/test/UAWORK/file/source/_temp_/system
    test@1:~/UAWORK/file/source/_temp_$ sudo umount system/
    test@1:~/UAWORK/file/source/_temp_$ df
    Filesystem     1K-blocks     Used Available Use% Mounted on
    udev             4004004        0   4004004   0% /dev
    tmpfs             806904     9516    797388   2% /run
    /dev/sda2      479089456 31704708 423025324   7% /
    tmpfs            4034516      264   4034252   1% /dev/shm
    tmpfs               5120        4      5116   1% /run/lock
    tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
    /dev/sda1         523248     3760    519488   1% /boot/efi
    tmpfs             806904       52    806852   1% /run/user/1000
    
    md5sum

    md5校验

    test@1:~/UA/3.0/shell$ md5sum img/xaa 
    6b1a340fd2dc81aba3192db5e9b6477e  img/xaa
    test@1:~/UA/3.0/shell$ cp img/xaa img/aaaaa
    test@1:~/UA/3.0/shell$ md5sum img/aaaaa 
    6b1a340fd2dc81aba3192db5e9b6477e  img/aaaaa
    test@1:~/UA/3.0/shell$
    
    sha1sum

    sha1校验

    test@1:~/UA/3.0/shell$ sha1sum img/xaa 
    39f420fabcf83c60c36b4a133e43ce423fb8afb4  img/xaa
    test@1:~/UA/3.0/shell$ cp img/xaa img/aaaaa 
    test@1:~/UA/3.0/shell$ sha1sum img/aaaaa 
    39f420fabcf83c60c36b4a133e43ce423fb8afb4  img/aaaaa
    test@1:~/UA/3.0/shell$
    

    作者:我是刘先生
    地址:https://www.cnblogs.com/cekaigongchengshi/
    文章转载请标明出处,如果,您认为阅读这篇博客让您有些收获,不妨点击一下推荐按钮,据说喜欢分享的,后来都成了大神

    欢迎扫码关注微信公众号
  • 相关阅读:
    Chrome使用指南
    Vue2.x-踩坑记
    C# WinForm listView 多行删除 操作
    Winform中DataGridView多行删除
    20211026_阿里云服务器引流限制ssl的问题
    docker commit
    docker build
    docker build与docker commit
    阿里云Docker镜像仓库(Docker Registry)
    Docker Nginx安装(centos7)
  • 原文地址:https://www.cnblogs.com/cekaigongchengshi/p/13534695.html
Copyright © 2020-2023  润新知