linux

自作PCにUbuntu 16.10をインストール

Core i7 7700 + GTX 1070 なPCを自作 - minus9d’s diary の続き。自作したPCにUbuntu 16.10をインストールしました。初物ハードウェアということでインストールがうまくいくか不安で、実際トラブルもありましたが、今のところ順調に動いています。 USBメディ…

Travis CI にて、C++11のソースをgccとclangの両方でビルドする

githubのレポジトリと簡単に連携できる継続的インテグレーションサービスであるTravis CIを使って、C++11で書かれたソースコードをテストできるようにしました。想像以上に大変だったのでメモしておきます。 ソースコードとテストコードの準備 Travis CIで提…

makeで大量のメッセージが表示されるときは-dオプションを疑う もしくは変数展開についてのbash/zshの違い

ある私的プロジェクトでMakefileの変数$(CXXFLAGS)を変更して実行するために、以下のようなスクリプト script.sh CXXFLAGS="-std=c++0x -stdlib=libc++" make CXXFLAGS=${CXXFLAGS} を書きました。このスクリプトの意図は、Makefileに記されたCXXFLAGSという…

CMakeをコマンドラインから使う方法の簡単なまとめ

CMakeという、多様なプラットフォームでソースコードをビルドするためのツールの使い方を勉強中です。この記事では、CMake向けに構築されたソースコードを、Linuxなどのコマンドラインからビルドする方法についてまとめます。 ビルドの基本 まず、buildを行…

linuxで連番を生成するにはseqコマンドが便利

linuxのシェルコマンドであるseqを使うと簡単に連番を生成できることを知りました。 まずは5から12までの連番を作ってみます。 $ seq 5 12 のように、最初の数字と最後の数字をそれぞれ指定すると、以下のように表示されます。 5 6 7 8 9 10 11 12 次に、5か…

最近のnkfは超便利

ファイルの文字コードを判別したり変換したりできるnkf Network Kanji Filter プロジェクト日本語トップページ - SourceForge.JPの最新版(2.1.3)を試したところ、高機能さに感動。 特に良いなと思ったのが、--guessオプションでUTF-8のBOM付かどうかを簡単に…

Linuxのターミナルにて、C言語の出力に色を付ける

Linuxのターミナルにて、C言語の出力に色を付ける方法。c - Making some text in printf appear in green and red - Stack Overflowより。Windowsだとうまくいかないはず。 #define RESET "\033[0m" #define BLACK "\033[30m" /* Black */ #define RED "\033…

正規表現の分類

正規表現には多くのバリエーションがあり、かなりややこしい。おおまかに分類すると以下のようになる。 Basic Regular Expression(BRE) もっともしょぼい正規表現。 例: grepやsedのデフォルト Extended Regular Expression(ERE) BREを少し拡張したもの。 …

bash/zshで連番を生成

bashまたはzshで $ echo {1..10}.jpg とすると、 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg 10.jpg と連番ファイルが生成できる。0埋めしたい場合は $ echo {001..10}.jpg とすると、 001.jpg 002.jpg 003.jpg 004.jpg 005.jpg 006.jpg 007.jp…

現在のディレクトリ以下のファイルすべてに対してテキスト置換

zshの**を使った再帰検索と、sedを組み合わせると一行で書ける。 以下は、現ディレクトリ、またはその下にあるすべてのサブディレクトリに存在する、すべてのPythonファイルに対して、文字列beforeを文字列afterに書き換える例。 sed -i 's/before/after/g' …

#!/usr/bin/env と #!/bin/env のどちらを使うべきか

Linux系のスクリプトの一行目に書くシェバン (shebang)で、envを使うテクニックがある。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- a = [1,2,3] … 自分の手元の環境(Cygwin)にてwhere envとすると、以下の2つが見つかる。 /bin/env /usr/bin/env sheb…

Makefileの書き方に関する備忘録 その3

この記事は続き記事です。目次→Makefileの書き方に関する備忘録 - minus9dの日記 変数に何を入れるか .cから.oへのコンパイルには以下の暗黙的なルールが使われる。 $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@.ccから.oへのコンパイルには以下の…

Makefileの書き方に関する備忘録 その2

この記事は続き記事です。目次→Makefileの書き方に関する備忘録 - minus9dの日記 変数 ユーザが編集したりコマンドラインでカスタマイズしたりしたくなるもしれない変数は大文字、makefile内で閉じて使われる変数は小文字で書くのが慣例。 CC := gcc sources…

Makefileの書き方に関する備忘録

※この記事は続き記事になっています 第1回:この記事 第2回:Makefileの書き方に関する備忘録 その2 - minus9d's diary 第3回:Makefileの書き方に関する備忘録 その3 - minus9d's diary makeの使い方を復習しました。今更makeかよと思われそうですが、曖昧…

diffの結果をカラーで閲覧

コンソールでdiffの結果をカラーで見る方法のメモ。 普通のdiffの結果をカラーで見る colordiffというコマンドが使える。 diff before.txt after.txt | colordiff | less -R とすると、diffを色付けしたものをカラーで閲覧できる。以下はその例。(diffの-uオ…

wgetでよく使うオプション

--wait=5 ファイルをDLするごとに5秒待つ --recursive 再帰的に、つまりリンクを辿ってページをDLする --level n 再帰の深さをnとする --span-hosts 異なるホストのページもDLする --no-directories ディレクトリを作らない -A .zip 拡張子が.zipのファイル…

Linux From Scratchプロジェクト

最近、Linuxを一から組み立てる方法を解説するプロジェクト「Linux From Scratch」というものの存在を知りました(Welcome to Linux From Scratch!)。ありがたいことに日本語版も存在します(Project Web of LFSブック日本語版 on SourceForge.JP Web space…

ディレクトリのみをリストアップする方法

findのmaxdepthオプションを使うのがスマート。 find . -maxdepth 1 -type d で、カレントディレクトリにあるディレクトリを列挙できる。-typeでファイルタイプをディレクトリと指定。-maxdepthで検索する階層の深さを指定。これを指定しないと再帰的にディ…

xargs

find . -name "*.foo" | xargs grep bar は、 grep bar `find . -name "*.foo"` と同じ。findの-execオプションを使ってgrepと連携する技もあるが、xargsより遅いらしい。-execの構文は覚えにくいので、xargsを使うのがよさそう。 参考 xargs - Wikipedia

grepで複数行を対象にサーチ

grep -Pオプションを使って複数行を検索する方法 grepは単一行のみしか検索できないのかと思っていたが、オプションを使うとできることが分かった。 例として、検索対象のテキストtest.txtに以下のように書かれているとする。 aaabbbccc dddeeefff ggghhhiii…

FedoraではなくWindowsがデフォルトで起動するよう、GRUB の設定を変更 その2

以前に、WindowsとFedoraとをデュアルブートできるようにしてあるPCで、デフォルトで起動するOSを返る方法を紹介した。 FedoraではなくWindowsがデフォルトで起動するよう、GRUB の設定を変更 - minus9dの日記 最近Fedora 17をクリーンインストールしたらま…

シェルスクリプトで掛け算

シェルスクリプトで掛け算をしようとして少しはまった。やりたいことは、数字0, 1, 2, ...が与えられた時、数字0, 5, 10,...を出力すること。これはダメな例。 #!/bin/sh for i in {0..10} do num=`expr 5*$i` echo $num // "5*0", "5*1", "5*2", ...が出力…

FedoraではなくWindowsがデフォルトで起動するよう、GRUB の設定を変更

私のEeepc には、Windows XPに加えて、後から追加でインストールしたFedoraが入っている。PC立ち上げ時、デフォルトでFedoraの方が立ち上がってしまう。デフォルトでXPが立ち上がるようにする方法は、 GRUB について にあった。 /boot/grub/grub.conf のdefa…

Fedora 11 から Fedora 12へ、preupgradeコマンドを用いてアップグレード

Fedora 12がリリースされたので、早速Fedora 11からアップグレードした記録。マシンはEeePC。まず、http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a092fedora9up.html に従う。具体的には、 コンソールからpreupgradeでウィザードを呼び出し、指示に従…