タグ

ブックマーク / takuya-1st.hatenablog.jp (21)

  • ln -s で相対シンボリック作成のやりかたと解説。 - それマグで!

    ln -s で失敗した経験ありますよね? /var/www/log/index.php から /var/www/html/index.php へリンクする場合。こういうときに、相対パスをぱぱっと作れたら嬉しいでしょ? でも、ぱぱっと作れなかったり、相対パスを作ったつもりがリンク切れてたり。。そして、失敗を繰り返してしまう。 最後には、諦めてフルパスでリンク書いてたり。しませんか? ところが、フルパスだとバックアップフォルダ移動後にリンクが壊れたりする。 相対パスでリンクすると、あとで楽だもんね。 だから基的に相対パスで書きたいよね?うん。だよね???だよね??? というわけで、相対パスでシンボリックリンクの作り方。 お急ぎの人は 記事の最後へどうぞ。 次のようなリンクを作ってみます。 ファイルをリンクする場合に相対パスと絶対パスで作ってみます。 絶対パスなら次のように ln -s /va

    ln -s で相対シンボリック作成のやりかたと解説。 - それマグで!
    atm_09_td
    atm_09_td 2018/02/27
    関連アイテムが懐かしい。
  • pyenv でインストールされたpipを含めてupgradeする方法 - それマグで!

    pyenv の python をバージョンアップしたい pyenv でインストールしたpython をバージョンアップして、pipをmigrate したい・ pyenv はバージョン毎にpip環境が作られるから、pyenv でglobal をアップグレードすると、使ってたpipのパッケージが移動されずに真っ白な環境になってしまう。 そこで pipのパッケージをmigrationしたいと思った pyenv-pip-migrate で一括アップグレード pyenv-pip-migrate という モジュールがあって、コレを使えばマルっとバージョンアップしてくれることがわかった。 pyenv-pip-migrateのインストール brew install pyenv-pip-migrate これをインストールしたら準備完了 pyenv でバージョンアップする 現状が次のバージョンなので、これを3

    pyenv でインストールされたpipを含めてupgradeする方法 - それマグで!
  • bashのシェルスクリプトで拡張子を取得して利用するときのまとめ - それマグで!

    特定の拡張子に○○する的なことはよくある シェルスクリプトを書いていると拡張子で判別したいことはよくある。 bashで拡張子を取得するには bashのブレース展開が一番ラクです。 path=/etc/apache2/httpd.conf extension=${path##*.} #=> conf 特定のディレクトリの中で拡張子を取得するには xargs と組み合わせる find | xargs -I@ bash -c 'path=@; echo ${path##*.}' そもそも拡張子の取得が必要ですか? そのシェルスクリプトで拡張子をもとに検索をしたいなら、拡張子を取る必要はないかもしれないですよ。 指定した拡張子を検索 grep . -R --include=*.php 指定した拡張子のファイルを列挙する。 find -type f -name '*.php' ファイル名がマッチする

    bashのシェルスクリプトで拡張子を取得して利用するときのまとめ - それマグで!
  • sslh でport443 を有効活用して、sshもhttpsも同時に待ち受けする。 - それマグで!

    443ポート以外が絶滅しそうです あちこちでポートは閉じられています。ssh や sftp もプロキシ利用も、各種ポートでは、全く外部に出れず、接続できないネットワークが多いです。 TCP/IPなのにIPとポートを使った通信ができない、壊れたネットワークが当然になりました。 これらの接続制限にとても不便を感じることが多いです。 サーバー管理者の気分一つでポートが空いたり閉じたり、私が触ってたネットワークではポリシーが統一されず、クソネットワーク管理者に振り回されて、動くはずのものが動かず、不便なことが多かったのです。そこで仕方なく443を使っています。 私達が利用する端末では80/443 のポートの外部接続が閉じられることは少なく、443であれば通信できます。 そのため、443ポートに様々なアプリケーションを起動していると思います。 443 ポートとIPアドレスが枯渇する・・・ よほどのG

    sslh でport443 を有効活用して、sshもhttpsも同時に待ち受けする。 - それマグで!
  • bashのパラメータのブレース展開での拡張子・ディレクトリ名・ファイル名の取得・拡張子の置換 - それマグで!

    bash のbrace 展開で文字列を置換する 文字の置換は、bashはとても楽ちんである。 NAME=www.example.com echo ${NAME//./_} # www_example.com echo ${NAME//./_} # www_example_com これをもう少し掘り下げる。 bash でファイル名から拡張子を取出す方法 ファイル名から拡張子を取出すのはカンタンでした。 path=/etc/apache2/httpd.conf extension=${path##*.} #=> conf 魔法の記述方法 ${varname##*.} を使うと 手軽に拡張子を取得できる。 拡張子を書き換える方法 拡張子を書き換えるには、変数の書き換えを使えば直ぐ出来る。 f_name=httpd.conf txt_name=${f_name/.*/.txt} #=> httpd

    bashのパラメータのブレース展開での拡張子・ディレクトリ名・ファイル名の取得・拡張子の置換 - それマグで!
  • find コマンドで指定条件を除外(exclude)して、特定の拡張子を対象から消すには - それマグで!

    find コマンドで指定条件のファイルを<除外>したい時 ずっとgrep 使ってたんですけど、find だけで出来ないのかなと気になって調べました。 -not -name pattern のように出来る 除外するときは、-not を最初につけてから上限を書けばいいことがわかった。 次の例は、拡張子 jpg を除外する場合 find -type f -not -name '*jpg' 条件として記述するので name 以外にもファイル名やパーミッションなど find コマンドのオプションと -notを組み合わせて、◯◯以外の条件にマッチしたものを除く、といったファイルの検索できることがわかる。 複数条件書いたらどうなるのか -not があれば、気になるのが複数条件 find -type f -not -name '*jpg' -not -name '*.png' このように、複数続けて書いた

    find コマンドで指定条件を除外(exclude)して、特定の拡張子を対象から消すには - それマグで!
  • みんな大好き、dig コマンドの使い方(dnsを調べるあれこれ - それマグで!

    みんな dig ってますか? http でファイルが開けない時、真っ先に見るべきは iptable でも、ifconfig でもなくて dig です。 まず、dig を確認するよね。 dig の使い方 dig は名前解決を試みるコマンドです。 名前解決とは何か、、DNSの仕組みについては触れません。コマンドを使っていけばわかると思うし。 dig で 名前解決する dig t.co ドメインから、IPアドレスを探す。 dig で逆引きする。 dig -x 8.8.8.8 逆引きすると、IPアドレスからそのIPの持ち主がだいたい分かることが多い MXレコードを指定する dig yahoo.co.jp mx ns レコードを探す dig yahoo.co.jp ns txt レコードを探す dig yahoo.co.jp txt 表示をシンプルにする 結果だけ欲しい時に使う、プログラムと組わせて

    みんな大好き、dig コマンドの使い方(dnsを調べるあれこれ - それマグで!
  • HTTPキャッシュ。なぜ嫌われるのか。 - それマグで!

    忌み嫌われるキャッシュたち。 キャッシュはどうやら、世間では嫌われ者のようです。 ScrenCaptured_2016-03-05_0.54.33 どうして、そんなにキャッシュされるのがイヤなんだろうか。 そもそもキャッシュってなんだっけ? キャッシュとは、更新されていないコンテンツ(画像、CSS、JS、HTMLDNS結果など)を何度も何度も取得行かずに済むように、クライアントPC側で保存し再利用する仕組み。 つまり、転送量の節約。無駄な転送を控える。非常にエコな仕組みであります。 HTTPのエコ。HTTPはエコなプロトコルだったはず。 3つのR です。 Reduce Reuse Remix 。複数のファイルをそれぞれ、別途管理して1つのページとして構成(Remix)する仕組みです。 ブラウザのキャッシュを利用するメリット 通信料の節約、画面表示の高速化、戻るボタン対応など。 ブラウザは

    HTTPキャッシュ。なぜ嫌われるのか。 - それマグで!
  • youtube-dl コマンドが便利すぎる・・・ - それマグで!

    youtube-dl ってyoutube非対応のraspberryPiで動画再生に使ってました。 deibain にyoutube-dl というコマンドがありまして、youtubeから各種データ取り出すことに使えます。 youtube-dl コマンドはとても便利すぎて鼻血が出ます。 youtube-dl でプレイリストのJSONに対応してる。 ある日、間違えて動画再生ページではなく、プレイリストのページでコマンドを実行するミスをしました。 でも動きました。プレイリストにも対応 youtube-dl -J youtube-プレイリストのURL この他にも、投稿者のプロファイルページなど複数の動画のリストページを渡すとまとめて処理してくる dailymotion に対応 また別の日に、Dailymotionを解析手法を探してたら、youtube-dl を使えってStackうんちゃらで見たけたの

    youtube-dl コマンドが便利すぎる・・・ - それマグで!
  • ssh の接続を節約する。ControlMasterを設定する - それマグで!

    SSH でリモートサーバーにログインすると・・・いっぱいセッション出来る ssh コマンドでたくさんセッションが出来てしまうのはちょっと無駄が多い気がする。 ssh でサーバにログインしまくってたときの状態 例 ss で ソケットの状態を見ると・・・ takuya@atom:~$ ss State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 192 192.168.12.15:ssh 161.192.74.xx:52555 ESTAB 0 0 192.168.12.15:ssh 161.192.74.xx:52554 ESTAB 0 0 192.168.12.15:ssh 161.192.74.xx:52553 たしかにたくさんだわ。 セッションなんて1つアレばいいんじゃないの? SSHのログイン済セッションを一つだ

    ssh の接続を節約する。ControlMasterを設定する - それマグで!
  • bash(csh)のhashとか言う、気づかないけど便利な機能 - それマグで!

    hashってなに? 起動したコマンドが、何処にあったのか、2回目以降のPATH検索を省略する機能です。 PATH環境変数を変えた後、コマンド行方不明⇛hashによるキャッシュ PATHをいじった後に、コマンドの場所変更が、反映されないことってあるよね #bashの場所の確認 takuya$ which bash /usr/local/bin/bash # 消してやる takuya$ rm /usr/local/bin/bash #消しても /bin/bashにあることを確認 takuya$ which bash /bin/bash #PATH=/bin: あるから bashで起動するよね! takuya$ bash -bash: /usr/local/bin/bash: No such file or directory ## あれれ?おかしいなー bashを削除しても、/bin/bash

    bash(csh)のhashとか言う、気づかないけど便利な機能 - それマグで!
  • rubyのNokogiriをもっと簡単に!Slopする。 - それマグで!

    ruby のNokgiri をもっと簡単に使いたい。 PHPSimpeXMLに負けてる気がします。JSON.load にも負けてる気がします。 NokogirのSlopを見つけた doc = Nokogir::Slop("<book><title>日常に潜む数理曲線</title></book>") doc.book.tile.text #=> 日常に潜む数理曲線 これが出来る。 もういちいち、searchで降りて行かなくていいんです。オブジェクトしてアクセ出来るようになってとても便利なんです。 実際にやってみた 次のような。XMLがあるとき users.xml <?xml version="1.0" encoding="utf-8"?> <users> <user> <loginId>takuya@mmmm.jp</loginId> <passwd>************</pass

    rubyのNokogiriをもっと簡単に!Slopする。 - それマグで!
  • watchコマンド:コマンドを定期実行し結果を淡々と表示するコマンド - それマグで!

    コマンドを定期的に実行し、実行結果を画面に表示したいとき Watchコマンドを使うととても便利です。 ディスク容量を画面に表示し続けていたい ファイルサイズを画面に表示していたい 定期的にコマンドを実行して結果が変わるのを待ちたい などにとても便利です。 ファイルサイズが変化するのをモニタリングする例。 watch ls -alh 実行結果 Every 2.0s: ls -lh Tue Aug 3 19:07:58 2010 3.4G -rw-r--r-- 1 takuya takuya 0 2010-07-31 21:40 1234, -rw-r--r-- 1 takuya takuya 201K 2010-08-02 19:16 2010-08-02.A.txt -rw-r--r-- 1 takuya takuya 150K 2010-08-02 19:17 2010-08-02.A-

    watchコマンド:コマンドを定期実行し結果を淡々と表示するコマンド - それマグで!
  • Rubyで exptect や ptyを使ってパスワードを自動入力する - それマグで!

    SSHパスワード省略について書くと,公開鍵エントリに埋もれてしまうのですが。。。 Sudoや、SSHを踏み台にしてその先のPCRsyncするときなど、パスワード入力が毎回出てきて煩わしい.公開鍵が使えない業者のサーバーに限って,SSHで多段アクセスだったり頻繁にRsyncが必要だったりする ruby でパスワード入力する方法 #!/usr/bin/env ruby require 'pty' require 'expect' cmd = 'rsync -avz server0:/mnt/test /home/takuya ' PTY.getpty(cmd) do | i,o | o.sync = true i.expect(/password:/,10){|line| ##入力プロンプトくるまでreadline繰り返す puts line o.puts "my_pass" o.flush

    Rubyで exptect や ptyを使ってパスワードを自動入力する - それマグで!
  • 0001Softbankというオレオレ基地局で遊んでみた。 - それマグで!

    0001Softbankというオレオレ基地局に、SBアンドロイドが無差別に接続する話を試してみたら、意外とあっさりつながったのでエントリに。 コネクトフリーの件で、Wifi認証を調べてた。ちょっと昔聞いた話を思い出したので、 昔の話。 FONとか、公衆Wifi業者と同じssidにして、wifiあげとくと楽しいですよ。 やってみた。 最近は、Wifiスポット自動接続になってきたので、さらに香ばしいことになってるはず。 0001SoftbankのSSIDでWifiたててみた。 0001SoftBankで、SSIDを出してみる。 ソフトバンクのWifiSpotアプリをオンにした。 接続された。 ローカルIPで。認証済みねぇ。まぁそういものなんだろうけど。 いいのかね。 tcmpdump してみた。 アンドロイドのブラウザを開いた。そこそこパケット見えるなぁ。HTTPSは無理でもHTTP Cook

    0001Softbankというオレオレ基地局で遊んでみた。 - それマグで!
  • Linux ユーザーを一括登録&一括パスワード設定 - それマグで!

    Linuxでまとめて50人くらいのユーザーを作る必要があった。ユーザーを作るまでは簡単だった、だけど、パスワード設定が面倒。余りに面倒だったのでメモをすることにしました。 パスワードを一括で設定する 先にユーザーの一欄を作る users.txt takuya masanori daichi yoshihiko ユーザーと初期パスワードの一覧を作る for u in `cat users.txt`; do echo $u:`/usr/bin/mkpasswd` ; done > out.txt 一覧出来た out.txt takuya:x0=Cy8tzW masanori:9EalnhX]6 daichi:q8OwV'n8p yoshihiko:1u”FyigT6区切り文字は : です。 まとめて、パスワードを登録する sudo chpasswd < out.txt 同じファイルを使えば、新

    Linux ユーザーを一括登録&一括パスワード設定 - それマグで!
  • HomeBrewの仕組みについてまとめておく - それマグで!

    Homebrewを使っている。MySQLが入らなくて困ったので、改めてまとめ直す。 Homebrewとは、Macportsに取って代わりそうな、Macでのパッケージインストーラ home brew インストール ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)” homebrew で使う用語について 用語 来の意味 makeのアナロジー Brew ビール醸造する make する HomeBrew 自家醸造 つまり、自分でビルドする意味 Celler ビール貯蔵庫 つまり、インストール先 Keg タル、熟成用 つまり、makeの材料 Formula 調理法 つまりビルド手順が書かれたスクリプト Pouring ジョッキに注ぐ つまり、Macに注ぐ(イント) 自分でパッケージをビルドして使う

    HomeBrewの仕組みについてまとめておく - それマグで!
  • 僕たちプログラマーは、ちょっとしたコード生成に、Excelを使いません! - それマグで!

    匿名diaryに書くつもりと思ったけど、実名で書くよ。あえて。 僕たちプログラマーは、ちょっとしたコード生成に、Excelを使いません! 僕たちプログラマーは、ちょっとしたコード生成に、Excelを使います! めんどうな作業がわずか数秒に!新人デザイナーが 知らないと一生後悔するExcelを使ったHTML生成 あえて、言わせてもらう。EXCELを"ちょとした"テキスト処理に使うか。あり得ない。*1 僕らプログラマは...Excelでコード書きます」はちょっと無理。 「プログラマ」を文から消せよ。 まず箱形選択を使う。 Excelを使ってるのは、正規表現が難しいと感じる人で、置換コードを書いたり、マクロを使えないレベルの人ですね。 そういう人は、まず「箱形」を覚えるのが第一歩。 箱形選択は伝統技。古いから使い物にならないというわけでもなんでもない。固定長は使いやすい。 最近はCSV,TSV

    僕たちプログラマーは、ちょっとしたコード生成に、Excelを使いません! - それマグで!
  • 「コマンドプロンプトからCygwinへ」の記事への補足 - それマグで!

    昨日のエントリが、被はてブ1000件達成しました。ありがとうございます。これだけの注目をあびることに恐怖すら覚えました。ブクマコメントや直接コメントを頂いたので幾つか補足説明をさせてください。 Cygwin環境の話がすごくブクマコメントいただいたので補足させてください。 やっぱり昔のCygwinイメージは強い。 昔のイメージって強烈なんだなと思いました。1.5以前のイメージとは違うんだよ。って最初に書いたんだけど、脱却は難しい感じでした。 1.7変更点やCygwinの細かいの話は id:fd0さんのエントリを参考にして欲しい。 コメントへのレス。 補足させてください。昨日のエントリでも間違ってるところもあるので、補足しながら訂正させてください。すいません。 以下の事について、レスしていきます。よろしくお願いします。 ブクマコメントの反響 ドライブ指定がキモい Mingwでもいいよね。 Ma

    「コマンドプロンプトからCygwinへ」の記事への補足 - それマグで!
  •  いますぐコマンドプロンプトを捨てて、Cygwinを使うべき10+の理由 - それマグで!

    Mac大流行なのでCygwinに需要ないかもしれないけど。一年間のCygwin体験をまとめてみた。今年1年で一番使ったツールで感謝してる。 CygwinはWindows環境にそのままLinuxのCUIツールを導入できる。もう「コマンドプロンプト」に拘る必要は薄くなりました。 僕は今年1年の一番の収穫はCygwinを使ったこと。 Cygwinを使うことでターミナルを使いこなせるようになった。そしてMacに移行してもターミナルさえあるから困らないと思えるようになりました。 コマンドプロンプトを捨てるべき理由 ・SSHコマンドでリモートサーバにアクセスしても文字化けする。 ・色・フォントがダサくて使い物にならない。 ・コマンドが少ない。grep したい。findしたい cmd.exeをすててMinttyを使おう。 Cygwinを使うと、minttyというPuttyベースの素晴らしい。ターミナルが

     いますぐコマンドプロンプトを捨てて、Cygwinを使うべき10+の理由 - それマグで!