LoginSignup
0
0

More than 3 years have passed since last update.

Linuxコマンドのお勉強と挫折

Posted at

つまり

  • Linuxを日々使っているけど、知らないコマンドたくさんあるな、と思った。
  • Ubuntu 20.04 で最初から入っているコマンドたちについて調べようと思った。
  • 挫折した。

環境

Ubuntu 20.04 をMicrosoft Storeから入手、インストール後に、sudo apt updatesudo apt upgrade実施済みの、WSL2上の環境。

> cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

コマンド

まず、パスの通っているところにあるコマンド(実行ファイル)の数を数えてみた。(同名異バイナリもありそうだけど、ひとまず同一カウント)

> echo $PATH | sed "s/:/\n/g" | grep -v "^\/mnt" | while read d; do ls -1 "$d"; done | sort | uniq | wc -l
1339

1339、、知らないコマンドを一日1個ずつ覚えても数年はかかりそうなので、コマンドを全て把握するのは諦めることにした(挫折1)。

パッケージ

コマンドは諦めたとしても、どんなパッケージがインストールされているのかは知っておきたい。

> apt list --installed | wc -l
608

608!?。無理っす(挫折2)。そこで、パッケージの依存関係から、様々なパッケージから参照されているパッケージは重要度が高いんだろうと考え、パッケージのreverse dependencyをざっくりカウントして、ランキングを見てみた。

> apt list --installed | sed "s:\/.*::" | while read p; do n=`apt-cache rdepends "$p" | wc -l`; echo -e "$n\t$p"; done | sort -rn -k1 | head
22107   libc6
6633    libstdc++6
5683    libgcc-s1
4427    perl
3140    libglib2.0-0
2508    zlib1g
2126    python3
1956    libgmp10
1596    libx11-6
1198    dpkg

libc6がトップだったが、パッケージで展開されるファイルをdpkg-query -L libc6で確認すると、libディレクトリに展開されるスタティックなオブジェクトばかりで、bin関係のディレクトリは無かった。そもそも、libで始まるパッケージの多くはbinディレクトリへ展開されないようだ(除くlibc-bin, libpam-modules-bin, libglib2.0-bin, libcap2-bin, libperl5.30, libpam-runtime)。では、ランキング上位のperlパッケージから見ていきたい。

> dpkg-query -L perl | grep "bin"
/usr/bin
/usr/bin/corelist
/usr/bin/cpan
/usr/bin/enc2xs
/usr/bin/encguess
/usr/bin/h2ph
/usr/bin/h2xs
/usr/bin/instmodsh
/usr/bin/json_pp
/usr/bin/libnetcfg
/usr/bin/perlbug
/usr/bin/perldoc
/usr/bin/perlivp
/usr/bin/perlthanks
/usr/bin/piconv
/usr/bin/pl2pm
/usr/bin/pod2html
/usr/bin/pod2man
/usr/bin/pod2text
/usr/bin/pod2usage
/usr/bin/podchecker
/usr/bin/podselect
/usr/bin/prove
/usr/bin/ptar
/usr/bin/ptardiff
/usr/bin/ptargrep
/usr/bin/shasum
/usr/bin/splain
/usr/bin/xsubpp
/usr/bin/zipdetails

、、、わりと見たことのないものが多い。必要になってから学ぶ、でも良いのではと思い直すことにした(挫折3)。

今後

もう少しminimal installな状態でやるべきだったかもしれない。そもそも、自分が何を目指していたのか見失ってしまった。
coreutilsとかbsdutilsとかutil-linuxのパッケージに入っているコマンドを学ぶところから始めた方がよさそうな気がしてきた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0