资讯详情

Linux 必知必会

文章目录

  • 一、Linux 简介
    • 1.1 Unix 与 Linux 和 Mac OS 的关系
    • 1.2 Linux 操作系统
    • 1.3 Linux 发行版
  • 二、Shell 的使用
    • 2.1 什么是 Bash Shell
    • 2.2 shell 提示符
    • 2.3 shell 命令基础
    • 2.4 配置环境变量
    • 2.5 命令别名
    • 2.6 快捷键
  • 三、Linux 系统目录结构
  • 四、管道与重定向
    • 4.1 管道
    • 4.2 重定向
  • 五、目录和文件
    • 5.1 绝对路径和相对路径
    • 5.2 操作目录和文件
    • 5.3 文件的属性
  • 六、硬链接和软链接
    • 6.1 硬链接(Hard Link)
    • 6.2 软连接(符号链接,Symbolic Link)
  • 七、用户和用户组
    • 7.1 用户
      • 7.1.1 用户相关文件
      • 7.1.2 与用户相关的命令
    • 7.2 用户组
      • 7.2.1 用户组相关文件
      • 7.2.2 用户组相关命令
    • 7.3 切换当前用户,提高权限
  • 八、文件权限
    • 8.1 修改权限
    • 8.2 文件的特殊属性
  • 九、软件管理
    • 9.1 更换软件源
    • 9.2 通过 deb 文件安装
    • 9.3 通过 apt 包管理软件
    • 9.4 通过源代码安装
  • 压缩和解压
  • 十一、下载和上传文件
    • 11.1 下载文件
    • 11.2 上传文件

一、Linux 简介

在这里插入图片描述

!我们熟知的安卓操作系也是基于 Linux 开发了操作系统。

1.1 Unix 与 Linux 和 Mac OS 的关系

Uinx 它是20世纪70年代初出现的一个操作系统,现在很少使用,但它是上述三个操作系统的老大哥。这三个人或多或少都有 Unix 的影子。windows系统借鉴过 unix 一些想法,而 Linux 和 Mac OS更是在 unix 它们是在开发的基础上开发以它们被称为类 Unix 操作系统在很多方面都是相似的。

1.2 Linux 操作系统

1991年,荷兰大学生 Linus Torvalds(林纳斯·托瓦兹,被称为 linux 之父)从 Minix(mini-nuix)启发了一个操作系统内核,取名为 Linux (linus‘s unix 并将源代码公开到了网上。

我们注意到,linus 只完成了一个内核,与真正的操作系统相比,它仍然缺少很多东西。真正使用 Linux 系统走向完整的操作系统,是另一群人——GNU的成员。

GNU 这是一个操作系统项目,主要是为了建立免费的开源类别 UNIX 系统,Emacs 编辑器、GCC 该计划开发了编译器。虽然 GNU 致力于开发一个操作系统,开发了许多应用程序,但从来没有一个令人满意的核心,所以它看到了 Linux 内核,两家喜结连理。从此,Linux 内核便有了 GNU 各种软件在计划中的祝福已经成为一个真正的操作系统。所以,现在

1.3 Linux 发行版

因为 linux 是一个开源的操作系统,所以有很多公司、开发者在 Linux 在核心的基础上开发了自己的操作系统,统称为 linux 发行版。它们主要在桌面环境和包管理器上做了大刀阔斧的修改,其他方面的修改并不多,所以用起来差不多的。

目前主流的 Linux 发行版有:

  • Debian及其衍生版:Ubuntu、Linux Mint。
  • Fedora及相关版本:Red Hat Enterprise Linux、CentOS。
  • openSUSE
  • 其它不太流行的版本……

其中,Ubuntu 是大多数人的入门 linux 我们也在这里选择系统的选择 Ubuntu 。到 Ubuntu 官网下载安装镜像,使用 Vmware Workstation 等待虚拟机软件安装。安装教程很简单,网上也有很多教程,大家自己搜索。

Ubuntu 的桌面:

二、Shell 的使用

2.1 什么是 Bash Shell

。有点像 python 解释器也可以编写程序,所以它也被称为 shell 语言。但shell 存在的意义不是为了像 python 开发各种软件是为了执行用户的命令。

shell 意思是外壳,我们可以把它看作是操作系统的外壳。如果我们想处理操作系统,我们将使用这个外壳。

shell 有很多版本,比如 sh、zsh、bash,而 Ubuntu 自带的是 bash,这些 shell 都差不多,我们用默认 bash shell 就好。

在 Ubuntu 中 找名叫找名叫终端应用程序打开后直接进入 bash 操作界面:除了一些字母,什么都没有,键盘输入命令完成所有操作。

退出 sehll 点击右上角的关闭按钮,但更符合标准的方法是输入exit然后回车,这是我们学到的第一个 shell 命令。

2.2 shell 提示符

进入 bash 之后,会显示一个 shell 提示符与以下字母相似:

hugh@hugh-vm:~$  

它的含义是用户名@主机名称:当前路径和用户类型

  • 用户名和主机名:安装时,显示输入的内容。

  • 当前路径:它可以是一个形状/xxx/xxx也可以是路径~

    ,我的用户名是我的用户名是hug”,那么家目录就是/home/hugh~是 shell 启动时的默认目录。

  • 用户类型。它们二者的区别就是权限的不同,会在后面讲解。

2.3 shell 命令基础

linux 的命令很多,我们会在后面分类学习,在此先通过几个命令来了解一下 shell 的使用:

shell 命令由三部分组成:命令、选项和参数。同一个命令搭配不同的选项会有不同的效果,而参数通常是被执行命令的对象。

另外,选项通常都是以--开头,但大多数时候用简写形式-,比如--all可以简写为-a。在命令的帮助信息中,可以获取到各种选项及其简写形式。

  • 获取帮助:

    任何命令 --help
    
  • 获取命令的完整说明:

    man 任何命令
    
  • 立刻关机、重启:

    poweroff  # 关机
    reboot    # 重启
    
  • 查看网卡信息(主要是IP地址):

    ip addr
    
  • 列出当前目录下的内容:

    ls
    

    选项:

    • -a:显示隐藏文件和目录(.开头的文件和目录)。
    • -l:列出文件类型、大小等更加详细的内容。
    • -F:在列出的文件名称后加一个标识符;例如可执行档则加 “*”, 目录则加 “/”。

  • 显示执行命令的历史记录:

    history
    

    要执行某一条历史记录,就执行:! 数字,这个数字就是历史记录中,命令前面的数字。

    选项:

    • -c:清空历史记录。
  • 查找命令(可执行文件及别名 )的所在位置:

    which 命令
    
  • 打印指定内容:

    echo "阿巴阿巴"
    # 输出:阿巴阿巴
    

    该命令通常配合重定向一起使用,单独使用的话,没什么用。

2.4 配置环境变量

。这里说一下环境变量的配置:

通过文件管理器,双击打开~/.bashrc文件,在最后一行写入以下内容:

export PATH=这里写路径:$PATH

配置完成后,还需要加载一下:

source ~/.bashrc

2.5 命令别名

别名是指给一个复杂的命令起一个简单的名称,然后用别名代替原来复杂的命令。比如,之前提到过的ll命令,就是命令ls -alF的一个别名。

  • 查看所有别名:alias

  • 设置别名:

    • 仅当前会话有效:

      alias 别名='命令'
      
    • 永久有效:将上述命令写入~/.bashrc文件中,或者执行:

      echo "alias 别名='命令'" >> ~/.bashrc  # 注意引号
      
  • 取消别名:

    • 暂时取消:

      unalias 别名
      
    • 永久取消:从~/.bashrc文件中,删除设置别名的那一行命令。

2.6 快捷键

快捷键 说明
上下键 快速输入最近执行过的命令
tab 输入不完整的命令,按tab键,系统会提示可能的命令。
ctrl + a 将光标移至行首
ctrl + e 将光标移至行末
ctrl + c 终止正在执行的程序
ctrl + z 暂停正在执行的程序,并挂到后台。jobs命令列出当前任务,fg 任务号恢复到前台。bg 任务号挂到后台。
ctrl + d 等同于exit,退出当前 shell 会话
ctrl + l 等同于clear,清屏
ctrl + k 删除从光标到行末的所有字符
ctrl + u 删除从光标到行首的所有字符
ctrl + r 搜索命令历史记录,tab键选中
ctrl + w 按照单词或空格向前删除
ctrl + 左右键 按照单词或空格左右移动光标

三、Linux 系统目录结构

Linux 的文件系统是树结构,没有 C、D 盘一说,所有的目录都是放在根目录/下:

  • :存放着普通用户使用的命令。

  • :存放的是启动 Linux 时使用的一些核心文件。

  • :存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • :存放系统管理所需要的配置文件和子目录。

  • :存放普通用户的主目录(或者叫家目录)。

    在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve,并用~表示当前用户的家目录。

  • :存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • :这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • :linux 系统会自动识别一些设备,例如U盘、光驱等等挂载到这个目录下。

  • :该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • :给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • :存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内核的映射,我们可以通过直接访问这个目录来获取系统信息。

  • :存放超级用户的家目录。

  • :存放的是超级用户使用的命令。

  • :该目录存放一些服务启动之后需要提取的数据。

  • :跟/proc非常类似,也是一个虚拟的目录,存放着进程信息、设备信息等的映射。

  • :存放一些临时文件的。

  • :用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • :普通用户使用的应用程序。

  • :超级用户使用的比较高级的管理程序和系统守护程序。

    。所以图片中才会画了两个箭头。

  • :内核源代码默认的放置目录。

  • :这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • :是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

四、管道与重定向

4.1 管道

,它的格式为命令1 | 命令2 | ……,其中|叫做管道符,是我们的主角。

比如,我们可以通过管道将 列出所有进程的命令 和 过滤命令 结合起来,这样就能找到想要的进程(以 python 进程为例):

ps aux | grep "python"  # ps aux 会列出所有进程,grep 从列出的所有进程中过滤出 python 进程

4.2 重定向

重定向是指:。最常见的用法,就是将默认输出到屏幕上的信息改为输出到某个文件中。

比如,下面的命令,会将本该被输出到屏幕上的“hello,world”,改为输出到到 a.txt 文件中:

echo "hello,world" > a.txt  # hello,world 会被保存在 a.txt 中

重定向符号:

  • >:输出重定向到一个文件或设备,覆盖原来的文件;
  • >! :输出重定向到一个文件或设备,强制覆盖原来的文件;
  • >>:输出重定向到一个文件或设备,追加原来的文件;
  • <输入重定向到一个程序,它和输出重定向类似。

五、目录和文件

5.1 绝对路径和相对路径

  • 绝对路径:

    ,比如,表示桌面目录的路径:

    /home/你的用户名/桌面
    
  • 相对路径:

    在使用ll命令查看时,目录下会有

    比如,通过相对路径表示当前目录下foo/bar目录:

    ./foo/bar
    

    再比如,表示当前目录的上一级目录的上一级目录下的foo目录:

    ../../foo
    
  • 运行可执行文件:

    ,比如,当前目录下有一个start可执行文件,执行的话:

    ./start    # 真确
    start      # 错误
    

5.2 目录和文件操作

  • 切换目录:

    cd 路径  # 切换到某一路径
    cd ~    # 切换到用户家目录
    cd -    # 切换到上一次使用的目录
    cd ..   # 切换到上级目录
    
  • 查看目录或文件的大小:

    du -sh 路径
    
  • 移动文件或目录:

    mv 源路径 目标路径    # 移动文件
    mv a.txt  b.txt    # 起到重命名的效果,a.txt 重命名为 b.txt
    
  • 拷贝文件或目录:

    cp 源文件路径 目标路径
    cp -p 源文件路径 目标路径  # 保持原来的文件属性
    cp -r 源目录路径 目标路径  # 拷贝目录
    
    cp a.txt  b.txt    # 起到重命名的效果,a.txt 重命名为 b.txt
    
  • 创建目录:

    mkdir 目录路径
    mkdir 目录路径1 目录路径2 ……    # 创建多个
    mkdir -v 目录路径    # 显示详细信息
    mkdir ./{ 
              dir1, dir2,……}    # 在同一路径下创建多个
    
    
    # 假设当前目录下,没有 ./a/b/c 这个多级目录
    # 如果要创建这个多级目录,则创建时必须加 -r 选项
    # 这样会自动递归的创建这三个目录,否则无法创建
    mkdir -r ./a/b/c  # 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
    
  • 创建文件:

    touch 文件路径    # 文件已存在则更新创建时间
    touch 文件路径1 文件路径2  # 创建多个
    touch file{ 
              1,2,3}    # 创建file1,file2,file3 这三个文件
    touch file{ 
              1..100}    # 创建file1到file100,共100个文件
    touch file{ 
              a..z}     # 同上
    
  • 删除文件或目录:

    rm 文件名称
    rm -v 文件名称  # 显示详细信息
    rm -r 目录    # 删除目录必须加 -r 选项
    rm -f 文件    # -f 表示强制删除,对于目录也是如此
    rm *.log     # 删除当前目录下所有名称以 .log 结尾的文件, * 代表匹配任意字符
    

  • 查看文件内容:

    cat 文件路径
    
    less 文件路径    # 分页查看内容,按上下键移动内容,q 键退出
    
    head 文件路径    # 查看文件前面一部分,默认为前10行
    head -n5 文件路径   # 查看前5行
    
    tail 文件路径    # 查看文件后面一部分,默认为后10行
    tail -20 文件路径    # 查看后20行
    tail -f 文件路径     # 动态查看内容的变化
    
  • 计算文件的Byte数、字数、或行数:

    wc 文件路径    # 会显示三个数字,分别是:行数、单词数、字节数
    
  • 查找文件里符合条件的字符串:

    grep "匹配模式" 文件路径   # 会返回所有包含匹配内容的行
    grep -i "匹配模式" 文件路径    # 忽略大小写
    

5.3 文件的属性

使用ll查看目录内容时,会列出一大堆东西,我们现在看看这些东西到底是什么,也许有些概念还没听说过,但没关系,后面会详细讲解。

下面是一些ll命令的输出:

drwxr-xr-x  2 hugh hugh 4096  1月 20 12:20 桌面/
-rw-------  1 hugh hugh 3399  1月 20 11:13 .bash_history
-rw-r--r--  1 hugh hugh  220  1月 13 16:52 .bash_logout
-rw-r--r--  1 hugh hugh 3771  1月 18 18:39 .bashrc

这些内容就是文件的属性,它们各自的含义如下:

文件类型 权限 硬链接数量 所属用户 所属用户组 最近修改时间 文件或目录名称
d rwxr-xr-x 2 hugh hugh 1月 20 12:20 桌面/

文件类型有以下几种:

  • -:普通文件,如文本文件、图片、压缩包等;
  • d:目录文件,没错,linux 将目录也视为文件;
  • b:块设备文件,如硬盘等;
  • c:字符设备文件,例如键盘、鼠标等;
  • s:套接字文件,通常用在网络连接、进程间通信;
  • p:管道文件;
  • l:链接文件;

如果要查看文件的具体信息:

file 文件路径

六、硬链接和软链接

。在学习它们的不同之前,需要先了解一下 Linux 文件系统的原理:

在 Linux 中,文件被分成两部分:

  • Block:记录数据;
  • Inode(i 节点):记录文件的属性信息,但不记录文件名。

文件名被单独保存,指向 inode,再由 inode 指向真正的数据。

6.1 硬链接(Hard Link)

硬链接就是给同一个 inode 分配多个文件名,我们注意到,当一个文件被创建后,它的硬链接数量默认为1,也就是说,硬链接数量为0时,文件就不存在了。另外,Linux 是不允许给目录创建硬链接的。

创建硬链接:

ln 目标文件路径 链接的路径

6.2 软连接(符号链接,Symbolic Link)

软链接就是新建了一个 inode,它有点类似于 Windows 的快捷方式,也用的更多。另外,Linux 是允许给目录创建软链接的。

创建软链接:

ln -s 目标文件路径 链接的路径

最后,不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

七、用户和用户组

7.1 用户

Linux 系统是一个多用户操作系统,任何一个要使用系统资源的人,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户机制的作用在于:

  • 系统中每一个进程都依赖于一个用户来运行
  • 不同的用户会有不同的权限,以保证系统的安全
  • 每一个用户都有一个家目录,都有一个属于自己的系统环境

每一个用户都有一个唯一标识 UID:

  • 0:超级用户,拥有最高的权限。
  • 1~200:系统用户,用来运行系统自带的进程。
  • 201~999:系统用户,用来运行用户安装的程序。
  • 1000+:普通用户,正常登录使用系统的用户,权限比较小。

7.1.1 用户相关文件

Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有/etc/passwd/etc/shadow/etc/group这几个。

  • 用户信息文件:

    /etc/passwd中保存着所有用户的详细信息,每一行代表一个用户,用冒号分割,分割为7段:

    hugh x 1000 1000 hugh, /home/hugh /bin/bash
    用户名 密码占位符 用户UID 用户组ID 注释信息 用户家目录的路径 登录 shell
  • 影子文件:

    /etc/passwd类似,每一行也是用冒号分割,一共9段:

    hugh 6 6 6YusQ6WaOC…… 19005 0 99999 7 一般为空 一般为空 保留字段
    用户名 密码的密文 密码的最后一次修改时间(时间戳) 两次密码修改间隔的最小时间 密码的有效期:273年 到期之前的提醒天数 口令过期多少天后,该账号被禁用。 账号失效时间 未使用

7.1.2 用户相关的命令

7.2 用户组

为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到里面,这样便可以通过组来快速分配权限。

7.2.1 用户组相关的文件

  • 组信息文件:

    依旧是冒号分割,共4段:

    hugh x 100 我的为空
    组名 组密码占位符 组GID 组中附加用户

7.2.2 用户组相关的命令

  • 新建用户组:

    groupadd 组名
    groupadd -g 用户组GID 组名  # 指定新用户组的 GID
    groupadd -o 组名    # 允许GID重复,通常与-g 连用
    
  • 删除用户组:

    groupdel 组名   # 组内不能有用户
    
  • 修改用户组:

    groupmod -g 用户组GID 组名  # 修改 GID
    groupmod -n 新组名 旧组名  # 修改组名
    groupmod -o 组名    # 允许GID重复,通常与-g 连用
    

7.3 切换当前用户和提升权限

su命令用于切换当前用户为其他用户,需要输入目标用户的密码,root 用户切换到其他用户则不需要密码。

su 用户名    # 切换用户,会加载目标用户的环境变量
su - 用户名    # 切换用户并打开新的 shell,会加载目标用户的环境变量

sudo命令可以使普通用户以超级用户的身份允许命令,也就是说,通过sudo执行的命令,就如同是 root 亲自在执行。

sudo 命令     # 需要输入当前用户的密码

八、文件权限

还记得文件属性一节中,提到过的权限属性吗?使用ll命令查看目录内容,就能看到每个文件最前面的权限属性,它看起来是这样子的:

rwxrwxr-x    # 注意,这里将第一个字母去掉了,那是文件类型

将其三位一组地分开:

rwx rwx r-x
文件所属用户的权限 文件所属用户组的权限 其他用户的权限

这四个符号代表了四种权限:

符号表示 对应权限 数字表示
r 读取权限 4
w 写入权限 2
x 执行权限 1
- 没有对应的权限 0

符号表示一般供给用户查询使用,而数字表示一般是修改权限使用。

8.1 修改权限

chmod 用户身份(u、g、o)授予方式(+、-、=)权限 文件路径
# u、g、o代表用户、用户组、其他用户
# +、-、=代表添加某一权限、取消某一权限、直接设定权限

chmod u+w 文件路径    # 给用户添加写权限
chmod g-r 文件路径    # 给用户组取消读取权限
chmod o=rw 文件路径    # 给其他用户直接设定读写权限

通过数字表示修改权限,需要对文件所属用户、文件所属用户组、其他用户的权限分别进行计算,然后按照对应顺序授予权限,比如:

# 文件所属用户、文件所属用户组、其他用户都只有写权限
chmod 222 文件路径

# 文件所属用户、文件所属用户组、其他用户都有完整的权限
chmod 777 文件路径    # 因为,读、写和执行=4+2+1=7

# 文件所属用户有读、写、执行权限,用户组和其他用户有读和执行权限
chmod 755 文件路径    # 注意三个数字的对应顺序

8.2 文件特殊属性

改变文件属性:

chattr -+= 属性 文件路径

常用属性有以下几种:

  • a:让文件或目录只能追加内容;
  • b:不更新文件或目录的最后存取时间;
  • i:不能任意更动文件或目录。

九、软件管理

9.1 更换软件源

由于 Ubuntu 的官方软件源速度很慢,所以我们需要更换为国内第三方的软件源。

这里以清华大学开源软件镜像站为例:

  1. 打开镜像站官网,搜索 Ubuntu,然后打开。

  2. 选择对应的 Ubuntu 版本。

  3. 复制软件源配置信息内容。

  4. 备份原有软件源配置文件(可选):

    sudo cp /etc/apt/sources.list  /etc/apt/sources.list.bak
    
  5. 使用熟悉的编辑器打开/etc/apt/sources.list文件,比如 vim 。

  6. 清空原有内容,将复制的内容粘贴进去,保存。

  7. 更新存储库引索(软件源):

    sudo apt-get update
    

9.2 通过 deb 文件安装

.deb文件类似于 windows 的.exe文件,它是 Debian 系 Linux 系统的软件安装包。

使用 deb 文件安装软件,要先到软件官网下载 deb 文件,然后用下面的命令安装:

sudo dpkg -i deb文件的路径

如果提示有依赖问题,就通过下面的命令安装依赖:

sudo apt-get install -f

9.3 通过 apt 包管理器管理软件

apt 是 Debian 系 Linux 系统的安装包管理工具,它使用起来很简单,但功能却很强大:

sudo apt install 软件包名称    # 安装软件


sudo apt upgrade    # 升级已安装软件
apt list --upgradeable    # 列出可更新的软件包及版本信息

sudo apt search 软件包名称    # 搜索软件包信息

sudo apt remove 软件包名称    # 卸载软件
sudo apt purge  软件包名称    # 卸载并移除配置文件

sudo apt autoremove    # 清理不再使用的依赖和库文件
sudo apt autoclean     # 清理安装过程中产生的文件

9.4 通过源码安装

有些软件没有被收录进软件镜像源,或者说我们需要使用最新的版本,这时候就要自己去他们的官网或者是代码托管平台下载最新的软件源码,自己来编译安装。

编译安装,会需要一些工具,这些工具一般需要我们自己安装:

sudo apt install build-essential

以 redis 的安装为例:

# 获取源码压缩包,wget 是下载文件用的,第十二章有讲解
wget https://download.redis.io/releases/redis-6.2.6.tar.gz

# 解压缩,后面第十一节有讲解
tar -xzf redis-6.2.6.tar.gz

cd redis-6.2.6
make

这种方式比较麻烦,最好的办法是按照软件的官方文档一步一步来。

**注意:使用源码安装的软件,需要进行配置(制作系统服务)后,才能通过 systemctl 来管理!**systemctl 的用法和系统服务的制作方法,在下一篇文章讲解。

十、压缩和解压

Linux 下常见的压缩包格式有 zip、tar.gz 等,可以很方便的用命令解压。

  • .gz格式:

    gzip 文件路径    # 压缩
    
    gzip -d 压缩包路径    # 解压
    

    只能压缩文件,不能压缩文件夹,且压缩后会将原文件删除。

  • .zip格式:

    zip 压缩包名称 文件路径    # 压缩文件
    zip 压缩包名称 -r 目录路径    # 压缩目录
    
    unzip 压缩包路径    # 解压
    unzip 压缩包路径 -d 目标路径    # 解压到指定路径
    unzip -l 压缩包路径    # 不解压,只查看内容
    

    可能需要手动安装:sudo apt install zip

  • .tar格式:

    tar -czf 压缩包名称 文件路径1 文件路径2 ……    # 压缩文件,.tar.gz格式
    
    tar -xf 压缩包路径    # 自动识别格式并解压
    tar -xf 压缩包路径 -C 目标路径    # 解压到指定路径
    

十一、下载和上传文件

11.1 下载文件

通过 shell 下载文件,需要借助于 wget、curl 等下载工具。大部分系统默认自带 wget,不用下载,如果显示命令找不到,则需要安装一下。

  • 安装 wget 或 curl :

    运行下面的命令之一:

    sudo apt install wget
    sudo apt install curl
    
  • 使用 wget 或 curl 下载文件:

    wget 下载链接    # 下载到当前目录下
    wget -O 路径 下载链接    # 选项是大写的欧,下载到指定目录下
    
    # curl 用法与 wget 类似
    

11.2 上传文件

如果需要将文件上传到虚拟机或是远程服务器,需要使用基于 ssh 的 scp 命令。

我们这里使用的是虚拟机,但也要配置 SSH 才能正常使用 scp 命令

关于 SSH 远程连接的配置、免密码登录等,都十分简单且网上有很多教程,请大家自行搜索配置。

在文件所在的机器上,执行以下命令(windows也支持此命令):

scp 需要上传的文件的路径 目标主机用户名@目标主机IP:上传的目标路径
scp -r 路径 用户名@IP:路径     # 递归复制目录及其内容
scp -C 路径 用户名@IP:路径     # 在复制过程中压缩文件或目录

标签: 502100alf连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台