メモ:コマンド
よく使うコマンドの雑多なメモ.
競技プログラミング
実行結果の正誤確認(ファイルから)
テストケースの入力ファイル名を test.in
,その答えのファイル名を test.ans
,実行ファイル名を a.out
とする. a.out
の標準入力に test.in
をリダイレクトさせて実行した結果と test.ans
を比較する.
$ ./a.out < test.in | diff -s - test.ans
diff
コマンドの -s
オプションは 2 つのファイルが一致するかどうかの判定のみを行い,引数のハイフン -
は比較するファイルの 1 つを標準入出力として指定している.中間ファイルを生成しないで比較できる方法.
その他
翻訳: trans
コマンド
コマンドラインから Google Translate, Bing Translator, Yandex.Translate, DeepL Translator などを使用.ネットワークに接続している必要がある.
$ trans en:ja world # "world" を英和辞典で調べる. [SOURCE]:[TARGETS] で他の言語を指定. $ trans -R # 使用可能な言語とそのコードを表示する
英和辞典として使用するときは下のオプションを指定してエイリアスに登録している.-no-ansi
オプションを指定しないと less
コマンドで表示するときに ANSI escape codes が表示されて見にくい.-v
オプションを使用すると結果を less
コマンドで表示する.
alias transj="trans -no-ansi en:ja -v "
デスクトップ通知: notify-send
コマンド
指定した時間後にデスクトップ上にメッセージを通知する.
$ sleep 1h 10m 10 && notify-send -u critical "タイトル" "メッセージ" &
sleep
コマンドで指定した時間スリープする.時間指定のサフィックスは h
で時間,m
で分,s
で秒を表す.ただし数字のみの場合は秒を表し,これらは空白で区切る必要がある.
notify-send
コマンドはデスクトップの通知ポップアップを表示するコマンドである.
コマンド履歴:history
コマンド
直近に入力したコマンド履歴を出力する.履歴は ~/.bash_hisotry
に保存されるが,保存するタイミングはターミナル終了時なので注意.保存する行数とファイルサイズの上限は ~/.bashrc
の HISTSIZE
と HISTFILESIZE
で指定する。
$ history
引数に数字を指定すると直近のコマンドから数えてその数字の行数分出力する.w
オプションを指定すると引数のファイルに履歴を保存するが,行数が失われるのでリダイレクトの方がおススメ.
おススメの使い方は,ターミナル上でペアプロした後に思い出すための材料として利用。#
はそこから行末までコメントアウトするので適度に入れると分かりやすい.
$ # (例)ディレクトリの作成方法 $ pwd # 現在いるディレクトリ(カレントディレクト)を表示 $ mkdir hoge # "hoge" という名前のディレクトリをカレントディレクトのサブディレクトリとして作成 $ # ls コマンドでカレントディレクトリ内にあるサブディレクトリを表示して、hoge ディレクトリが作成されているか確認 $ ls
上のやり取りの後に how_to_make_directory.txt
に履歴を保存
$ history 6 > how_to_make_directory.txt # 直近の 6 行分の履歴を保存(このコマンドも含まれるので注意)