タグ

linuxとshellに関するuchiuchiyamaのブックマーク (25)

  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

    はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シェルスクリプト特有の問題、シグナルやトラップ、サブシェルや子プロセスの問題、さらには特定のシェル固有の仕様やバグなどさまざまな問題に対処する必要があり大変です。独自実装の例では古いロックファイルが残ってしまい、それをいつどのタイミングで片付ければ安全なのか?

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
  • ls よりも exa を使おう!モダンな Linux コマンド達を紹介 - Qiita

    上記の画像を見ると分かる通り、カラフルで見やすいですね。右図のようにディレクトリのツリー表示にも対応しています。さらに --icons オプションを付けると、ファイルタイプに応じたアイコン表示も可能です。 bat 続いて cat コマンドの代替である bat の紹介です。 ファイルの拡張子に応じてソースコードを色付けして表示してくれます。また less のようなページャの機能も持っており、行数の長いファイルを渡すと自動でページャモードで開いてくれます。 hexyl hexyl はバイナリダンプコマンド od の代替コマンドです。bat の開発者と同じ方が開発しています。

    ls よりも exa を使おう!モダンな Linux コマンド達を紹介 - Qiita
  • Big Sky :: sudo コマンド書いた。

    Windows で hosts ファイル(C:\Windows\System32\drivers\etc\hosts) を編集するには管理者権限が必要です。またコマンドラインから IP アドレスを変更するのにも管理者権限が必要です。管理者権限で hosts ファイルを編集するにはメモ帳を管理者権限で起動する必要があります。管理者権限でメモ帳を起動する為にはメニューから「メモ帳」を出し、右クリックして「管理者として実行」を選ぶ必要があります。そして実行したメモ帳のメニューから「開く」でファイルを選択します。管理者として開かないのであれば hosts ファイルを右クリックして「送る」等に登録したエディタを単に選べば済む話なのに、随分と手間ですね。 UNIX だと $ sudo vi /etc/hosts とだけタイプすれば良いのにこの手数の多さはちょっとゲンナリします。特にマウスに手を伸ばした

    Big Sky :: sudo コマンド書いた。
  • fish shell

    Finally, a command line shell for the 90s fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family. fish will delight you with features like tab completions and syntax highlighting that just work. It will make you exclaim "Of course fish does that!".

  • How to use `which` on an aliased command?

    Like most users, I have a bunch of aliases set up to give a default set of flags for frequently used programs. For instance, alias vim='vim -X' alias grep='grep -E' alias ls='ls -G' The problem is that if I want to use which to see where my vim/grep/ls/etc is coming from, the alias gets in the way: $ which vim vim: aliased to vim -X This is useful output, but not what I'm looking for in this case;

    How to use `which` on an aliased command?
  • Big Sky :: コマンドラインから JSON が簡単に作れるツール jo

    « golang で画像アップロードが簡単に出来る go-imageupload を使ってみた。 | Main | SQLite3でカジュアルにズンドコキヨシ » コマンドラインから JSON を扱うツールとしては jq が一般的ですが、例えば ls を実行した結果を JSON の Array にしたいであったり、コマンドライン引数から簡単に Object を作りたいといった場合には一旦考え込まないといけないくらい使い方が難しかったりします。そんな中でひょいと現れたのが jo です。 GitHub - jpmens/jo: JSON output from a shell JSON output from a shell https://github.com/jpmens/jo 作者である jpmens さんがなぜ jo を作るに至ったかをブログに書いています。 Jan-Piet Mens

    Big Sky :: コマンドラインから JSON が簡単に作れるツール jo
  • 技術メモ帳 - pgrep, pkill を使用してプロセスを殺す

    最近、会社でシェルの操作方法について教えているのだが、 pgrep / pkill / skill / pidof といった 便利なプロセス操作系コマンドを知らない人が実に多い。 プロセスを殺すというのは、よくある作業なので 今回はコレについて書いてみる。 たとえば、これらのコマンドを知らない人が、 指定した名前のプロセスを kill する手順はだいたい 以下のようなものになることだろう。 $ ps aux | grep プロセス名 | grep -v 'grep' # コマンドの出力結果から pid を目で確認 12345 ... .. hoge .. .. $ kill 12345 この作業は非常に面倒で退屈だ。 もし殺さなければならないプロセスがたくさんあったときは どうするのだろうか。 おまけに、grep コマンド自身が候補に含まれてしまう事があるのだが、 grep -v grep

  • Qiitaに書くときに示しておきたい環境情報 - Qiita

    はじめに 自分の場合、CentOS上でRailsを動かしていることが多いので、OSディストリビューションやカーネル(32bit or 64bit)情報、rubyRailsのバージョンなどを示すのが良いと思う。 参考にするときに環境情報が分からないと困ることがあるので、みんな載せると良いと思う。フレームワークや言語によってちょっとずつ違うと思うので修正すると良いんじゃないかな。 まずは自分から載せてみよう。

    Qiitaに書くときに示しておきたい環境情報 - Qiita
  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

    シェルスクリプト入門として, 基的な書き方をまとめました. 長いですが, 1ページにまとめてみました. 良かったら目次も参考にしてご覧になって下さい. 目次 シェルスクリプトとは 作り方, 実行の仕方 コメント ユーザーからのキーボード入力を受け付ける 変数 通常の変数 特別な変数 演算子 数値計算演算子 比較演算子 コマンドを繋げる演算子 条件文に使える比較演算子 条件文 制御構文(分岐) if文 case文 制御構文(ループ) for文 while文 until文 select文 文字列処理 文字列置換 削除 複数行のテキストの出力(ヒアドキュメント) 関数 シェルスクリプトとは シェルスクリプトとは, シェルの動作をまとめて記述したスクリプトのことです. 決められた文法にしたがって処理を記述することによって, シェルでの処理をまとめて行ったり, 作業を自動化できたりします(例 複数

  • Linuxのハードウェアに関する詳細情報を取得する『Inxi』コマンド | 俺的備忘録 〜なんかいろいろ〜

    今回は、Linuxが搭載されているハードウェアのパーツごと、例えばサウンドボードやマザーボード、ハードディスク等のベンダーや型番といった詳細情報を取得出来るコマンド『Inxi』を紹介する。 1.インストール まずはインストールから。 以下のコマンドを実行しインストールを行う。 Debian/Ubuntu sudo apt-get install inxi RHEL系 sudo yum install inxi --enablerepo=epel 2.コマンドの実行 さて、それでは実際にコマンドを実行してみよう。まずはオプションを付けず、デフォルトの内容を表示してみる。 以下の内容は、実際に自宅で用いてるマシンのデータを表示している。 $ inxi CPU~Quad core Intel Core2 Quad Q9550 (-MCP-) clocked at 2833 Mhz Kernel~

  • エンジニアでもターミナル作業ログを残したい!! - 目の前に僕らの道がある

    今まで下記のようにexecで標準出力と標準エラー出力を作業ログに残すという事をしてたんですが、実際に打ったコマンドは出力されないので、ちょっと不便だなーと思ってました。 exec > >(tee --append /tmp/$(date +"%Y.%m.%d")_$(id --user).work.log) 2>&1 ちょっと調べて見るとscriptコマンドを使うとコマンドを含めて出力できることを知りました。 これで作業ログを残すのがはかどる! script --append --flush /tmp/$(date +"%Y.%m.%d")_$(id --user).work.log チームメンバーにこのログをtailさせておけば、画面共有も出来たりもします。 (その用途ならホントはwemuxとか使った方が良いんでしょうけどね。。 tail -F /tmp/$(date +"%Y.%m.%

    エンジニアでもターミナル作業ログを残したい!! - 目の前に僕らの道がある
  • Linuxコマンドでテキストデータを自在に操る - じっくりコトコト煮込んだみかん

    Linuxでテキストデータを扱うときに、コマンドをパイプで繋げるだけでいろいろな処理ができて面白いのですが、綺麗に整理されていない気がするのでまとめてみます。ここでは、cat, paste, join, grep, head, tail, cut, awk, sed, tr, sort, uniq, wc を取り上げます。 ファイルを縦に結合 ファイルを縦に結合します。 コマンド 説明 cat file1 file2 ... file1, file2, ... を縦に結合 cat file | ... としてファイルの中身をパイプに流すのにもよく使います。 ファイルを横に結合 ファイルを横に結合します。あまり使わない?*1 コマンド 説明 paste file1 file2 .. file1, file2, ... を横に結合 join file1 file2 file1 と file2

    Linuxコマンドでテキストデータを自在に操る - じっくりコトコト煮込んだみかん
  • Linux等でのログのモニタリングで簡単にアラートをキャッチするワンライナー - 元RX-7乗りの適当な日々

    昔、『「ping -a」で音が鳴る!』なエントリでも書いたのですが、何らかをリアルタイムにチェック/監視したい時に、視覚だけではなくアラート音が一緒に出ると、モニタリングしやすいものです。 というわけで、Linuxなんかで、とあるログファイルの出力から、ある文字列が検出された際に、ビープ音を鳴らすワンライナーは以下。 $ tail -f ログファイル | sed -e 's/\(対象文字列\)/\1^G/'上記を実行中に、指定ログファイルに対象文字列が出力されるとビープ(Beep)音が鳴るはず。 「^G」(0x07)の部分が、ASCIIのBELキャラクタのリテラルです。 $ echo -n "^G"などとしてやれば、ベル(ビープ音)が鳴りますよね。 ちなみに、「^G」は、[Ctrl-V] ⇒ [Ctrl-G] の順に入力してやればOK。emacsだと[Ctrl-Q] ⇒ [Ctrl-G]か

    Linux等でのログのモニタリングで簡単にアラートをキャッチするワンライナー - 元RX-7乗りの適当な日々
  • Flickr | Carpe Diem

  • GNU Screen のちょっと便利な使い方 - プログラミングは素晴らしい

    今日はかなり珍しく技術的な話題を提供します。 要約 [困ったこと] 1つの Screen で複数のサーバにたくさん telnet するとどの仮想端末で何をしていたか忘れる! 選択が面倒! [この記事を読むとできること] Screen のウィンドウタイトルにユーザ名、ホスト名、作業中のディレクトリを表示 どのサーバにどのウィンドウでログインしているかを確認しながらウィンドウ選択 知っている方もかなり多いのかもしれませんが、bash には PROMPT_COMMAND という環境変数があります。PROMPT_COMMAND を使うことで、PROMPT が表示される時に自動的に実行するコマンドを指定できます。 これにたとえば私の場合ですと、次のように設定しています。 PROMPT_COMMAND='echo -ne "\033]0;$(whoami)@$(hostname):$(pwd)\007

    GNU Screen のちょっと便利な使い方 - プログラミングは素晴らしい
  • iandeth. - 続 screen の使い方

    iandeth. Perl, Flash ActionScript, MySQL, Movable Type, システム開発 - そんなテーマのサイトdeth. 目次 ステータス行に各ウィンドウで打ったコマンドを表示 - bash編 Unicode (UTF-8) を使う 突然キー入力を受け付けてくれなくなった際の対処方法 Reattachを透過的にこなしてくれるラクチン起動方法 まとめ 1. ステータス行に各ウィンドウで打ったコマンドを表示 - bash編 基は ~/.screenrc に 'hardstatus alwayslastline "%w"' と書いておけば、 画面最下部にウィンドウ名一覧が表示されるようになるけれど、これだと各ウィンドウ名が一律 'bash' って名称になるので、いまいち不便。新規ウィンドウを開くたびに 'C-a A' で命名するのも面倒。理想は「今実行し

  • Let's use SCREEN!

    LAST UPDATED Jul/21/2007 新情報 Cygwinの公式ディストリビューションにscreen-4.0.3が登録されました。screenインストールメモ Cygwin編 (2007/07/21) screen-4.0.3がリリースされました。screenインストールメモ (2006/10/23) screen-4.0.2用の非公式パッチを1つ追加しました(cjk文字幅誤認識)。screenインストールメモ (2006/06/09) 2ch UNIX板 screenスレ 更新 (2006/05/29) screen-4.0.2用の非公式パッチを2つ掲載しました。screenインストールメモ (2005/01/22) screen-4.0.2がリリースされました。screenインストールメモ (2003/12/07) このページはいったい何? screenはUNIXライクなO

  • Unix/Linuxコマンドリファレンス - よたらぼ 保管庫

    FOSSwire.comの Unix/Linux Command Referenceの和訳です。 これをベースに自分あるいはチーム内で使うシートを作ってみると良いかもしれません。 間違いがありましたら指摘してくださいませ。

  • Linuxの各種コマンドのチートシート

    UnixやLinuxには山ほどコマンドがあるわけですが、それらすべてを覚えるのは至難の業。そのため、よく使うコマンド以外はあんまり詳しく覚えていないわけですが、そういう場合にちらっと見て「ああこれこれ」といった感じでわかるようにできるのがカンニングシートみたいなこのチートシート。Linux初心者から初級者、中級者に至るまで幅広くオススメです。 ダウンロードは以下から。 FOSSwire >> Unix/Linux Command Cheat Sheet クリエイティブ・コモンズライセンスで配布されているPDFファイルなので、印刷して手元に置いておけば結構便利かも。リファレンスブックほどのものはいらないが……という人に最適です。

    Linuxの各種コマンドのチートシート
  • http://nubyonrails.com/articles/useful-shell-shortcuts

    For full functionality of this site it is necessary to enable JavaScript. Here are the instructions how to enable JavaScript in your web browser.