Linux基础指令【补充】
一、打包压缩
1)是什么?
使用特定的算法 , 对文件进行合并压缩 , 减少体积 。其实打包压缩是两个步骤,类似于我们在打包行李的时候,先放,最后使劲压一下 。这里我们把打包压缩看成一个整体,因为在Linux 环境下 , 他两个分开来看 , 没多大的意义 。
2)为什么?
a . 文件体积减少 、 节省资源 ( 磁盘空间 )、减少网络传输成本(体积小 , 占的带宽就会越小)
b. 多文件转一个文件 , 可以提高文件传输的容错性
如何让以下文件传输的时候 , 既保证目录结构完整 ,又要保证文件内容不丢失 ?
1.1 zip 与 unzip 指令
1) 语法: zip 压缩文件.zip 目录或文件
2) 功能: 将目录或文件压缩成 zip 格式
3)常用选项 :
-r : 递归处理 , 将指定目录下的所有文件和子目录一并处理
1)这里我们可以使用 zip 这条指令对文件进行 ”打包压缩“ , 如果zip 没安装的话 ,需要安装一下(出现copyright就是安装成功了)
yum install -y zip unzip //centos环境下apt install -y zip unzip //ubuntu环境下
2)打包压缩 :
zip test.zip test //打包压缩mkdir other //创建一个other文件夹 -- 目的是为了做一下本地测试mv test.zip other/ //把test.zip 文件转移到other目录下unzip test.zip //在当前路径下(other)解压test.zip
我们发现,用以上的方法其实得不到我们想要的目录结构 以及 文件内容 , 因为我们在打包压缩的时候 没有递归处理我们的 “包裹” , 我们知道 , 目录结构是树状的 , 所以如果打包目录 , 一定要使用 -r !!!!
zip -r test.zip test //递归的打包压缩mkdir other //创建一个other文件夹mv test.zip other/ //把test.zip 文件转移到other目录下unzip test.zip //在当前路径下(other)解压test.zip
后面的百分号指的是压缩率 , 因为我们创建的文件是没有任何东西的 , 所以为 0
此时我们得到了完整的目录结构 以及 文本内容!
1.2 互传
我们打包压缩的目的就是为了文件传输(上传、下载) , Linux 与 Linux 间文件互传 , Linux 与 windows间文件互传等。
1.2.1 Windows <-> Linux
windows 与 Linux 间的文件互传:
sz test.zip //(传输到Linux)回车后,弹出界面rz //Windows 文件传到Linux / 把Windows文件拖拽到Linux也可以
首先我们应该先安装一个工具 : lrzsz
这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。 安装完毕之后可以通过拖拽的方式 将文件上传过去.
sudo yum/apt install -y lrzlz
使用【 rz 压缩文件】 --> 【回车】 ---> 【选择所存放的路径】 --> 传输完毕
1.2.2 Linux <-> Linux
tar 指令 :
1) 语法 : tar [-cxtzjvf] 文件与目录 ....
打包压缩 : tar -czf dst.tgz src
解压到本地:tar -xzf xxx.tgz
解压到指定路径:tar -xzf xxx.tgz -c 指令路径
2)
-c : 建立一个压缩文件的参数指令(create 的意思)
-x : 解开一个压缩文件的参数指令
-t :查看tarfile 里面的文件
-z : 是否同时具有 gzip 的属性 ? 亦或是否需要用gzip 压缩 ?
-j : 是否同时具有bzip2 的属性 ? 亦或是否需要用 bzip2 压缩?
-v : 压缩的过程中显示文件 ! 这个常用 , 不建议用在背景执行过程!
-f : 使用档名 ,请留意 , 在 f 之后要 立 即 接档名!不要再加参数!
-C : 解压到指定目录 !
mkdir other //创建other目录,模拟本地传输tar -czf test.tgz test //打包压缩test , 形成test.tgz压缩包 mv test.tgz other/ //传输到other目录下cd other/ //进入other目录tar -xzf test.tgz //解包解压tree test //验证test的目录结构是否出错cat test/dir1/dir2/dir3/log.txt //验证一下文件内容是否丢失
Linux 与 Liunx 之间互传(了解):
scp dst.tgz 用户@公网IP:传输路径
scp : 远程拷贝
dst.tgz : 传输的压缩包
用户:传输到的主机的用户名
公网IP:传输到的主句的公网IP
传输路径:传输到的指定路径
二、bc指令
bc命令可以很方便的进行浮点运算
--> Linux 下的一个命令行运算器
三、uname -r指令
1) 语法:uname [选项]2) 功能: uname用来获取电脑和操作系统的相关信息。3)补充说明:uname 可显示linux主机所用的操作系统的版本、硬件的名称 等基本信息。
uname -a
// a或‒all 详细输出所有信息,依次为内核名称,主机名,
内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称uname -r
//只看内核版本 和 体系结构cat /etc/redhat-release
//查看自己系统的版本
四、Linux下的热键
五、关机
语法: shutdown [选项]
常见选项:
1) -h : 将系统的服务停掉后,立即关机
2) -r :再将系统服务停掉之后就重新启动
3)-t sec: -t 后面加秒数,表示 过几秒后关机 。
其实这个关机指令,在windows下有点意义 , 但是在云服务器下没多大的意义 ,因为云服务器永远不要关机 。因为将来部署服务的时候,这个服务必须72小时在线,例如刷短视频。
六、shell 命令以及运行原理
Linux 严格意义上说的是一个操作系统,我们称之为 "核心"(kernel) , 但我们一般用户,不能直接使用 kernel 。 而是通过kernel 的 “外壳 ” 程序 , 也就是所谓的 shell , 来与 kernel 沟通。
从技术角度,shell 的最简单定义 : 命令行解释器(command Interpreter) 主要包含:
- 将使用者的命令翻译给核心 (kernel ) 处理
- 同时,将核心的处理结构翻译给使用者。
shell 作用 :
- 命令行解析
- 保护内核
对比windows GUI , 我们操作windows 不是直接操作windows 内核 , 而是通过图形接口 , 点击 , 从而完成我们的操作 ( 比如 进入D盘的操作 , 我们通常是窗机D盘盘符 , 或者运行起来一个应用程序 ) 。
shell 对于Linux , 有相同的作用 , 主要是对我们的指令进行解析 , 解析指令给Linux 内核 。 反馈结果在通过内核运行出结果 , 通过shell 解析给用户 。
知识点添加:
1)shell 会创建子进程的方式进行命令行解析
2)shell 外壳就是包裹在内核的一层软件层,这层软件层主要进行命令行解析、保护内核 。
3)在Linux 当中 , 目前所使用的外壳程序是 bash , 每一个用户在进行登录的时候 , 系统会专门分配一个 bash , bash 就是外壳程序的一种(就像苹果是水果的一种)