<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ YUUSUKE OKAMOTO - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ エキスパートの手によるプログラミングチュートリアル記事を幅広く掲載。ウェブ開発、データサイエンス、DevOps、セキュリティ、開発者としてのキャリアなどについて学びましょう。 ]]>
        </description>
        <link>https://www.freecodecamp.org/japanese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ YUUSUKE OKAMOTO - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 24 May 2026 13:55:14 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/author/yuusuke/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ sudo apt-get update と upgrade の違いとは？ ]]>
                </title>
                <description>
                    <![CDATA[ sudo apt-get update と sudo apt-get upgrade は、Debian や Debian ベースのディストリビューションでパッケージを最新の状態に保つために利用できるコマンドです。 これらのコマンドは Linux 管理者や DevOps に携わる人にとってはよく使うものですが、コマンドラインを頻繁に使用しない人でも知っておくと役に立ちます。 この記事では、これらのコマンドの動作や使用方法、よくある質問などについて解説します。 sudo apt-get update と sudo apt-get upgrade の違いは何ですか？ 主な違いは、sudo apt-get update  はディストリビューションのソフトウェアリポジトリやあらかじめ設定されたサードパーティリポジトリから、最新バージョンのパッケージの一覧を取得することです。つまり、それぞれのパッケージや依存関係の最新バージョンを確認するだけで、更新内容を実際にダウンロードしたりインストールすることはありません。 一方、sudo apt-get upgrade は、システム上の古くなったパ ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/sudo-apt-get-update-vs-upgrade-what-is-the-difference/</link>
                <guid isPermaLink="false">67864ebfd7aa1e04405877c0</guid>
                
                    <category>
                        <![CDATA[ Bash ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ubuntu ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Fri, 17 Jan 2025 23:04:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2025/01/gabriel-heinzer-4Mw7nkQDByk-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/sudo-apt-get-update-vs-upgrade-what-is-the-difference/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">sudo apt-get update vs upgrade – What is the Difference?</a>
      </p><p><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> は、Debian や Debian ベースのディストリビューションでパッケージを最新の状態に保つために利用できるコマンドです。</p><p>これらのコマンドは Linux 管理者や DevOps に携わる人にとってはよく使うものですが、コマンドラインを頻繁に使用しない人でも知っておくと役に立ちます。</p><p>この記事では、これらのコマンドの動作や使用方法、よくある質問などについて解説します。</p><h2 id="sudo-apt-get-update-sudo-apt-get-upgrade-"><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> の違いは何ですか？</h2><p>主な違いは、<code>sudo apt-get update</code> はディストリビューションのソフトウェアリポジトリやあらかじめ設定されたサードパーティリポジトリから、最新バージョンのパッケージの一覧を取得することです。つまり、それぞれのパッケージや依存関係の最新バージョンを確認するだけで、更新内容を実際にダウンロードしたりインストールすることはありません。</p><p>一方、<code>sudo apt-get upgrade</code> は、システム上の古くなったパッケージや依存関係の更新バージョンをダウンロードおよびインストールします。しかし、<code>sudo apt-get upgrade</code> を実行しても、古くなったパッケージが即座にアップグレードされるわけではありません。変更内容を確認してから、アップグレードを実行するかどうか判断できます。</p><h2 id="sudo-apt-get-update-"><code>sudo apt-get update</code> コマンドの使い方</h2><p>Debian ベースの Linux ディストリビューション (Debian、Ubuntu、Linux Mint、Kali Linux、Raspberry Pi OS など) で、ターミナルウィンドウを開きます。</p><p>ディストリビューションおよびターミナルの開き方によって、名称は異なる場合があります。例えば、Ubuntu や Linux Mint では、デフォルトで Gnome Terminal が利用されますが、アプリケーションメニューでは単に「ターミナル」として表示されることもあります。</p><p>ターミナル上のコマンドラインで <code>sudo apt-get update</code> と入力し、管理者パスワードを入力して、Enter キーを押します。</p><p>もし更新する項目がある場合、次のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get update
Hit:1 https://ftp.harukasan.org/raspbian/raspbian bullseye InRelease
Get:2 https://download.docker.com/linux/raspbian bullseye InRelease [26.7 kB]
Get:3 http://archive.raspberrypi.org/debian bullseye InRelease [23.7 kB]       
Get:4 http://packages.azlux.fr/debian buster InRelease [3,989 B]               
Get:5 http://archive.raspberrypi.org/debian bullseye/main armhf Packages [282 kB]
Get:6 http://packages.azlux.fr/debian buster/main armhf Packages [3,418 B]
Fetched 340 kB in 4s (94.8 kB/s)     
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
</code></pre><p>アップグレード可能なパッケージを確認したい場合は、<code>apt list --upgradable</code> を実行します:</p><pre><code>kris@pihole:~ $ apt list --upgradable
Listing... Done
libcamera0/stable 0~git20220426+18e68a9b-1 armhf [upgradable from: 0~git20220303+e68e0f1e-1]
raspi-config/stable 20220425 all [upgradable from: 20220419]
rpi-eeprom/stable 13.13-1 armhf [upgradable from: 13.12-1]
</code></pre><p>しかし、ディストリビューションのソフトウェアリポジトリに新しいバージョンのパッケージや依存関係がない場合、次のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get update
Get:1 https://download.docker.com/linux/raspbian bullseye InRelease [26.7 kB]
Hit:2 https://ftp.harukasan.org/raspbian/raspbian bullseye InRelease           
Hit:3 http://packages.azlux.fr/debian buster InRelease                         
Hit:4 http://archive.raspberrypi.org/debian bullseye InRelease
Fetched 26.7 kB in 3s (8,789 B/s)
Reading package lists... Done
</code></pre><p>ここには、アップグレード可能なパッケージや <code>apt list --upgradable</code> を実行するよう指示するメッセージがありません。</p><p>ただし、メッセージがないことは、システム上に更新が必要なソフトウェアがないことを意味するわけではなく、単に既に最新のパッケージリストを取得済みということです。<code>sudo apt-get update</code> を何度も実行した可能性もあります。</p><p>いつでも <code>apt list --upgradable</code> を再度実行して、アップグレード可能なものがあるかどうか確認できます。</p><p>また、より新しい <code>sudo apt update</code> コマンドを使用することもできます。このコマンドは常にアップグレード可能なパッケージの数を示すか、すべてが最新状態であるというメッセージを表示します。</p><p><code>apt</code> と <code>apt-get</code> の違いに関する詳細な情報は、<a href="#what-s-the-difference-between-apt-get-and-apt">以下のセクションで確認できます</a>。</p><h2 id="sudo-apt-get-upgrade-"><code>sudo apt-get upgrade</code> コマンドの使い方</h2><p><code>sudo apt-get update</code> コマンドを実行した後、同じターミナルウィンドウで、<code>sudo apt-get upgrade</code> と入力し、必要に応じてパスワードを入力して Enter を押します。</p><p>すると、次のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Do you want to continue? [Y/n]
</code></pre><p>出力の最後に、アップグレードされるパッケージが表示されます。</p><pre><code>The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
</code></pre><p>取得する必要があるデータ量と、アップグレードされたパッケージがインストール後に使用するディスク容量が表示されます。</p><pre><code>Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
</code></pre><p>最後に、アップグレードを続けるかどうかの確認メッセージが表示されます:</p><pre><code>Do you want to continue? [Y/n]
</code></pre><p>アップグレードを続行するには、<code>y</code>、<code>Y</code>、または <code>yes</code> を入力し、終了する場合は、<code>n</code>、<code>N</code>、または <code>no</code> を入力します。</p><p>アップグレードを終了することを選んだ場合、以下のような出力が表示されます:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
</code></pre><p>アップグレードを続行することを選んだ場合の出力例:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.raspberrypi.org/debian bullseye/main armhf libcamera0 armhf 0~git20220426+18e68a9b-1 [548 kB]
Get:2 http://archive.raspberrypi.org/debian bullseye/main armhf raspi-config all 20220425 [30.3 kB]
Get:3 http://archive.raspberrypi.org/debian bullseye/main armhf rpi-eeprom armhf 13.13-1 [2,037 kB]
Fetched 2,616 kB in 3s (1,019 kB/s)   
Reading changelogs... Done
(Reading database ... 43496 files and directories currently installed.)
Preparing to unpack .../libcamera0_0~git20220426+18e68a9b-1_armhf.deb ...
Unpacking libcamera0:armhf (0~git20220426+18e68a9b-1) over (0~git20220303+e68e0f1e-1) ...
Preparing to unpack .../raspi-config_20220425_all.deb ...
Unpacking raspi-config (20220425) over (20220419) ...
Preparing to unpack .../rpi-eeprom_13.13-1_armhf.deb ...
Unpacking rpi-eeprom (13.13-1) over (13.12-1) ...
Setting up rpi-eeprom (13.13-1) ...
Setting up libcamera0:armhf (0~git20220426+18e68a9b-1) ...
Setting up raspi-config (20220425) ...
Processing triggers for man-db (2.9.4-2) ...
Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u2) ...
</code></pre><p>処理が完了すると、全ての古いパッケージと依存関係が更新されます。</p><p><code>sudo apt-get upgrade</code> コマンドの重要な点は、何も削除せずにアップグレードのみ行うことです。</p><p>例えば、アップグレードに新しい依存関係が必要な場合、<code>upgrade</code> コマンドは、新しい依存関係をダウンロードおよびインストールしますが、古い依存関係を削除することはありません。古い依存関係を削除するには、別のコマンドが必要です。新しいカーネルバージョンにアップグレードする際によく見られます。</p><p>アップグレード後に次のようなメッセージが表示された場合:</p><pre><code>The following packages were automatically installed and are no longer required:
  g++-8 gir1.2-mutter-4 libapache2-mod-php7.2 libcrystalhd3
Use 'sudo apt autoremove' to remove them.
</code></pre><p>提案通りに、<code>sudo apt autoremove</code> で不要なパッケージを削除することができます。</p><h2 id="sudo-apt-get-upgrade--1"><code>sudo apt-get upgrade</code> コマンドで追加のオプションを使用する方法</h2><p><code>sudo apt-get upgrade</code> コマンドには多くの追加のオプションまたはパラメータがありますが、その中でも注目すべきは <code>--dry-run</code> と <code>--yes</code> です。</p><h3 id="-dry-run-"><code>--dry-run</code> オプションの使用方法:</h3><p><code>--dry-run</code> (もしくは <code>-s</code> または <code>--simulate</code>) オプションは、アップグレード処理中に何が起こるかをシュミレーションしますが、システム上で何も変更しません:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade --dry-run
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst libcamera0 [0~git20220303+e68e0f1e-1] (0~git20220426+18e68a9b-1 Raspberry Pi Foundation:stable [armhf])
Inst raspi-config [20220331] (20220425 Raspberry Pi Foundation:stable [all])
Inst rpi-eeprom [13.12-1] (13.13-1 Raspberry Pi Foundation:stable [armhf])
Conf libcamera0 (0~git20220426+18e68a9b-1 Raspberry Pi Foundation:stable [armhf])
Conf raspi-config (20220425 Raspberry Pi Foundation:stable [all])
Conf rpi-eeprom (13.13-1 Raspberry Pi Foundation:stable [armhf])
</code></pre><p>繰り返しになりますが、Debian や Debian ベースのディストリビューションは非常に安定しています。一方で、このオプションは、アップグレード時の競合がないことを確認したい場合に便利です。</p><h3 id="-yes-"><code>--yes</code> オプションの使用方法:</h3><p><code>--yes</code> (または <code>-y</code> や <code>--assume-yes</code>) オプションは、安全であれば、全てのプロンプトに自動的に「はい」と回答します:</p><pre><code>kris@pihole:~ $ sudo apt-get upgrade --yes
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libcamera0 raspi-config rpi-eeprom
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,616 kB of archives.
After this operation, 1,596 kB of additional disk space will be used.
Get:1 http://archive.raspberrypi.org/debian bullseye/main armhf libcamera0 armhf 0~git20220426+18e68a9b-1 [548 kB]
Get:2 http://archive.raspberrypi.org/debian bullseye/main armhf raspi-config all 20220425 [30.3 kB]
Get:3 http://archive.raspberrypi.org/debian bullseye/main armhf rpi-eeprom armhf 13.13-1 [2,037 kB]
...
Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u2) ...
</code></pre><p><code>Do you want to continue? [Y/n]</code> は省略され、すべてのパッケージがアップグレードされます。</p><h2 id="-">よくある質問</h2><h3 id="sudo-apt-get-"><code>sudo</code> と <code>apt-get</code> とは？</h3><p><code>sudo apt-get update</code> および <code>sudo apt-get upgrade</code> というコマンドは、それぞれ <code>sudo</code>、<code>apt-get</code>、そして、<code>update</code> または <code>upgrade</code> の 3 つで構成されています。</p><p><code>sudo</code> は、"superuser do" の略で、管理者権限でプログラムを実行するためのコマンドです。</p><p>例えば、システムの再起動には管理者権限が必要です。このため、ターミナルで <code>reboot</code> コマンドを実行すると、次のようなエラーメッセージが表示されるかもしれません。</p><pre><code>Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.
Failed to open initctl fifo: Permission denied
Failed to talk to init daemon.
</code></pre><p>しかし、<code>sudo reboot</code> コマンドを実行し、管理者パスワードを入力すると、<code>reboot</code> コマンドが管理者権限で実行され、すぐにシステムが再起動されます。</p><p><code>apt-get</code> は、Debian および Debian ベースのディストリビューションでパッケージをインストールおよび管理するためのコマンドラインツールです。</p><!--kg-card-begin: html--><h3 id="what-s-the-difference-between-apt-get-and-apt"><code>apt-get</code> と <code>apt</code> の違いは？</h3><!--kg-card-end: html--><p><code>apt</code> は、Debian および Debian ベースのディストリビューションでアプリケーションをインストールおよび管理するための最新のツールです。</p><p><code>apt</code> と <code>apt-get</code> は互換性があり、<code>sudo apt update</code> と <code>sudo apt-get update</code> は、どちらもシステムパッケージを更新します。</p><p>主な違いとしては、<code>apt</code> の方が入力が簡単で出力がわかりやすく、パッケージのインストール中のプログレスバーなどユーザーフレンドリーな機能を含んでいることです。</p><p>この記事の多くの例では <code>apt-get</code> を使用していますが、個人的には <code>apt</code> を使用することをお勧めします。</p><h3 id="sudo-apt-get-update-sudo-apt-get-upgrade--1"><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> は安全ですか？</h3><p>はい、Debian および Debian ベースのディストリビューションは、非常に安定しており、<code>update</code> と <code>upgrade</code> コマンドは安全に使用できます。これは、パッケージや依存関係、そしてディストリビューション自体の大規模なアップデートが年に一度か二度しかリリースされないからです。</p><p>欠点としては、最新のパッケージを使用したい場合は、Arch Linux などの最先端ディストリビューションとは異なり、追加の手間がかかることがあります。PPA を通じてサードパーティのリポジトリを設定したり、Snap や Flatpak などの別のパッケージングシステムを使用したり、自分でコンパイルする必要があるかもしれません。</p><p>とはいえ、少し古いソフトウェアによる安定性を重視する価値は十分にあると考えています。</p><h3 id="sudo-apt-get-update-sudo-apt-get-upgrade--2"><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> を連続して実行できますか？</h3><p><code>sudo apt-get update</code> を実行して完了を待ってから、<code>sudo apt-get upgrade</code> を実行するのは、面倒ではないかと考えるかもしれません。</p><p><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> の両方が比較的速く実行されるとはいえ、指令をまとめて実行し、数分後に確認する方が楽なことがあります。</p><p><code>&amp;&amp;</code> 演算子を使用すると、次のようにコマンドを連続して実行できます。</p><pre><code>sudo apt-get update &amp;&amp; sudo apt-get upgrade
</code></pre><p><code>&amp;&amp;</code> 演算子の重要なポイントは、演算子の後のコマンドが実行されるのは、前のコマンドが成功した場合だけということです。</p><p>上記の例を使用すると、<code>sudo apt-get upgrade</code> は <code>sudo apt-get update</code> が成功した場合にのみ実行されます。例えば、パッケージリストの更新中にネットワークの問題が発生した場合には、<code>sudo apt-get update</code> がスキップされます。</p><h3 id="sudo-apt-get-dist-upgrade-sudo-apt-full-upgrade-"><code>sudo apt-get dist-upgrade</code> と <code>sudo apt full-upgrade</code> とは？これらは安全に使用できますか？</h3><p><a href="https://askubuntu.com/questions/770135/apt-full-upgrade-versus-apt-get-dist-upgrade">StackOverflow のスレッド</a>によれば、これらのコマンドは、内部的には同じことを行います。つまり、古くなったパッケージをアップグレードし、必要に応じて賢くパッケージを削除します。</p><p>基本的には、<code>sudo apt-get upgrade</code> と <code>sudo apt autoremove</code> のコマンドを組み合わせたようなものです。</p><p>これらのコマンドを実行することは、ほとんどの場合安全なはずです。</p><p>しかし、私を含め多くの人が、<code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> を使用することを推奨しています。変更される内容を確認する機会が増えますし、<code>upgrade</code> は、パッケージを削除しないため、システムへの影響が少なくなります。</p><h2 id="-thanks_for_reading-sh"><code>./thanks_for_reading.sh</code></h2><p><code>sudo apt-get update</code> と <code>sudo apt-get upgrade</code> の説明が役に立ったと感じたら、ぜひ友人にシェアしていただき、より多くの人に知識を広めてください。</p><p>また、<a href="https://twitter.com/kriskoishigawa">Twitter</a> で感想をお聞かせいただけると嬉しいです。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Linux でファイルやディレクトリを削除する方法 – フォルダとファイルを削除するコマンド ]]>
                </title>
                <description>
                    <![CDATA[ 著者: Shittu Olumide Linux でファイルやディレクトリを削除することは、すべてのユーザーが知っておくべき基本的な操作です。一見シンプルな操作に思えますが、実際には用途に応じたさまざまな削除方法があります。 この記事では、Linux でのファイルやディレクトリの削除方法について、手順を追ったガイドで解説します。ファイルやフォルダとその内容を削除するためのコマンドについても詳しく説明します。 Linux でファイルを削除する方法 ファイルの削除とは、ファイルシステムからそのファイルへの参照を取り除くことを指します。ファイル自体はすぐにはストレージデバイスから消えませんが、その領域は再利用できる状態としてマークされます。 Linux でファイルを削除する方法はいくつかあります。以下は一般的な削除方法です。 GUI ファイルマネージャの使用 ほとんどの Linux ディストリビューションには、グラフィカルインターフェイスを使用してファイルを削除できる GUI ファイルマネージャが付属しています。削除したいファイルに移動し、右クリックして「削除」または「ごみ箱に移動 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-delete-a-file-or-directory-in-linux/</link>
                <guid isPermaLink="false">67864e7fd7aa1e04405877b9</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ command ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Fri, 17 Jan 2025 12:44:59 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2025/01/Shittu-Olumide-How-to-Delete-a-File-or-Directory-in-Linux---Command-to-Remove-a-Folder-and-its-Contents.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-delete-a-file-or-directory-in-linux/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Delete a File or Directory in Linux – Command to Remove a Folder and its Contents</a>
      </p><p>著者: Shittu Olumide</p><p>Linux でファイルやディレクトリを削除することは、すべてのユーザーが知っておくべき基本的な操作です。一見シンプルな操作に思えますが、実際には用途に応じたさまざまな削除方法があります。</p><p>この記事では、Linux でのファイルやディレクトリの削除方法について、手順を追ったガイドで解説します。ファイルやフォルダとその内容を削除するためのコマンドについても詳しく説明します。</p><h2 id="linux-">Linux でファイルを削除する方法</h2><p>ファイルの削除とは、ファイルシステムからそのファイルへの参照を取り除くことを指します。ファイル自体はすぐにはストレージデバイスから消えませんが、その領域は再利用できる状態としてマークされます。</p><p>Linux でファイルを削除する方法はいくつかあります。以下は一般的な削除方法です。</p><h3 id="gui-">GUI ファイルマネージャの使用</h3><p>ほとんどの Linux ディストリビューションには、グラフィカルインターフェイスを使用してファイルを削除できる GUI ファイルマネージャが付属しています。削除したいファイルに移動し、右クリックして「削除」または「ごみ箱に移動」を選択します。</p><h3 id="rm-"><code>rm</code> コマンドの使用</h3><p><code>rm</code> (remove) コマンドを使うことで、Linux 上のファイルやディレクトリを削除できます。<code>rm</code> コマンドを利用してファイルを削除するには、ターミナルで以下のコマンドを入力します。</p><pre><code>rm filename 
</code></pre><p><code>filename</code> には削除したいファイル名を指定してください。ファイルが書き込み保護されている場合や、削除するための権限がない場合には、削除の確認を求められます。</p><h3 id="shred-"><code>shred</code> コマンドの使用</h3><p><code>shred</code> コマンドは、ファイルを削除する前に、ファイルの内容を複数回上書きすることで、より確実に削除する方法です。この方法によって、削除されたファイルを復元するのが、難しくなります。</p><p><code>shred</code> コマンドを使うには、ターミナルで以下のコマンドを入力します。</p><pre><code>shred -u filename 
</code></pre><p><code>filename</code> には削除したいファイル名を指定してください。<code>-u</code> オプションは、上書き後にファイルを削除するように指示しています。</p><h3 id="trash-cli-"><code>trash-cli</code> コマンドの使用</h3><p><code>trash-cli</code> コマンドは、ファイルをすぐに削除するのではなく、ごみ箱に移動させることで、より安全に削除できます。<code>trash-cli</code> コマンドを使用するには、まず必要なパッケージをインストールする必要があります。</p><pre><code>sudo apt-get install trash-cli 
</code></pre><p>インストール後、以下のコマンドでファイルを削除できます。</p><pre><code>trash filename 
</code></pre><h2 id="linux--1">Linux でディレクトリを削除する方法</h2><p>Linux でディレクトリを削除するには、<code>rmdir</code> または <code>rm</code> コマンドを使用できます。<code>rmdir</code> コマンドは空のディレクトリを削除するのに使い、<code>rm</code> コマンドはディレクトリとそのディレクトリに含まれる全てのデータを削除します。</p><h3 id="rm--1"><code>rm</code> コマンドの使用</h3><p>以下は、<code>rm</code> コマンドを使って Linux でディレクトリを削除する手順です。</p><ol><li><strong>ターミナルを開く</strong>: Linux でディレクトリを削除するには、コマンドラインを利用する必要があります。キーボードで「Ctrl+Alt+T」を押すか、システムのアプリケーションランチャーで「terminal」を検索してターミナルを開きます。</li><li><strong>削除したいディレクトリに移動する</strong>: <code>cd</code> コマンドを使って、削除したいディレクトリに移動します。たとえば、削除したいディレクトリがホームフォルダ内の <code>my_directory</code> という名前の場合、<code>cd ~/my_directory</code> と入力して「Enter」を押します。</li><li><strong>ディレクトリの内容を確認する</strong>: ディレクトリを削除する前に、その内容を確認して正しいディレクトリを削除していることを確認するのが良いでしょう。<code>ls</code> コマンドを使ってディレクトリの内容を一覧表示します。たとえば、「ls」と入力して「Enter」を押すと、<code>my_directory</code> フォルダ内のファイルやフォルダが表示されます。</li><li><strong>ディレクトリとその内容を削除する</strong>: ディレクトリとその内容をすべて削除するには、<code>-r</code> オプション (再帰的削除) を付けた <code>rm</code> コマンドを使います。<code>rm -r my_directory</code> と入力して「Enter」を押します。削除の確認を求められるので、「y」と入力して「Enter」を押して確認します。</li><li><strong>ディレクトリが削除されたことを確認する</strong>: ディレクトリが削除されたことを確認するには、親ディレクトリの内容を表示するために <code>ls</code> コマンドを使います。たとえば、<code>my_directory</code> フォルダがホームフォルダ内にあった場合、<code>ls ~/</code> と入力して「Enter」を押します。<code>my_directory</code> フォルダはもう表示されないはずです。</li></ol><p>注意: <code>rm -r</code> コマンドを使用する際は、ファイルやディレクトリを復元できない形にて削除されるので、注意してください。</p><h3 id="rmdir-"><code>rmdir</code> コマンドの使用</h3><p>以下は、<code>rmdir</code> コマンドを使って Linux でディレクトリを削除する手順です。</p><ol><li><strong>ターミナルを開く</strong>: キーボードで「Ctrl+Alt+T」を押すか、システムのアプリケーションランチャーで「terminal」を検索してターミナルを開きます。</li><li><strong>削除したいディレクトリに移動する</strong>: <code>cd</code> コマンドを使って削除したいディレクトリに移動します。たとえば、削除したいディレクトリがホームフォルダ内の <code>my_directory</code> という名前の場合、<code>cd ~/my_directory</code> と入力して「Enter」を押します。</li><li><strong>ディレクトリを削除する</strong>: <code>rmdir</code> コマンドに続けてディレクトリの名前を入力します。<code>rmdir my_directory</code> と入力して「Enter」を押します。もし、ディレクトリが空でない場合には、エラーメッセージが表示され、削除は行われません。</li><li><strong>ディレクトリが削除されたことを確認する</strong>: ディレクトリが削除されたことを確認するには、親ディレクトリの内容を表示するために <code>ls</code> コマンドを使います。たとえば、<code>my_directory</code> フォルダがホームフォルダ内にあった場合、<code>ls ~/</code> と入力して「Enter」を押します。<code>my_directory</code> フォルダはもう表示されないはずです。</li></ol><h2 id="-">まとめ</h2><p><code>rm</code> コマンドはファイルを削除するためによく使われるコマンドであり、<code>rmdir</code> や <code>rm -r</code> または <code>rm -R</code> オプションはディレクトリを削除するために使用されます。この手順を追ったガイドに従うことで、Linux 上で効率的にファイルやディレクトリを削除できるようになります。</p><p>追加のヒント:</p><ol><li><code>rm</code> コマンドを <code>-r</code> または <code>-R</code> オプションと一緒に使う際は注意が必要です。ファイルやディレクトリを取り戻せない形で削除する可能性があります。</li><li>間違ったファイルやディレクトリを誤って削除しないよう、削除する前にファイル名やディレクトリ名を必ず再確認してください。</li><li>ファイルを削除するのに他の方法より時間がかかることがあるため、<code>shred</code> コマンドは必要な時だけ使用してください。</li><li>一部のファイルやディレクトリの削除には管理者 (root) 権限が必要な場合があるため、ファイルやディレクトリを削除する際のファイルの権限に気を付けてください。</li></ol><p><a href="https://www.twitter.com/Shittu_Olumide_" rel="nofollow">Twitter</a> または <a href="https://www.linkedin.com/in/olumide-shittu" rel="nofollow">LinkedIn</a> でつながりましょう。私の <a href="https://www.youtube.com/channel/UCNhFxpk6hGt5uMCKXq0Jl8A" rel="nofollow">YouTube</a> チャンネルにも登録できます。</p><p>プログラミングを楽しんでください！</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 初心者向け 25 の Python 開発プロジェクト - Python でコーディングを始めるためのシンプルなアイデア ]]>
                </title>
                <description>
                    <![CDATA[  新しい言語を学ぶ最も良い方法は、その言語を使ったプロジェクトを作ることです。 私は、25 の初心者向け Python プロジェクトチュートリアルのリストを作成しました。 これらのチュートリアルに取り組む初心者に向けての私からのアドバイスは、動画を視聴しながら、プロジェクトを作り、分解し、自らの手でもう一度作り上げることです。チュートリアルにない新しい機能の追加や違うメソッドを使うといった実験に取り組むこともおすすめです。 この経験を通して、チュートリアルから得られるコンセプトを本当に学んだかどうかをテストできるのです。 以下のリストからプロジェクト名をクリックすると、この記事の各項目へ飛ぶことができます。 もしも、Python の基礎をしっかり固めたいならば、freeCodeCamp の初心者向けの Python チュートリアル [https://www.youtube.com/watch?v=rfscVS0vtbw]を視聴することをおすすめします。(編集注: 日本語版はこちら [https://www.youtube.com/watch?v=nnjCkgX_ZPQ])  ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/python-projects-for-beginners/</link>
                <guid isPermaLink="false">6537d4a7cdaff103f90d40cc</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Beginners ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Sat, 27 Apr 2024 08:11:02 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/04/hitesh-choudhary-D9Zow2REm8U-unsplash.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/python-projects-for-beginners/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">25 Python Projects for Beginners – Easy Ideas to Get Started Coding Python</a>
      </p><p></p><p>新しい言語を学ぶ最も良い方法は、その言語を使ったプロジェクトを作ることです。</p><p>私は、25 の初心者向け Python プロジェクトチュートリアルのリストを作成しました。</p><p>これらのチュートリアルに取り組む初心者に向けての私からのアドバイスは、動画を視聴しながら、プロジェクトを作り、分解し、自らの手でもう一度作り上げることです。チュートリアルにない新しい機能の追加や違うメソッドを使うといった実験に取り組むこともおすすめです。</p><p>この経験を通して、チュートリアルから得られるコンセプトを本当に学んだかどうかをテストできるのです。</p><p>以下のリストからプロジェクト名をクリックすると、この記事の各項目へ飛ぶことができます。</p><p>もしも、Python の基礎をしっかり固めたいならば、freeCodeCamp の初心者向けの <a href="https://www.youtube.com/watch?v=rfscVS0vtbw">Python チュートリアル</a>を視聴することをおすすめします。(編集注: <a href="https://www.youtube.com/watch?v=nnjCkgX_ZPQ">日本語版はこちら</a>)</p><h2 id="-python-"><strong><strong><strong>作成可能な Python プロジェクト</strong></strong></strong></h2><!--kg-card-begin: markdown--><ol>
<li><a href="#mad-libs-python-project">Mad Libs (マッドリブス)</a></li>
<li><a href="#guess-the-number-game-python-project-computer-">数あてゲーム (コンピューター側の数)</a></li>
<li><a href="#guess-the-number-game-python-project-user-">数あてゲーム (ユーザー側の数)</a></li>
<li><a href="#rock-paper-scissors-python-project">じゃんけん</a></li>
<li><a href="#hangman-python-project">ハングマン</a></li>
<li><a href="#countdown-timer-python-project">カウントダウンタイマー</a></li>
<li><a href="#password-generator-python-project">パスワード生成システム</a></li>
<li><a href="#qr-code-encoder-decoder-python-project">QR コードのエンコード／デコード</a></li>
<li><a href="#tic-tac-toe-python-project">○×ゲーム</a></li>
<li><a href="#tic-tac-toe-ai-python-project">AI ○×ゲーム</a></li>
<li><a href="#binary-search-python-project">二分探索アルゴリズム</a></li>
<li><a href="#minesweeper-python-project">マインスイーパー</a></li>
<li><a href="#sudoku-solver-python-project">数独解決</a></li>
<li><a href="#photo-manipulation-in-python-project">画像加工</a></li>
<li><a href="#markov-chain-text-composer-python-project">マルコフ連鎖テキスト作成</a></li>
<li><a href="#pong-python-project">ピンポンゲーム</a></li>
<li><a href="#snake-python-project">スネークゲーム</a></li>
<li><a href="#connect-four-python-project">四目並べ</a></li>
<li><a href="#tetris-python-project">テトリス</a></li>
<li><a href="#online-multiplayer-game-python-project">オンライン多人数ゲーム</a></li>
<li><a href="#web-scraping-program-python-project">Web スクレイピング</a></li>
<li><a href="#bulk-file-re-namer-python-project">ファイル名変更機能</a></li>
<li><a href="#weather-program-python-project">天気プログラム</a></li>
<li><a href="#code-a-discord-bot-with-python-host-for-free-in-the-cloud">Python での Discord Bot 開発 - クラウド上での無料ホスティング</a></li>
<li><a href="#space-invaders-game-python-project">スペースインベーダーゲーム</a></li>
</ol>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><h2 id="mad-libs-python-project">
    Python での Mad Libs (マッドリブス) 開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=100s">「Kylie Ying のチュートリアル」</a>では、ユーザーが入力する情報を取得する方法、Python の文字列フォーマットである f-strings の使い方、そして、コンソールに出力された結果を確認する方法を学びます。</p><p>このチュートリアルは、Python での文字の連結に慣れるにあたり、とても良い初心者向けのプロジェクトとなります。</p><!--kg-card-begin: html--><h2 id="guess-the-number-game-python-project-computer-">
    Python での数あてゲーム開発 (コンピューター側の数)
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=414s">「Kylie Ying のチュートリアル」</a>では、<a href="https://docs.python.org/3/library/random.html">Python のランダムモジュール</a>の動かし方、関数の作り方、ループ処理と条件分岐の使い方、そして、利用者が入力した情報を取得する方法を学べます。</p><!--kg-card-begin: html--><h2 id="guess-the-number-game-python-project-user-">
    Python での数あてゲーム開発 (ユーザー側の数)
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=797s">「Kylie Ying のチュートリアル」のこのパート</a>では、今度はコンピューターがユーザー側の数を予想する数あてゲームを作成します。こちらでも <a href="https://docs.python.org/3/library/random.html">Python のランダムモジュール</a>の動かし方、関数の作り方、ループ処理と条件分岐の使い方、そして、利用者が入力した情報を取得する方法を扱います。</p><!--kg-card-begin: html--><h2 id="rock-paper-scissors-python-project">
    Python でのじゃんけんゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=797s">「Kylie Ying のチュートリアル」</a>では、<code>random.choice()</code>、if 文、ユーザー入力の取得を扱います。これは、条件分岐や関数のような基礎を固めるのに役立つプロジェクトです。</p><!--kg-card-begin: html--><h2 id="hangman-python-project">
    Python でのハングマン開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=1465s">「Kylie Ying のチュートリアル」</a>では、辞書型、リスト型、そして、条件がネストされている中での活用の仕方を学べます。これらに加えて、文字型と random 関数のモジュールについても理解できるでしょう。</p><!--kg-card-begin: html--><h2 id="countdown-timer-python-project">
    Python でのカウントダウンタイマー開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=1992s">「Code With Tomi のチュートリアル」</a>では、<code>time</code> という時刻データへのアクセスと変換の Python のモジュールを利用して、カウントダウンタイマーを開発する方法を学べます。このチュートリアルは、Python における while ループの使い方を学ぶことができるので、Python の初心者におすすめのプロジェクトの一つです。</p><!--kg-card-begin: html--><h2 id="password-generator-python-project">
    Python でのパスワード生成システム開発
</h2><!--kg-card-end: html--><p>同じく<a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=2531s">「Code With Tomi のチュートリアル」</a>で、ランダムのパスワードを生成するシステムについて学べます。パスワードの数とパスワードの長さを利用者から受け取り、ランダムなパスワードを生成します。<br>このプロジェクトでは、loop 処理と Python の標準モジュールである <code>random</code> 関数の使い方を学べるでしょう。</p><!--kg-card-begin: html--><h2 id="qr-code-encoder-decoder-python-project">
    Python での QR コードのエンコード／デコード開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=3192s">「Code With Tomi」のチュートリアル</a>で、QR コードの作り方、そして、QR コードの情報をエンコード／デコードする処理について学べます。このプロジェクトは、QR コードライブラリを利用します。</p><p>初心者にとって、Pythonの異なるモジュールをインストールして使うことに慣れるのに最適なプロジェクトの一つでしょう。</p><!--kg-card-begin: html--><h2 id="tic-tac-toe-python-project">
    Python での○×ゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=2153s">「Kylie Ying のチュートリアル」</a>では、コマンドラインで、複数人のプレイヤーとプレイできる〇×ゲームを作る方法を学べます。ネストされた if 文の使い方を練習したり、<code>time</code> と <code>math</code> という 2 つの Python の標準モジュールの使い方を学んだりできます。</p><!--kg-card-begin: html--><h2 id="tic-tac-toe-ai-python-project">
    Python での AI ○×ゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=3599s">「Kylie Ying のチュートリアル」</a>で、コンピュータが負けることのない〇×ゲームの作り方を学べます。このプロジェクトは、意思決定に用いられる再帰的アルゴリズムであるミニマックス・アルゴリズムを利用します。</p><!--kg-card-begin: html--><h2 id="binary-search-python-project">
    Python での二分探索アルゴリズム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=4553s">「Kylie Ying のチュートリアル」</a>で、バイナリサーチ (二分探索) と呼ばれる分割統治アルゴリズムの実装方法を学べます。これは、採用面接で出題されることもある検索アルゴリズムで、コードでの実装方法を知っておくことが重要です。</p><!--kg-card-begin: html--><h2 id="minesweeper-python-project">
    Python でのマインスイーパー開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=5236s">「Kylie Ying のチュートリアル」</a>で、コマンドラインでのマインスイーパーゲームを開発できます。このプロジェクトは、再帰とクラスの処理にフォーカスしたプロジェクトです。</p><!--kg-card-begin: html--><h2 id="sudoku-solver-python-project">
    Python での数独解決開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=6715s">「Kylie Ying のチュートリアル」</a>で、バックトラックの技術を活用する数独の解決を開発できます。バックトラックは、問題を解決するにあたり、あらゆる組み合わせの探索を行う再帰的な技法の一つです。</p><!--kg-card-begin: html--><h2 id="photo-manipulation-in-python-project">
    Python での画像加工開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=7534s"> 「Kylie Ying のチュートリアル」</a>では、画像フィルターを作成して、画像のコントラスト、明るさ、ぼかしを変更する方法を学べます。このプロジェクトを始める前に、<a href="https://github.com/kying18/pyphotoshop">スターターファイル</a>をダウンロードする必要があります。</p><!--kg-card-begin: html--><h2 id="markov-chain-text-composer-python-project">
    Python でのマルコフ連鎖テキスト作成開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=8ext9G7xspg&amp;t=9109s">「Kylie Ying のチュートリアル」</a>では、過去の状態に基づいて未来の状態を予測する確率モデルとして知られるマルコフ連鎖モデルについて、そしてそれを歌詞の関係にどのように適用できるかを学べます。このプロジェクトは、Python での人工知能への素晴らしい入門講座となるでしょう。</p><!--kg-card-begin: html--><h2 id="pong-python-project">
    Python でのピンポンゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=78s">「Christian Thompson のチュートリアル」</a>では、Python での古典的なピンポンゲームの再構築の仕方を学べます。OS の動かし方、そして、タートルの Python モジュールを利用して、ゲームのグラフィックスを作成する方法を学びます。</p><!--kg-card-begin: html--><h2 id="snake-python-project">
    Python でのスネークゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=2736s">「Tech with Tim のチュートリアル」</a>では、Python でなつかしのスネークゲームを再構築する方法を学べます。このプロジェクトは、オブジェクト指向のプログラミングと Python でゲームを作るための人気モジュールである Pygame を使います。</p><!--kg-card-begin: html--><h2 id="connect-four-python-project">
    Python での四目並べ開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=5697s">「Keith Galli のチュートリアル」</a>で、昔からある四目並べのコネクトフォーの作り方を学べます。このプロジェクトでは、<code>numpy</code>、<code>math</code>、<code>pygame</code>、そして <code>sys</code> という Python モジュールを活用します。</p><p>このプロジェクトは、既に初心者向けの小規模の Python プロジェクトに取り組んだことがある人に最適です。Python プロジェクトの開発が初めての場合は、ここまで紹介したリストの一つに先に取り組むことを強くおすすめします。</p><!--kg-card-begin: html--><h2 id="tetris-python-project">
    Python でのテトリス開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=9756s">「Tech with Tim のチュートリアル」</a>では、昔からあるテトリスゲームを再開発する方法を学べます。このプロジェクトは、Pygame を活用し、開発初心者が次のレベルのスキルを取得するのに良い機会です。</p><!--kg-card-begin: html--><h2 id="online-multiplayer-game-python-project">
    Python でのオンライン多人数ゲーム開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=XGf2GcyHPhc&amp;t=15732s">「Tech with Tim のチュートリアル」</a>では、世界中の人たちと遊べるオンラインのマルチプレイヤーゲームの開発を学べます。このプロジェクトは、Sockets やネットワーク、そして、Pygame の使い方を学ぶ素晴らしい第一歩となるでしょう。</p><!--kg-card-begin: html--><h2 id="web-scraping-program-python-project">
    Python での Web スクレイピング開発
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=37s">「Code With Tomi のチュートリアル」</a>で、利用者が入力する GitHub の利用者リンクに対して、Web スクレイピングを通して、プロフィール画像リンクを出力する方法を学べます。Web スクレイピングは、Web ページからデータを集める手法の一つです。</p><!--kg-card-begin: html--><h2 id="bulk-file-re-namer-python-project">
    Python でのファイル名変更機能開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=833s">「Code With Tomi のチュートリアル」</a>で、コンピュータ上の任意のフォルダにある全てのファイルについて、Python コードに書かれた条件に基づいて名前を変更するプログラムの開発を学べます。</p><!--kg-card-begin: html--><h2 id="weather-program-python-project">
    Python での天気プログラム開発
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=SqvVm3QiQVk&amp;t=1494s">「Code With Tomi のチュートリアル」</a>で、特定の地域の利用者データを集めて、集められた地域の詳細な気象情報を出力する仕組みを開発します。これは、API からデータを取得する方法を学び始めるのに適したプロジェクトです。</p><!--kg-card-begin: html--><h2 id="code-a-discord-bot-with-python-host-for-free-in-the-cloud">
    Python での Discord Bot 開発 - クラウド上での無料ホスティング
</h2><!--kg-card-end: html--><p> <a href="https://www.youtube.com/watch?v=SPTfmiYiuok">「Beau Carnes のチュートリアル」</a>で、利用者がオンラインチャットを楽しめるプラットフォームである Discord で機能する bot を開発する方法を学べます。このプロジェクトは、Discord API の仕組み、そして、Replit IDE について教えてくれます。</p><p>このビデオが公開された後、Replit は、環境変数をプログラムに保存する方法を変更しました。Replit の環境変数の設定方法は、この<a href="https://forum.freecodecamp.org/t/steps-on-how-to-setup-environment-variable-for-fcc-python-bot-tutorial/473303">チュートリアル</a>から確認してください。</p><!--kg-card-begin: html--><h2 id="space-invaders-game-python-project">
    Python でのスペースインベーダーゲームプロジェクト
</h2><!--kg-card-end: html--><p><a href="https://www.youtube.com/watch?v=FfWpgLFMI7w"> 「buildwithpython のチュートリアル」</a>では、Pygame を用いたスペースインベーダーゲームの開発方法を学べます。ゲーム上でのループ処理、衝突検出、キープレスイベントなどゲーム開発におけるたくさんの基礎を学べます。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Python での文字列型から整数型への変換 – 文字列型のキャスト方法 ]]>
                </title>
                <description>
                    <![CDATA[  プログラミングの作業中、データの型の変換が必要となることがあるでしょう。  あるデータ型を他のデータ型に変換する知識・経験は、情報を扱うときに、プログラマーにとって、データに対して柔軟に対応できる力となります。 プログラミング言語 Python には、型を変換 (キャスト) する多様な方法が組み込まれています。 この記事では、文字列型を整数型に変換する方法について学べます。  それでは、詳しく見てきましょう。 Python でのデータの種類 Python は、様々なデータ型をサポートしています。 データの型は、コンピュータプログラムで使われるさまざまなタイプのデータを指定、表現、区別するのに使われます。 また、あるデータ型で利用できる処理が、別のデータ型では利用できないといったように、データ型によって利用できる処理が異なります。 データの型の一例として、文字列型があります。 文字列型は、テキストベースの情報を扱うのに使われる文字列です。 文字列型は以下のコードのように、シングル、あるいはダブルクォーテーションで囲われます。 fave_phrase = "Hel ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/python-convert-string-to-int-how-to-cast-a-string-in-python/</link>
                <guid isPermaLink="false">63e8de91721fc106335f184f</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Wed, 22 Feb 2023 13:09:20 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2023/02/glenn-carstens-peters-npxXWgQ33ZQ-unsplash-1.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/python-convert-string-to-int-how-to-cast-a-string-in-python/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Python Convert String to Int – How to Cast a String in Python</a>
      </p><p></p><p>プログラミングの作業中、データの型の変換が必要となることがあるでしょう。 </p><p>あるデータ型を他のデータ型に変換する知識・経験は、情報を扱うときに、プログラマーにとって、データに対して柔軟に対応できる力となります。</p><p>プログラミング言語 Python には、型を変換 (キャスト) する多様な方法が組み込まれています。</p><p>この記事では、文字列型を整数型に変換する方法について学べます。 </p><p>それでは、詳しく見てきましょう。</p><h2 id="python-">Python でのデータの種類</h2><p>Python は、様々なデータ型をサポートしています。</p><p>データの型は、コンピュータプログラムで使われるさまざまなタイプのデータを指定、表現、区別するのに使われます。</p><p>また、あるデータ型で利用できる処理が、別のデータ型では利用できないといったように、データ型によって利用できる処理が異なります。</p><p>データの型の一例として、文字列型があります。</p><p>文字列型は、テキストベースの情報を扱うのに使われる文字列です。</p><p>文字列型は以下のコードのように、シングル、あるいはダブルクォーテーションで囲われます。</p><pre><code class="language-python">fave_phrase = "Hello world!"

#Hello world! はダブルクォーテーションで囲まれているので文字列です。</code></pre><p>int (integer) は、整数です。</p><p>整数は、数値データを表すのに使われます。そして整数は、+、-、×、÷といった四則演算で使うことができます。 </p><p>整数は、シングル、あるいはダブルクォーテーションで囲われません。</p><pre><code class="language-python">fave_number = 7

#7 は整数型です
#"7" は、数字に見えますが、整数型ではなく文字列型です。
#理由はダブルクォーテーションで囲まれているからです。
</code></pre><h3 id="-">データ型の変換</h3><p>データを保存するとき、あるいは、ユーザー入力データをある型で受け取るとき、そのデータにさまざまな操作を行う必要もあるでしょう。</p><p>型データによって、対応できる処理とできない処理があるので、データ型を変更する必要があります。</p><p>あるデータ型から他のデータ型への変換は、型のコンバージョンあるいはキャストとも呼ばれます。多くのプログラミング言語では、ある型から他の型への変換を組み込み機能として提供しています。</p><h2 id="python--1"><strong>Python で文字列型を整数型に変換する方法</strong></h2><p>Python で文字列型を整数型へ変換するためには、組み込み関数である <code>int()</code> を使います。</p><p>この組み込み関数は、型変換したい文字列を引数として、数値としての値を戻します。</p><p>一般的な文法は、<code>int("str")</code> となります。</p><p>それでは、数値が文字列型となっている次の例を参考に見ていきましょう。</p><pre><code class="language-python">#数字 7 の文字列型
print("7")

#型を確認するメソッド type() を用いてチェックしてみましょう
print(type("7"))

#出力結果

#7
#&lt;class 'str'&gt;
</code></pre><p>文字列の状態の数字を型変換するために、以下のように <code>int()</code> 関数を使います。</p><pre><code class="language-python">#文字列型から整数型へ型変換します
print(int("7"))

#型を確認するメソッドを用いてデータの型をチェックしてみましょう
print(type(int("7")))

#出力結果

#7
#&lt;class 'int'&gt;
</code></pre><h3 id="--1"><strong>文字列型を整数型に変換する事例</strong></h3><p>例えば、利用者の年齢を計算したいとしましょう。そのためには利用者からの入力を受け取ります。入力される型は、常に文字列型となります。</p><p>数字で入力されたとしても、受け取る型は <code>&lt;class 'str'&gt;</code> になります。 </p><p>もし、入力された数字を他の数字から引き算するなど、入力時に計算処理を実行したいならば、文字列型では、計算処理を行えないのでエラーとなります。 </p><p>以下のサンプルコードをご覧ください。</p><pre><code class="language-python">current_year = 2021

#利用者に誕生年を入力してもらいます。
user_birth_year_input = input("何年に生まれましたか? ")

#現在の年から利用者が入力した年を引きます。
user_age = current_year - user_birth_year_input

print(user_age)

#結果

#何年に生まれましたか? 1993
#Traceback (most recent call last):
#  File "demo.py", line 9, in &lt;module&gt;
#    user_age = current_year - user_birth_year_input
#TypeError: unsupported operand type(s) for -: 'int' and 'str'
</code></pre><p>整数型と文字列型の引き算は実行できないというエラーとなります。</p><p><code>type()</code> を使うことで、入力されたデータ型を確認できます。</p><pre><code class="language-python">current_year = 2021

#利用者に誕生年を入力してもらいます。
user_birth_year_input = input("何年に生まれましたか? ")

print(type(user_birth_year_input))

#結果

#何年に生まれましたか? 1993
#&lt;class 'str'&gt;
</code></pre><p>このエラーを避けるためには、利用者の入力を整数型に変換し、新しい変数内に変換したデータを保存します。</p><pre><code class="language-python">current_year = 2021

#利用者に誕生年を入力してもらいます。
user_birth_year_input = input("何年に生まれましたか? ")


#組み込み関数の int() を利用して、利用者が入力した数字を変換し、新しく作成した変数に保存します。
user_birth_year = int(user_birth_year_input)

#現在の年から利用者が入力した年を引きます。
user_age = current_year - user_birth_year

print(user_age)

#結果

#何年に生まれましたか? 1993
#28
</code></pre><h2 id="--2">最後に</h2><p>Python で文字型から数字型へ変換する方法が分かりましたね。 </p><p>もし、Python をもっと学びたいならば、freeCodeCamp に Python の認定講座があります。 </p><p>Python の基礎から始めて、リレーショナルデータベースやデータ構造といった高度なトピックへと進んでいきます。最後には、実践へとつなげるために、5 つのプロジェクトを作成します。</p><p>ここまで読んでくださってありがとうございます、そして、コーディングを楽しみましょうね！</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ React の背景画像設定チュートリアル – インライン CSS で backgroundImage を設定する方法 ]]>
                </title>
                <description>
                    <![CDATA[ React のインライン CSS を使って backgroundImage スタイルプロパティを設定する方法は、4 つあります。 このチュートリアルでは、サンプルコードとともに、4 つ全ての方法をご紹介します。 外部 URL を使って React の背景画像を設定する方法 設定したい背景画像がオンライン上にあるならば、下のコードのように URL を記述すると背景画像を設定できます。 function App() {   return (     <div style={{        backgroundImage: `url("https://via.placeholder.com/500")`      }}>      ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/react-background-image-tutorial-how-to-set-backgroundimage-with-inline-css-style/</link>
                <guid isPermaLink="false">638c987c3a21f205f6eea5d1</guid>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ YUUSUKE OKAMOTO ]]>
                </dc:creator>
                <pubDate>Mon, 05 Dec 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/12/fcc-bg-image-2-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/react-background-image-tutorial-how-to-set-backgroundimage-with-inline-css-style/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">React Background Image Tutorial – How to Set backgroundImage with Inline CSS Style</a>
      </p><p>React のインライン CSS を使って backgroundImage スタイルプロパティを設定する方法は、4 つあります。</p><p>このチュートリアルでは、サンプルコードとともに、4 つ全ての方法をご紹介します。</p><h2 id="-url-react-">外部 URL を使って React の背景画像を設定する方法</h2><p>設定したい背景画像がオンライン上にあるならば、下のコードのように URL を記述すると背景画像を設定できます。</p><figure class="kg-card kg-code-card"><pre><code class="language-jsx">function App() {
  return (
    &lt;div style={{ 
      backgroundImage: `url("https://via.placeholder.com/500")` 
    }}&gt;
      Hello World
    &lt;/div&gt;
  );
}</code></pre><figcaption>外部 URL で背景画像を設定</figcaption></figure><p>上のコードは、<code>background-image: url(https://via.placeholder.com/500)</code> のスタイルが適用された <code>&lt;div&gt;</code> 要素を描画します。</p><h2 id="-src-react-">アプリの /src フォルダ配下から React の背景画像を設定する方法</h2><p>Create React App コマンドを使ってアプリケーションを開発し、<code>src/</code> フォルダ内に画像が配置されているならば、<code>import</code> で画像を取り込んで、要素の背景として設定できます。</p><figure class="kg-card kg-code-card"><pre><code class="language-jsx">import React from "react";
import background from "./img/placeholder.png";

function App() {
  return (
    &lt;div style={{ backgroundImage: `url(${background})` }}&gt;
      Hello World
    &lt;/div&gt;
  );
}

export default App;</code></pre><figcaption>取り込んだ画像を用いて背景画像を設定</figcaption></figure><p><code>npm start</code> コマンドにてアプリケーションを起動する際に、画像が見つからない場合には、React アプリケーションはコンパイルに失敗したというエラーを表示してビルドを停止します。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/12/React-failed-to-compile-image-1.png" class="kg-image" alt="React-failed-to-compile-image-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/12/React-failed-to-compile-image-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/12/React-failed-to-compile-image-1.png 717w" width="717" height="240" loading="lazy"><figcaption>画像を見つけられないという React のコンパイルエラー</figcaption></figure><p>この方法を使えば、アプリケーション上で壊れた画像リンクが表示されることはありません。上のコードにおいて <code>backgroundImage</code> は、JavaScript の表記を埋め込むためのテンプレート文字列を使っています。</p><h2 id="-url-react--1">相対 URL を使って React の背景画像を設定する方法</h2><p></p><p>Create React App コマンドで作成された React アプリケーションの public フォルダは、静的な画像などを追加するのに使われます。<code>public/</code> フォルダ内に配置したどのようなファイルも、オンラインでアクセスできます。</p><p>public フォルダ内部に <code>image.png</code> ファイルを配置している場合、<code>&lt;ホストのアドレス&gt;/image.png</code> の URL にて画像情報にアクセスできます。ローカル環境下で React アプリを動かしているとき、画像は <code>http://localhost:3000/image.png</code> でアクセスできます。</p><p>そしてホストアドレスに対する相対パスの URL を与えることで、背景画像を設定できます。以下のコードは一例です。</p><figure class="kg-card kg-code-card"><pre><code class="language-jsx">&lt;div style={{ backgroundImage: "url(/image.png)" }}&gt;
  Hello World
&lt;/div&gt;</code></pre><figcaption>相対パスで背景画像を設定する方法</figcaption></figure><p>上記のサンプルコードのように、URL のパスを <code>/image.png</code> に設定することで、ブラウザは <code>&lt;ホストのアドレス&gt;/image.png</code> の場所で背景画像を探すことになります。</p><p>フォルダを使って画像を整理したいならば、<code>public/</code> フォルダ内に別の画像用のフォルダを作成することもできます。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/12/Screen-Shot-2020-12-14-at-20.18.30.png" class="kg-image" alt="Screen-Shot-2020-12-14-at-20.18.30" width="360" height="137" loading="lazy"><figcaption>public フォルダ内に img フォルダを作成する</figcaption></figure><p>フォルダを新しく作成するなら、背景画像の値も <code>url(/img/image.png)</code> に変更するのを忘れないようにしましょう。</p><h2 id="-react-">絶対パスを使って React の背景画像を設定する方法</h2><p>以下のコードのように Create React App で作成したアプリの <code>PUBLIC_URL</code> の環境変数を使うことで、絶対パス URL を含めることができます。</p><figure class="kg-card kg-code-card"><pre><code class="language-jsx">&lt;div style={{ 
  backgroundImage: `url(${process.env.PUBLIC_URL + '/image.png'})` 
}}&gt;
  Hello World
&lt;/div&gt;</code></pre><figcaption>絶対パス URL で背景画像を設定する方法</figcaption></figure><p>ローカル環境上で上記のコードを動かすとき、React スクリプトは、<code>PUBLIC_URL</code> の値をコントロールします。ローカル環境で動かすときは、絶対パスの URL の代わりに、相対パス URL のように見えます。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/12/absolute-url-background-image-1.png" class="kg-image" alt="absolute-url-background-image-1" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/12/absolute-url-background-image-1.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/12/absolute-url-background-image-1.png 648w" width="648" height="68" loading="lazy"><figcaption>画像の絶対パス URL は、ローカルコンピュータで表示されません。</figcaption></figure><p>React を本番アプリケーションにデプロイしたときだけ、絶対パス URL が表示されます。</p><h2 id="-">追加のプロパティと一緒に背景画像を設定する方法</h2><p>もし、さらに背景画像をカスタマイズしたいならば、<code>backgroundImage</code> の後に追加のプロパティを追加することで、カスタマイズできます。以下のコードはサンプルです。</p><figure class="kg-card kg-code-card"><pre><code class="language-jsx">
&lt;div style={{ 
  backgroundImage: `url(${process.env.PUBLIC_URL + '/image.png'})`,
  backgroundRepeat: 'no-repeat',
  width:'250px' 
}}&gt;
  Hello World
&lt;/div&gt;</code></pre><figcaption>追加プロパティを背景画像に設定</figcaption></figure><p>上記のコードのプロパティには、<code>&lt;div&gt;</code> 要素に <code>background-image</code> を設定すると同時に、<code>background-repeat: no-repeat</code> と <code>width: 250px</code> の CSS を追加しています。</p><p>ここまでお読みいただきありがとうございます。そして、この記事が読者の皆様にとって、役に立っていることを願っています。質問があれば、<a href="https://twitter.com/nsebhastian">筆者の Twitter</a> までお知らせください。今後も、開発者向けに役立つちょっとした情報を随時紹介していく予定です。</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
