最新記事

切り捨てられた長いコマンドラインオプションを許可するのはなぜですか?
command-line
options
user-experience

切り捨てられた長いコマンドラインオプションを許可するのはなぜですか?

多くのコマンドラインユーティリティは長い([1]によると「GNUスタイル」)オプションを受け入れます--version。驚くべきことに、切り捨てられたバージョンは完全なオプションとして解釈されることがよくあります。たとえば、dfGNU Coreutils は以下を提供します。 user@computer ~ $ df --version df (GNU coreutils) 8.32 Packaged by Gentoo (8.32-r1 (p0)) Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Torbjorn Granlund, David MacKenzie, and Paul Eggert. --version--v切り捨てバリアント、、、およびを--ve変更すると、--ver同じ出力が得られます。ただし、オプションに文字を追加すると、突然そのオプションが無効であることが認識されます。--vers--versi--versio user@computer ~ $ df --versionn df: unrecognized option '--versionn' Try 'df --help' for more information. この動作は意図的なものですか?その理由は何ですか?私の理解は、ほとんどのユーティリティが(または同様の)依存しているということですgetopts。getoptだからマンページで手がかりを見つけましたが、説明が見つかりませんでした。 [1] ESレーモンド。UNIXプログラミングの技術。ピアソン教育、Inc.、2004

Admin

コマンドラインは、Webサイトを保存するために右クリックしてWebページを保存するのと同じです。
linux
command-line

コマンドラインは、Webサイトを保存するために右クリックしてWebページを保存するのと同じです。

CentOSのMozilla FirefoxでWebサイトを右クリックすると、下のメニューから「名前を付けてページを保存」をクリックしてWebページを保存できます。 コマンドラインを使用してこれを行う方法もありますか? ブラウザでサイトを保存すると、カールとwgetを実行するよりも出力ファイルからより多くの詳細が得られることがわかりました。 wgetやカールなどのコマンドラインインタフェースを使用して、Webサイトの特定のファイルへのリンクを含むこれらの追加の詳細をどのように取得できますか?

Admin

linux
command-line
files
command
man

"file" コマンド man ドキュメントに指定された「コンパイルされたマジックファイル」の用途は何ですか?

Linuxファイルコマンドのマニュアルを読んでください。魔法テストの説明で以下を見つけました。 Any file with some invariant identifier at a small fixed offset into the file can usually be described in this way. The information identifying these files is read from /etc/magic and the compiled magic file /usr/share/misc/magic.mgc, or the files in the directory /usr/share/misc/magic if the compiled file does not exist. In addition, if $HOME/.magic.mgc or $HOME/.magic exists, it will be used in preference to the system magic files. マジックファイルが「MagicNumber ->ファイルの種類」関係のコレクションであると想像できます。 「ファイル」プログラムが実行され、ファイル形式を見つけてファイルヘッダーを取得します。しかし、なぜそうなのか理解できません。 なぜこのファイルをコンパイルするのですか? コマンドで使用する魔法のコンパイルファイルを作成する方法はありますか? これらのテストとファイルに関連するコマンドオプションの使い方は何ですか?前任者: -C or -m。

Admin

検索とtarファイルはフォルダ構造を尊重しますか?
command-line
tar

検索とtarファイルはフォルダ構造を尊重しますか?

複数の「日付」サブフォルダからすべてのcsvファイルを検索し、日付がファイルレベルではなくフォルダレベルにのみあるため、圧縮して構造を保存したいと思います。たとえば、 20200101 A.csv B.py 20200102 G.csv D.csv F.c だから私もtar一緒に行きたい 20200101 A.csv 20200102 G.csv D.csv 私は試した: ls 20200*/.* | xargs -n1 tar -vczf odlists.tar.gz しかし、ファイルは1つだけ保存されます!

Admin

crontabからファイルへのコマンド出力は機能しません。
bash
command-line
cron
raspbian

crontabからファイルへのコマンド出力は機能しません。

Raspbian Busterを使用してcliにコマンド出力を表示し、それをRaspberry Pi 4のファイルにリダイレクトするのに問題があります。 私は始めるsudo crontab -e。 私の基本的な声明は次のとおりです。 0 */5 * * * sudo /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && sudo ufw status verbose > /var/log/ufw-status.log 最初の部分は機能しますが、2番目の部分は作成時に権限エラーが発生するため機能しませんufw-status.log。エラーメッセージ:-bash: /var/log/blockips.log: Keine Berechtigung だからいくつかのスレッドを読んでこれを試しました。 0 */5 * * * sudo /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && sudo ufw status verbose | sudo tee /var/log/ufw-status.log それは動作しません。数日経っても、ファイルはまだ変更されていません。しかし、sudo ufw status verbose | sudo tee /var/log/ufw-status.logcrontabではなくコマンドラインで試してみるとうまくいきます。 crontabのバグですか、それとも最初のステートメントに従ってエラーが発生しますか? 助けてください? ありがとうございます。

Admin

アプリケーションが実行中でユーザーに表示されることを確認する
command-line
process

アプリケーションが実行中でユーザーに表示されることを確認する

アプリケーションが実行中で、ユーザーに表示されるのか、それとも実行中ですが最小化されているのか(ユーザーには表示されません)、知っておく必要があります。 私はアプリケーションのPIDを取得できますが、pgrep studio上記の問題を解決する方法がわかりません。 私はより多くの情報を入手しようとしましたが、ps -O -pid 5439必要な情報を取得できないようです。

Admin

コンテンツのサイズを変更せずにPDFページサイズを変更する(CLI)
linux
command-line
pdf

コンテンツのサイズを変更せずにPDFページサイズを変更する(CLI)

質問 標準ではないページサイズのPDFがあります。コンテンツのサイズを変更せずにPDFキャンバスのサイズをA4に変更したいです。 PDFで印刷すると、期待した結果が得られます(下の画像、元のコンテンツは黒い長方形です)。しかし、Linux CLIを使用して同じ結果を得たいと思います。 PDFページサイズを変更する方法いいえLinuxコマンドラインを使用してコンテンツのサイズを変更しますか? 調査 私はpdfjam:を使ってみましたpdfjam --outfile out.pdf --paper a4paper in.pdf。残念ながら、それはin.pdf私に受け入れられないサイズに合わせて拡張されます。 私はcpdf:cpdf -scale-page a4portrait in.pdf -o out.pdfコンテンツをページサイズに合わせて調整してみました。 そしてまた発見PDFスケール。ただし、コンテンツのサイズを変更したり、コンテンツに合わせてページサイズを変更したりできます。 同様の問題が説明された。ここしかし、作成者はGUIアプリケーション(CLIではない)を使用しています。

Admin

1つのコマンドで複数のsudo -Sの問題が発生する
command-line
password
heroku

1つのコマンドで複数のsudo -Sの問題が発生する

パスワードを手動で入力せずにこのコマンドを実行する方法を知りたいです。 echo "password" | sudo -S curl https://cli-assets.heroku.com/install.sh | sudo -S sh それでもパスワードを入力するように求められます。どうすれば解決できますか? よろしくお願いします!

Admin

GUIを必要としないビデオブラーの冗長ファインダーはありますか?
command-line
video
deduplication

GUIを必要としないビデオブラーの冗長ファインダーはありますか?

現在、最小限の変更で重複した動画を削除しようとしています。これは、わずかに異なるエンコーディング、低解像度、または単に変更されたメタデータです。これらのムービーは複雑なフォルダ構造に配置されているため、特定のフォルダに重複したムービーのみを削除できます。 だから私は見つかった重複したアイテムのリストを返すLinux用のツールを探しています。このツールはサーバー上で直接実行し、特定のサブフォルダのみを自動的に比較して時間を節約したいので、CLI(またはライブラリ)と一緒に使用する必要があります(サーバー全体が長すぎます)。 これまで私が見つけた唯一のことドッパーグルそして動画の重複を探す。残念ながら、彼らはすべてGUIプログラムです。 現在、私はjdupesを使用してすべてのバイトの完全なコピーを削除しています。ただし、これは変更されたメタデータや他の形式(例:webm、m4v、およびmp4)によって簡単にだまされます。 そのようなツールを知っている人はいますか?それとも私が自分で書かなければならない内容ですか?

Admin

キオスククロームでシェルコマンドを実行するには?
bash
command-line
chrome

キオスククロームでシェルコマンドを実行するには?

Chromeのフルスクリーンキオスクモードでユーザーに「ダイアログ」を表示するためにbashスクリプトを実行する方法を見つける必要があります。 編集:「ダイアログボックス」で明確にするために、「ダイアログボックス」コマンドを使用して単純なbash GUIを作成できることを意味します。 セキュリティ上の理由から、raw CLI環境でのみchromiumを実行します。 (私の息子は私の設定をハックするのに慣れています。)私は「startx」を使ってChromeを起動します。 キーボードやマウスはなく、ジョイスティックだけが接続されていますが、バックグラウンドで実行されるプログラムがあるため、理論的には特別なジョイスティックショートカットを介して単一のキー入力を実行できます。 これまでは、キオスクモードでトリガーとスクリプトを実行することはできません。 これを行うには、どういうわけかChromeを一時停止して最小化する必要があるかどうか疑問に思います。 私はいくつかの「画面」で遊んでいて、他の「画面」から「ダイアログボックス」スクリプトを実行することもできます。 私も「バインディング」を試しましたが、これまで運がありません。 しかし、最初の質問は、CLIでキオスククロムコマンドを実行する方法です。 乾杯!

Admin

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