Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Browsing all 2722 articles
Browse latest View live

ゼロフィルよりは安心でurandom系よりは早いディスク消去方法

仕事で使っていたHDDの中のデータを復元できない形で消去する必要が生じたので方法を考えてみた。 削除対象は400TB程度のストレージ装置でNFSでLinux (CentOS)にマウントされている。 既存のソフトウエア、方法など...

View Article


pythonで"grep -f"的な文字列の抽出。のメモ

そもそも... 例えば、list_1.txtの中からlist_2.txtにある文字列を含む行を抽出したいとします。 list_1.txt 0001, aaa, AAA 0002, bbb, BBB 0003, ccc, CCC 0004, ddd, DDD 0005, eee, EEE list_2.txt 0002 0004 シェルスクリプトなら『grep -f 文字列...

View Article


シェルスクリプトの [ は /bin/[ と言ったり [ "x$var" = "xval" ] と書く人はオジサン

はじめに /bin/[ という変な名前のファイルを削除したらシステムが壊れてしまった。実はそれが [ の実体だとか言う話や [ ] で文字列の頭に x などをつけて比較するイディオムは有名ですが、それらはもう過去の話です。この記事では過去の話となってしまった [ コマンドの話についてまとめてみました。 /bin/[ [ の正体はなに? シェルスクリプトの if 条件などでよく使われる [...

View Article

シェルスクリプトの後ろにバイナリを埋め込む手法はPOSIXで考慮されているという話

思いっきり雑学レベルの話ですみませんが、思い出した今書かないと忘れそうだなと思ったのでw この手法で何が出来るかと言うと、シェルスクリプトを実行するとスクリプトファイルの後ろ(exit で終了されて実行されない領域)に結合されたバイナリ形式の圧縮ファイル部分を抜き出して /tmp...

View Article

【sedコマンド】特定ファイル内すべてのダブルクォーテーションを削除

特定のファイル内のダブルクォーテーションを削除するコマンド -i ... ファイルを上書きするオプション -e ... 正規表現のオプション(他のオプションを利用しない場合や、別ファイル保存の場合は不要) # ダブルクォーテーションを削除して、上書き sed -i -e 's/"//g' result.csv # 結果を確認 head result.csv 削除した結果を 別ファイルで保存...

View Article


ローカルのファイルをフォルダごとリモートサーバーへアップロードするピュアなShellスクリプト

静的ファイルホスティングサービスにXSERVERを使っているのですが、 ローカルPCで作成した本番用ファイルをアップロードする際に 一個ずつアップロードするのが面倒だったので、 Shellで一括アップロードするスクリプトを作りました。 環境 ローカルPC OS:Windows 10 リモートサーバー:XSERVER 事前準備 以下の秘密鍵を作成し、ダウンロードしておく。 →...

View Article

POSIXシェルスクリプトではwhichではなくcommand -vを使うべき理由(+シェルスクリプト版which)

はじめに which コマンドはシステムにインストールされてるとは限りません。実際に最小構成でインストールされてない環境として CentOS があります。一方 command -v は POSIX 規定されているので POSIX に準拠したどのシェルでも問題なく使えます。シェル上では which コマンドを使っても良いと思いますが、シェルスクリプトでは command -v...

View Article

Linux(bash)dateコマンドチートシート

dateコマンドに関するチートシート やりたいこと・フォーマット コマンド yyyy-mm-dd date "+%Y-%m-%d" yyyy-mm-dd HH:MM:SS date "+%Y-%m-%d %H:%M:%S" yyyy-mm-dd HH:MM:SS+ナノ秒 date "+%Y-%m-%d %H:%M:%S.%N" 30日後 date "+%Y-%m-%d" -d "30 days"...

View Article


シェルスクリプトの謎の ${1+"$@"} はPOSIX に準拠できてないレガシーシェルのための回避策・・・を使うのはもうやめよう!

はじめに シェルスクリプトでたまに ${1+"$@"} というのコードを見かけたことがないでしょうか?シェルスクリプトを昔から書いている人なら見たことがあるかもしれません。念の為にと今も使っている人がいるかもしれません。見たことがない人は気にしなくて良いです。これが何かは検索すればすぐに出てくきますが POSIX...

View Article


パイプを使って高速化したシェルスクリプトを並列実行すると逆に遅くなる謎現象について

はじめに パイプを使って高速化したシェルスクリプトを、多数並列に実行するとパイプを使わない場合より遅くなります。なぜでしょうか? おはなし ある日たかしくん(仮名)は、awk を駆使して巨大なログファイルの中に記録された IP アドレスの一覧を作るスクリプトを書いていました。 注意 ログは ifconfig の実行結果をコピーして 100 万行...

View Article

getoptions を使って面倒なシェルスクリプトのオプション解析コードを自動生成しよう!

はじめに getoptions はシェルスクリプト用のオプションパーサーです。getopts や getopt の代わりに使うことができ、getoptions をインストールするだけで簡単にシェルスクリプトのオプション解析を実装することができます。しかし、不特定の人に配布するシェルスクリプトの場合は getoptions をインストールしてもらうというのは選択肢にならないかもしれません。...

View Article

【Windows】Bash でスロットゲームを作ってみた

動機・環境 Linux のコマンドに慣れるために、ちょっと遊びで、シェルスクリプト(Bash)でスロットゲームを作成しました。本来ならシェルスクリプトでやるようなことではないかもしれませんが、その辺はご愛敬ということで。 環境は WSL(ubuntu 20-04) です。 間違いやお気づきの点などございましたら、ご指摘いただけると幸いです。 こんな感じのゲームです。   コード(Bash)...

View Article

シェルスクリプトにはコマンド出力を変数に入れると末尾の改行が全部消えてしまう罠がある!

はじめに 「コマンド出力を変数に入れる」というのはコマンド置換 ret=$(cmd)(または...

View Article


シェルスクリプト用のPOSIX準拠で高速な前ゼロ削除とtrim関数の実装 〜それ本当に外部コマンド(sed,awk,tr)が必要ですか?〜

はじめに この記事は「シェルスクリプトは ((i=i+1)) ではなく i=$((i+1)) で計算しなければいけない!という話」を書いた時に、そう言えば算術式($((...)))では頭に 0 がついた時に 8 進数とみなされるというささいな問題がありましたねーということで、その解決方法と一般化すればこれは前から書こうと思っていた外部コマンドを使わない trim...

View Article

.bash_profile を変更して source コマンドも実行したのに変更が反映されない

はじめに Flutter の環境構築中にパスを通す場面があり、.bash_profileにパスを追記した。 保存してsourceコマンドで変更を反映したけれど上手くいかず、ターミナルの再起動も試したけど上手くいかず。 原因と解決方法を忘れないためにメモ。 やったこと .bash_profile にパスを追加 .bash_profile export...

View Article


Ubuntu bashのディレクトリ()の色が見づらい

まず、これを見てほしい。 fugaとhogeは、パーミッションが777(drxrwxrwx)なのだが、このときのshell上の色のコントラストが低くてものすごく見づらい。おじさんの弱った視力には辛い。(@-@) そこで、こう。 $ dircolors -p > ~/.dircolors $ vim !$ OTHER_WRITABLE 34;42 を、 OTHER_WRITABLE 36...

View Article

Linux: コマンドのパーミッションは正しいはずなのにsystemdからの起動で「Permission denied」が出た話

ソフトウェアの自動起動登録で地味に嵌ったのでメモ。 実施環境: Linux [root@testhost ~]# uname -a Linux testhost 4.18.0-331.el8.x86_64 #1 SMP Thu Aug 19 16:49:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux [root@testhost ~]# echo $SHELL...

View Article


シェルスクリプトで変数に改行文字を入れる方法の細かすぎる解説

はじめに これも何番煎じかわからないようなネタですが「変数に改行を入れる方法」ではなく関連する話を含めての解説がメインです。 解説がいらない人用 全 POSIX シェル対応 (Bourne シェルも対応) LF=' ' bash、ksh、mksh、zsh は以下も使用可能 LF=$'\n' 解説 LF='改行' LF=' ' すべての POSIX...

View Article

パスを通す?環境変数とは…??command not findに打ち勝ちたくて調べたこと

入れたはずのPythonが認識されない… などなど、入れたはずのコマンド、ソフト、言語がチュートリアル通りにターミナルへ入力してもcommand not findと出力される問題。 こんなことがあった時に偉い人からよく聞くアドバイス「どうせパスが通ってないんでしょ?」 いやいや、パスってなんじゃい!と思って重い腰を上げて調べました。 ちなみに私は使っているmacOSが古く、bashを使ってます。...

View Article

1分で、macのシェル種類を切り替え

会社では定期的に欲しいノートパソコンに交換してくれますが、私はMac Proに交換してもらいました。シェルスクリプトを触る機会が時々ありますが、その時にmacはzshがデフォルトになっていて不便でした。切り替えシリーズとして皆さんと共有したいと思います。 環境 シェルはzshで設定・確認します。 macOS Big Sur 11.3.1 実施 利用可能なシェルのリストを確認...

View Article
Browsing all 2722 articles
Browse latest View live