sha256sumコマンドを使うと、ダウンロードしたファイルのチェックができます。他にも md5sum、sha1sumコマンドがあります。
たとえば、PyCharm Community Editionの2016.2.2バージョンは、https://download.jetbrains.com/python/pycharm-community-2016.2.2.tar.gz からダウンロードができます。ここで、このファイルのチェックサムファイルが https://download.jetbrains.com/python/pycharm-community-2016.2.2.tar.gz.sha256 で提供されています。まずは、この2つのファイルをダウンロードしましょう。
$ cat << EOS > download.sh f=pycharm-community-2016.2.2.tar.gz url="https://download.jetbrains.com/python/\${f}" sha256_f="\${f}.sha256" sha256_url="\${url}.sha256" curl -L -o \${f} -O \${url} curl -L -o \${sha256_f} -O \${sha256_url} EOS $ sh download.sh
次のような方法で、ファイルのチェックができます。cオプションがチェックで、quietオプションが結果出力を抑制するオプションです。
$ cat << EOS > check.sh f=pycharm-community-2016.2.2.tar.gz sha256_f="\${f}.sha256" sha256sum -c --quiet \${sha256_f} if [ \$? -ne 0 ]; then echo "sha256sum error" return fi echo "sha256sum OK" EOS $ sh check.sh
ちなみに、sha256ファイルを作成するには、sha256sumコマンドをファイルに対して次のように実行します。ここでは、local_pycharm-community-2016.2.2.tar.gz.sha256というファイル名で生成しています。bオプションはバイナリーモードの指定で、こうすると、sha256ファイル内のファイル名に「*」がつきます。bオプションをつけないと、ファイル名に「*」がつきません。
$ cat << EOS > gen_sha256.sh f=pycharm-community-2016.2.2.tar.gz sha256_f="\${f}.sha256" sha256sum -b \${f} > "local_\${sha256_f}" EOS $ sh gen_sha256.sh
diffコマンドでpycharm-community-2016.2.2.tar.gz.sha256とlocal_pycharm-community-2016.2.2.tar.gz.sha256とに差分がなければ、ファイルは一致しているということになります。
$ diff \ pycharm-community-2016.2.2.tar.gz.sha256 \ local_pycharm-community-2016.2.2.tar.gz.sha256
ちなみに、PyCharmの本には下記があります。
下記でもPyCharmを紹介しています。