メモ:コマンド

よく使うコマンドの雑多なメモ.

競技プログラミング

実行結果の正誤確認(ファイルから)

テストケースの入力ファイル名を test.in ,その答えのファイル名を test.ans ,実行ファイル名を a.out とする. a.out の標準入力に test.in をリダイレクトさせて実行した結果と test.ans を比較する.

$ ./a.out < test.in | diff -s - test.ans

diff コマンドの -s オプションは 2 つのファイルが一致するかどうかの判定のみを行い,引数のハイフン - は比較するファイルの 1 つを標準入出力として指定している.中間ファイルを生成しないで比較できる方法.
 
 

g++ のエイリアス

alias gpp="g++ -std=c++1z -Wall -O2"

 

その他

翻訳: 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 "

 
 

ディレクトリの説明: hier コマンド

ファイルシステム階層での各ディレクトリの説明を表示.
 
 

ディレクトリの木構造表示: tree コマンド

ディレクトリを tree-like に表示.
 
 

デスクトップ通知: notify-send コマンド

指定した時間後にデスクトップ上にメッセージを通知する.

$ sleep 1h 10m 10 && notify-send -u critical "タイトル" "メッセージ" &

sleep コマンドで指定した時間スリープする.時間指定のサフィックスh で時間,m で分,s で秒を表す.ただし数字のみの場合は秒を表し,これらは空白で区切る必要がある.
notify-send コマンドはデスクトップの通知ポップアップを表示するコマンドである.
 
 

コマンド履歴:history コマンド

直近に入力したコマンド履歴を出力する.履歴は ~/.bash_hisotry に保存されるが,保存するタイミングはターミナル終了時なので注意.保存する行数とファイルサイズの上限は ~/.bashrcHISTSIZEHISTFILESIZE で指定する。

$ history

引数に数字を指定すると直近のコマンドから数えてその数字の行数分出力する.w オプションを指定すると引数のファイルに履歴を保存するが,行数が失われるのでリダイレクトの方がおススメ.
おススメの使い方は,ターミナル上でペアプロした後に思い出すための材料として利用。# はそこから行末までコメントアウトするので適度に入れると分かりやすい.

$ # (例)ディレクトリの作成方法
$ pwd # 現在いるディレクトリ(カレントディレクト)を表示
$ mkdir hoge # "hoge" という名前のディレクトリをカレントディレクトのサブディレクトリとして作成
$ # ls コマンドでカレントディレクトリ内にあるサブディレクトリを表示して、hoge ディレクトリが作成されているか確認
$ ls

上のやり取りの後に how_to_make_directory.txt に履歴を保存

$ history 6 > how_to_make_directory.txt  # 直近の 6 行分の履歴を保存(このコマンドも含まれるので注意)