指令:tar、zip、gzip、unzip、rsync、scp、ps、kill、nohup

压缩

tar 归档命令,不具备压缩功能

tar -zcvf test.tar.gz  test/     #将test文件夹做为归档文件

tar -cvf test.tar  test   #打包一个目录
tar -cf output.tar file1 file2 file3 folder1...    #参数-c表示创建文件,-f表示指定文件。
tar -cf output.tar *.txt               #归档所有.txt文件
tar -rvf file.tar new_file.txt           #向归档文件file.tar追加一个文件。
tar -tf file.tar                  #列出归档文件中的内容
tar -xf file.tar                  #参数-x表示提取文件或文件夹。将内容提取到当前文件夹
tar -xf file.tar -C /data/test    #参数-c表示提取文件到指定目录
tar -xvf file.tar file3 file6     #提取指定的几个文件,忽略其他文件
tar -Af file.tar file2.tar      #合并多个归档文件
tar -tvf file.tar          #查看合并归档文件是否成功
tar -uvvf file.tar           #查看归档文件中某个特定文件的时间戳
tar -df file.tar file1 file2 ...   #比较归档文件中的文件与系统中的同名文件是否有差别。-d打印出差别。
tar -f file.tar --delete file1 file2 ...       #使用--delete选项从归档文件中删除指定的文件
tar --delete --file file.tar file1 file2 ...     #同上
tar -cf file.tar * --exclude "*.txt"        #排除归档中所有.txt文件
tar -cf file.tar * -X list.txt          #排除归档中所有在list.txt中列出的文件。
tar -cf file.tar * --exclude "*.txt" --totals   #选项--totals再归档完成后打印出总归档字节数
tar -czvvf file.tar.gz file1 file2 ...      #创建经由gzip压缩过的归档文件
tar -cavvf file.tar.gz file1 file2 ...      #同上

tar -zxvf php-7.2.0.tar.gz -C /data/myfile   #解压php-7.2.0.tar.gz 到/data/myfile文件夹下,-C 指定要解压到的目标文件夹

tar选项

-A:将tar文件添加到现有归档的末尾。
-c:创建一个新的归档文件。

-C:解包时指定释放的目标文件夹
-d:使用指定的文件系统比较归档。
-j:用bzip压缩归档。
-r:将文件添加到现有归档的末尾。
-t:列出现有归档的内容。
-u:更新归档。
-x:从现有归档解压文件。

-f:表示使用归档文件。

-v:输出详细信息
-z:用gzip压缩归档。
–delete:从现有归档删除文件。

gzip filename      #压缩文件。删除原文件并生成filename.gz
gzip -l test.txt.gz    #列出压缩文件的属性信息
gunzip filename.gz     #解压文件。删除filename.gz并生成filename.gz的未压缩形式

gzip参数:

-c, --stdout write on standard output, keep original files unchanged
-d, --decompress decompress  解压
-f, --force force overwrite of output file and compress links
-h, --help give this help
-k, --keep keep (don't delete) input files
-l, --list list compressed file contents
-L, --license display software license
-n, --no-name do not save or restore the original name and time stamp
-N, --name save or restore the original name and time stamp
-q, --quiet suppress all warnings
-r, --recursive operate recursively on directories
-S, --suffix=SUF use suffix SUF on compressed files
-t, --test test compressed file integrity
-v, --verbose verbose mode
-V, --version display version number
-1, --fast compress faster
-9, --best compress better
--rsyncable Make rsync-friendly archive

zip file.zip file      #压缩file文件,生成file.zip压缩文件,压缩完不会删除原文件
zip -r file.zip folder file #对目录和文件进行递归操作
zip file.zip -u newfile   #更新file.zip中的内容
zip -d file.zip test.txt   #从压缩文件file.zip中删除文件test.txt
unzip file.zip        #解压缩文件,解压后不会删除原压缩文件
unzip -l file.zip      #只列出文件中的内容

远程复制备份:
rsync (ubuntu安装相关软件包:sudo apt-get install rsync)
rsync -av source_path destination_path   #以递归方式将源目录复制到目的端,-a表示进行归档,-v表示在stdout打印细节信息及进度
rsync -av source_path username@host:path   #将本地的目录递归赋值到远程主机上例如:rsync -av /data/test ubuntu@192.168.0.8:/home/backup
rsync -avz source destination       #参数-z表示在网络传输时使用数据压缩
rsync -av /home/test/ /home/backups  #复制test目录中的内容到目的端
rsync -av /home/test /home/backups  #在目的端创建backups目录并将源端/home/test目录复制到此目录中。
rsync -av /home/test /home/backups/  #将源端/home/test 的内容复制到已有的目录backups中
rsync -avz /home/code /mnt/backup/ --exclude "*.txt"    #选项--exclude将不需要进行更新的文件排除掉
rsync -avz /home/code /mnt/backup/ --exclude-from /data/filelist.txt    #选项--exclude-from将文件filelist.txt中列出的文件排除掉。
rsync -avz source destination --delete    #选项--delete表示复制归档时,删除目的端那些在源端已经不存在的文件。
rsync -Pa -I –size-only –delete –timeout=300 Remote_IP:/home/ubuntu /backup    #使用ssh方式同步远程数据到本地目录

scp:secure copy
scp root@192.168.1.132:/data/log.zip /data/test  #通过ssh将远程文件拷贝回本地
scp -r root@192.168.1.132:/data/test /data/test  #通过ssh将远程目录递归拷贝回本地/data/test目录
scp /data/test.tar.gz ubuntu@192.168.1.75:/data/test  #通过ssh将本地文件拷贝到远程主机
scp -P 4588 ubuntu@www.xxx.com:/data/test.sh /data/test  #选项-P指定端口将远程主机文件拷贝会本地
其他参数选项:
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

----------------------------------------------------------------
定期远程自动增量备份脚本,使用crontab做自动执行
#!/bin/bash
find / -mtime 0 ! -type d > /tmp/backup_list 2> /dev/null #找出当天修改的非目录文件,结果重定向到/tmp/backup_list文件中
cd /tmp
filename=`data"+%F"` #得到当天日期并赋值给变量
tar -T backup_list zcvf ${filename}.back.tar.gz #以给定文件名归档并压缩文件
#将备份文件上传到远程服务器上
ftp -n<<-ALIST
open 192.168.12.12 6789
user xst 123456
binary #设定以二进制方式传输文件
cd /home/xst/backup #进入远程服务器的备份目录
lcd /tmp #进入当前计算机中的/tmp目录
put *.back.tar.gz #推送到远程服务器
bye
ALIST
rm -f ${filename}.back.tar.gz
exit 0
----------------------------------------------------------------

进程:

ps     #查看进程信息
ps -A    #查看当前有哪些进程
ps -f     #参数-f可以显示包含更多的列
ps -e     #显示系统所有进程信息
ps -ax    #同上
ps -ef    #显示比较完整的进程信息。或者ps -ax或ps -axf
ps -eo “%C : %p : %z : %a”|sort -k5 -nr  #按内存从大到小排列进程
ps -eo “%C : %p : %z : %a”|sort -nr    #按cpu利用率从大到小排列进程
ps -eal | awk ‘{ if ($2 == “Z”) {print $4}}’ | sudo kill -9    #清除僵死进程

ps auxw|head -1;ps auxw|sort -rn -k4|head -40  #查看消耗内存最多的前40个进程

ps -ef | grep php-fpm | grep pool | wc -l    #查看服务器上一共开了多少的 php-cgi 进程

ps -ef  | grep docker    #查看docker相关进程

pgrep php-fpm    #查找php-fpm的进程id ,跟 ps -ef | grep php-fpm 同理

kill -l        #打印出信号数和信号名称
kill -s SIGNAL PID   #向指定进程发送信号,SIGNAL要么为信号数,要么为信号名称,如下:
SIGHUP 1:对控制进程或终端进行挂起检测
SIGINT 2:当按下Ctrl+C时发送该信号
SIGKILL 9:用于强行杀死进程
SIGTERM 15:默认用于终止进程
SIGTSTP 20:当按下Ctrl+Z时发送该信号
kill -s SIGKILL PID    #杀死PID对应的进程
kill -9 PID             #同上,杀死PID对应的进程
killall -9 gedit     #通过进程名称杀死进程

killall php-fpm            #杀死所有php-fpm进程

pgrep php-fpm | xargs kill -9   #杀死所有php-fpm的进程id,包括主进程和工作进程,pgrep = ps +grep

pkill -9 php-fpm   # 作用同上, 相当于 pgrep php-fpm | xargs kill -9

pkill php-fpm  #同上

ps -ef | grep nginx | grep -v grep | cut -c 9-15 | xargs kill -s 9   #说明如下

说明:

“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

 后台运行:

nohup  php   test.php  &       #将php test.php 指令挂到后台执行,并且终端不向系统发送hangup信号,即终端关闭了指令依然执行。

setsid   sh    test.sh     #作用同上,原理是使指令的执行进程不属于当前终端,而是属于init进程。故当前终端(进程)关闭,指令依然执行。

(php test.php &)     # 将指令放到括号中,表示用子shell执行。&表示放到后台执行。这样将使指令的执行跳出当前终端进程,作用及原理同上。

上传下载:

sudo apt install lrzsz

sz filename   #将filename文件发送到本地,默认地址:C:\Users\[Administrator]\AppData\Roaming\NetSarang\Xshell\Received Files

rz     #进入一个目录执行rz命令,在弹出框中选择要上传的文件即可

最新文章

  1. touchstart、touchmove、touchend 实现移动端上的触屏拖拽
  2. 联发科发布全球首款搭载Android TV的智能电视系统芯片MT5595
  3. Codeforces
  4. MongoDB(七)MongoDb数据结构
  5. C#抓取天气数据
  6. 简易的IOS位置定位服务
  7. 2013 Multi-University Training Contest 8
  8. iOS 进阶 第九天(0408)
  9. ANDROID_MARS学习笔记_S01原始版_019_SERVICE之Transact
  10. windows环境下VS2013编译openSSL
  11. hdu 4884 TIANKENG’s rice shop(模拟)
  12. 一个经典的PHP验证码类分享
  13. 【LeetCode】187. Repeated DNA Sequences
  14. react native 键盘弹起时必须点击两次才能成功
  15. 【LeetCode每天一题】Swap Nodes in Pairs
  16. 51nod 1405 树的距离之和(dfs)
  17. 796. Rotate String
  18. 【TCP/IP详解 卷一:协议】第十二章 广播和多播
  19. 前端富文本编辑器 vue-html5-editor
  20. HDUOJ----1166敌兵布阵(线段树单点更新)

热门文章

  1. 常见RPC开源框架
  2. luogu 3084 单调队列+dp
  3. Python3 字符串与hex之间的相互转换
  4. 爬虫-通过本地IP地址从中国天气网爬取当前城市天气情况
  5. pytorch multi-gpu train
  6. 解决前后端分离后的Cookie跨域问题
  7. hdu3709 数位dp
  8. 百度上传插件---webuploader的使用
  9. eclipse查看一个方法被谁引用(调用)的快捷键四种方式
  10. IP网际协议