笔者使用的是 AliYun 服务器 ECS,镜像选择的是 Ubuntu,Ubuntu的详细版本信息是:Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)
,如何购买云服务器不在本文讨论范围内,若是只是学习,那你彻底可使用 virtualbox 安装 Ubuntu。node
# 链接服务器
$ ssh <username>@<hostname>
# 更新系统源
$ apt update
# 升级系统源
$ apt upgrade
复制代码
# 安装 git
$ apt install git
复制代码
# 一、初始化设置
$ git config --global user.name 'youngjuning'
$ git config --global user.email 'youngjuning@aliyun.com'
# 二、将 `color.ui` 设置为 `auto` 可让命令的输出拥有更高的可读性。
$ git config --global color.ui auto
# 三、git 记住用户名和密码
$ git config --global credential.helper store
# 四、core.autocrlf
$ git config --global core.autocrlf input
复制代码
Linux或Mac系统使用LF做为行结束符,所以你不想 Git 在签出文件时进行自动的转换;当一个以
CRLF
为行结束符的文件不当心被引入时你确定想进行修正,把core.autocrlf
设置成input
来告诉 Git 在提交时把CRLF
转换成LF
,签出时不转换: 这样会在 Windows 系统上的签出文件中保留CRLF
,会在 Mac 和 Linux 系统上,包括仓库中保留LF
。linux
# 安装 jre、jdk
$ apt install openjdk-8-jre-headless openjdk-8-jdk-headless
复制代码
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。咱们使用 n
模块来维护 Node 的版本:git
$ apt install nodejs npm build-essential
$ sudo npm install -g npm n
# 安装最新版
$ sudo n latest
## 其余命令##
# 安装指定版本
$ sudo n 10.16.0
# 安装最新的稳定版
$ sudo n lts
# 删除指定版本
$ n rm 12.10.0
# 除去当前版本之外的全部缓存版本
$ n prune
复制代码
修改
~/.zshrc
以后都须要执行source ~/.zshrc
命令使之当即生效github
echo $SHLL
能够查看当前 Shell正则表达式
apt install zsh
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
nano ~/.zshrc
ZSH_THEME="robbyrussell"
,把 robbyrussell
替换为 ys
chsh -s /bin/zsh
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.zsh-syntax-highlighting" --depth 1
echo "source $HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> "$HOME/.zshrc"
echo "export EDITOR=nano" >> ~/.zshrc
建议使用:github.com/amix/vimrc算法
$ git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
$ sh ~/.vim_runtime/install_awesome_vimrc.sh
$ echo "set number" >> ~/.vimrc
$ echo "set showcmd" >> ~/.vimrc
$ source ~/.vimrc
复制代码
/
bin
:包含了会被全部用户使用的可执行程序boot
:包含与 Linux 启动密切相关的文件dev
:包含外设。它里面的子目录,每个对应一个外设etc
:包含系统的配置文件home
:用户的私人目录lib
:包含被程序所调用的库文件,例如.so
结尾的文件media
:可移动的外设(USB盘,SD卡,DVD,光盘,等等)插入电脑时mnt
:用于临时挂载一些装置opt
:可选的应用软件包,用于安装多数第三方软件和插件root
:超级用户 root 的家目录sbin
:用于包含系统级的重要可执行程序srv
:包含一些网络服务启动以后所须要取用的数据tmp
:普通用户和程序存放临时文件的地方usr
:Unix Software Resource,安装了大部分用户要调用的程序var
:一般包含程序的数据,好比 log(日志)文件Linux命令搜索引擎:git.io/linuxshell
reboot
:从新启动正在运行的Linux操做系统halt
:关闭系统shutdown
:用来系统关机命令。shutdown指令能够关闭全部程序,并依用户的须要,进行从新开机或关机的动做。poweroff
:直接运行便可关机history
:用于显示历史命令whice
:查找并显示给定命令的绝对路径pwd
:显示当前工做目录。(Print Working Directory)source
:在当前Shell环境中从指定文件读取和执行命令,让文件修改当即生效。updatedb
:建立或更新locate
命令所必需的数据库文件uname -a
:显示所有Linux系统信息cat /proc/version
:显示Linux信息cat /etc/lsb-release
:查看发行版信息echo $SHELL
:当前的shellservice <service> force-reload|reload|restart|start|status|stop
systemctl start|stop|restart|status|reload
:
enable
:开机自动启动服务disable
:开机不自动启动服务is-enabled
:查看服务是否开机自动启动list-unit-files --type=service
:查看各个级别下服务的启动和禁用状况ls
:显示目录内容列表数据库
-a
:列出全部文件,包括以 "." 开头的隐含文件。-l
:除每一个文件名外,增长显示文件类型、权限、硬连接数、全部者名、组名、大小(byte)及时间信息(如未指明是其它时间即指修改时间),能够用 ll
代替du
:显示每一个文件和目录的磁盘使用空间(Disk Usage)express
-a
或-all
:显示目录中个别文件的大小。-h
或--human-readable
:以K,M,G为单位,提升信息的可读性。-s
或--summarize
:仅显示总计,只列出最后加总的值。cat -N
:链接多个文件并打印到标准输出。(concatenate)npm
less -N
head
:显示文件的开头部分
tail
:在屏幕上显示指定文件的末尾若干行
-f
:显示文件最新追加的内容。-s<秒数>
:与-f
选项连用,指定监视文件变化时间隔的秒数,默认1秒touch
:建立新的空文件
mkdir
:用来建立目录
-p
或--parents
:若所要创建目录的上层目录目前还没有创建,则会一并创建上层目录cp
:将源文件或目录复制到目标文件或目录中
-r
或-R
:递归处理,将指定目录下的全部文件与子目录一并处理,recursivemv
:用来对文件或目录从新命名
rm
:用于删除给定的文件和目录
-r
或-R
:递归处理,将指定目录下的全部文件与子目录一并处理,recursive-f
:强制删除文件或目录ln
:用来为文件建立连接
- 硬连接缺陷:通常状况下,只能建立指向文件的硬连接,不能建立指向目录的
- 硬连接指的是使用了同一个
inode
号,可是文件名不同ls -i
:显示inode
号
-s
, --symbolic
:对源文件创建符号连接,而非硬连接locate
:比 find
好用的文件查找工具,须要配合 updatedb
使用
find
:在指定目录下查找文件
find [何处] <何物> [作什么]
-name <范本样式>
:指定字符串做为寻找文件或目录的范本样式
-size <文件大小>
:查找符合指定的文件大小的文件
-type <文件类型>
:只寻找符合指定的文件类型的文件;
-atime <24小时数>
:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-exec <执行指令>
:假设find指令的回传值为True,就执行该指令
find . -name *.txt -exec chmod 600 {} \;
能够换成
-ok
,ok 会让你确认操做
sudo su
:切换 root 身份,substitute do
useradd -m
:建立的新的系统用户自动建立用户的家目录
passwd
:用于让用户能够更改本身的密码
`userdel -r:用于删除给定的用户以及与用户相关的文件
users
:显示当前登陆系统的全部用户
usermod
:用于修改用户的基本信息
-l
:对用户重命名。/home
中的用户家目录名不改变,须要手动修改-g
:修改用户所在群组-G
:将用户添加到多个群组,多个群组用,
分割-aG
或 -ag
:不离开原来的群组进入新的群组groupadd
:用于建立一个新的工做组
groups
:用来打印指定用户所属的工做组
chown
:用来变动文件或目录的拥有者或所属群组
chown <username>[:gruop] <file|dir>
-R
:递归处理,将指定目录下的全部文件及子目录一并处理chgrp
:用来变动文件或目录的所属群组
chmod
:用来变动文件或目录的权限
![]()
一共有10位,第1位表明文件类型,第2-4位表示全部者的读、写和执行权限,第5-7位表示同组用户的读、写和执行权限,第8-10位表示其余用户的读、写和执行权限。若是没有权限用
-
占位。若是开启 SELinux,则第11位会多一个.
。
- 文件类型
d
:英语 directory 的缩写,表示目录l
:英文 link 的缩写,表示连接-
:文件r
:英语 read 的缩写,表示读w
:英文 write 的缩写,表示写x
:英语 execute 的缩写,表示执行/运行。能够运行这个文件.
:SELinux 的安全标签,若是第11位有.
,表示启用了 SELinux
用数字来分配权限
用字母来分配权限
chmod u+rx file
:文件 file 的全部者增长读和运行的权限
chmod g+r file
:文件 file 的群组其余用户增长读的权限
chmod o-r file
:文件 file 的其余用户移除读的权限
chmod g+r o-r file
:文件 file 的群组其余用户增长读的权限,其余用户移除读的权限
chmod go-r file
:文件 file 的群组其余用户和其余用户均移除读的权限
chmod +x file
:文件 file 的全部用户增长运行的权限
chmod u=rwx,g=r,0=- file
:文件 file 的全部者分配读,写和执行的权限;群组其余用户分配读的权限,不能写或执行;其余用户没有任何权限
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可以使用正则表达式能多种命令配合使用,使用上十分灵活。
-i
--ignore-case
:忽略字符大小写的差异。-n
--line-number
:在显示符合范本样式的那一列以前,标示出该列的编号。-v
--revert-match
:反转查找。-R/-r
--recursive
:在全部子目录和子文件中查找,能够用 rgrep
替代-E
--extended-regexp
:将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。能够用 egrep
代替
grep -E ^p /etc/profile
grep -E [at] /etc/profile
grep -E [0-4] /etc/profile
grep -E [a-zA-Z] /etc/profile
^ # 锚定行的开始 如:'^grep'匹配全部以grep开头的行。
$ # 锚定行的结束 如:'grep$' 匹配全部以grep结尾的行。
. # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,而后是p。
* # 匹配零个或多个先前字符 如:'*grep'匹配全部一个或多个空格后紧跟grep的行。
.* # 一块儿用表明任意字符。
[] # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] # 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\) # 标记匹配字符,如'\(love\)',love被标记为1。
\< # 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\> # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\} # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\} # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\} # 重复字符x,至少m次,很少于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,而后是p。
\W # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b # 单词锁定符,如: '\bgrep\b'只匹配grep。
复制代码
对文本文件中全部行进行排序。
-o
, --output=FILE
:将结果写入FILE而不是标准输出。sort -o name.txt name_sorted.txt
-r
, --reverse
:将结果倒序排列。-R
:--random-sort
随机排序,但分组相同的行。-n
, --numeric-sort
:根据数字排序。-
时,读取标准输入。统计文件的行数、字数、字节数
wc命令 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。利用wc指令咱们能够计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。wc同时也给出所指定文件的总统计数。
-c
: 统计字节数,或--bytes
或--chars
:只显示Bytes数-l
:统计行数,或--lines
:只显示列数-m
:统计字符数。这个标志不能与 -c
标志一块儿使用-w
:统计字数,或--words
:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串-L
:打印最长行的长度显示或忽略重复的行。uniq
命令有点”呆“,只能将连续的重复行变为一行
-c
, --count
:在每行开头增长重复次数-d
, --repeated
:只显示重复行的值链接文件并打印到标准输出设备上
-c
:仅显示行中指定范围的字符,cut -c 2-4 file
-d
:指定字段的分隔符,默认的字段分隔符为“TAB”。-f
:显示指定字段的内容。cut -d , -f 1,3 notes.csv
;cut -d , -f 2- notes.csv
黑洞文件
/dev/null
,此文件具备惟一的属性,它老是空的。它能使发送到/dev/null
的任何数据做废
>
重定向到文件>>
重定向到文件末尾>>
的做用与>
是相似的,不过它不会像>
那么危险。它会将重定向的内容写入到文件末尾,起到追加的做用。若是文件不存在,则建立文件
2>
、2>>
重定向到标准错误输出$ cat not_exist_file.csv > results.txt 2> errors.log
复制代码
2>&1
组合符合cat not_exist_file_csv > results.txt 2>&1
cat not_exist_file_csv >> results.txt 2>&1
<
从文件中读取cat notes.csv
cat
命令接受的输入是 notes.csv 这个文件名cat < notes.csv
cat
命令接受的输入直接是 notes.csv 这个文件的内容cat
命令只负责将其内容打印cat
命令的工做则交给终端完成<<
从键盘读取<<
符号的做用是将键盘的输入重定向为某个命令的输入sort -n << END
|
管道符号将一个命令的输出做为另外一个命令的输入
|
|
符号既然被称为”管道符“,其做用就是”创建命令管道“cut -d , -f 1 notes.csv | sort > sorted_names.txt
du -h | sort -n | head
sudo grep log -Ir /var/log | cut -d : -f 1 | sort | uniq
-I
:排除二进制文件-r
:用于递归遍历w
:显示目前登入系统的用户信息
uptime
:查看Linux系统负载信息
可以打印系统总共运行了多长时间和系统的平均负载。uptime命令能够显示的信息显示依次为:如今时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
tload
:显示系统负载情况
以图形化的方式输出当前系统的平均负载到指定的终端。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形
who
:显示目前登陆系统的用户信息
显示目前登陆系统的用户信息。执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入账号,使用的终端机,登入时间以及从何处登入或正在使用哪一个X显示器。
ps
:报告当前系统的进程状态 process status
-ef
:列出全部用户在全部终端的全部进程,能够配合管道方便查看 ps -ef | less
-efH
:按照乔木状列出进程-u
:列出此用户运行的进程-aux
:经过CPU和内存使用来过滤进程
ps -aux --sort -pcpu | less
:根据CPU使用率降序排列ps -aux --sort -pmem | less
:根据内存使用率降序排列ps -axjf
,pstree
:以树形结构显示进程用于报告当前系统的进程状态。能够搭配
kill
指令随时中断、删除没必要要的程序。ps命令是最基本同时也是很是强大的进程查看命令,使用该命令能够肯定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是能够经过执行该命令获得的。
top
:显示或管理执行中的程序
kill
:根据进程号结束一个进程
-9
:强制结束进程killall
:根据进程名结束全部进程,能够结合find
$ apt install glances -y
复制代码
$ apt install htop -y
复制代码
&
符号:后台运行进程cp file.txt file-copy.txt &
find / -name "*log" > output_find 2>&1 &
nohup
: 使进程与终端分离不管是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。hangup,挂起
若是当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out
文件中。若是没有文件能建立或打开以用于追加,那么 command 参数指定的命令不可调用。若是标准错误是一个终端,那么把指定的命令写给标准错误的全部输出做为标准输出重定向到相同的文件描述符。
tar
:Linux下的归档使用工具,用来打包和备份
-cvf
:建立一个 tar 归档,tar -cvf a.tar a/
-tf
:显示归档里的内容,并不解开归-xvf
:解开归档
-zcvf
:归档,而后用 gzip 来压缩归档-zxvf
:解gzip压缩,而后解开归档-jcvf
:归档,而后用 bzip2 来压缩归档-jxvf
:解bzip2压缩,而后解开归档zcat
、zmore
、zless
bzcat
、bzmore
、bzless
unzip
、unrar
:apt install zip
date +"%H"
:11date +"%H:%M:%S"
:11:15:51date +"%Y-%m-%d"
:2020-03-29date +"%Y-%m-%d %H:%M:%S"
:2020-03-29 11:15:51date 10121430
at命令 用于在指定时间执行命令。at
容许使用一套至关复杂的指定时间的方法。它可以接受在当天的hh:mm(小时:分钟)
式的时间指定。假如该时间已过去,那么就放在次日执行。固然也可以使用midnight
(深夜),noon
(中午),teatime
(饮茶时间,通常是下午4点)等比较模糊的词语来指定时间。用户还可以采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来讲明是上午仍是下午。 也可以指定命令执行的具体日期,指定格式为month day(月 日)
或 mm/dd/yy(月/日/年)
或dd.mm.yy(日.月.年)
。指定的日期必须跟在指定时间的后面。
上面介绍的都是绝对计时法,其实还可以使用相对计时法,这对于安排不久就要执行的命令是颇有好处的。指定格式为:now + count time-units
,now
就是当前时间,time-units 是时间单位,这里可以是minutes
(分钟)、hours
(小时)、days
(天)、weeks
(星期)。count
是时间的数量,到底是几天,仍是几小时,等等。 更有一种计时方法就是直接使用today
(今天)、tomorrow
(明天)来指定完成命令的时间。
at 22:10
,会提示让输入命令,以<EOT>
结束输入at 22:10 tomorrow
:明天 22:10 执行at 22:10 03/30/2020
:在 2020年3月20号22:10执行at now +10 minutes
:10分钟以后执行atq命令 显示系统中待执行的任务列表,也就是列出当前用户的at任务列表。
atrm命令 用于删除待执行任务队列中的指定任务。
touch file.txt;sleep 10;rm file.txt
&&
、||
、;
&&
:&&
号前的命令执行成功,才会执行后面的命令||
:||
号前的命令执行失败,才会执行后面的命令;
:不论分号前的命令执行成功与否,都执行分号后的命令crontab命令 被用来提交和管理用户的须要周期性执行的任务,与windows下的计划任务相似,当安装完成操做系统后,默认会安装此服务工具,而且会自动启动crond进程,crond进程每分钟会按期检查是否有要执行的任务,若是有要执行的任务,则自动执行该任务。
-e
:编辑该用户的计时器设置;-l
:列出该用户的计时器设置;-r
:删除该用户的计时器设置;-u <用户名称>
:指定要设定计时器的用户名称。m h dom mon dow command
顺序口诀:分 时 日 月 周
m:minute 的缩写,表示”分钟“(0~59)
h:hour 的缩写,表示“小时”(0~23)
dom:day of month 的缩写,表示“一个月的哪一天”(0~31)
mon:month 的缩写,表示”月份“(1~12)
dow:day of week 的缩写,表示“星期几”(0~6,星期日是0)
command:英语“命令”的意思,表示须要定时执行的命令
特殊字符:
必定要换行,不换行不会生效的 重启 cron 服务:
systemctl cron.service restart
每1分钟执行一次command
* * * * * command
复制代码
每小时的第3和第15分钟执行
3,15 * * * * command
复制代码
在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * command
复制代码
每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
复制代码
每一个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
复制代码
每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
复制代码
每个月一、十、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
复制代码
每周6、周日的1:10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
复制代码
天天18 : 00至23 : 00之间每隔30分钟重启smb
*/30 18-23 * * * /etc/init.d/smb restart
复制代码
每星期六的晚上11:00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
复制代码
每一小时重启smb
* */1 * * * /etc/init.d/smb restart
复制代码
晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
复制代码
每个月的4号与每周一到周三的11点重启smb
0 11 4 * mon-wed /etc/init.d/smb restart
复制代码
一月一号的4点重启smb
0 4 1 jan * /etc/init.d/smb restart
复制代码
每小时执行/etc/cron.hourly
目录内的脚本
01 * * * * root run-parts /etc/cron.hourly
复制代码
/etc/ssh/ssh_config
~/.ssh/config
~/.ssh
不存在,执行 ssh localhost
nano config
进行编辑/etc/ssh/sshd_config
$ nano ~/.ssh/config
复制代码
Host aliyun
HostName 47.98.152.68
Port 22
User root
复制代码
$ ssh aliyun
复制代码
在客户机中生成密钥对(公钥和私钥)
ssh-keygen -t rsa -C "youngjuning@aliyun.com"
在 ~/.ssh/
目录下,会新生成两个文件
ssh-copy-id
:把本地的 ssh 公钥文件安装到远程主机对应的帐户下
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@47.98.152.68
复制代码
ssh-copy-id命令 能够把本地主机的公钥复制到远程主机的
authorized_keys
文件上,ssh-copy-id
命令也会给远程主机的用户主目录(home)和~/.ssh
, 和~/.ssh/authorized_keys
设置合适的权限。
-i
:指定公钥文件
设置免密码后仍想使用密码登陆:
$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no root@47.98.152.68
复制代码
测试Github是否正确配置免密码登陆:
ssh -T git@github.com
wget命令 用来从指定的URL下载文件。wget很是稳定,它在带宽很窄的状况下和不稳定网络中有很强的适应性,若是是因为网络的缘由下载失败,wget会不断的尝试,直到整个文件下载完毕。若是是服务器打断下载过程,它会再次联到服务器上从中止的地方继续下载。这对从那些限定了连接时间的服务器上下载大文件很是有用。
wget支持HTTP,HTTPS和FTP协议,可使用HTTP代理。所谓的自动下载是指,wget能够在用户退出系统的以后在后台执行。这意味这你能够登陆系统,启动一个wget下载任务,而后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时须要用户一直的参与,这省去了极大的麻烦。
用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录。wget虽然功能强大,可是使用起来仍是比较简单:
scp命令 用于在Linux下进行远程拷贝文件的命令,和它相似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,并且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读read only system时,用scp能够帮你把文件移出来。另外,scp还很是不占资源,不会提升多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的状况下,rsync会致使硬盘I/O很是高,而scp基本不影响系统正常使用。
$ scp file.txt root@192.168.2.195
复制代码
查看端口占用状况
rsync命令 是一个远程数据同步工具,可经过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不一样部分,而不是每次都整份传送,所以速度至关快。 rsync是一个功能很是强大的工具,其命令也有不少功能特点选项,咱们下面就对它的选项一一进行分析说明。
rsync -arv --delete
能够删除用 rsync 备份到同一台电脑的其余目录:
$ rsync -arv Images/ backups
复制代码
-a
:保留文件的全部信息,包括权限,修改日期,等等。a 是 archive 的缩写,是归档的意思-r
:递归调用。表示子目录的全部文件也都包括。r 是 recursive 的缩写,是递归的意思-v
:冗余模式。输出详细操做信息。v 是 verbose 的缩写,是冗余的意思用 rsync 备份到同步本地文件到服务器:
$ rsync -arvz --progress --delete ~/Desktop/blog root@47.98.152.68:/home/yangjunning/
复制代码
做者微信 | 知识星球 | 赞扬做者 |
---|---|---|
![]() |
![]() |
![]() |