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

コマンドに対してデフォルトで指定されているオプションを調べる

Linux などの UNIX系OS環境では、コマンドを入力して実行する機会が多いと思いますが、それぞれの環境によって、いくつかのコマンドオプションがデフォルトで指定されている場合があります。 ※ ログ …

Google App Engine

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする手順を紹介します。

Linux

シェルスクリプト (Bash) では組み込みコマンド set を活用しましょう

Linux や MacOS、Windows の WSL でシェルスクリプト(Bash)を書く場合は、組み込みコマンド set を活用しましょう。より完成度の高い処理を書くことができます。 スポンサード …

Linux

【Linux】man コマンドの基本的な使い方

Linux をコマンドラインで使う場合、man コマンドでマニュアルを読むことができます(man は manual の略です)。 このページでは、この manコマンドの簡単な使い方について説明します。 …

CentOS

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

目次1. 突然の CentOS 8 終了宣言2. CentOS Stream に移行するコマンド3. 参考 1. 突然の CentOS 8 終了宣言 CentOS 8 は 2021年末でソフトウェア・ …