2018年1月

Tor 网络是一个用来保护你的互联网以及隐私的匿名网络。Tor 网络是一组志愿者运营的服务器。Tor 通过在由志愿者运营的分布式中继系统之间跳转来保护互联网通信。这避免了人们窥探我们的网络,他们无法了解我们访问的网站或者用户身在何处,并且也可以让我们访问被屏蔽的网站。

在本教程中,我们将学习在各种 Linux 操作系统上安装 Tor 网络,以及如何使用它来配置我们的程序来保护通信。

推荐阅读:如何在 Linux 上安装 Tor 浏览器(Ubuntu、Mint、RHEL、Fedora、CentOS)

CentOS/RHEL/Fedora

Tor 包是 EPEL 仓库的一部分,所以如果我们安装了 EPEL 仓库,我们可以直接使用 yum 来安装 Tor。如果你需要在您的系统上安装 EPEL 仓库,请使用下列适当的命令(基于操作系统和体系结构):

RHEL/CentOS 7:

$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-11.noarch.rpm

RHEL/CentOS 6 (64 位):

$ sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

RHEL/CentOS 6 (32 位):

$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

安装完成后,我们可以用下面的命令安装 Tor 浏览器:

$ sudo yum install tor

Ubuntu

为了在 Ubuntu 机器上安装 Tor 网络,我们需要添加官方 Tor 仓库。我们需要将仓库信息添加到 /etc/apt/sources.list 中。

$ sudo nano /etc/apt/sources.list

现在根据你的操作系统添加下面的仓库信息:

Ubuntu 16.04:

deb http://deb.torproject.org/torproject.org xenial main
deb-src http://deb.torproject.org/torproject.org xenial main

Ubuntu 14.04

deb http://deb.torproject.org/torproject.org trusty main
deb-src http://deb.torproject.org/torproject.org trusty main

接下来打开终端并执行以下两个命令添加用于签名软件包的 gpg 密钥:

$ gpg -keyserver keys.gnupg.net -recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
$ gpg -export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

现在运行更新并安装 Tor 网络:

$ sudo apt-get update
$ sudo apt-get install tor deb.torproject.org-keyring

Debian

我们可以无需添加任何仓库在 Debian 上安装 Tor 网络。只要打开终端并以 root 身份执行以下命令:

$ apt install tor

Tor 配置

如果你最终目的只是为了保护互联网浏览,而没有其他要求,直接使用 Tor 更好,但是如果你需要保护即时通信、IRC、Jabber 等程序,则需要配置这些应用程序进行安全通信。但在做之前,让我们先看看Tor 网站上提到的警告

  • 不要大流量使用 Tor
  • 不要在 Tor 中使用任何浏览器插件
  • 只使用 HTTPS 版本的网站
  • 不要在线打开通过 Tor 下载的任何文档。
  • 尽可能使用 Tor 桥

现在配置程序来使用 Tor,例如 jabber。首先选择 “SOCKS代理” 而不是使用 HTTP 代理,并使用端口号 9050,或者也可以使用端口 9150(Tor 浏览器使用)。

install tor network

你也可以配置 Firefox 浏览器使用 Tor 网络。打开 Firefox 浏览器,在“常规”选项卡的“首选项”中进入“网络代理”设置,并按以下步骤输入代理:

install tor network

现在你可以在 Firefox 中使用 Tor 网络完全匿名访问了。

这就是我们如何安装 Tor 网络并使用 Tor 浏览互联网的教程。请在下面的评论栏中提出你的问题和建议。


via: http://linuxtechlab.com/learn-install-tor-network-linux/

作者:Shusain 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Youtube-dl 是一个自由开源的命令行视频下载工具,可以用来从 Youtube 等类似的网站上下载视频,目前它支持的网站除了 Youtube 还有 Facebook、Dailymotion、Google Video、Yahoo 等等。它构架于 pygtk 之上,需要 Python 的支持来运行。它支持很多操作系统,包括 Windows、Mac 以及 Unix。Youtube-dl 还有断点续传、下载整个频道或者整个播放清单中的视频、添加自定义的标题、代理等等其他功能。

本文中,我们将来学习如何在 Ubuntu 16.04 上安装并使用 Youtube-dl 和 Youtube-dlg。我们还会学习如何以不同质量,不同格式来下载 Youtube 中的视频。

前置需求

  • 一台运行 Ubuntu 16.04 的服务器。
  • 非 root 用户但拥有 sudo 特权。

让我们首先用下面命令升级系统到最新版:

sudo apt-get update -y
sudo apt-get upgrade -y

然后重启系统应用这些变更。

安装 Youtube-dl

默认情况下,Youtube-dl 并不在 Ubuntu-16.04 仓库中。你需要从官网上来下载它。使用 curl 命令可以进行下载:

首先,使用下面命令安装 curl

sudo apt-get install curl -y

然后,下载 youtube-dl 的二进制包:

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

接着,用下面命令更改 youtube-dl 二进制包的权限:

sudo chmod 755 /usr/bin/youtube-dl

youtube-dl 算是安装好了,现在可以进行下一步了。

使用 Youtube-dl

运行下面命令会列出 youtube-dl 的所有可选项:

youtube-dl --h

youtube-dl 支持多种视频格式,像 Mp4,WebM,3gp,以及 FLV 都支持。你可以使用下面命令列出指定视频所支持的所有格式:

youtube-dl -F https://www.youtube.com/watch?v=j_JgXJ-apXs

如下所示,你会看到该视频所有可能的格式:

[info] Available formats for j_JgXJ-apXs:
format code  extension  resolution note
139          m4a        audio only DASH audio   56k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 756.44KiB
249          webm       audio only DASH audio   56k , opus @ 50k, 724.28KiB
250          webm       audio only DASH audio   69k , opus @ 70k, 902.75KiB
171          webm       audio only DASH audio  110k , vorbis@128k, 1.32MiB
251          webm       audio only DASH audio  122k , opus @160k, 1.57MiB
140          m4a        audio only DASH audio  146k , m4a_dash container, mp4a.40.2@128k (44100Hz), 1.97MiB
278          webm       256x144    144p   97k , webm container, vp9, 24fps, video only, 1.33MiB
160          mp4        256x144    DASH video  102k , avc1.4d400c, 24fps, video only, 731.53KiB
133          mp4        426x240    DASH video  174k , avc1.4d4015, 24fps, video only, 1.36MiB
242          webm       426x240    240p  221k , vp9, 24fps, video only, 1.74MiB
134          mp4        640x360    DASH video  369k , avc1.4d401e, 24fps, video only, 2.90MiB
243          webm       640x360    360p  500k , vp9, 24fps, video only, 4.15MiB
135          mp4        854x480    DASH video  746k , avc1.4d401e, 24fps, video only, 6.11MiB
244          webm       854x480    480p  844k , vp9, 24fps, video only, 7.27MiB
247          webm       1280x720   720p 1155k , vp9, 24fps, video only, 9.21MiB
136          mp4        1280x720   DASH video 1300k , avc1.4d401f, 24fps, video only, 9.66MiB
248          webm       1920x1080  1080p 1732k , vp9, 24fps, video only, 14.24MiB
137          mp4        1920x1080  DASH video 2217k , avc1.640028, 24fps, video only, 15.28MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
43           webm       640x360    medium , vp8.0, vorbis@128k
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)

然后使用 -f 指定你想要下载的格式,如下所示:

youtube-dl -f 18 https://www.youtube.com/watch?v=j_JgXJ-apXs

该命令会下载 640x360 分辨率的 mp4 格式的视频:

[youtube] j_JgXJ-apXs: Downloading webpage
[youtube] j_JgXJ-apXs: Downloading video info webpage
[youtube] j_JgXJ-apXs: Extracting video information
[youtube] j_JgXJ-apXs: Downloading MPD manifest
[download] Destination: B.A. PASS 2 Trailer no 2 _ Filmybox-j_JgXJ-apXs.mp4
[download] 100% of 6.90MiB in 00:47

如果你想以 mp3 音频的格式下载 Youtube 视频,也可以做到:

youtube-dl https://www.youtube.com/watch?v=j_JgXJ-apXs -x --audio-format mp3

你也可以下载指定频道中的所有视频,只需要把频道的 URL 放到后面就行,如下所示:

youtube-dl -citw https://www.youtube.com/channel/UCatfiM69M9ZnNhOzy0jZ41A

若你的网络需要通过代理,那么可以使用 --proxy 来下载视频:

youtube-dl --proxy http://proxy-ip:port https://www.youtube.com/watch?v=j_JgXJ-apXs

若想一条命令下载多个 Youtube 视频,那么首先把所有要下载的 Youtube 视频 URL 存在一个文件中(假设这个文件叫 youtube-list.txt),然后运行下面命令:

youtube-dl -a youtube-list.txt

安装 Youtube-dl GUI

若你想要图形化的界面,那么 youtube-dlg 是你最好的选择。youtube-dlg 是一款由 wxPython 所写的免费而开源的 youtube-dl 界面。

该工具默认也不在 Ubuntu 16.04 仓库中。因此你需要为它添加 PPA。

sudo add-apt-repository ppa:nilarimogard/webupd8

下一步,更新软件包仓库并安装 youtube-dlg

sudo apt-get update -y
sudo apt-get install youtube-dlg -y

安装好 Youtube-dl 后,就能在 Unity Dash 中启动它了:

现在你只需要将 URL 粘贴到上图中的 URL 域就能下载视频了。Youtube-dlg 对于那些不太懂命令行的人来说很有用。

结语

恭喜你!你已经成功地在 Ubuntu 16.04 服务器上安装好了 youtube-dl 和 youtube-dlg。你可以很方便地从 Youtube 及任何 youtube-dl 支持的网站上以任何格式和任何大小下载视频了。


via: https://www.howtoforge.com/tutorial/install-and-use-youtube-dl-on-ubuntu-1604/

作者:Hitesh Jethva 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

bash 别名 alias 只不过是指向命令的快捷方式而已。alias 命令允许用户只输入一个单词就运行任意一个命令或一组命令(包括命令选项和文件名)。执行 alias 命令会显示一个所有已定义别名的列表。你可以在 ~/.bashrc 文件中自定义别名。使用别名可以在命令行中减少输入的时间,使工作更流畅,同时增加生产率。

本文通过 30 个 bash shell 别名的实际案例演示了如何创建和使用别名。

bash alias 的那些事

bash shell 中的 alias 命令的语法是这样的:

alias [alias-name[=string]...]

如何列出 bash 别名

输入下面的 alias 命令

alias

结果为:

alias ..='cd ..'
alias amazonbackup='s3backup'
alias apt-get='sudo apt-get'
...

alias 命令默认会列出当前用户定义好的别名。

如何定义或者创建一个 bash shell 别名

使用下面语法 创建别名

alias name =value
alias name = 'command'
alias name = 'command arg1 arg2' 
alias name = '/path/to/script' 
alias name = '/path/to/script.pl arg1'

举个例子,输入下面命令并回车就会为常用的 clear(清除屏幕)命令创建一个别名 c

alias c = 'clear'

然后输入字母 c 而不是 clear 后回车就会清除屏幕了:

c

如何临时性地禁用 bash 别名

下面语法可以临时性地禁用别名

## path/to/full/command
/usr/bin/clear
## call alias with a backslash ##
\c
## use /bin/ls command and avoid ls alias ##
command ls

如何删除 bash 别名

使用 unalias 命令来删除别名。其语法为:

unalias aliasname
unalias foo

例如,删除我们之前创建的别名 c

unalias c

你还需要用文本编辑器删掉 ~/.bashrc 文件 中的别名定义(参见下一部分内容)。

如何让 bash shell 别名永久生效

别名 c 在当前登录会话中依然有效。但当你登出或重启系统后,别名 c 就没有了。为了防止出现这个问题,将别名定义写入 ~/.bashrc file 中,输入:

vi ~/.bashrc

输入下行内容让别名 c 对当前用户永久有效:

alias c = 'clear'

保存并关闭文件就行了。系统级的别名(也就是对所有用户都生效的别名)可以放在 /etc/bashrc 文件中。请注意,alias 命令内建于各种 shell 中,包括 ksh,tcsh/csh,ash,bash 以及其他 shell。

关于特权权限判断

可以将下面代码加入 ~/.bashrc

# if user is not root, pass all commands via sudo #
if [ $UID -ne 0 ]; then
    alias reboot='sudo reboot'
    alias update='sudo apt-get upgrade'
fi

定义与操作系统类型相关的别名

可以将下面代码加入 ~/.bashrc 使用 case 语句

### Get os name via uname ###
_myos="$(uname)"

### add alias as per os using $_myos ###
case $_myos in
   Linux) alias foo='/path/to/linux/bin/foo';;
   FreeBSD|OpenBSD) alias foo='/path/to/bsd/bin/foo' ;;
   SunOS) alias foo='/path/to/sunos/bin/foo' ;;
   *) ;;
esac

30 个 bash shell 别名的案例

你可以定义各种类型的别名来节省时间并提高生产率。

1:控制 ls 命令的输出

ls 命令列出目录中的内容 而你可以对输出进行着色:

## Colorize the ls output ##
alias ls = 'ls --color=auto'

## Use a long listing format ##
alias ll = 'ls -la'

## Show hidden files ##
alias l.= 'ls -d . .. .git .gitignore .gitmodules .travis.yml --color=auto'

2:控制 cd 命令的行为

## get rid of command not found ##
alias cd..= 'cd ..'

## a quick way to get out of current directory ##
alias ..= 'cd ..'
alias ...= 'cd ../../../'
alias ....= 'cd ../../../../'
alias .....= 'cd ../../../../'
alias .4= 'cd ../../../../'
alias .5= 'cd ../../../../..'

3:控制 grep 命令的输出

grep 命令是一个用于在纯文本文件中搜索匹配正则表达式的行的命令行工具

## Colorize the grep command output for ease of use (good for log files)##
alias grep = 'grep --color=auto'
alias egrep = 'egrep --color=auto'
alias fgrep = 'fgrep --color=auto'

4:让计算器默认开启 math 库

alias bc = 'bc -l'

4:生成 sha1 数字签名

alias sha1 = 'openssl sha1'

5:自动创建父目录

mkdir 命令 用于创建目录:

alias mkdir = 'mkdir -pv'

6:为 diff 输出着色

你可以使用 diff 来一行行第比较文件 而一个名为 colordiff 的工具可以为 diff 输出着色:

# install colordiff package :)
alias diff = 'colordiff'

7:让 mount 命令的输出更漂亮,更方便人类阅读

alias mount = 'mount |column -t'

8:简化命令以节省时间

# handy short cuts #
alias h = 'history' 
alias j = 'jobs -l'

9:创建一系列新命令

alias path = 'echo -e ${PATH//:/\\n}'
alias now = 'date +"%T"'
alias nowtime =now
alias nowdate = 'date +"%d-%m-%Y"'

10:设置 vim 为默认编辑器

alias vi = vim
alias svi = 'sudo vi'
alias vis = 'vim "+set si"'
alias edit = 'vim'

11:控制网络工具 ping 的输出

# Stop after sending count ECHO_REQUEST packets #
alias ping = 'ping -c 5'

# Do not wait interval 1 second, go fast #
alias fastping = 'ping -c 100 -i.2'

12:显示打开的端口

使用 netstat 命令 可以快速列出服务区中所有的 TCP/UDP 端口:

alias ports = 'netstat -tulanp'

13:唤醒休眠的服务器

Wake-on-LAN (WOL) 是一个以太网标准,可以通过网络消息来开启服务器。你可以使用下面别名来快速激活 nas 设备 以及服务器:

## replace mac with your actual server mac address #
alias wakeupnas01 = '/usr/bin/wakeonlan 00:11:32:11:15:FC'
alias wakeupnas02 = '/usr/bin/wakeonlan 00:11:32:11:15:FD'
alias wakeupnas03 = '/usr/bin/wakeonlan 00:11:32:11:15:FE'

14:控制防火墙 (iptables) 的输出

Netfilter 是一款 Linux 操作系统上的主机防火墙。它是 Linux 发行版中的一部分,且默认情况下是激活状态。这里列出了大多数 Liux 新手防护入侵者最常用的 iptables 方法

## shortcut for iptables and pass it via sudo#
alias ipt = 'sudo /sbin/iptables'

# display all rules #
alias iptlist = 'sudo /sbin/iptables -L -n -v --line-numbers'
alias iptlistin = 'sudo /sbin/iptables -L INPUT -n -v --line-numbers'
alias iptlistout = 'sudo /sbin/iptables -L OUTPUT -n -v --line-numbers'
alias iptlistfw = 'sudo /sbin/iptables -L FORWARD -n -v --line-numbers'
alias firewall =iptlist

15:使用 curl 调试 web 服务器 / CDN 上的问题

# get web server headers #
alias header = 'curl -I'

# find out if remote server supports gzip / mod_deflate or not #
alias headerc = 'curl -I --compress'

16:增加安全性

# do not delete / or prompt if deleting more than 3 files at a time #
alias rm = 'rm -I --preserve-root'

# confirmation #
alias mv = 'mv -i'
alias cp = 'cp -i'
alias ln = 'ln -i' 

# Parenting changing perms on / #
alias chown = 'chown --preserve-root'
alias chmod = 'chmod --preserve-root'
alias chgrp = 'chgrp --preserve-root'

17:更新 Debian Linux 服务器

apt-get 命令 用于通过因特网安装软件包 (ftp 或 http)。你也可以一次性升级所有软件包:

# distro specific - Debian / Ubuntu and friends #
# install with apt-get
alias apt-get= "sudo apt-get"
alias updatey = "sudo apt-get --yes"

# update on one command
alias update = 'sudo apt-get update && sudo apt-get upgrade'

18:更新 RHEL / CentOS / Fedora Linux 服务器

yum 命令 是 RHEL / CentOS / Fedora Linux 以及其他基于这些发行版的 Linux 上的软件包管理工具:

## distrp specifc RHEL/CentOS ##
alias update = 'yum update'
alias updatey = 'yum -y update'

19:优化 sudo 和 su 命令

# become root #
alias root = 'sudo -i' 
alias su = 'sudo -i'

20:使用 sudo 执行 halt/reboot 命令

shutdown 命令 会让 Linux / Unix 系统关机:

# reboot / halt / poweroff
alias reboot = 'sudo /sbin/reboot'
alias poweroff = 'sudo /sbin/poweroff' 
alias halt = 'sudo /sbin/halt'
alias shutdown = 'sudo /sbin/shutdown'

21:控制 web 服务器

# also pass it via sudo so whoever is admin can reload it without calling you #
alias nginxreload = 'sudo /usr/local/nginx/sbin/nginx -s reload' 
alias nginxtest = 'sudo /usr/local/nginx/sbin/nginx -t'
alias lightyload = 'sudo /etc/init.d/lighttpd reload' 
alias lightytest = 'sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -t'
alias httpdreload = 'sudo /usr/sbin/apachectl -k graceful' 
alias httpdtest = 'sudo /usr/sbin/apachectl -t && /usr/sbin/apachectl -t -D DUMP_VHOSTS'

22:与备份相关的别名

# if cron fails or if you want backup on demand just run these commands #
# again pass it via sudo so whoever is in admin group can start the job #
# Backup scripts #
alias backup = 'sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type local --taget /raid1/backups' 
alias nasbackup = 'sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01'
alias s3backup = 'sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01 --auth /home/scripts/admin/.authdata/amazon.keys'
alias rsnapshothourly = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf'
alias rsnapshotdaily = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf'
alias rsnapshotweekly = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' 
alias rsnapshotmonthly = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' 
alias amazonbackup =s3backup

23:桌面应用相关的别名 - 按需播放的 avi/mp3 文件

## play video files in a current directory ##
# cd ~/Download/movie-name
# playavi or vlc
alias playavi = 'mplayer *.avi' 
alias vlc = 'vlc *.avi' 

# play all music files from the current directory #
alias playwave = 'for i in *.wav; do mplayer "$i"; done'
alias playogg = 'for i in *.ogg; do mplayer "$i"; done'
alias playmp3 = 'for i in *.mp3; do mplayer "$i"; done'

# play files from nas devices #
alias nplaywave = 'for i in /nas/multimedia/wave/*.wav; do mplayer "$i"; done'
alias nplayogg = 'for i in /nas/multimedia/ogg/*.ogg; do mplayer "$i"; done' 
alias nplaymp3 = 'for i in /nas/multimedia/mp3/*.mp3; do mplayer "$i"; done'

# shuffle mp3/ogg etc by default # 
alias music = 'mplayer --shuffle *'

24:设置系统管理相关命令的默认网卡

vnstat 一款基于终端的网络流量检测器dnstop 是一款分析 DNS 流量的终端工具tcptrack 和 iftop 命令显示 TCP/UDP 连接方面的信息,它监控网卡并显示其消耗的带宽。

## All of our servers eth1 is connected to the Internets via vlan / router etc ##
alias dnstop = 'dnstop -l 5 eth1'
alias vnstat = 'vnstat -i eth1'
alias iftop = 'iftop -i eth1' 
alias tcpdump = 'tcpdump -i eth1' 
alias ethtool = 'ethtool eth1' 

# work on wlan0 by default #
# Only useful for laptop as all servers are without wireless interface
alias iwconfig = 'iwconfig wlan0'

25:快速获取系统内存,cpu 使用,和 gpu 内存相关信息

## pass options to free ##
alias meminfo = 'free -m -l -t' 

## get top process eating memory
alias psmem = 'ps auxf | sort -nr -k 4' 
alias psmem10 = 'ps auxf | sort -nr -k 4 | head -10'

## get top process eating cpu ##
alias pscpu = 'ps auxf | sort -nr -k 3'
alias pscpu10 = 'ps auxf | sort -nr -k 3 | head -10' 

## Get server cpu info ##
alias cpuinfo = 'lscpu'

## older system use /proc/cpuinfo ##
##alias cpuinfo='less /proc/cpuinfo' ##

## get GPU ram on desktop / laptop##
alias gpumeminfo = 'grep -i --color memory /var/log/Xorg.0.log'

26:控制家用路由器

curl 命令可以用来 重启 Linksys 路由器

# Reboot my home Linksys WAG160N / WAG54 / WAG320 / WAG120N Router / Gateway from *nix.
alias rebootlinksys = "curl -u 'admin:my-super-password' 'http://192.168.1.2/setup.cgi?todo=reboot'"

# Reboot tomato based Asus NT16 wireless bridge
alias reboottomato = "ssh [email protected] /sbin/reboot"

27:wget 默认断点续传

GNU wget 是一款用来从 web 下载文件的自由软件。它支持 HTTP,HTTPS,以及 FTP 协议,而且它也支持断点续传:

## this one saved by butt so many times ##
alias wget = 'wget -c'

28:使用不同浏览器来测试网站

## this one saved by butt so many times ##
alias ff4 = '/opt/firefox4/firefox' 
alias ff13 = '/opt/firefox13/firefox' 
alias chrome = '/opt/google/chrome/chrome' 
alias opera = '/opt/opera/opera'

#default ff
alias ff =ff13

#my default browser
alias browser =chrome

29:关于 ssh 别名的注意事项

不要创建 ssh 别名,代之以 ~/.ssh/config 这个 OpenSSH SSH 客户端配置文件。它的选项更加丰富。下面是一个例子:

Host server10
 Hostname 1.2.3.4
 IdentityFile ~/backups/.ssh/id_dsa
 user foobar
 Port 30000
 ForwardX11Trusted yes
 TCPKeepAlive yes

然后你就可以使用下面语句连接 server10 了:

$ ssh server10

30:现在该分享你的别名了

## set some other defaults ##
alias df = 'df -H'
alias du = 'du -ch'

# top is atop, just like vi is vim
alias top = 'atop'

## nfsrestart - must be root ##
## refresh nfs mount / cache etc for Apache ##
alias nfsrestart = 'sync && sleep 2 && /etc/init.d/httpd stop && umount netapp2:/exports/http && sleep 2 && mount -o rw,sync,rsize=32768,wsize=32768,intr,hard,proto=tcp,fsc natapp2:/exports /http/var/www/html && /etc/init.d/httpd start'

## Memcached server status ##
alias mcdstats = '/usr/bin/memcached-tool 10.10.27.11:11211 stats'
alias mcdshow = '/usr/bin/memcached-tool 10.10.27.11:11211 display'

## quickly flush out memcached server ##
alias flushmcd = 'echo "flush_all" | nc 10.10.27.11 11211'

## Remove assets quickly from Akamai / Amazon cdn ##
alias cdndel = '/home/scripts/admin/cdn/purge_cdn_cache --profile akamai'
alias amzcdndel = '/home/scripts/admin/cdn/purge_cdn_cache --profile amazon'

## supply list of urls via file or stdin
alias cdnmdel = '/home/scripts/admin/cdn/purge_cdn_cache --profile akamai --stdin' 
alias amzcdnmdel = '/home/scripts/admin/cdn/purge_cdn_cache --profile amazon --stdin'

总结

本文总结了 *nix bash 别名的多种用法:

  1. 为命令设置默认的参数(例如通过 alias ethtool='ethtool eth0' 设置 ethtool 命令的默认参数为 eth0)。
  2. 修正错误的拼写(通过 alias cd..='cd ..'cd.. 变成 cd ..)。
  3. 缩减输入。
  4. 设置系统中多版本命令的默认路径(例如 GNU/grep 位于 /usr/local/bin/grep 中而 Unix grep 位于 /bin/grep 中。若想默认使用 GNU grep 则设置别名 grep='/usr/local/bin/grep' )。
  5. 通过默认开启命令(例如 rmmv 等其他命令)的交互参数来增加 Unix 的安全性。
  6. 为老旧的操作系统(比如 MS-DOS 或者其他类似 Unix 的操作系统)创建命令以增加兼容性(比如 alias del=rm)。

我已经分享了多年来为了减少重复输入命令而使用的别名。若你知道或使用的哪些 bash/ksh/csh 别名能够减少输入,请在留言框中分享。


via: https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html

作者:nixCraft 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

what are bitcoins

编者注:本文是一篇比较老的文章,因此文章中有一些陈旧信息,分享此文是希望可让大家对比特币有一定的了解。

比特币 Bitcoin 是一种数字货币或者说是电子现金,依靠点对点技术来完成交易。 由于使用点对点技术作为主要网络,比特币提供了一个类似于 管制经济 managed economy 的社区。 这就是说,比特币消除了货币管理的集中式管理方式,促进了货币的社区管理。 大部分比特币数字现金的挖掘和管理软件也是开源的。

第一个比特币软件是由 中本聪 Satoshi Nakamoto 开发的,基于开源的密码协议。 比特币最小单位被称为 Satoshi ,它基本上是一个比特币的百万分之一(0.00000001 BTC)。

人们不能低估比特币在数字经济中消除的界限。 例如,比特币消除了由中央机构对货币进行的管理控制,并将控制和管理提供给整个社区。 此外,比特币基于开放源代码密码协议的事实使其成为一个开放的领域,其中存在价值波动、通货紧缩和通货膨胀等严格的活动。 当许多互联网用户正在意识到他们在网上完成交易的隐私性时,比特币正在变得比以往更受欢迎。 但是,对于那些了解暗网及其工作原理的人们,可以确认有些人早就开始使用它了。

不利的一面是,比特币在匿名支付方面也非常安全,可能会对安全或个人健康构成威胁。 例如,暗网市场是进口药物甚至武器的主要供应商和零售商。 在暗网中使用比特币有助于这种犯罪活动。 尽管如此,如果使用得当,比特币有许多的好处,可以消除一些由于集中的货币代理管理导致的经济上的谬误。 另外,比特币允许在世界任何地方交换现金。 比特币的使用也可以减少货币假冒、印刷或贬值。 同时,依托对等网络作为骨干网络,促进交易记录的分布式权限,交易会更加安全。

比特币的其他优点包括:

  • 在网上商业世界里,比特币促进资金安全和完全控制。这是因为买家受到保护,以免商家可能想要为较低成本的服务额外收取钱财。买家也可以选择在交易后不分享个人信息。此外,由于隐藏了个人信息,也就保护了身份不被盗窃。
  • 对于主要的常见货币灾难,比如如丢失、冻结或损坏,比特币是一种替代品。但是,始终都建议对比特币进行备份并使用密码加密。
  • 使用比特币进行网上购物和付款时,收取的费用少或者不收取。这就提高了使用时的可承受性。
  • 与其他电子货币不同,商家也面临较少的欺诈风险,因为比特币交易是无法逆转的。即使在高犯罪率和高欺诈的时刻,比特币也是有用的,因为在公开的公共总账(区块链)上难以对付某个人。
  • 比特币货币也很难被操纵,因为它是开源的,密码协议是非常安全的。
  • 交易也可以随时随地进行验证和批准。这是数字货币提供的灵活性水准。

还可以阅读 - Bitkey:专用于比特币交易的 Linux 发行版

如何挖掘比特币和完成必要的比特币管理任务的应用程序

在数字货币中,比特币挖矿和管理需要额外的软件。有许多开源的比特币管理软件,便于进行支付,接收付款,加密和备份比特币,还有很多的比特币挖掘软件。有些网站,比如:通过查看广告赚取免费比特币的 Freebitcoin,MoonBitcoin 是另一个可以免费注册并获得比特币的网站。但是,如果有空闲时间和相当多的人脉圈参与,会很方便。有很多提供比特币挖矿的网站,可以轻松注册然后开始挖矿。其中一个主要秘诀就是尽可能引入更多的人构建成一个大型的网络。

与比特币一起使用时需要的应用程序包括比特币钱包,使得人们可以安全的持有比特币。这就像使用实物钱包来保存硬通货币一样,而这里是以数字形式存在的。钱包可以在这里下载 —— 比特币-钱包。其他类似的应用包括:与比特币钱包类似的区块链

下面的屏幕截图分别显示了 Freebitco 和 MoonBitco 这两个挖矿网站。

freebitco bitcoin mining site

moonbitcoin bitcoin mining site

获得比特币的方式多种多样。其中一些包括比特币挖矿机的使用,比特币在交易市场的购买以及免费的比特币在线采矿。比特币可以在 MtGox(LCTT 译注:本文比较陈旧,此交易所已经倒闭),bitNZBitstampBTC-EVertEx 等等这些网站买到,这些网站都提供了开源开源应用程序。这些应用包括:Bitminter、5OMinerBFG Miner 等等。这些应用程序使用一些图形卡和处理器功能来生成比特币。在个人电脑上开采比特币的效率在很大程度上取决于显卡的类型和采矿设备的处理器。(LCTT 译注:目前个人挖矿已经几乎毫无意义了)此外,还有很多安全的在线存储用于备份比特币。这些网站免费提供比特币存储服务。比特币管理网站的例子包括:xapo , BlockChain 等。在这些网站上注册需要有效的电子邮件和电话号码进行验证。 Xapo 通过电话应用程序提供额外的安全性,无论何时进行新的登录都需要做请求验证。

比特币的缺点

使用比特币数字货币所带来的众多优势不容忽视。 但是,由于比特币还处于起步阶段,因此遇到了几个阻力点。 例如,大多数人没有完全意识到比特币数字货币及其工作方式。 缺乏意识可以通过教育和意识的创造来缓解。 比特币用户也面临波动,因为比特币的需求量高于可用的货币数量。 但是,考虑到更长的时间,很多人开始使用比特币的时候,波动性会降低。

改进点

基于比特币技术的起步,仍然有变化的余地使其更安全更可靠。 考虑到更长的时间,比特币货币将会发展到足以提供作为普通货币的灵活性。 为了让比特币成功,除了给出有关比特币如何工作及其好处的信息之外,还需要更多人了解比特币。


via: http://www.linuxandubuntu.com/home/things-you-need-to-know-about-bitcoins

作者:LINUXANDUBUNTU 译者:Flowsnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

有时你会发现需要格式化某个文本文件中的内容。比如,该文本文件每行一个单词,而任务是把所有的单词都放在同一行。当然,你可以手工来做,但没人喜欢手工做这么耗时的工作。而且,这只是一个例子 - 事实上的任务可能千奇百怪。

好在,有一个命令可以满足至少一部分的文本格式化的需求。这个工具就是 fmt。本教程将会讨论 fmt 的基本用法以及它提供的一些主要功能。文中所有的命令和指令都在 Ubuntu 16.04LTS 下经过了测试。

Linux fmt 命令

fmt 命令是一个简单的文本格式化工具,任何人都能在命令行下运行它。它的基本语法为:

fmt [-WIDTH] [OPTION]... [FILE]...

它的 man 页是这么说的:

重新格式化文件中的每一个段落,将结果写到标准输出。选项 -WIDTH--width=DIGITS 形式的缩写。

下面这些问答方式的例子应该能让你对 fmt 的用法有很好的了解。

Q1、如何使用 fmt 来将文本内容格式成同一行?

使用 fmt 命令的基本形式(省略任何选项)就能做到这一点。你只需要将文件名作为参数传递给它。

fmt [file-name]

下面截屏是命令的执行结果:

format contents of file in single line

你可以看到文件中多行内容都被格式化成同一行了。请注意,这并不会修改原文件(file1)。

Q2、如何修改最大行宽?

默认情况下,fmt 命令产生的输出中的最大行宽为 75。然而,如果你想的话,可以用 -w 选项进行修改,它接受一个表示新行宽的数字作为参数值。

fmt -w [n] [file-name]

下面这个例子把行宽削减到了 20:

change maximum line width

Q3、如何让 fmt 突出显示第一行?

这是通过让第一行的缩进与众不同来实现的,你可以使用 -t 选项来实现。

fmt -t [file-name]

make fmt highlight the first line

Q4、如何使用 fmt 拆分长行?

fmt 命令也能用来对长行进行拆分,你可以使用 -s 选项来应用该功能。

fmt -s [file-name]

下面是一个例子:

make fmt split long lines

Q5、如何在单词与单词之间,句子之间用空格分开?

fmt 命令提供了一个 -u 选项,这会在单词与单词之间用单个空格分开,句子之间用两个空格分开。你可以这样用:

fmt -u [file-name]

注意,在我们的案例中,这个功能是默认开启的。

总结

没错,fmt 提供的功能不多,但不代表它的应用就不广泛。因为你永远不知道什么时候会用到它。在本教程中,我们已经讲解了 fmt 提供的主要选项。若想了解更多细节,请查看该工具的 man 页


via: https://www.howtoforge.com/linux-fmt-command/

作者:Himanshu Arora 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

交换分区在物理内存(RAM)被填满时用来保持内存中的内容。当 RAM 被耗尽,Linux 会将内存中不活动的页移动到交换空间中,从而空出内存给系统使用。虽然如此,但交换空间不应被认为是物理内存的替代品。

大多数情况下,建议交换内存的大小为物理内存的 1 到 2 倍。也就是说如果你有 8GB 内存, 那么交换空间大小应该介于8-16 GB。

若系统中没有配置交换分区,当内存耗尽后,系统可能会杀掉正在运行中的进程/应用,从而导致系统崩溃。在本文中,我们将学会如何为 Linux 系统添加交换分区,我们有两个办法:

  • 使用 fdisk 命令
  • 使用 fallocate 命令

第一个方法(使用 fdisk 命令)

通常,系统的第一块硬盘会被命名为 /dev/sda,而其中的分区会命名为 /dev/sda1/dev/sda2。 本文我们使用的是一块有两个主分区的硬盘,两个分区分别为 /dev/sda1/dev/sda2,而我们使用 /dev/sda3 来做交换分区。

首先创建一个新分区,

$ fdisk /dev/sda

n 来创建新分区。系统会询问你从哪个柱面开始,直接按回车键使用默认值即可。然后系统询问你到哪个柱面结束, 这里我们输入交换分区的大小(比如 1000MB)。这里我们输入 +1000M

swap

现在我们创建了一个大小为 1000MB 的磁盘了。但是我们并没有设置该分区的类型,我们按下 t 然后回车,来设置分区类型。

现在我们要输入分区编号,这里我们输入 3,然后输入磁盘分类号,交换分区的分区类型为 82 (要显示所有可用的分区类型,按下 l ) ,然后再按下 w 保存磁盘分区表。

swap

再下一步使用 mkswap 命令来格式化交换分区:

$ mkswap /dev/sda3

然后激活新建的交换分区:

$ swapon /dev/sda3

然而我们的交换分区在重启后并不会自动挂载。要做到永久挂载,我们需要添加内容到 /etc/fstab 文件中。打开 /etc/fstab 文件并输入下面行:

$ vi /etc/fstab

/dev/sda3 swap  swap  default  0  0

保存并关闭文件。现在每次重启后都能使用我们的交换分区了。

第二种方法(使用 fallocate 命令)

我推荐用这种方法因为这个是最简单、最快速的创建交换空间的方法了。fallocate 是最被低估和使用最少的命令之一了。 fallocate 命令用于为文件预分配块/大小。

使用 fallocate 创建交换空间,我们首先在 / 目录下创建一个名为 swap_space 的文件。然后分配 2GB 到 swap_space 文件:

$ fallocate -l 2G /swap_space

我们运行下面命令来验证文件大小:

$ ls -lh /swap_space

然后更改文件权限,让 /swap_space 更安全:

$ chmod 600 /swap_space

这样只有 root 可以读写该文件了。我们再来格式化交换分区(LCTT 译注:虽然这个 swap_space 是个文件,但是我们把它当成是分区来挂载):

$ mkswap /swap_space

然后启用交换空间:

$ swapon -s

每次重启后都要重新挂载磁盘分区。因此为了使之持久化,就像上面一样,我们编辑 /etc/fstab 并输入下面行:

/swap_space swap  swap  sw  0  0 

保存并退出文件。现在我们的交换分区会一直被挂载了。我们重启后可以在终端运行 free -m 来检查交换分区是否生效。

我们的教程至此就结束了,希望本文足够容易理解和学习,如果有任何疑问欢迎提出。


via: http://linuxtechlab.com/create-swap-using-fdisk-fallocate/

作者:Shusain 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出