LoginSignup
16
5

More than 3 years have passed since last update.

source ~/.zsh_historyは絶対に実行してはいけない(戒め

Last updated at Posted at 2019-02-27

あるある

# ivm .zshrc
# dlssjksdklsdfkjlllklld

打ち損じたり、考え事をしていて不意に意味不明な文字をターミナルに叩いてしまう。
ついやってしまうが、上キーでコマンド履歴を漁る度にこいつらが出てくる。ううむ。

どうすりゃいいんだ...

みた感じ~/.zshrc_historyを直接編集して該当部分を消せばいいらしい。
vimで編集して保存する。

あれ?

反映されない。なんで?(殺意

じゃあ...

source ~/.zshrc_historyで反映っと...

# source ~/.zshrc_history

!?

# source ~/.zsh_history                                                                                                                 
/bin/zsh
root のログインシェルを変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
    ログインシェル [/bin/zsh]: n
chsh: 警告: n は存在しません
/root/.zsh_history:source:4: そのようなファイルやディレクトリはありません: ./.zshrc
/root/.zsh_history:source:5: そのようなファイルやディレクトリはありません: ./.vimrc
E: 不正な操作 ibus-anthy
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージはアップグレードされます:
  ibus-anthy
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 1514 個。
739 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 0 B のディスク容量が消費されます。
/usr/share/apt-listchanges/apt_listchanges.py:540: FutureWarning: Possible nested set at position 25
  email_re = re.compile(r'([a-zA-Z0-9_\+\-\.]+)@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)')
changelog を読み込んでいます... 完了
^CE: 子プロセス /usr/sbin/dpkg-preconfigure --apt || true がシグナル 2 を受け取りました。
E: Failure running script /usr/sbin/dpkg-preconfigure --apt || true
/root/.zsh_history:cd:9: そのようなファイルやディレクトリはありません: etc/apt
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
^C^C

!??!!????!??!??!?!???!?!??!?!!??
次々と身に覚えのないコマンドが勝手に実行されます。恐怖です。祈るような気持ちでctrl-Cを連打します。

原因

よく考えなくても当然です。
sourceは.zsh_historyに記録されているコマンドを頭から読み込んでかたっぱしから実行しているのです。

# head .zsh_history                                                                                                                            
chsh -s /bin/zsh
echo $SHELL
chsh
source ./.zshrc
source ./.vimrc
vim 
apt ibus-anthy
apt install --fix-missing ibus-anthy
cd etc/apt
vim apt.conf.d

なんて恐ろしいんだ...

教訓

当時、齢15の少年だった僕はsourceコマンドを勝手に「設定を更新/反映してくれるコマンド」だと勘違いしていました。zshrcを更新するノリでうっかり実行してしまったのです。
僕みたいなうっかりが、もしかしたらいるかもしれないので教訓としてここに残しておきます。

_人人人人人人人人人人人人人人人人人人人人人人人人人人人人_
source ~/.zshrc_historyは絶対に実行してはいけない
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

(もしかしてLinuxあるあるじゃないのか...?)

16
5
1

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
16
5