Linux

systemctl コマンドの引数の順番は不便?

投稿日:

最近の Linux では、systemd というツールが導入されています。

systemd にはいろいろな役割があるのですが、その中でも大きいのが「各サービスの管理(操作)」です。 本記事は、この操作を行うコマンドについて、私が面倒に思っていることを書きます。(最初に書いておきますが、大した話しではありません)

systemd を使ったサービスの操作

systemd でサービスを操作する場合、systemctl コマンドを使用します。

例えば、sshdサービスを開始するのであれば、

systemctl start sshd

sshdサービスを停止するのであれば、

systemctl stop sshd

といったコマンドを実行します。

ご覧頂いた通り、このコマンドは

(1) systemctrl (2) 操作名 (3) サービス名

という順番になっています。

systemd 以前に導入されていた SysVinit

Linux で systemd がよく利用されるようになる前は、SysVinit という管理ツールが一般的でした(Upstart というのもありました)。

こちらのツールで、先ほどと同じ操作を実行しようと思うと、

# sshd サービスをスタートする
service sshd start

# sshd サービスを停止する
service sshd stop

といったコマンドになります。

こちらの場合ですと、引数の順番は

(1) service (2) サービス名 (3) 操作名

であり、systemd の時と比べると「サービス名」と「操作名」の位置が逆になっています。

どちらのコマンドが便利なのか?

SysVinit に慣れていると、

(1) service コマンドで、(2) sshd サービスを (3) start する

という発想になっていると思います。

しかし、systemd では、

(1) systemctl コマンドで、(2) start する (3) sshd サービス

という順番になります。英語の文法に沿った順番ですね。

これだけでも最初は随分違和感があったのですが、もう一つ困ったことが起きました。

コマンド実行履歴を使ってコマンドを入力する操作が少し面倒になった」のです。

例えば、「sshd サービスを止めたい」と思った場合(つまり、「systemctl stop sshd」というコマンドを実行したい)を考えます。

この時、「“stop” という単語よりも、具体的なサービス名である “sshd” でコマンドを探した方が候補を絞りやすいだろう」と考えますので、”sshd” でコマンド履歴を検索するのが普通だと思います。(操作名のところは start, stop 以外にもいろいろ用意されており、それらをハッキリ記憶しておくのが面倒というのもあります。)

この場合、Ctrl + r キーを押してから(コマンド履歴を検索するキーです)、”sshd” と入力すると、

systemctrl start sshd

が最初にサジェストされ、これを選んだとします。

すると、この3つの単語の中の真ん中にある startstop に修正することになり、カーソルを真ん中まで移動する必要があるのです。 SysVinit の場合であれば、start の部分は末尾であるため Ctrl + e キーでカーソルを末尾に移動させ、そこから stop に修正するのにあまりストレスを感じませんでした。しかし、カーソルを真ん中まで移動させるのが微妙なストレスになるのです。私だけですかね?

まとめ

大した話ではないのですが、皆さんどうしているでしょうか?
何かよい方法、考え方ってあるのでしょうか。

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Linux

「よく使うコマンドランキングの表示」を1つのコマンドにする

目次1. はじめに2. 入力が面倒なコマンドを新たなコマンド(今回は関数)にする3. 作成した関数の実行4. コマンドの引数も合わせて調べたい5. 履歴のフォーマットが異なる場合6. まとめ 1. は …

Linux

pip install でインストールしたパッケージを使おうとするエラーが発生する

目次1. はじめに2. 環境3. 対処方法4. おわりに 1. はじめに 以下のコマンドで、Python のパッケージをシステムにインストールしたとします。 $ sudo pip install {パ …

Let's Encrypt

Let’s Encrypt を使ってみました

無料でSSL証明書が発行できる Let’s Encrypt を使ってみました。 その時の操作手順を紹介します。 本記事執筆時に存在していた「Let’s Encrypt 総合ポー …

CentOS

CentOS 8 を CentOS Stream に移行するコマンド

目次1. 突然の CentOS 8 終了宣言2. CentOS Stream に移行するコマンド3. 2021年5月:移行作業を行いました4. 参考 1. 突然の CentOS 8 終了宣言 Cent …

Linux

ssh-agent の代わりに gpg-agent を使う手順

ssh-agent の代わりに gpg-agent を使う手順について説明します。