タグ

linuxに関するyoshi_kanagawaのブックマーク (31)

  • ターミナルの diff で、github のように、行の中で具体的に差分がある部分に色付けをしたい

    github の PR の diff 表示では、行ごとの diff に加えて、行中のどこの部分に差異があるのかを表示してくれます。例えば linux の PR から適当に拾ってきたこのページ などが具体例です。 今、コマンドライン上の diff においても、このように色付けができたら便利だろうと思い、その方法を探しています。 diff に色を付けようとして、見つかったパッケージは、 colordiff というツール で、これを使うと、例えば + の行は緑色、-の行は赤色といったように、行ごとに色を付与してくれますが、最終的に実現したい github 的な diff の再現において、「行中の差異の部分の表示」はやってくれていないな、と思っています。 質問 github の PR ページの diff のように、行中の差異の部分まで色わけしてくれるような diff を、ターミナル上で実現したいの

    ターミナルの diff で、github のように、行の中で具体的に差分がある部分に色付けをしたい
  • 【Linux】シェルスクリプトの関数の使い方!一通りまとめ

    プログラミングをやったことがある人にはお馴染みだろうが、シェルスクリプトでも関数を作ることができる。 関数とは処理をまとめて、何度も使えるようにしたものだ。 シェルスクリプトは、もともとあまり複雑なプログラムを組むのに適してはいないが、関数を少し使って効率良く作成するくらいであれば構わないだろう。 このページでは関数の使い方についてご紹介する。参考にしてほしい。 簡単に関数とは? 簡潔にいえば「処理をまとめたものが関数」である。中学校のとき習った次のような関数と同じだ。 y = 2x xに何かを代入したら、yの値も決まる。 基的に「引数を受け取り、それを処理し結果を返す」というのが役割である。とはいえ、引数を受け取らなくても動く関数もあるので、同じ動作を何度も書かないでしてくれる便利な方法だと思っておけばいい。 関数を使用すると同じ処理をするコードを繰り返し記述する必要がなくなるのである

    【Linux】シェルスクリプトの関数の使い方!一通りまとめ
  • Linuxでtcを使って帯域制御 - HiiHahWIKI - making some notes for... -

    Linuxでtcを使って帯域制御 † Linuxのtcというコマンドを利用し、eth0の送信の帯域制御で簡単にできます。 tc qdisc add dev eth0 root tbf limit 15Kb buffer 10Kb/8 rate 100Kbps これで、eth0の帯域を800Kbyte/sに設定できます。 状況は、以下のコマンドで確認できます。 tc -s qdisc watchで状況を確認すると以下の様な出力が得られます。 qdisc tbf 8001: dev eth0 rate 800Kbit burst 10Kb lat 50.0ms Sent 277025786 bytes 598593 pkts (dropped 2908, overlimits 439519 requeues 0) 以下のコマンドで、解除できます。 tc qdisc del dev eth0 r

  • Linux TC (帯域制御、帯域保証) 設定ガイドライン | GREE Engineering

    Abstract このドキュメントはLinuxにおいて帯域制限のためにtcを用いる際のガイドラインです。 tcは様々な用途に活用できるものですが、プロダクションにおいて特定のserver daemonのトラフィックを制限するというシナリオで活用することを目的としています。 tcのより詳しい詳細については別にドキュメントを書きましたのでそちらを参照してください。 よくわかるLinux帯域制限 Root qdiscの選定 帯域制限を行いたい場合のqdiscは主に以下のようになるでしょう。 TBF PRIO + 内部qdiscとしてTBF HTB それぞれ用途に合わせて適切なものがあるのですが、機能としてはHTBが前者2つの上位互換となるので、迷った場合にはHTBを使えば問題ありません。ということで以後HTBの設定について解説します。 class構造,トラフィックのclassify, filte

    Linux TC (帯域制御、帯域保証) 設定ガイドライン | GREE Engineering
  • find で空白を含んだパスに検索を実行し、結果を xargs に渡す - 酔いどれコード

    find で空白を含んだパスに対して検索を実行し、その結果を xargs に渡しても思うような結果が得られない。どうしてかというと、xargs は標準入力から空白または改行で区切られた文字列群を読み込むから。パスに含まれた空白が xargs に区切り文字として解釈されてしまう。 % ls "Foo Bar" hoge1.txt hoge2.txt % find "Foo Bar" -name "*.txt" | xargs grep "Hello" grep: Foo: No such file or directory # "Foo" で一つ目の入力として捉えられている grep: Bar/hoge1.txt: No such file or directory # "Bar/hoge1.txt" で二つ目の入力として捉えられている grep: Foo: No such file or

    find で空白を含んだパスに検索を実行し、結果を xargs に渡す - 酔いどれコード
  • tcpdump HTTPリクエストヘッダの出力

    # tcpdump -i eth0 port 80 -Xns 1000 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 1000 bytes 16:28:11.574091 IP 64.122.133.210.26595 > 13.222.111.110.http: Flags [S], seq 2155308325, win 65535, options [mss 1304,nop,nop,sackOK], length 0 0x0000: 4500 0030 c790 4000 7606 83f2 3dc2 39fa E..0..@.v...=.9. 0x0010:

    tcpdump HTTPリクエストヘッダの出力
  • http://blog.tofu-kun.org/070517085727.php

  • yum install git でインストールできない場合 | Basicinc Enjoy Hacking!

    先日サーバにGitをインストールしようと思って yum install git とコマンドをうったら $ yum install git Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp Setting up Install Process No package git available. Nothing to do そんなパッケージありませんよと(´・ω・`) 今はyumでインストールできないことはほとんどないと思いますが、古いサーバなんかの場合できないときがあったりします。というわけでよく使うEPELリポジトリを追加します。 ディストリビューションと

    yum install git でインストールできない場合 | Basicinc Enjoy Hacking!
  • findコマンドの論理演算子を復習 | それなりブログ

    findコマンドは、-type f や -name ‘hoge’ などの様々な条件を使うことが出来ますが 加えて AND や OR や NOT の論理演算子も使うことができます 今までテキトーに使ってたので復習しました AND文は評価式を -and または -a で結合します まず、動作確認用に以下のようにファイルを配置します $ tree . |-- dark-chaos |-- dark-neutral |-- dark-row |-- light-chaos |-- light-neutral |-- light-row |-- neutral-chaos |-- neutral-neutral `-- neutral-row 動作確認してみましょう $ find . -name '*light*' -and -name '*row*' ./light-row ファイル名に ‘lig

  • rootでのSSHログインを禁止 - SSHサーバーの設定 - Linux入門 - Webkaru

    SSH接続を利用して、rootでSSHサーバーに侵入されてしまうと……大変危険です。考えただけで怖いですね。そこで、今回はrootでのSSHログインを禁止する方法を解説します。 rootでのSSHログインを禁止するために、SSHの設定ファイル(/etc/ssh/sshd_config)を編集します。まずは、SSHサーバーに一般ユーザーでSSH接続しましょう。 ※ 今回の設定で、rootでのSSHログインは禁止されます(rootでログインできなくなります)。必ず!一般ユーザーでSSHログインできるかどうかを確認しておきましょう。 設定を変更するためにrootになります。sudoでもいいですよ。 $ su - SSHの設定ファイル(/etc/ssh/sshd_config)をバックアップします(拡張子?のorgはoriginalの略です。)。 # cp /etc/ssh/sshd_config

    rootでのSSHログインを禁止 - SSHサーバーの設定 - Linux入門 - Webkaru
  • findとxargsを利用してディレクトリ構造のみをコピーする

    iOS、AndroidIT技術等のまとめブログ。小さくても大きな効果を発揮する知的ツールの調査、開発結果を報告しています。 ディレクトリ内にあるファイルを無視して、ディレクトリのみをコピーする方法を検討して試しました。findコマンドでディレクトリのみを抽出したあと、それをパイプしてディレクトリを作る方法についてまとめました。 次のような構成のフォルダを想定します。 $ find 1 1 1/1.txt 1/2-1 1/2-1/2-1.txt 1/2-1/3 1/2-1/3/3.txt 1/2-2 1/2-2/2-2.txt 1/2-2/3-1 1/2-2/3-1/3-1.txt 1/2-2/3-2 1/2-2/3-2/3-2.txt この構成からディレクトリのみをtoフォルダへコピーすることを考えます。以下のコマンドではfromディレクトリのみをtoディレクトリ配下に作成しています。

  • [Red Hat Enterprise Linux] CentOS用リポジトリを使う方法 - Life with IT

    2012/5/13更新 対応バージョン: 6.2(64bit) Red Hat Enterprise Linux(RHEL)をインストールした状態ではパッケージを取得するリポジトリが登録されていない。 RHELではOSS版のCentOS用のリポジトリが使用できるので、以下のように専用のファイルを作成してbase, updates, extrasを設定する。 % sudo vi /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/o

    [Red Hat Enterprise Linux] CentOS用リポジトリを使う方法 - Life with IT
  • bashの正規表現マッチングの使い方 - adsaria mood

    あるフリーウェアのインストール用bashプログラムを見ていたら次の様なものがあった。(以下の例は簡略化してある。) STRING="abc" if [[ "$STRING" =~ "^ab[cd]$" ]]; then echo "matched" else echo "unmatched" fi if文の条件表現の中に“=~”というオペレータがある。manを見ると =~ オペレータは文字列を正規表現と比較するとある。知らなかった。bashの文字列比較で正規表現が使えるとは。私は正規表現比較が必要な時はgrepに喰わせて判断していたのだが、これを使えば簡単にできる。 ところが、だ。上のプログラムが期待通りに動かない。上の例では =~ の左辺と右辺の正規表現はマッチするはずだが、結果は“unmatched”。色々と正規表現を変えてみたが、どれとしてマッチングしない。しかし、if文を次のように

    bashの正規表現マッチングの使い方 - adsaria mood
  • RHELでShift-jisをサポートさせる: 与一's 外部記憶

    Linux,Windows,VMwareで調べたことをノート代わりに記録する予定 間違いとかがあったらコメントに書き込んでくれると助かります。 RHELでは基的にshift-jisは対応していないので、設定を変える必要があります。(3と4はこの方法でOK、5は不明) 【設定方法】 ========================= (1.SJISロケールを以下のコマンドで追加) # localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS locale not ISO C compliant~というのがおそらく出力されるので(このエラーは2.が確認できれば無視していい)、先にja_JP.sjisがロケールにあることを確認してから1.は行ったほうがいいかもしれないです。 2.ja_JP.sjisがロケールに追加されたことを確認。 # locale -a | gr

  • 日本語ファイル名の文字コードを変換するスクリプト - myhd

    以下はSJISの日語ファイル名をUTF-8に変換する例。 コマンドはiconvを使用するので、ほとんどのOSで動作するはず。 追記:文字列と文字コードの組み合わせによっては上手く動作しない(文字化けしたファイルのmvで失敗する)ことがわかったので、Perlで書き直しました。 日語ファイル名の文字コードを変換するスクリプト(Perl版) - myhd #!/bin/sh for sjis_name in `find .` do utf8_name=`echo "${sjis_name}" | iconv -f SJIS -t UTF-8` if [ "${sjis_name}" != "${utf8_name}" ]; then mv "${sjis_name}" "${utf8_name}" fi done 使える文字コードは iconv -l で確認できます。 ちなみに、世の中にはc

    日本語ファイル名の文字コードを変換するスクリプト - myhd
  • convmv -- ファイル名の文字コードを変換するスクリプト

    スキャン舗から送られてきた PDF ファイルは、ファイル名が丁寧にもの題名になっていた。問題はその文字コードが Shift_JIS だったこと。Mac だと問題ないけど、Ubuntu Linux では激しく文字化けする。特に CUI で扱う場合は不便 (当は英数字だけが理想なのだけど)。そこで、ファイル名の文字コードを変換するスクリプトを探したところ、convmv という Perl スクリプトを見つけた。 convmv - convert filenames to utf8 or any other charset via. ファイル名の文字コードを変換するには インストール convmv - convert filenames to utf8 or any other charset 家ページから最新版 (1.14) をダウンロードする。あとは展開して PATH の通った所に置く

  • zipファイルの文字化け

    コマンド?何それ?というGUIにどっぷり浸かったマカーがOS9からDebianへの移行を模索するブログです(^▽^) 他環境からDebianにファイルを持ってきた場合、文字コードの違いから日語ファイル名が文字化けすることがあります。対処法としては以前このブログでも紹介した「convmv」を使い変換する方法があります。しかし、zipファイルから解凍したファイルには「convmv」で変換しても文字化けが直らないものがあります。 通常Debianでzipファイルを解凍するには「unzip」を使用します。「unzip」は解凍の際に文字コードを自動的に変換する機能を有していてるのですが、これが曲者で強制的にラテン語ベースで変換を行ってしまうらしいのです。これにより日語のファイル名が破損し「convmv」で変換しても文字化けが直らないのです。当然これはバックエンドとして「unzip」を使用している

  • Procmailマニュアル

    『Procmail(プロックメール)』は、メールサーバが受信したメールを特定のルールにより振り分けたり、フィルタリングしたりするソフトウェアです。 簡単なレシピ(一連の設定のこと)を記述しておくだけで、題名や差出人ごとに振り分け、転送、SPAM(迷惑)メールの削除等を行う事ができます。 ホームディレクトリに「.procmailrc」というファイルを作り、目的別に以下のレシピを記述してください。2つ以上のレシピを書くこともできます。 注意:はじめに「.」が記述されているファイルは特別な意味があり、通常の「ls」では表示されません。そのため、これらのファイルを表示させたい場合は「ls -a」としてください。 転送のためのレシピ メッセージをコピーし、そのコピーを転送します。この場合、転送先と共用計算機(ruby)にメールが残ります。cをつけなければ共用計算機(ruby)にメールは残りません。

  • Procmail によるメールの自動振り分け

    受信したメールをルールに則って振り分けてくれるProcmail について解説していきます。かなり細かいところまで柔軟に振り分ける事ができるので活用しないてはありません。 ■procmail のインストール RedHatの場合は、既にRPMパッケージがインストールされていると思います。インストールされていなければインストールしておいてください。

  • mvコメンドでファイル名を変えたい時にpathを全部打つのが面倒くさい - 文字っぽいの。

    いままで tabで補完できるとは言え、面倒ですね。 $ mv path/to/file/old_file_name.txt path/to/file/new_file_name.txt これから ちょろいですね。 $ mv path/to/file/{old_file_name,new_file_name}.txt

    mvコメンドでファイル名を変えたい時にpathを全部打つのが面倒くさい - 文字っぽいの。