Linux02 基础指令

Linux02 基础指令

@Aiken 2022

If u want get detail params info go to: http://www.explainshell.com.

tar 压缩命令

linux中主要使用tar来进行文件的打包和解压,如果需要处理zip文件需要额外的支持,在上一章节中已经提到了,该章节压缩文件部分主要介绍tar命令

压缩文件(夹)

1
2
tar -zcvf {final_name}.tgz {dir} --exclude={dir/sub_dire1}
tar -cvf ...

解压文件(夹)

1
2
tar -zxvf {tarfile}.tgz -C {指定目录}
tar -xvf ...

批量解压tar

编写脚本批量解压tar文件到对应的文件夹中,这里主要的核心在于脚本的编写,而非tar的package

1
2
3
4
5
6
# version 1 ez2understrand
for i in `ls *.tar.gz`
do
mkdir /dir/${i/.tar.gz//}
tar zxvf $i -C /dir/${i/.tar.gz//}
done

也可以使用第二种方法:

1
2
3
4
5
6
7
8
# version 2 try to use assignment method
# 可以发现基本的操作是一样的,就是对应的定义的地方
# 可以考虑一下是如何使用echocut以及对应的-d 和 -f1是什么意思
for file in `ls *.tar`
do
todir=`echo $file | cut -d"." -f1`
mkdir $todir && tar -xvf $file -C $todir
done

参考资料:tar压缩解压缩命令详解


Linux 文件传输和同步

Linux 文件传输和同步

@aikenhong 2022

当我们需要在Server之间进行,或者Server和WSL之间进行文件的传输,以及文件夹的同步的时候,如果要打开Xftp之类的软件进行,有繁琐的操作中转,或者说目录较为庞杂的时候,也显得有些麻烦。

于是我们可能希望使用脚本,来实现更便捷,同时也能设置定时功能,使得操作简单便捷,经过简单的调研,我们目前尝试使用以下几种方法,并取得了成功。

Rsync 同步目录

rsync是借助ssh服务进行的文件传输,为了使用起来方便,我们首先需要配置免密登录,在服务器之间传输SSH密钥,参考[[Envs/SSH]]

此后我们便可以编写同步脚本来同步远程的目录和本地目录,当然也可以执行反向的命令,

1
rsync -azP --delete -e 'ssh -p port' --progress --stats --exclude "big Files or sth" user@ip:source_path target_path >transfer.log

根据progress和stats我们记录传输过程中的日志,并输出到transfer.log,同时使用exclude排除大文件,避免传输过慢。

a: 归档文件模式(保留文件的时间戳等),保括了r的递归
z: 使用压缩文件传输
P: 支持断点续传
delete: 会删除目标文件中多出来的东西,保持同步,使得成为远程的镜像,但是有时候我们可能不需要这点,避免同步损毁

参考:


Linux 基础操作 01

Linux 基础操作 01

学习资源汇总

manual:菜鸟Shell | ExplainShell

收录一些Linux的工具书以及相关的OnLine-Doc,方便后续进行学习和查阅:

  1. 鸟哥的Linux私房菜:相对全面一点但是内容有点太多了
  2. Linux就该这么学:从开始到结束的流程挺完善的,但是这个网站做的是纯傻逼
  3. Linux Tools Quick Tutorial:简单入门教程好像是
  4. Linux命令行于Shell脚本编程大全:本地PDF,在当前文件夹下面进行查看

文件架构&系统信息

Linux各文件夹的含义分析LInux下的文件架构体系,包括最外层的一些系统文件夹的基础作用以及对应的特殊功能等等,帮助我们能够更清楚我们文件的存储体系以及系统文件的存储地址。