(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

Output Log by SE

IT技術-UNIX-Linux

【シェルスクリプト】テキストの特定行を一行ずつ処理する

やりたいこと テキストの任意の行を一行ずつ処理する。一例として、5行のファイルから3行目を表示し、1行目を表示し、4行目を表示する。 コマンド実行環境 Debian GNU/Linux 9 (stretch) サンプルファイルの準備 サンプルとして以下ファイルtest.txtを用意し…

【Bash】文字列を結合すると順番が崩れる不具合

事象 abcde=$a$b$c$d$e echo $abcde とした場合に表示結果が想定と異なる。 コマンド実行環境 Debian GNU/Linux 9 (stretch) 考えられる原因 $a~$eのどれかに文末の制御コード「^M」が入りこんでいる。 確認方法はそれぞれを小分けにしてテキストファイルに…

【Linux】wgetコマンドの結果が&マークで区切られる事象

事象 国土地理院が提供している標高APIにwgetコマンドベースでアクセスするも情報が取得できない。以下はサンプルURL http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?lon=140.08531&lat=36.103543&outtype=JSONブラウザでは情報が…

【Linux】為替情報をwgetコマンドで取得する

はじめに ドル円レートをスクリプトベースで取得したい、と思った際にネットを見ていると ISホールディングの外為オンラインが提供する下記のリンク先がありました。https://www.gaitameonline.com/rateaj/getrateこちらをブラウザで見ると以下のように表示…

【Linux】数字を文字列としてひとつ進めるワンライナー

はじめに 数字を一つ進めるとは、「314」を「315」にするのではなく「425」にすることを意味しています。本記事では、それらを実現するワンライナーと解説を行います。 環境情報 $ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 数字を一…

【Linux】複数ファイルのzipをunzipコマンドで解凍する

はじめに UNIX環境ではzip形式のファイルを展開するためにgunzipコマンドが存在する。 $ which gunzip /bin/gunzipファイル群がtarで括られ、それをzip形式としていれば問題なくgunzipで展開されるのですが、ファイル群をzip形式にしていると以下のようなエ…

^M: bad interpreter: No such file or directoryとエラーになる

事象 Windows機から転送したスクリプトをLinux機で実行した際に $ ./test.sh bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory とエラーとなる。 コマンド実行環境 Debian GNU/Linux 9 (stretch) 原因と対策 該当スクリプトは一行…

【awk】文字列を検索ワードで前後に切り出す

やりたいこと 文字列があった時に検索ワードを指定して切り出したい。具体的な例として以下の文字列があった際に abcdefghijklmn検索ワード「e」にて前半部分 abcd後半部分 fghijklmnを出力させる。 ワンライナー 検索文字列の前半を切り出す awk '{print su…

【EUC-JP】nkfによる日本語URLの変換方法

はじめに 日本語URLを変換する手順は以下記事で説明しました。 ところが上記は文字コードがUTFという前提にたっていました。「Hatena Keyword」のURLにて変換を実施した際にEUC-JPでエンコードされていることが原因でうまく動かなかったので別途本記事を執筆…

【Debian入門】digコマンドのインストールと試し打ち

やりたいこと 以下のDebian機に $ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)"dig*1コマンドをインストールしたい $ dig www.mtioutput.com bash: dig: command not found インストールの流れ 以下にもあるように、Debian系のOSではapt…

StarshipをLinuxにインストールする

はじめに プロンプトをカスタマイズするStarshipというツールが流行っていたのでとりあえずインストールしてみました。その際のログです。 環境情報 Debian GNU/Linux 9 (stretch) サーバに配置する メディアは以下のリンクに配置されています。 記事執筆時…

【Linux】Excelの表をはてな記法の表に変換する手順

最近はWindowsでもbashが使えたりするので、はてなブロガーの人は参考にしてください。 前提 はてな記法では表と記載すれば |A|B|C| |1|2|3|以下のように表示されます。 A B C 1 2 3 コマンド実行環境 $ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux …

dateコマンドで一連の日付を出力する

はじめに Excelではセルに日付データを入力して1日足す演算を行い、ドラッグ&ドロップを行えばカレンダーに沿って日付が表示されます。そして表示形式を変更すれば自由な形式で取り出せます。今回は同じような処理として、UNIX系OSにて一連の日付を「yyyymm…

【openssl】servernameオプションの有無による違い

ポイント ホスト名(ドメイン名)を指定して下記コマンドを発行するとSSL証明書に関する情報が取得できます。 $ openssl s_client -connect <domain>:443 -servername <domain>一方、-servernameオプションを指定しないと欲しい情報が取得できない場合があります。 これはWebサ</domain></domain>…

【入門】CoreOS(Container Linux)とは?

はじめに コンテナに最適化されたOS、CoreOSは別名Container Linuxとも呼ばれています。本記事では「CoreOS」を初めて聞いた方向けに分かりやすい記事を書きました。 CoreOSとは? 以下が公式文書です。 Container Linux redefines the operating system as …

【Linux】日付名のファイルをsedコマンドで絞る

ワンライナー 例えば以下のように日付で管理されているファイルがあった際に # ls 20190723.txt 20190729.txt 20190804.txt 20190810.txt 20190816.txt 20190724.txt 20190730.txt 20190805.txt 20190811.txt 20190817.txt 20190725.txt 20190731.txt 201908…

【Linux】コメント行をsedで非表示にするワンライナーの解説

ワンライナー cron内容が記載されている/var/spool/cron/crontabs/rootに対して # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.HthPYB/crontab installed on Sat Aug 10 04:32:46 2019) # (Cron version -- $Id: crontab.c,v 2…

【サルでも分かる】仮想記憶入門

はじめに 仮想記憶?何が仮?程度の知識でも仮想記憶について理解できるよう、順を追って説明する入門記事を書いてみました。所要時間目安 : 5分 仮想記憶とは? 仮想記憶とは搭載されているメモリにプロセスから直接アクセスさせるのではなく仮想アドレスと…

【Linux】キャッシュメモリの速度を実感する

ハンズオン 環境情報 # cat /etc/os-release | head -n 1 PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 100MBのファイルを作成する # dd if=/dev/zero of=100mbfile oflag=direct bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes (105 …

findの結果をディレクトリ構造を保ったままコピーする方法

やりたいこと 以下状況で $ tree . ├── A │ ├── aa │ ├── ab │ └── ac ├── B │ ├── ba │ ├── bb │ └── bc └── C ├── ca ├── cb └── cc「b」が含まれているファイルを「D」ディレクトリにコピーする 環境情報 $ bash --version GNU bash, バージョン 4.3.42(4…

catコマンドにてinput file is output fileとエラーが出る際のポイント

はじめに 入力ファイルと出力ファイルを同じにするコマンドは避けるべきであり、例えば実際に押下した場合は以下のメッセージが表示されてcatコマンドに失敗します。 $ cat abc.txt >> abc.txt cat: abc.txt: input file is output file$ cat abc.txt > abc.…

sedコマンドで特定箇所に一括で追記する

事象 あるスクリプトに数箇所ある以下文言に awk -F '"' '{print $(NF-1)}' head -n 1を追記して awk -F '"' '{print $(NF-1)}' | head -n 1としたい。 実施コマンド 該当のスクリプトをhoge.shとすると以下コマンドで標準出力されます。 ちなみにリダイレク…

【Linux】Device or resource busy で消せないファイル

はじめに Docker環境で以下の禁断コマンドを打った結果、「Device or resource busy」という理由で消えなかったファイルをピックアップしてみました。 rm -rf / 環境情報 Ubuntuのコンテナに接続 # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS …

【UTF-8】日本語URLをnkfで変換する

はじめに URLには日本語を指定することも可能です。 例えば、はてなブログでもURLのデフォルトを以下のように設定できます。 /entry/2011/11/07/週末は川に行きました (/entry/日付/タイトル名) 一方、ブラウザでは見える日本語URLをそのままツイッターや…

【curl】はてなブログを自動投稿

はじめに はてなブログではAPIを利用することで自動投稿/更新が可能です。以下記事にてcurlコマンドを用いたブログの更新方法は説明したので 本記事では自動投稿について解説します。 はてなブログAPIの動作確認 詳細は以下の開発チームの記事にありますが …

【Linux】GRUB_DEFAULTを変更した際のgrub.cfgの変更内容

はじめに カーネルのバージョンアップを行う際にgrubファイルとgrub.cfgファイルに変更を加えることがあります。本記事では、grubファイルの修正とその後行うgrub-mkconfigコマンドを整理しました。ちなみに、grubとはGNU GRand Unified Boot loaderの略でOS…

【入門】RedHatとDebianの違い

はじめに LinuxではOSの基本部分をベースにソフトウェアを組み合わせ、それをディストリビューション(Distributions)として配布が可能です。数多くあるLinuxのディストリビューションですが、源流を辿ると Debian Slackware RedHat Enoch Arch Android 等に…

【RHEL】xfsファイルシステムを縮小させる

はじめに 一般的にresize2fsコマンドで行うファイルシステムの拡張/縮小ですが、Red Hat Enterprise Linux Server 7からファイルシステムに標準採用されているxfs*1は、縮小に対しては削除してから作り直すというステップが必要です。本記事では確認コマンド…

【Linux】mountが失敗している状況で再起動すると起きる事象

仮定 あるファイルシステムのマウントが失敗している状況で # mount -a ERROR機器がダウンしてOSが落ちてしまうと、次の起動時に色々と問題が起こります。 例えば、リモートログインができなくなります。以下、環境の例です。 Linux Red HaT EnterPrise Linu…

【awk】一行の中で文字列を抜き出す

コマンド 文字列b〜文字列eまでを取り出したい場合 awk '{print substr($0, index($0, "b"), index($0, "e") - index($0, "b") + 1)}'以下、補足です。 補足 以下の記事でhtmlからカテゴリーを取得するために試行錯誤していたのですが カテゴリ情報は </p>....({…


他の記事を読む