タグ

shellに関するrizmhateのブックマーク (18)

  • シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題ShellScriptUNIXshellシェル芸POSIX はじめに シェルスクリプトで ls コマンドの出力結果(ファイル名一覧)をパイプで他のコマンドに渡して処理するのは推奨されません。ls コマンドを使ったコードを ShellCheck で検査するとおそらく問題があると警告が表示されるでしょう。ls を使うなという指摘自体には賛成なのですが SC2010、SC2011、SC2012 に書いてある理由については正しい説明がされていないと思っています。この記事ではなぜ ls の出力結果を他のコマンドにパイプで渡すのが悪いのか、ls を使わずに実現するにはどうしたら良いのかを解説したいと思います。一つ補足をしておくと、この問題は CLI コマ

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita
  • なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記

    会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSREをマルっとPDF化する SpotBugsのViolationレポートをMerge Requestのコメント投稿する ぼくの互換性についての考え方 何で書くか シェルスクリプトをうまく書くには ShellCheckを使う バッドパターンとその修正 line-by-lineの処理が多い lsを使う ls /directory | grep mystring ls | grep -v 'log$' lsの結果をループさせる 良いシェルスクリプトを書くためのTIPS set -euする 文字列は基的にクオートする 局所変数にはlocalを使う 定数は読み取り専用

    なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記
  • bash スクリプトの実行中上書き動作について

    を設定してから再度試した所 bar が表示された。backupcopy は編集中のファイルによって自動で判別する auto がデフォルトになっている為、試す際には明示的に yes に設定しないといけない。 bash の実装確認 evalstring.c の parse_and_execute でコマンドが処理されており、input.c の with_input_from_buffered_stream で読み込みの準備が行われている。バッファの読み込みの体は y.tab.c つまりパーサから直接呼ばれており、このパーサは fgets(3) で読み込まれつつ実行される為、一括でファイルが読み込まれている訳ではない。 while/do でループ実行した際に、ファイルを書き換えられたら戻り先はどうなるか、についてはスクリプトはバッファ付きで読み込まれており、そのバッファがファイルシステムから読

    bash スクリプトの実行中上書き動作について
  • Bash Scriptの作法 - Qiita

    はじめに チーム開発でシェルスクリプト(特にBash Script)を書く際に守るべきルールをまとめます。 シェルスクリプトのコードレビューをする際等にお役立てください。 スクリプト名 -区切りの小文字英数字(いわゆるkebab-case)をつける。拡張子は.sh. これは特に理由があるわけではないので_区切りでもよいし、チーム内にzshやfish等の他Shell愛好家がいる場合は拡張子は.bashでも良い。どちらにせよチーム内では統一しておかないと混乱の元となる。 改行コード LFを使用する。CRLFだと動作しないので書く際に間違うことはないが、Windows上のgitのautocrlf設定によってはご丁寧にCRLFでチェックアウトされてしまう。 避けるためにはgit config --global core.autocrlf inputとするか、.gitattributesをレポジトリ

    Bash Scriptの作法 - Qiita
  • 世の中のエンジニアのalias設定 - Qiita

    先日、同僚と「世の中のエンジニアはターミナルにどんなalias設定をしているんだろう?」という談義になったので、GitHub上の1000リポジトリのコードから調査してみました。 2019/04/10 コメントを元に微修正しました。コメントくださった方々、ありがとうございます。 2019/04/11 こんなのも書いてみました。 よく使われているvimrcの設定ランキング 2019/04/15 プラグイン版も書きました。よく使われているvimのプラグイン top20 aliasとは wikipediaより UNIXなどにおいてコマンドを別名で登録したもの。別名を登録するコマンド名。 長いコマンドやいつも利用するオプションを毎回入力するのは手間ですよね? ターミナルの設定ファイルにaliasを記述することで、別名として定義することが可能というわけです。 調査方法 GitHub APIを利用 do

    世の中のエンジニアのalias設定 - Qiita
  • SSHのポート番号がどのようにして22になったのか

    SSH.comのブログより。 デフォルトのSSHポートは22です。これは偶然ではありません。これはどのようにして、そのポートを取得したのかと言う話です。 私、Tatu Ylonenは2017年4月にこの記事を初めて公表したとき、急速に広まり、3日間で約12万人の読者を得まし。 SSHポート22を取得する話 私は1995年の春にSSH(Secure Shell)の初期バージョンを書きました。この時は、まだtelnetとFTPが広く使われていた時です。 とにかく、telnet(ポート23)とftp(ポート21)の両方を置き換えるようにSSHを設計しました。ポート22は使われていませんでした。都合のいいことに、telnetとftpのポートの間にありました。私は、そのポート番号を信頼性のオーラを与える小さなものの1つにすることを考えました。しかし、どうすればそのポート番号を取得できますか? 私はポ

  • 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
  • 【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita

    きっかけ matsuya-generator-rubyが、cowsayコマンドと組み合わせるとシュールこの上ない。 pic.twitter.com/gxaudeU377 — ぐれさん (@grethlen) 2015, 12月 6 もっと色々やってみたい。 あれ?Shell Script Advent Calendar 2015の22日目の枠残ってるじゃん。 じゃあやろう。 環境 Mac OSX Yosemite 10.10.5の端末上で実施。 zshを使って動作確認してますが、多分bashでも動きます。

    【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita
  • 逆引きUNIXコマンド/指定した範囲の行を取得する方法 - Linuxと過ごす

    2023-04-25 逆引きUNIXコマンド 逆引きUNIXコマンド/ターミナルで動作するビジュアルなストレージ使用容量確認コマンド 2022-12-12 Ubuntu/GUI操作のWakeOnLAN・gWakeOnLan Ubuntu 2022-12-05 Ubuntu/Ubuntu22.04でデスクトップのアイコンのサイズを変更する手順 2022-08-25 Xubuntu/画面が勝手にオフされる場合の対処方法 2022-08-11 Xubuntu 2022-07-26 Linux環境設定/Windowsネットワークの名前解決と共有フォルダアクセス方法 2022-07-25 Xubuntu/Thunarでssh(sftp)接続しファイルブラウズする手順 2022-07-20 ソフトウェア/デスクトップ/Plankの設定画面を表示する ソフトウェア/デスクトップ ソフトウェア 2022-

    rizmhate
    rizmhate 2015/10/06
    指定した行の範囲を出力する
  • 検索ではあんまり出ないbashの便利技 - Qiita

    bashでは記号類をたくさん使うので、この書き方は何?と思っても検索でなかなか出てこないことがあると思う。 そこで知っていると便利なコマンドを残しておく。 随時追記予定。 確認に使用したbashのバージョンは以下のとおり。

    検索ではあんまり出ないbashの便利技 - Qiita
  • Blog

    2020 年に起きたワークスタイルの変化とこれからについて #GameWith #TechWith - GameWith Developer Blogこの記事は GameWith Advent Calendar 21 日目の記事です。 最近、ブログ更新を怠っていた @serima です。Splatoon 2 でナワバリバトルをする日々を送っていますが、お仕事では開発マネージャーをしています。 2020 年は新型コロナウイルスの影響で世界的に働き方の変革を求められた年であり、弊社 GameWith も例外ではありませんでした。 このポストではフルリモートワークへの切り替えにおいて気をつけたことや、現在の課題と試みについて簡単に紹介できればと思います。 なお、現時点(2020 年 12 月)においての会社としての対応は全社で原則フルリモートワーク(在宅勤務)という方針を採用しています。 もとも

    Blog
  • bashのTips色々 - Qiita

    概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =

    bashのTips色々 - Qiita
  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

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

  • Windowsのコマンドプロンプトをフリーソフトで便利にする - ナレッジエース

    おそらく、誰もがやる深夜のWebサーフィンは、究極のところ時間の無駄ではないのかもしれない。 それは、Webで夢をみているのにほかならないのだ。(T.B=リー「Webの創成」より) Windowsのコマンドプロンプト(cmd.exe)を開発などで頻繁に使っていると、何かと不便な点が気になってきます。 ウィンドウの最大化が制限されていたり、コピー・ペーストが右クリックメニューだったり、日本語入力の切り替えが特種だったり、historyが保存されなかったり等々。 今回は、フリーソフトのckwとNYACUSを組み合わせて、これらの問題を解決した便利なコマンドプロンプト環境を実現する方法を紹介します。 ckw ckwは来のコマンドプロンプトのウィンドウを隠し、独自に機能強化されたウィンドウで操作可能にするフリーソフトです。 cmd.exeを超便利にする ckw 0.8.10 を改造した。 - P

  • PHPからunixシェルコマンドを実行しその結果を取得する。|プログラムメモ

    シェルコマンドを実行する関数は ・shell_exec() もしくは バッククォート(`)でコマンドを囲む ・passthru() ・system() ・exec() ・popen() ・proc_open() と6つありますが、 それぞれの違いは ・shell_exec() 「実行結果の出力がテキスト」のコマンドを実行する場合に使用する ・passthru()  「実行結果の出力がバイナリ」のコマンドを実行する場合に使用する ・system()   コマンド実行結果のうち最後の一行だけ取得 ・exec()     コマンド実行結果を指定した変数へ返す(配列で取得) ・popen()    プロセスへのファイルポインタをオープンする ・proc_open()  プロセスへの入出力用ファイルポインタを開く ・shell_exec()【コマンド実行結果を全て取得】(スカラーで取得) ・pass

  • 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を全部打つのが面倒くさい - 文字っぽいの。
  • PHP の exec(), shell_exec(), system() - foldrr's weblog

    どれを使えばいいのか exec() を使えばいい。 shell_exec() はリターンコードが取得不能なので不便。 system() はリダイレクトしないと勝手に標準出力へ出力するので不便。 まとめ 関数名 第1引数 第2引数 第3引数 戻値 出力 exec コマンド stdout リターンコード stdout なし shell_exec コマンド - - stdout なし system コマンド リターンコード - stdout あり exec() 第2引数 stdout の注意点 exec() の標準出力は第2引数 stdout へ追加されるので注意。 つまり、連続して exec() を呼び出す場合は第2引数に渡す変数を毎回クリアする必要がある。 非同期実行 exec, shell_exec, system どれでも可能。 以下は exec での例。 exec('filename

    PHP の exec(), shell_exec(), system() - foldrr's weblog
  • 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

  • 1