(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

UNIX

【Bash/Linux/sed】開始文字と終了文字を与えてその部分を置換する

やりたいこと 以下のような文があるとして ef&abc;gh&と;で挟まれている箇所を"A"で置換して efAghとする。 環境情報 sed (GNU sed) 4.4 やり方 sedコマンドを用いて以下のように置換をかける。 $ sed -e 's/&.*;/A/g'実際に置換をかけた結果は以下。 # echo…

【vi/vim】viへのコピペでインデントがずれる事象への対策

事象 コピー(Ctrl+c)したテキスト情報をviのinsertモードでペースト(Ctrl+v)するとインデントがずれていく。 具体的には以下のようになる。 [ { "Notification": { "NotificationType": "ACTUAL", 環境情報 $ vi --version VIM - Vi IMproved 9.0 対応策…

【Linux】maxloginsを用いて同時ログイン数に制限をかける

やりたいこと 同一ユーザの同時ログイン数に制限をかける。 環境情報 $ uname -a Linux ... .amzn2023.x86_64 ... GNU/Linux やり方 下記のファイルにて /etc/pam.d/password-authpam_limitsモジュールを利用する設定を入れた後に session required pam_limi…

【Linux】日本語を含む文字列を文字サイズ順に並べ替えるワンライナー

やりたいこと 以下のようなファイルがあった場合に $ cat test.txt いちに onetwo 12 一二日本語の文字も1文字扱いで文字数順に並び替えたい。 環境情報 GNU bash, 4.4.12(1)-release (x86_64-pc-linux-gnu) やり方 以下を実行すると $ cat test.txt | while…

【Linux】任意の数値の小数点以下の桁数を削除する

やりたいこと 1.2345のような数値列がある際に以下のような切り出し方を行う。 1.2 1.23 1.234 環境情報 $ bc --version bc 1.06.95 やり方 数値列に対して1での除算を行う。 $ echo "scale=1;1.2345/1" | bcscaleで指定する数値を変更することで小数点以下…

【Linux】grep実行時に「無効な範囲終了です」というエラーになる

事象 二つのファイルの比較作業として以下を実行した際に $ grep -x -v -f /root/test2.txt /root/test1.txt以下のエラーとなる。 grep: /root/test2.txt:128: 無効な範囲終了です 環境情報 $ grep --version grep (GNU grep) 2.27 原因/解決策 正規表現で使…

【Linux】crontabにて%を付与したコマンド実行がエラーとなる

事象 crontabに以下のような記載をした場合に # crontab -l * * * * * curl test.com -o /dev/null -w '%{http_code}\n' -scronログにはエラーとして出力される。 /bin/sh: -c: line 0: unexpected EOF while looking for matching `'' /bin/sh: -c: line 1:…

【Linux】curlコマンドを実施するもCannot assign requested addressというエラーになる

事象 curlコマンドにて外部システムに対してリクエストを発行するも以下のエラーとなる。 $ curl 10.X.X.X -v * About to connect() to 10.X.X.X port 80 (#0) * Trying 10.X.X.X... * Failed to connect to 10.X.X.X: Cannot assign requested address * co…

【Linux/CentOS】timedatectlを用いたNTPによる時刻同期方法

はじめに CentOS7のNTPによる時刻同期ができていない環境にて、NTPによる時刻同期を行う流れについて記載しました。 尚、時刻同期ができている状態とはtimedatectlコマンドの結果が以下という状態を指しています。 # timedatectl ... NTP enabled: yes NTP s…

【JSON】jqコマンドで階層を問わずに指定した項目/アイテムを表示する

やりたいこと 以下のような構造のJSONがあるとして { "issue": { "id": XX, "project": { "id": 8, "name": "Test" }, "tracker": { "id": 10, "name": "Task" }, ... nameの値だけを取り出す。ただし、nameの場所がどの入れ子の深さにあるかは指定しない。 …

【Bash/Linux/awk】awkの中でシェルの変数の中身を展開して利用する

やりたいこと 以下のような変数が格納されているとして sport=baseball同変数を利用して以下のようなawkの処理を行いたい。 $ cat test.csv | awk 'BEGIN{FS=","} $1 == "baseball" {print $0}'尚、上記は指定列での検索を行う構文。 環境情報 $ awk -W vers…

【Bash/Linux】シェルスクリプトのコメント行を用いてヘルプ機能を実装する

やりたいこと 引数に--helpまたは-hが指定された場合にヘルプを出力したい。 尚、表示する内容はシェルスクリプトの中で先頭に#付きのコメント行として記載されていると仮定。具体的には以下ルールとする。 # test → 出力する #test → 出力しない ## test → …

【Bash/Linux】iptalbesのログ出力の出し方と止め方

やりたいこと iptalbesが動作している環境で # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination cali-INPUT all -- anywhere anywhere ...TCP の入力をすべてログとして出力したい。 環境情報 iptables v1.4.21 Red Hat Enterp…

【Bash/Linux/awk】最終列以外の文字列を句読点区切りで切り出す

やりたいこと 以下のような日本語文字列があった場合に # echo "あい。かき。さし。たち" あい。かき。さし。たち最後の列を切り捨てて あい。かき。さし。のみを取り出したい。 環境情報 Debian GNU/Linux 9 (stretch) やり方 以下のワンライナーにて # ech…

【Linux/bash】順序を保ったまま同じ文字列の行があるかないかでdiffを取る

やりたいこと 以下のファイルAと apple strawberry orange cherry grape以下のファイルBがあった場合に orange pineapple banana strawberryファイルAの中でファイルBの中に存在しないものを差分として以下のように出力する。 apple cherry grape 環境情報 $…

【OpenSSH】Load key ".ssh/id_rsa": invalid formatと出るエラーの解決策

事象 公開鍵暗号方式にてSSHDを起動しているサーバに接続するも $ ssh -i .ssh/id_rsa xx@xx -p 22 Load key ".ssh/id_rsa": invalid format xx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).エラーとなる。尚、サーバ側のauthorized_keys…

【Bash/Linux】dateコマンドのdオプションでの日時と時刻の指定の仕方

やりたいこと 指定した時刻のエポックタイムを出力したい。尚、エポックタイムの出し方自体は以下。 $ date +%s 1637932318 環境情報 GNU bash, version 4.4.12 release (x86_64-unknown-cygwin) やり方 dオプション(--dateオプション)にて以下のように日…

【RHEL/Linux】root権限でもsudoersが編集できない事象

事象 一般ユーザでもsudoコマンドを打てるように/etc/sudoersに対して編集をかけるも # ls -l /etc/sudoers -r--r-----. 1 root root .. /etc/sudoers権限が不足して編集ができない。 環境情報 Red Hat Enterprise Linux Server 7.9 Sudoers I/O plugin vers…

【Bash/Linux】コマンドの実行結果をxargsで任意の場所に引数として渡す

やりたいこと 以下のファイルがある際に cat hoge.txt 1 2 3cat hoge.txt | xargs echo a bのようにすることで例えば真ん中である a 1 b a 2 b a 3 bと出力させる。 環境情報 GNU bash, version 4.4.12 release (x86_64-unknown-cygwin) やり方 replace-str…

【Bash/Linux】時間分秒の時刻データの差分秒数を取得する

やりたいこと 以下のようなテキストファイルがあったとして $ cat test.log 20:17:30 20:17:35 20:17:39時刻の差分の秒数を表示したい。 環境情報 GNU bash, version 4.4.12 release (x86_64-unknown-cygwin) やり方 以下で時刻データをUTC形式に変換を行い …

【Linux】partedとmkfsでファイルシステムを作成する

はじめに lsblkでデバイス情報が見える状態でファイルシステムを個別に作成する手順について記載しました。 尚、ディスク全体をファイルシステムに割り当てる想定としています。 環境情報 Red Hat Enterprise Linux Server 7.9 パーティション作成 xvdcとい…

【Linux】curlコマンドで自己署名のサーバ証明書の有効性を確認する手順

やりたいこと オレオレ証明書として発行したサーバ証明書を配置したシステムに対してcurlで疎通確認を行う。 尚、同通信において同証明書をルート証明書として利用する。 環境情報 curl 7.29.0 RHEL 7 やり方 以下のような自己証明書があったとした場合は $ …

【Linux】curlコマンドの代替としてHostヘッダー指定でopenssl_clientで疎通確認を行う

やりたいこと 以下記事で記載したようなcurlコマンドで発生させた通信を opensslコマンドで行う。具体的には以下を再現するとする。 $ curl -H "Host:sample.hoge.com" 10.11.12.13 環境情報 $ openssl version OpenSSL 1.1.1f 31 Mar 2020 やり方 以下コマ…

【Bash/Linux】ミリ秒表記のUNIXタイムスタンプを時刻に変換するワンライナー

やりたいこと 以下のような13桁のUNIXタイムスタンプ(エポックミリ秒)を 1625566674036対応する日付データに変換する。 Tue Jul 6 19:17:54 2021 環境情報 sed (GNU sed) 4.4 GNU Awk 5.1.0 やり方 sedコマンドでミリ秒を表現してprintのstrftimeで時刻デ…

【Linux/Bash】マルチバイトの文字列を文字数で切り出すスクリプト

やりたいこと 日本語含むマルチバイトな文字列に対して以下のように文字数で抽出を行いたい。 # ./wcut.sh あいうえお 3 あいう # ./wcut.sh あIうえお 3 あIう 環境情報 # cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" ... やり方 以下…

【RHEL/Linux】イーサネットデバイスのMACアドレスを手動で変更する

やりたいこと RHELの仮想マシン上からネットワーク・インターフェースのMACアドレスを変更する。 環境情報 Red Hat Enterprise Linux Server 7.5 やり方 注意点 : 本操作を行うとネットワークから切断されるため、マシンと遠隔で接続している場合はWebコンソ…

【XML/文字コード】見た目は一緒にもかかわらずdiffで差異が出る事象の原因

事象 以下のように文字列として同じにもかかわらず cat 1.xml <div class="ac-container">cat 2.xml <div class="ac-container">diffの結果に差分が出る。 $ diff 1.xml 2.xml 1c1 < <div class="ac-container"> --- > <div class="ac-container"> 環境情報 $ bash --version GNU bash, バージョン 4.4.12(3)-release (x86_64-unknown-cygwin) 原因/解決策 XMLの空白文</div></div></div></div>…

【Linux/RHEL】パスワードの文字数制限を変えた場合の既存ユーザへの影響

はじめに Red Hat Enterprise Linux Serverではパスワードの最小文字数をminlenで指定できます。 本記事では同設定を変更した際にその制限に抵触するユーザの挙動を実機で確認しました。 コマンド実行環境 Red Hat Enterprise Linux Server 7.5 (Maipo) パス…

【GoogleAPI】curlで日本語URLを入力すると結果が文字化けするエラーの解消法

事象 以下のような日本語URLを利用するも # curl -L "https://script.google.com/macros/s/xx/exec?text='こんにちは'&source=ja&target=en"結果が文字化けして返ってくる。 {"code":200,"text":"'����������������'"} 環境情報 curl 7.52.1 (x86_64-pc-linu…

【Bash/Linux】sed -$Npを利用して特定の倍数行を表示するワンライナー

やりたいこと 以下のようなテキストファイルがあったとして $ cat test.txt a 1 A b 2 B c 3 C d 4 D数字が入った行(3で割って余りが2の行)のみを表示する。 環境情報 sed (GNU sed) 4.4 やり方 以下構文でファイルの3行目のみを抜きだすことができるの…