linux常用技巧(一):后台下载

“java常见小错误”系列文章推荐:
上一篇:java小技巧(二):JAVA 交集,差集,并集
前文推荐:java常见小错误(一):变量类型自动转换与强制转换
java小技巧(一):进制转换
java小技巧(三):List和Array之间的转换


【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:linux常用技巧(一):后台下载;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;

文章目录

  • linux常用技巧(一):后台下载
  • 一、后台执行
  • 二、多任务后台下载
    • 1、wget
    • 2、Curl
    • 3、Axel
    • 4、Youtube-dl
    • 5、Aria2
      • 针对centOS
    • 6、movgrab
    • 7、rtorrent
  • 三、用户变量

一、后台执行

  1. cmd &
cat a.txt > a.file 2>&1 &
  1. nohup cmd &
nohup cat a.txt > a.file 2>&1 &

0表示标准输入
1表示标准输出
2表示标准错误
>表示覆盖
>>表示追加

& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。

1>&2 意思是把标准输出重定向到标准错误.

2>&1 意思是把标准错误输出重定向到标准输出。

&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

二、多任务后台下载

1、wget

后台下载文件:

# wget -b http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

如果互联网连接出现中断,恢复下载。

# wget -c http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

从某个密码保护的ftp软件库下载文件。

# wget --ftp-user=<user_name> --ftp-password=<Give_password> Download-url-address

有时候我们需要让linux下载多个文件,并且后台下载,不去占用当前控制台。

比如我们需要下载中文维基的三个文件:

1 https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2
2 https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pagelinks.sql.gz
3 https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-categorylinks.sql.gz
将这三个存入 download_urls.txt

同时,编写wget命令文件,现在对wget命令进行解析。

#!/bin/sh
wget -c -b -i download_urls.txt

-c 可持续断点下载,中途失败可续接。

-i 读取后面的download_urls.txt 文件。这个文件就是上面写的url文件。

-b 后台。

2、Curl

借助-o选项,提供名称,下载文件会以该名称保存;如使用-O选项,文件就会以原始名称保存。

# curl -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

使用一个curl命令,下载多个文件。

# curl -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_2mb.mp4 -O

3、Axel

这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。

安装

apt-get install axel

例子

axel http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
# Initializing download: http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

4、Youtube-dl

这是一款专用工具,可以通过命令行从YouTube下载视频,这是个易于安装的程序包,可用来下载一大批文件。

安装

curl https://yt-dl.org/latest/youtube-dl -o /usr/local/bin/youtube-dl

变更文件权限:

sudo chmod a+rx /usr/local/bin/youtube-dl

例子

下载一些视频,只要为命令添加视频URL参数。

youtube-dl https://www.youtube.com/watch?v=UZW2hs-2OAI

想下载视频列表,将所有URL拷贝到一个文本文件中,然后运行下面这个命令:

youtube-dl -a <name_of_your_text_file.txt>

5、Aria2

这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。

安装

apt-get install aria2

针对centOS

yum install aria2

例子

aria2c http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

6、movgrab

这是用于下载视频的另一款高效工具,使用movgrab的优点在于,它不仅可以从YouTube下载视频,还可以从几乎所有的知名网站下载视频,比如metacafe、dailiymotion、 ehow和vobx等。这是一款很快速的工具,可以定义影片格式,还可以恢复下载。

安装可以从该链接下载程序包。解压缩程序包:

 tar -xvf movgrab-1.2.1.tar.gz cd movgrab-1.2.1 ./configure make make install

使用命令下载程序包,下载名称指定的文件:

movgrab Youtube_url

指定输出文件:

 movgrab -o example.mp4 video_url

使用maovgrab –h,即可了解更多的细节。

7、rtorrent

这种知名的命令行torrent客户软件随附在所有Linux发行版中,它需要screen实用工具才能正常运行。

安装

安装screen:

 apt-get install screen

安装rtorrent :

 apt-get install rtorrent

例子

 rtorrent example.torrent

还有更多参考这篇文章:linux下载工具

三、用户变量

在脚本中可以使用很多变量来计算参数并显示有关脚本本身的信息。
$1、$2、$3 等表示脚本的第一个、第二个、第三个等参数。
$# 表示参数的数量。
$* 表示所有参数。
$0 表示脚本的名称。
$? 表示先前运行的命令的返回码(0 代表成功)。
$$ 显示脚本的进程 ID。
$PPID 显示 shell 的进程 ID(脚本的父进程)。

其中一些变量也适用于命令行,但显示相关信息:
$0 显示你正在使用的 shell 的名称(例如,-bash)。
$$ 显示 shell 的进程 ID。
$PPID 显示 shell 的父进程的进程 ID(对我来说,是 sshd)。

#!/bin/bash
echo $0
echo $1
echo $2
echo $#
echo $*
echo $?
echo $$
echo $PPID

当我们调用这个脚本时,我们会看到如下内容:

$ tryme one two three
/home/shs/bin/tryme     <== 脚本名称
one                     <== 第一个参数
two                     <== 第二个参数
3                       <== 参数的个数
one two three           <== 所有的参数
0                       <== 上一条 echo 命令的返回码
10410                   <== 脚本的进程 ID
10109                   <== 父进程 ID

检查是否已提供参数:

if [ $# == 0 ]; thenecho "$0 filename"exit 1
fi

检查特定进程是否正在运行:

ps -ef | grep apache2 > /dev/null
if [ $? != 0 ]; thenecho Apache is not runningexit
fi

linux常用技巧(一):后台下载相关推荐

  1. THREE DAY | 网络安全之Linux(包含Linux常用命令,镜像下载,docker命令等内容)超详细!!!

    THREE DAY | 网络安全之Linux 一.Linux介绍 1.Linux系统简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多 ...

  2. linux 常用技巧脚本分享

    1.按内存从大到小排列进程: ps -eo "%C : %p : %z : %a"|sort -k5 -nr 2.查看当前有哪些进程:查看进程打开的文件: ps -A :lsof ...

  3. Linux 常用技巧记录

    1. 分卷压缩解压 tar -czf file | split -b 2G -d -file.tar.gz #压缩**file目录**,并且每个目录大小为2G左右. cat file.tar.gz*| ...

  4. Linux Shell常用技巧(九) 系统运行进程

    Linux Shell常用技巧(九) 系统运行进程 十九.  和系统运行进程相关的Shell命令:         1.  进程监控命令(ps):       要对进程进行监测和控制,首先必须要了解当 ...

  5. linux常用命令速查手册PDF下载

    Linux常用命令速查手册 需要该PDF文档的朋友扫码关注下方二维码[入门小站],后台回复 「1001」 自取 点击下面标题即可获取对应资料 LeetCode刷题开源手册 LeetCode题解[jav ...

  6. Linux Shell常用技巧(三) sed

    Linux Shell常用技巧(三) sed 八.流编辑器sed 8.1 sed简介 sed是stream editor的缩写,一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区 ...

  7. Linux Shell常用技巧(目录)

    Linux Shell常用技巧(一) http://liuxuyang.blog.51cto.com/2546552/1289413 一. 特殊文件: /dev/null和/dev/tty 二. 简单 ...

  8. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

  9. linux history 看更多历史记录_Linux历史记录history常用技巧

    Linux历史记录history常用技巧 Pain #1 - 历史记录不带时间戳,不知道命令是什么时候发生的 默认情况下 history 命令直接显示用户执行的命令而不会输出运行命令时的日期和时间,即 ...

最新文章

  1. RMAN干掉热备份#OCP试验1#
  2. :empty css 可以用在哪些标签,CSS伪类:empty让我眼前一亮(实例代码)
  3. 语言 山东专升本 真题_专升本英语真题
  4. include 路由 php,PHP简单路由
  5. 《美国数学建模竞赛》统计数据下载网址【微信公众号:高数叔】
  6. Flink countWindow窗口
  7. 一个常见的物理现象,直今还是未解之谜!
  8. 这一领域,互联网巨头纷纷入局!
  9. batchplot插件用法_Batchplot怎么安装及使用?Batchplot的安装方法及使用方法介绍
  10. python输出时间格式_python中日期和时间格式化输出的方法小结_python
  11. 代码合并工具_合并上千个Excel表格,1秒就能完成
  12. 刘强东“撒币”100亿;支付宝违规被罚18万;摩拜产品不合格 | 一周业界事
  13. 学习记录:小程序图片上传至服务器
  14. 从网易云音乐看新媒体内容运营法则
  15. office之自定义尾注样式:中括号的应用
  16. 区块链技术培训—从技术小白到年薪百万区块链工程师的进阶之路
  17. Excel制作+导出
  18. 【python】RuntimeError: Set changed size during iteration 问题解决
  19. 水仙花数的实现(python)
  20. 很牛的求职经历(转)

热门文章

  1. Android TV与机顶盒
  2. 如何在VMware虚拟机上安装运行Mac OS系统(详细图文教程)
  3. To B商业史系列 01:在线办公的潮起潮落
  4. openCV中基于HSV的颜色判断(红色为例)
  5. 堆区(Heap)详细介绍
  6. 海洋浮标在线监测系统由什么组成?
  7. 2022-08-09 mysql/stonedb-慢SQL-Q16分析
  8. 【drawio笔记】向ERD表,列表和UML类添加行
  9. c语言程序设计拉丁方阵结构图,C语言实例之拉丁方阵
  10. 计算机视觉 马尔_基于视觉AI的智能车牌识别相机,识别更精准功能更强大