最新記事

aws cliコマンドjson出力で稼働時間値を確認するためのbash配列の構築に問題がある
bash
command-line
aws

aws cliコマンドjson出力で稼働時間値を確認するためのbash配列の構築に問題がある

AWS SSM実行ドキュメントの出力を取得するAWS CLIコマンドの出力を収集するために、bash 4プロンプトでコマンドを実行しています。テキストやjson(デフォルト)を含む複数の形式で出力できます。これまで、配列の各値が2以上になるまで出力を繰り返すことができるように、この出力を配列に入れようとしましたが、まだ成功していません。 #!/bin/bash aws ec2 reboot-instances --instance-ids `aws ec2 describe-instances --filters "Name=tag:RebootGroup,Values=01" --query 'Reservations[].Instances[].InstanceId' --output text` sleep 30 completeLoop=false while [ ! ${completeLoop} ] do ssmID=$(aws ssm send-command --document-name "AWS-RunPowerShellScript" --document-version "1" --targets '[{"Key":"tag:RebootGroup","Values":["01"]}]' --parameters '{"commands":["$wmi = Get-WmiObject -Class Win32_OperatingSystem ","$uptimeMinutes = ($wmi.ConvertToDateTime($wmi.LocalDateTime)-$wmi.ConvertToDateTime($wmi.LastBootUpTime) | select-object -expandproperty \"TotalMinutes\")","[int]$uptimeMinutes"],"workingDirectory":[""],"executionTimeout":["3600"]}' --timeout-seconds 600 --max-concurrency "50" --max-errors "0" --region us-west-2 --output text --query "Command.CommandId") declare -a a readarray -t upTimeArray <<< $(aws ssm list-command-invocations --command-id "$ssmID" --details --output json | jq '.CommandInvocations[].CommandPlugins[].Output') if [[ " ${upTimeArray[@]} " -gt 5 ]]; then echo "Uptime is greater than 5 minutes." completeLoop=true else completeLoop=false fi done ここでは少し進歩がありましたが、今は出力からキャリッジリターン/新しい行を削除する方法を理解しようとしています。 これは、配列内の項目の値のみを出力するように縮小された私の配列です。私は各行から '\ r \ n'を削除するためにsedを使用する必要があると仮定していますが、これを行うのに問題があります。 declare -a a readarray -t upTimeArray <<< $(aws ssm list-command-invocations --command-id "$ssmID" --details --output json | jq '.CommandInvocations[].CommandPlugins[].Output') for i in "${upTimeArray[@]}" do echo $i done 次を返す "1\r\n" "1\r\n" 各行が2以上になるまで配列を繰り返すことができるように、各行に対して「1」のみを返す必要があります。 編集#2 ここで提供された助けを借りて進めましたが、最終的には2番目の質問の問題とスクリプトの問題を完全に解決しました。https://stackoverflow.com/questions/65362975/bash-aws-cli-trying-to-Figure-out-how-to-validate-an-array-of-uptimes-with-2-ch

Admin

コマンドを更新するにはどうすればよいですか?
command-line
darwin

コマンドを更新するにはどうすればよいですか?

私の「whatis」マニュアルページは、オンラインで見つけた他のマニュアルページと一致しません。つまり、使用できるオプションはありません。 /home/User$ whatis -d ls whatis: -d: unknown option uname -srv Darwin 16.7.0 Darwin Kernel Version 16.7.0: Sun Jun 2 20:26:31 PDT 2019; root:xnu-3789.73.50~1/RELEASE_X86_64 私の最初の考えはbashを更新できるということでしたが、組み込みコマンドではないので、これが可能かどうかわかりません。数日間だけCLIを使用していましたが、トラブルシューティング方法もよくわかりません。また、トラブルシューティングによってコンピュータが何らかの方法で誤動作を引き起こす可能性があることを心配することがあります。

Admin

Alpine Linuxには終了コマンドはありません
command-line
alpine-linux
plasma

Alpine Linuxには終了コマンドはありません

私はAlpine LinuxとKDEデスクトップを搭載したスマートフォンを使用していてSSHを実行していますが、何らかの理由で終了アプレットを論理的な場所に置くことを考えず、終了ユーティリティも存在しません。 $ whereis shutdown shutdown: 何もありません。ただし、停止することはできますが、マニュアルページはありません。とにかくパッケージ、コンパイルできるソースコードにshutdownコマンドを提供できますか、それとも静止コマンドのエイリアスですか?

Admin

macOSでターミナルコマンドを使用して壁紙を変更する
shell
command-line
zsh
macos

macOSでターミナルコマンドを使用して壁紙を変更する

次のコマンドを使用して、コマンドラインを介して壁紙を変更できます。 osascript -e 'tell application "Finder" to set desktop picture to POSIX file ""' ここで、コースは、背景として使用する画像のフルパスのプレースホルダです。 このコマンドを使用してzsh関数を作成しようとしていますが、$1正しい代替項目を取得するために変数名(exなど)をエスケープする方法を見つけるのに問題があります。たとえば、次の機能を使用します。 change_wallpaper () { osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$1"' } それから $ change_wallpaper /Users/noibe/Wallpapers/wallpaper.jpg 動作しません。エラーが発生します。 33:48: execution error: Finder got an error: AppleEvent handler failed. (-10000) $1それはおそらくパスに置き換えられず、リテラル文字列として渡されたからです。どうすればいいですか?

Admin

文字列を含む行を見つけて、awkを使用してその行とテキストファイルのすべての後続の行を返します。
shell
text-processing
awk
command-line
scripting

文字列を含む行を見つけて、awkを使用してその行とテキストファイルのすべての後続の行を返します。

重複した内容についてお詫び申し上げます。しかし、私が経験した問題のほとんどは、行のフィールドから特定の値を取得するか、既知のファイルからtail最後の行を取得することに関連しています。nn先験的に。一致する値を持つ行を見つけて、その行と後続のすべての行のすべてのフィールドを取得します。詳細は次のとおりです。 データベースの検索に使用されるクエリ基準に関する情報を含む、さまざまな数のメタデータヘッダー行を含むオンラインデータベースから返されたデータファイルがあります。このヘッダー行の後にはきちんとしたデータフレームがあります。例: Query date: February 3, 2020, 1:34:57 PM Database: \n Search criteria: \n Geographic bounding box coordinates: -130.00 20.00; -130.00 24.00; -120.00 24.00; -120.00 20.00 Sample type: rocks > sediments > dust \n SAMPLE ID,REFERENCE,LONGITUDE,LATITUDE,X,Y,Z,A 56,Author (YYYY) Title: Journal,-127.3,22,1.7,2.3,0,0.55 56,Author (YYYY) Title: Journal,-127.34,22.4,1.9,1.3,0.5 以下を使用して、データフィールド名を含む行を正常に見つけました。 SID=$(awk -F, '{ if ($1 == "SAMPLE ID") print NR }' data.csv) echo $SID9予想通りに返却 これで、その行のフィールド名とデータを含むすべての後続の行を取得して新しいファイルに送信したいと思います。つまり、入力ファイル全体を解析し、その行を新しいファイルにNR >= $SID送信したいと思います。 これは私が使用したコードですが、いくつかの行を除くほとんどすべてのデータを返します。目的のデータを取得する方法やデータを含む行を省略する理由を理解できません。 awk -F, -v r=$SID '{ if (NR >= $r) print $0}' data.csv > output.csv これが私の予想結果です。 SAMPLE ID,REFERENCE,LONGITUDE,LATITUDE,X,Y,Z,A 56,Author (YYYY) Title: Journal,-127.3,22,1.7,2.3,0,0.55 56,Author (YYYY) Title: Journal,-127.34,22.4,1.9,1.3,0.5 どんな助けでもいいでしょう!明確でなければ、awkに完全に初めて触れたのです!つまり、良い学習入門資料へのリンクも歓迎します。

Admin

mkdir: '/proc/bus/usb/' ディレクトリを作成できません: そのファイルまたはディレクトリがありません
command-line
usb
windows
vmware
suse

mkdir: '/proc/bus/usb/' ディレクトリを作成できません: そのファイルまたはディレクトリがありません

だからタイトルにエラーがあります。このディレクトリの作成に問題があります。 cstayner@SuSELaptop:~> sudo mkdir -p /proc/bus/usb/ [sudo] password for root: mkdir: cannot create directory ‘/proc/bus/usb/’: No such file or directory そのファイルやディレクトリがないと表示されます。まあ、ええと、それを作ろうとしました。 他の調査を行った結果、常に親ディレクトリが存在しないため、これが発生することがわかります。しかし、ご覧のとおり、次のようになります。 cstayner@SuSELaptop:~> cd /proc/bus/ cstayner@SuSELaptop:/proc/bus> ls -l total 0 dr-xr-xr-x 2 root root 0 Feb 13 07:25 input dr-xr-xr-x 6 root root 0 Feb 13 07:25 pci cstayner@SuSELaptop:/proc/bus> USB ディレクトリを作成する目的は、最新バージョンの SuSE Enterprise Desktop で VMware Workstation 15.5 がインストールされている Windows 10 x64 ゲストを実行することです。ゲストでUSBフラッシュドライブを使用しようとしています。ただし、VMwareはリムーバブルデバイスからUSBデバイスをオプションとして提供しません。 さらなる調査により、USBデバイスが/proc/bus/usb/ディレクトリにあることがわかりました。 最初の質問は、なぜディレクトリの作成を拒否するのかです。ルートとして生成してみました。変わりません。 2番目の質問は、VMwareにUSBデバイスがあることを認識させるにはどうすればよいですか?はい、USBコントローラがVMに追加されます。 編集する: ホストオペレーティングシステムは問題なくUSBデバイスを表示して使用できます。これはVMwareがUSBデバイスを見ることができないということです。どのVMを使用しても同じです。仮想マシンには、WindowsといくつかのLinuxディストリビューションがあります。そのうち誰もUSBにアクセスできません。

Admin

同じ名前のフォルダに再帰的に解凍するZshスクリプト
linux
command-line
scripting
zsh
rar

同じ名前のフォルダに再帰的に解凍するZshスクリプト

この質問にはすでに答えがあります。: 圧縮パッケージと同じ名前のフォルダに解凍します。 (回答3個) 閉鎖昨年。 zshスクリプトを使用して他のディレクトリ内のすべてのディレクトリを解凍できますか? 次のように: dir |_dir1.rar |_dir2.rar |_dir3.rar コマンドにCDが含まれないようにします。 zshスクリプトを実行する前に、フォルダにCDを挿入してください。このスクリプトは、すべての.rarディレクトリを同じ元のディレクトリ名を持つ同じフォルダに抽出する必要があります。たとえば、dir1.rarはdir1などで抽出する必要があります。 これができることを願っています。

Admin

別の列の最も早い日付に基づいてIDごとに1つのレコードのみを選択するにはどうすればよいですか?
text-processing
command-line

別の列の最も早い日付に基づいてIDごとに1つのレコードのみを選択するにはどうすればよいですか?

次のフィールドで構成される複数行を含むファイルがあります。商標: ID Code Date 1 XX 23/1/2018 1 XX 11/3/2021 2 XX 14/5/2011 2 XX 20/9/2013 3 XX 08/7/2014 3 XX 11/9/2016 3 XX 27/10/2018 ID列の日付が最も早い項目に基づいて各参加者の項目を維持したいと思いますDate。各参加者の日付は、早いものから遅いものの順にソートされます。 私が望む出力は次のとおりです。 1 XX 23/1/2018 2 XX 14/5/2011 3 XX 08/7/2014

Admin

.desktop ファイルで URL 文字列を引用符で囲んで渡す方法
linux
command-line
arguments
.desktop
xdg-open

.desktop ファイルで URL 文字列を引用符で囲んで渡す方法

Wine経由でWhatsApp Desktopをインストールし、whatsapp://リンクを接続してみました。 電話番号でチャットを開始するには、コマンドラインから次のコマンドを実行します+1234567890。 env WINEPREFIX="/home/mike/WhatsAppDesktopWine" wine C:\\users\\mike\\AppData\\Roaming\\Microsoft\\Windows\\Start\ Menu\\Programs\\WhatsApp\\WhatsApp.lnk "whatsapp://send/?phone=%2B1234567890&text&type=phone_number&app_absent=0" 私のファイルを編集し、~.config/mimeapps.list以下を追加しました。 x-scheme-handler/whatsapp=~/.local/share/applications/wine/Programs/WhatsApp/WhatsApp.desktop WhatsApp.desktopには次の行が含まれています。 Exec=env WINEPREFIX="/home/mike/WhatsAppDesktopWine" wine C:\\\\users\\\\mike\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start\\ Menu\\\\Programs\\\\WhatsApp\\\\WhatsApp.lnk 次に、 "%u"最後に追加することで、行全体が次のようになります。 Exec=env WINEPREFIX="/home/mike/WhatsAppDesktopWine" wine C:\\\\users\\\\mike\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start\\ Menu\\\\Programs\\\\WhatsApp\\\\WhatsApp.lnk "%u" ただし、コマンドにURLを渡しません。

Admin

IP/ポートにユーティリティをバインドする [閉じる]
linux
command-line
tcp

IP/ポートにユーティリティをバインドする [閉じる]

閉鎖。質問は〜です。無関係。現時点では回答は許可されていません。 学習資料(チュートリアル、使用法など)の要求はトピックには関係ありません。唯一の例外は、公式文書(POSIX仕様など)をどこで見つけることができるかについての質問です。よりサポートセンターそして私たちのコミュニティの慰めより多くの情報を知りたいです。 閉鎖1年前。 この問題を改善する (2000年以来)本では、(Unix / Linux)サーバーがユーティリティに関連する接続を待っている間にポートでリッスンする方法を読んでいました。 この本の一例は、fingerユーティリティに関するものです。 サーバーのnetstat出力は次のとおりです。 proto recv-q send-q local address foreign address state user [..] tcp 0 0 *.finger *:* listen root [..] したがって、fingerリスニング -fingerポート(79)です。 その後、ユーザーはポート79を介してサーバーに接続し(この場合はTelnetを使用)、ユーザー名を入力した後に次のコマンドの出力を表示できますfinger。 ... Connected to server Escape character is '^]'. guest <--- user input Login: guest Name: guest <--- output from finger(?) Directory: /dev/null Shell /dev/null Never logged in. No mail. No plan. これがどのように行われるかについて良い説明がある人はいますか? 私のアプローチは、サーバーのSSHに接続し、fingerコマンドラインインターフェイスで実行することです。 ありがとうございます!

Admin

私が試したこと
linux
bash
shell-script
command-line
kerberos

私が試したこと

私はプロジェクトで開発者を交換し、彼らのコードを理解しようとしています。 $ ktutil ktutil: addent -password -p $userName@$domainName -k 1 -e rc4-hmac Password for <$userName>@<$domainName>: このコマンドは、次に表示できる項目を生成します。 $ ktutil ktutil: l slot KVNO Principal ---- ---- ------------------------------------------ 1 1 <$userName>@<$domainName> 私が試したこと $ man ktutilこれは次のことを示します。 $ ktutil ktutil: addent -h usage: addent (-key | -password) -p principal -k kvno -e enctype ktutil: addent ? usage: addent (-key | -password) -p principal -k kvno -e enctype 私はこれを見つけました:ktutil - 最新ドキュメント:

Admin