生産技術エンジニア(※純粋なSEではない)として社会復帰して、今は正社員(2年目)として働いている34歳独身です。
プログラミング等の純粋なIT技術学習歴は3年目に入りました。
ここ数年で閉鎖病棟とか異業種未経験転職とか諸々経験しました。現勤務先には本当によくしてもらってます(以下、本題です)
なお、職務とは別に転職時から学習を継続している言語で諸々インストールがいるものは主にPHP(主にLaravel)、Python、あとちょっとJavaScript
人生うろうろしている間に、PCはさすがにOSのサポートが切れました😇
Windows10であったため、ライセンスがとうに切れていた職業訓練時のAdobe製品など要らないものをできる限り削って更新を試しましたが、そもそも2018年に購入したものでプロセッサの世代がWindows11の要件を満たすものではありませんでした・・・😇
⇒夏のボーナスでPCを新調、それに伴いPCの開発(というか個人学習)環境の再構築を迫られた (※今後もまた数年後にPCはダメになるので、再構築時のTodoリストという意味でもこのQiitaを書きました。覚えるのメンドイじゃないですか)
PC新調前にやったこと
①普段の学習で時折質問させてもらっているつよつよシステムエンジニアの方やChat-GPTに必要そうなものを聞いてみる
(1)つよつよの方にはdotfiles(参考資料①~③)を教えてもらいました。(GPTのオススメにも挙がってきました)
⇒ PC新調後、インストールするものを下記のように再度選定した上で作成中・随時更新中(来たる次回のPC新調に備える)
(2)Chat-GPTには以下のように聞いて次の回答を得ました。
プログラミング学習歴3年目のものです。
このたびWindows11に私用PCを新調することにしたのですが、何をすべきでしょうか
Chat-GPTの回答
新しいWindows 11 PCをプログラミング用に整えるにあたって、3年目の学習者向けにおすすめするセットアップ手順とポイントを、目的別にまとめます。
🔧 1. まずやるべき基本セットアップ
✅ システム設定
-
Windows Update:すぐに実行して、セキュリティパッチを最新に。
-
電源設定の変更:「スリープを無効」「高パフォーマンスモード」など、開発に適した設定に。
-
ファイル拡張子の表示:エクスプローラーで拡張子を常に表示に変更。
-
WSL(Windows Subsystem for Linux)有効化:Linux環境が必要な場面が増えるので、早めに導入しておくと便利。
wsl --install
🧰 2. 開発環境の整備
🖥️ エディタ・IDE
-
Visual Studio Code(ほぼ必須)
-
拡張機能:
- Python, ESLint, Prettier, GitLens, Docker, Remote - WSL など
-
-
(言語によって)PyCharm, IntelliJ, VS, Android Studio なども導入
🐍 言語環境
- Python(公式から最新版をインストール)
- Node.js + npm(フロントエンドやツール開発に)
- Java(IntelliJ や Spring を使う予定なら)
- Rust / Go / C++ など目的に応じて
📦 パッケージ管理
- Chocolatey(Windowsのパッケージ管理ツール)か
- Scoop(軽量・設定不要)を導入すると楽にソフト管理できます。
# Scoop の例
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
irm get.scoop.sh | iex
scoop install git python vscode nodejs
🌐 3. GitとGitHubの設定
-
Gitをインストール(
scoop install git
も可) -
GitHubアカウントにSSH鍵を設定
-
グローバル設定
git config --global user.name "Your Name" git config --global user.email "your@email.com"
🧪 4. 仮想環境 & Docker
- Pythonのvenv or Poetry(依存管理が楽に)
- Docker:環境差異対策やチーム開発、DB・APIのテスト用に
- Docker DesktopはWindows 11 Homeでも使える(WSL統合可)
🛠️ 5. 便利ツール・ソフト
- PowerToys(ウィンドウ管理やショートカット改善)
- Terminal:Windows Terminal + oh-my-posh などで見やすく
- Notion / Obsidian:技術ノートや学習記録に
- Postman:API開発が増えてきたら必須
- VS Code + Jupyter:データ分析やノートブック形式のコードに便利
☁️ 6. クラウド同期とバックアップ
- GitHubにコードを常にpush
- OneDriveやGoogle Driveなどにメモや設定ファイルを同期
- dotfiles管理もおすすめ(PowerShellのプロファイル、VSCodeの設定など)
🎯 7. プロジェクト&目標整理(おすすめ)
-
新PCの初期プロジェクトを決めておくと楽しい&成長できる:
- Webアプリの再構築
- ポートフォリオサイト
- API開発
- CLIツール作成
- 機械学習の環境再現
👣 まとめ:最初にやるべきリスト(チェック用)
✅ Windows Update
✅ WSLインストール
✅ VS Code & 拡張機能
✅ Git & GitHub連携
✅ Python + venv/Poetry
✅ Scoop + Docker
✅ お気に入りのTerminalカスタマイズ
✅ Notion / Obsidianで技術メモ管理開始
ご希望があれば「Python環境だけ重点的に整えたい」「Web開発用にしたい」「AI/機械学習用にしたい」といった目的別にセットアップ例もお手伝いできますよ。お気軽にどうぞ!
②デスクトップ(及びタスクバーのピン留め)・PCのローカルにインストールしてあるアプリのスクショをとる・今後の要否選定
③学習参考書の整理・それに載ってる技術の要否選定
(1)仕事で今後使う可能性のあるもの、及びそれに関する開発環境構築に役立ちそうなもの
(2)現時点で仕事で使える可能性は低そうだが、今後やっておいた方が良さそうなもの、及びそれに関する開発環境構築に役立ちそうなもの
(3)少しかじってはみたけど、今になると必要が応じた時に調べ直すので十分だなと感じているもの
に分け、(1)(2)に関連のあるものをリスト化&復旧作業(のインストール等)をすることにしました。
③Googleブックマークのエクスポート(バックアップHTMLファイル作成)
こんなかんじでポチポチしていくといけます
④ローカルにある必要なメモなどのUSBなどへのバックアップ
⑤VScodeのsetting.jsonのバックアップ
⑥VScodeにインストールしている拡張機能の確認・今後の要否選定
インストール済み拡張機能をIDとバージョン付きで一覧表示
code --list-extensions --show-versions
⑦Linux経由でこれまで何をインストールしたかの確認・今後の要否選定(≒dotfilesを作るための材料集め)
(A)最初 Ubuntu / Debian系(apt を使用)しか使用した記憶がなかったため、とりあえずGPTに聞いてみて出てきた次のコマンドを使ってみました。
(※Linuxに関する知識はほぼ0で、出力結果の意味がそもそも全然分からなかったので、出力結果に意味を自分用に記録しました)
⇒ 上記のコマンドは(勉強にはなったけど)無駄な作業だったと分かる
⇒(B) /var/log/apt/history.log.*.gz から 「インストールされたパッケージ名」とその Description(説明) を表示
(見やすくなったけど、そもそもこんなにインストールしたか??)
⇒(C)~(E) 「過去にインストール時に使用したコマンド」を調べ、dotfiles作成の材料とする
(これが今のところ思いつく最適解(???)なんかもっと良い方法あったらコメントお願いしますm(_ _)m)**
まず、とりあえず使ってみたコマンドたち(A)
(1)インストールされたパッケージの一覧表示
dpkg -l
出力結果
こんなやつが出ました。(1)の部分はなんかグチャグチャしてますが、よく見ると(1)の部分を整理したのが(2)でした。
※青長方形は「普通のローカルのCドライブの中のユーザー名」、赤長方形は「Linuxのhomeタブ直下のユーザー名@各PC名」
(2)の部分を詳しく見てみる
Microsoft Windows [Version 10.0.19045.6036]
(c) Microsoft Corporation. All rights reserved.
C:\Users\普通のローカルのCドライブの中のユーザー名>wsl
Linuxのhomeタブ直下のユーザー名@各PC名:/mnt/c/Users/普通のローカルのCドライブの中のユーザー名$ dpkg -l
---------------------上記の(1)部分------------------------
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-================================-=======================================-============-================================================================================
ii adduser 3.118ubuntu5 all add and remove users and groups
ii alsa-topology-conf 1.2.5.1-2 all ALSA topology configuration files
ii alsa-ucm-conf 1.2.6.3-1ubuntu1.11 all ALSA Use Case Manager configuration files
ii apparmor 3.0.4-2ubuntu2.4 amd64 user-space parser utility for AppArmor
ii apport 2.20.11-0ubuntu82.4 all automatically generate crash reports for debugging
ii apport-symptoms 0.24 all symptom scripts for apport
ii apt 2.4.9 amd64 commandline package manager
ii apt-utils 2.4.9 amd64 package management related utility programs
ii awesfx 0.5.2-1 amd64 utility programs for AWE32/64 and Emu10k1 driver
--------------以下、同様のものがでてくるため略--------------------
意味は次の通りらしいです。
最初の「ii」
2つで1つ(ローマ数字の2)ではなく、「i」「i」と分けて見るもので
①「Desired(=ユーザーが意図している処理、ユーザーの希望する操作)」
②「Status(現在の状態)」
をそれぞれ表す。なお、この「Desired」は「Recommended(推奨)」とは全くの別物であくまで、ユーザーが各パッケージをどうしようとしたかを表すものらしいです。
なお、各ローマ字の意味は次の通り
(A)Desired(=ユーザーが意図している処理、ユーザーの希望する操作)が
u ⇒ Unknown(不明)
i ⇒ Install(インストール)
r ⇒ Remove(削除)
p ⇒ Purge(完全削除)
h ⇒ Hold(保留)
(B)Status(現在の状態)が
n ⇒ Not install(未インストール)
i ⇒ Installed(インストール済)
c ⇒ Config files only(設定ファイルのみ)
u ⇒ Unpacked(展開されたが未設定)
f ⇒ Half-configured(設定が途中)
h ⇒ Half-installed(インストールが途中)
w ⇒ Awaiting trigger(トリガー待ち)
t ⇒ Trigger pending(トリガー未完了)
なので、最初が「i i」になっていたら基本大丈夫。
逆に「u」なんかが出ていたら「パッケージデータベースが壊れていたり、不整合が起きているとき」の可能性があるため点検が必要らしい。
「Name」:(インストールした)パッケージ名、
「Architecture」
⇒「all」:全アーキテクチャ共通。CPUに依存しないパッケージ(スクリプトや設定など)=「どのマシンでも同じ内容で使えるもの」
⇒「amd64」:64ビットのx86アーキテクチャ(Intel/AMD CPU)向け。バイナリを含む =「64ビットのx86系マシンでしか使えない」
※ただ、今の普通の市販のノートPCなら上記のamd64であるための条件を満たす。
「Description」:そのパッケージが何をするためのものか(用途・機能)を説明したもの
(2)aptコマンドによるインストール日時を含めて履歴を確認(ログ)
cat /var/log/apt/history.log
最初GPTに提示されたあとに使ってみたときは表示されたのですが、一定期間経ったら表示されなくなりました。(-_-;)
どうやら、
Linuxではログファイルが大きくなりすぎないように、「ログローテーション(ログファイルが一定のサイズに達したり、一定の期間が経過したりすると、新しいログファイルに切り替え、古いログファイルは圧縮・削除する処理)」というものが採用されている
そうです。主な参考資料④、⑤ 参照
※ログローテーションの設定確認方法(変更方法は主な参考資料④ 参照)
〇メイン設定ファイルの確認
cat /etc/logrotate.conf
実際にやってみた結果とその出力結果の意味
Microsoft Windows [Version 10.0.19045.6036]
(c) Microsoft Corporation. All rights reserved.
C:\Users\普通のローカルのCドライブの中のユーザー名>wsl
Linuxのhomeタブ直下のユーザー名@各PC名:/mnt/c/Users/普通のローカルのCドライブの中のユーザー名$ cat /etc/logrotate.conf
# see "man logrotate" for details
# global options do not affect preceding include directives
# rotate log files weekly
weekly
⇒「ログファイルを週1回ローテーションする(=新しいログファイルを作り、古いものは保管・圧縮などする)」👈いた(´д`)
# use the adm group by default, since this is the owning group
# of /var/log/syslog.
su root adm
⇒ ログローテーション時にroot ユーザー & adm グループとして実行する。
# keep 4 weeks worth of backlogs
rotate 4
⇒ ログファイルは最大4世代分(過去4週分)保持。5回目のローテーション時には最も古いログを削除。
# create new (empty) log files after rotating old ones
create
⇒ ローテーション後、新しい空のログファイルを自動作成。
# use date as a suffix of the rotated file
#dateext
⇒ ローテーションされたファイル名に日付を付けるオプション(例:logfile-20250720.gz)
※PC新調後、#dateextの「#」を取って有効化
# uncomment this if you want your log files compressed
#compress
⇒ 古いログを gzip で圧縮するオプション
※PC新調後、#compressの「#」を取って有効化
# packages drop log rotation information into this directory
include /etc/logrotate.d
⇒ /etc/logrotate.d ディレクトリ内にある各パッケージ(例:apt, nginx, mysqlなど)のログローテーション設定を取り込む。
# system-specific logs may also be configured here.
⇒ 「この設定ファイルに、システム固有のログ設定を記述してもよいですよ」という注釈
(3)過去ログの.gz ファイルを解凍して確認(厳密には「APTの履歴ログのうち、圧縮された過去のログをすべて一気に表示する」)
zcat /var/log/apt/history.log.*.gz
出力結果としては下記の項目をずらずら並べたものが出てきました
項目 | 内容 |
---|---|
Start-Date | APT操作の開始日時 |
Commandline | 実行されたAPTコマンドの内容(ユーザーやスクリプトによる操作) |
Install | インストールされたパッケージ(名前、アーキテクチャ、バージョン) |
Upgrade | アップグレードされたパッケージ |
Remove | 削除されたパッケージ |
Purge | 完全削除されたパッケージ(設定ファイルごと) |
End-Date | 操作の終了日時 |
(B)zcat /var/log/apt/history.log.*.gz による出力結果のうち 「インストールされたパッケージ名」とその Description(説明) を抜き出して表示
#history.log からインストールされたパッケージ名を抽出して
#apt show で各パッケージの説明を取得して表示
(cat /var/log/apt/history.log /var/log/apt/history.log.1; zcat /var/log/apt/history.log.*.gz) \
| grep "Install:" \ #「Install:」行のみ抽出
| cut -d ':' -f2- \ #パッケージ名の部分を取り出し
| tr ' ' '\n' \ #各パッケージ名を1行に1つに分割
| cut -d ':' -f1 \ #:amd64 のようなアーキテクチャ部分を削除
| sort -u \ #重複削除
| while read pkg; do #各パッケージごとに apt show を実行し、Description のみを表示
echo "### $pkg ###"
apt show "$pkg" 2>/dev/null | grep -m1 "^Description:"
echo ""
done
出力結果
Microsoft Windows [Version 10.0.19045.6036]
(c) Microsoft Corporation. All rights reserved.
C:\Users\普通のローカルのCドライブの中のユーザー名>wsl
Linuxのhomeタブ直下のユーザー名@各PC名:/mnt/c/Users/普通のローカルのCドライブの中のユーザー名$ (cat /var/log/apt/history.log /var/log/apt/history.log.1; zcat /var/log/apt/history.log.*.gz) \
ep "In> | grep "Install:" \
> | cut -d ':' -f2- \
> | tr ' ' '\n' \
> | cut -d ':' -f1 \
> | sort -u \
> | while read pkg; do
> echo "### $pkg ###"
show "> apt show "$pkg" 2>/dev/null | grep -m1 "^Description:"
echo ""
done
> echo ""
> done
cat: /var/log/apt/history.log.1: No such file or directory
### ###
### (0.0.7-1build2), ###
### (0.04-6build3, ###
---------------------------中略---------------------------
### python3-pylev ###
Description: pure Python Levenshtein implementation
### python3-pyparsing ###
Description: alternative to creating and executing simple grammars - Python 3.x
### python3-requests ###
Description: elegant and simple HTTP library for Python3, built for human beings
### python3-requests-toolbelt ###
Description: Utility belt for advanced users of python3-requests
### python3-secretstorage ###
Description: Python module for storing secrets - Python 3.x version
### python3-setuptools ###
Description: Python3 Distutils Enhancements
### python3-setuptools-whl ###
Description: Python Distutils Enhancements (wheel package)
### python3-shellingham ###
Description: Tool to Detect Surrounding Shell
### python3-simplejson ###
Description: simple, fast, extensible JSON encoder/decoder for Python 3.x
### python3-six ###
Description: Python 2 and 3 compatibility library (Python 3 interface)
--------------------後略------------------------
見やすくはなったけど・・こんなにインストールしてたっけ(@_@)???
例えば、python3とか分かりやすいと思うんですが、
apt install python3
でインストールすると実際に、(参考資料⑥)にある動画のように、aptが依存関係を自動的に解決して、 多数の依存パッケージをまとめてインストールするので、なんか思っている以上にいろいろ入ります。(python3-minimal, libpython3-stdlib, libc6などなど)
(C)実際に入力したaptコマンド使用履歴だけを一覧表示してみる
(cat /var/log/apt/history.log /var/log/apt/history.log.1; zcat /var/log/apt/history.log.*.gz) \
| grep "^Commandline:" \
| sort \
| uniq
だいぶいい感じに集約されました。
出力結果
Microsoft Windows [Version 10.0.19045.6036]
(c) Microsoft Corporation. All rights reserved.
C:\Users\普通のローカルのCドライブの中のユーザー名>wsl
Linuxのhomeタブ直下のユーザー名@各PC名:/mnt/c/Users/普通のローカルのCドライブの中のユーザー名$ (cat /var/log/apt/history.log /var/log/apt/history.log.1; zcat /var/log/apt/history.log.*.gz) \
> | grep "^Commandline:" \
| sort > | sort \
> | uniq
cat: /var/log/apt/history.log.1: No such file or directory
Commandline: /usr/bin/unattended-upgrade
Commandline: apt install awesfx
Commandline: apt install httpie
Commandline: apt install libnss3-tools
Commandline: apt install mysql-client-core-8.0
Commandline: apt install mysql-server
Commandline: apt install mysql-shell
Commandline: apt install pkg-config libmysqlclient-dev
Commandline: apt install python3-django
Commandline: apt install python3-flask
Commandline: apt install python3-poetry
Commandline: apt install python3.11
Commandline: apt install python3.12
Commandline: apt install python3.13
Commandline: apt install python3.9
Commandline: apt install tree
Commandline: apt install uvicorn
Commandline: apt purge mysql-shell
Commandline: apt remove mysql-shell
Commandline: apt-get --yes -oDebug::pkgDepCache::AutoInstall=yes --force-yes dist-upgrade
Commandline: apt-get --yes -oDebug::pkgDepCache::AutoInstall=yes --force-yes upgrade
Commandline: apt-get --yes -oDebug::pkgDepCache::AutoInstall=yes install \
adduser base-passwd bash bsdutils console-setup \
console-setup-linux coreutils dash debconf debconf-i18n \
debianutils diffutils distro-info dmsetup eject \
findutils gir1.2-glib-2.0 grep hostname init \
init-system-helpers iproute2 iputils-ping iso-codes keyboard-configuration \
kmod libacl1 libargon2-1 libatm1 libattr1 libaudit-common \
libaudit1 libblkid1 libbsd0 libbz2-1.0 libcap-ng0 libcap2 \
libcap2-bin libcrypt1 libdb5.3 libdebconfclient0 libdevmapper1.02.1 \
libdns-export1110 libelf1 libestr0 libfastjson4 libffi8 \
libgcrypt20 libgirepository-1.0-1 libgmp10 libgpg-error0 libhogweed6 \
libicu70 libidn2-0 libip4tc2 libisc-export1105 libkeyutils1 \
libkmod2 liblocale-gettext-perl liblz4-1 liblzma5 libmd0 libmnl0 \
libmount1 libmpdec3 libncurses6 libncursesw6 libnettle8 \
libnewt0.52 libnsl2 libp11-kit0 libpam-cap libpopt0 \
libprocps8 libreadline8 libseccomp2 libselinux1 libsemanage-common \
libsemanage2 libsepol2 libslang2 libsmartcols1 libtasn1-6 \
libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libtinfo6 \
libunistring2 libuuid1 libxtables12 libxxhash0 libyaml-0-2 \
libzstd1 lsb-base lsb-release mawk media-types mount \
ncurses-base ncurses-bin netbase netcat-openbsd procps \
python3-dbus python3-netifaces python3-yaml readline-common sed \
sensible-utils shared-mime-info sysvinit-utils ubuntu-keyring \
ubuntu-minimal ucf usrmerge util-linux whiptail xdg-user-dirs \
xkb-data ca-certificates dbus dpkg e2fsprogs \
gcc-12-base gpgv less libbpf0 libcom-err2 libdbus-1-3 \
libexpat1 libext2fs2 libfribidi0 libgcc-s1 libgnutls30 \
libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0 libpam-modules \
libpam-modules-bin libpam-runtime libpam0g libpcre2-8-0 libpcre3 \
libpython3.10-minimal libpython3.10-stdlib libsqlite3-0 libss2 libssl3 \
libstdc++6 libtirpc-common libtirpc3 libxml2 login \
logrotate logsave networkd-dispatcher openssl passwd perl-base \
python3-pkg-resources python3.10 python3.10-minimal rsyslog sudo tar \
vim-common vim-tiny xxd zlib1g apt apt-utils \
base-files distro-info-data gzip isc-dhcp-client isc-dhcp-common \
kbd libapparmor1 libapt-pkg6.0 libc-bin libc6 \
libcryptsetup12 libglib2.0-0 libglib2.0-data libjson-c5 libnetplan0 \
libnss-systemd libpam-systemd libpython3-stdlib libsystemd0 libudev1 \
locales netplan.io python-apt-common python3 python3-apt \
python3-gi python3-minimal systemd systemd-sysv systemd-timesyncd \
tzdata ubuntu-advantage-tools udev bash-completion bsdextrautils \
busybox-static command-not-found cpio cron dosfstools ed \
file friendly-recovery ftp fuse3 gettext-base groff-base \
hdparm info install-info iptables iputils-tracepath irqbalance \
libcbor0.8 libedit2 libfido2-1 libfuse3-3 libgdbm6 \
libip6tc2 libjansson4 liblmdb0 libmagic-mgc libmagic1 \
libmaxminddb0 libnetfilter-conntrack3 libnfnetlink0 libnftnl11 \
libnghttp2-14 libnuma1 libparted2 libpcap0.8 libpci3 \
libpipeline1 libplymouth5 libpng16-16 libpsl5 libuchardet0 \
libunwind8 libuv1 libx11-6 libx11-data libxau6 \
libxcb1 libxdmcp6 libxext6 libxmuu1 lshw lsof \
man-db manpages mtr-tiny nano parted pci.ids \
pciutils plymouth plymouth-theme-ubuntu-text powermgmt-base psmisc \
publicsuffix python3-commandnotfound python3-distro-info strace telnet \
time tnftp ubuntu-standard ufw usb.ids usbutils \
uuid-runtime wget xauth xz-utils libntfs-3g89 ntfs-3g \
rsync apparmor bind9-dnsutils bind9-host bind9-libs \
dmidecode libdrm-common libdrm2 libnftables1 libusb-1.0-0 \
nftables openssh-client python3-distupgrade python3-gdbm \
python3-update-manager tcpdump ubuntu-release-upgrader-core \
update-manager-core apport-symptoms byobu fonts-ubuntu gawk \
gir1.2-packagekitglib-1.0 htop libappstream4 libassuan0 \
libbrotli1 libdw1 liberror-perl libevent-core-2.1-7 libgdbm-compat4 \
libgpm2 liblzo2-2 libmpfr6 libnl-3-200 libnl-genl-3-200 \
libnpth0 libpackagekit-glib2-18 libpolkit-agent-1-0 \
libpolkit-gobject-1-0 librtmp1 libsigsegv2 libsodium23 \
libssh-4 libstemmer0d libutempter0 libxmlb2 packagekit \
packagekit-tools pastebinit patch pinentry-curses pkexec \
policykit-1 polkitd python3-blinker python3-cffi-backend \
python3-cryptography python3-distro python3-httplib2 python3-importlib-metadata \
python3-jeepney python3-keyring python3-launchpadlib \
python3-lazr.restfulclient python3-lazr.uri python3-more-itertools \
python3-newt python3-pyparsing python3-secretstorage \
python3-six python3-systemd python3-wadllib python3-zipp run-one \
screen show-motd squashfs-tools ubuntu-wsl unattended-upgrades \
update-motd wsl-setup apport binutils binutils-common \
binutils-x86-64-linux-gnu curl dbus-x11 dirmngr git \
git-man gnupg gnupg-l10n gnupg-utils gpg gpg-agent \
gpg-wks-client gpg-wks-server gpgconf gpgsm libbinutils \
libctf-nobfd0 libctf0 libcurl3-gnutls libcurl4 libksba8 \
libperl5.34 libpython3.10 perl perl-modules-5.34 python3-apport \
python3-jwt python3-oauthlib python3-problem-report tmux vim \
vim-runtime libglib2.0-bin libgstreamer1.0-0 libldap-2.5-0 \
libldap-common libsasl2-2 libsasl2-modules libsasl2-modules-db \
motd-news-config python3-software-properties snapd software-properties-common
⇒ 「Commandline:」以下の各aptコマンドをdotfilesの材料に
その後、なんやかんや調査をしているうちに curl とかも使ったな(´。`)。〇と思い出したので、同様に使用したcurlコマンド使用履歴を調べて見ることにしました
(D)過去に実行した curl コマンドを確認(シェル履歴(bashなど)を見る)
cat ~/.bash_history | grep curl
出力結果
Microsoft Windows [Version 10.0.19045.6036]
(c) Microsoft Corporation. All rights reserved.
C:\Users\普通のローカルのCドライブの中のユーザー名>wsl
Linuxのhomeタブ直下のユーザー名@各PC名:/mnt/c/Users/普通のローカルのCドライブの中のユーザー名$ cat ~/.bash_history | grep curl
curl "http://127.0.0.1:8000/apis/postcode_search/?zipcode=7830060"
curl "http://127.0.0.1:8000/apis/postcode_search/?zipcode=7830060"
curl http://127.0.0.1:8000/apis/postcode_search/?zipcode=7830060
curl "http://127.0.0.1:8000/apis/postcode_search/?zipcode=7830060"
# curl を含む行をすべて取得
$curlLines = Select-String -Path $historyPath -Pattern "curl"
foreach ($line in $curlLines) {
Write-Host "curlでダウンロードしてインストールに使われた可能性のある履歴は見つかりませんでした。"
Write-Host "`n=== curl経由で実行された可能性のある履歴 ===`n"
$outPath = "$env:USERPROFILE\curl_install_suspects.txt"
# curl を含む行をすべて取得
$curlLines = Select-String -Path $historyPath -Pattern "curl"
foreach ($line in $curlLines) {
Write-Host "curlでダウンロードしてインストールに使われた可能性のある履歴は見つかりませんでした。"
Write-Host "`n=== curl経由で実行された可能性のある履歴 ===`n"
$outPath = "$env:USERPROFILE\curl_install_suspects.txt"
Select-String -Path $historyPath -Pattern "curl|wsl"
cat ~/.bash_history | grep curl
# curl を含む行をすべて取得
$curlLines = Select-String -Path $historyPath -Pattern "curl"
foreach ($line in $curlLines) {
Write-Host "curlでダウンロードしてインストールに使われた可能性のある履歴は見つかりませんでした。"
Write-Host "`n=== curl経由で実行された可能性のある履歴 ===`n"
$outPath = "$env:USERPROFILE\curl_install_suspects.txt"
cat ~/.bash_history | grep curl
cat ~/.bash_history | grep curl
grep -E "curl.*bash" ~/.bash_history
# curl を含む行をすべて取得
$curlLines = Select-String -Path $historyPath -Pattern "curl"
foreach ($line in $curlLines) {
Write-Host "curlでダウンロードしてインストールに使われた可能性のある履歴は見つかりませんでした。"
Write-Host "`n=== curl経由で実行された可能性のある履歴 ===`n"
$outPath = "$env:USERPROFILE\curl_install_suspects.txt"
cat ~/.bash_history | grep curl
(E)PowerShell履歴ファイルを確認する。
基本、何かをインストールするときは特に何も考えないままコマンドプロンプトか(VSCode)Powershellを使ってぶち込んでいたので、Powershellの使用履歴がないか調べてみたら次のようなものが出てきました
pwd
echo "# TwitterClone" >> README.md
git init
git add README.md
git statas
git status
git branch -M main
------------------------------省略---------------------------------
npm run dev
php artisan serve
npm run dev
php artisan serve
npm run dev
php artisan make:Controller HomeController
php artisan make:Controller HomeController --resource
php artisan make:Controller AuthController --resource
php artisan serve
npm run dev
npm run dev
php artisan serve
npm run build
php artisan serve
npm run dev
curl -L https://npmjs.org/install.sh | sh` 👈
---------------------------省略------------------------------------
pip install
pip list
python
pip list
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
python --version
sudo curl -sSL https://install.python-poetry.org | python3 -
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py - 👈
poetry --version
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
poetry --version
php --version
python
-----------------------------省略--------------------------------
どうやら、この「ConsoleHost_history.txt」にはPowershellを通して利用したコマンドが順番に記録されているようでした。
⇒Poetryとかnpmとかのパッケージ管理システムそのものは再度インストールする必要があるため、これらのcurlコマンドもdotfilesの材料とする
※Pythonの各ライブラリ・パッケージは過去に作った(&作りかけの)プロジェクト内にpyproject.tomlとかrequirements.txt作ってGithubにpushしてあるので、それを参照
・・・と以上やったことはこんな感じです。まだ学習3年目のよわよわ(´。`)なので、これ忘れてるよとかあったら教えてくださいm(_ _)m
主な参考資料
①ようこそdotfilesの世界へ @yutkat さん Qiita
https://qiita.com/yutkat/items/c6c7584d9795799ee164
②【2024年度】私の最強のdotfilesとセットアップ方法 @Rockreeee さん Qiita
https://qiita.com/Rockreeee/items/e59b1c4c764d4079c657
③Windows向けにdotfilesセットアップスクリプトを作る
@kentac55 in 富士通クラウドテクノロジーズ株式会社 さん Qiita
https://qiita.com/kentac55/items/733bdc21e66b44904332
④syslogの保存期間を変更するには 北浦訓行さん技術記事
https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/409cngsyslogtime.html
⑤logrotateの設定① @sugar_salt75 さん Qiita
https://qiita.com/sugar_salt75/items/88acecf9e864cbeee436
⑥【2025】UbuntuとPythonのインストール手順!セットアップまでの詳しいやり方 小林愛花さん技術記事
https://ai-kenkyujo.com/programming/language/python/ubuntu-install/
⑦curlコマンド完全ガイド:基礎から現場での実践的な使い方まで
@kojiro30 (kojiro30) in 株式会社Nuco さん Qiita
https://qiita.com/kojiro30/items/5ead563c44ad6086ad41
⑧Linux コマンド一覧表 @savaniased (蛭子 淡島)さん Qiita
https://qiita.com/savaniased/items/d2c5c699188a0f1623ef
⑨第8章 Debian パッケージ管理ツール(公式ドキュメント?)
https://www.debian.org/doc/manuals/debian-faq/pkgtools.ja.html
⑩CPUとプロセッサーの違いって何?初心者にもわかりやすく解説します
Lenovoの技術記事
https://www.lenovo.com/jp/ja/articletop/pc/difference-cpu-processor/?orgRef=https%253A%252F%252Fwww.google.com%252F&srsltid=AfmBOoprkNyWVC4FMY8kVNDFmQRW5ceogRA7PWtj8zaR-NsJVtz_pslz
⑪aptコマンドチートシート
@SUZUKI_Masaya(Masaya Suzuki) in 株式会社MIXI さん Qiita
https://qiita.com/SUZUKI_Masaya/items/1fd9489e631c78e5b007