Bluepostech

まじめなことを書きます

bash

【bash】プロンプトのパス表示を切り詰める

bashのプロンプト プロンプトは環境変数$PS1で編集する bashのプロンプト bashのプロンプトはいろいろだが、入力部分より前側が長すぎると見づらいことがある。たとえば user@node /home/workspace/mywork1/temp/test $ のように長いと、入力した文字列がわ…

【bash】ワイルドカードが使えないコマンドでワイルドカードを使う

ワイルドカードとは、複数のファイルを一気に指定するのに使う記号で、たとえば任意の文字列を表す「*」や任意の1文字を表す「?」が代表的だ。たとえばカレントディレクトリのjpgファイルをpictureというディレクトリへ移動するときは、次のようにする。 mv …

【bash】タイトル名に入ったスペースを置換する

タイトルに入ったスペースは、バグの原因のひとつになる。たとえば「I love you.txt」というファイルを「love letter.txt」という名前にリネームするとき、次のようにするとエラーが出る。 mv I love you.txt love letter.txt なぜならば、単語がスペースで…

【bash】ワンライナーでdoループ

forループはプログラムでは重要な機能だ。「カレントディレクトリ以下のファイル全部に何かする」とか、「findで拡張子が*.pngのファイルを拾ってきてリネームする」とか、そういう「リストに含まれるものに何かする」という局面はよくある。 bashスクリプト…

【bash】コマンドラインで四則演算をする

シェルスクリプトは十分有用な言語といえるが、ただ一つ重大な欠点がある。実は四則演算が単純な式でできないのだ。 たとえば、pythonで1/3を計算して表示するには、たった1文次のようにすればよい。 print 1.0/3.0 ただし1/3としてはならない。なぜならば1/…

【Linux】findで特殊文字をエスケープする

findという非常に便利なコマンドがある。これはファイルを検索するコマンドなので、よくパイプと一緒に使う。 たとえば、カレントディレクトリ以下のemacsで生成される「*.txt~」というような一時ファイルを一挙に削除するときは次のようにすればよい。 find…

【bash】forループで連番と飛び値を併用する方法

シェルスクリプトのfor文の基本的な文法は次のようなものになる。 for i in 1 2 3 5 7 11 13{ command } 書ききれるならこのようにすればいいし、この並びでは1,2,3が連番になっているので、次のように指定することもできる。 for i in {1..3} 5 7 11 13 範…

【Linux】仮想端末でHDDのフォーマット

LinuxとかOSレベルのことをいじるようになったので、バックアップ用に2TBのモバイルUSBHDDを買った。 Transcend USB3.0/2.0 2.5インチ ポータブルHDD 耐衝撃 M3シリーズ 2TB 3年保証 TS2TSJ25M3 出版社/メーカー: トランセンド・ジャパン 発売日: 2014/05/20…

【Linux】ターミナルからリモートアクセスする

Linuxサーバに外部からアクセス、操作するには、SSHというプロトコルを使う。windowsの場合はputtyというフリーのクライアントソフトを導入してアクセスするのが標準だが、LinuxにはSSHクライアントは標準装備されている。 LinuxからSSHでアドレスがserver.c…