最新記事

Fedora 18から36にアップグレードした後、マウスをクリックすると、XTermシェル(readline)でカーソル位置が停止します。
bash
fedora
mouse
xterm
readline

Fedora 18から36にアップグレードした後、マウスをクリックすると、XTermシェル(readline)でカーソル位置が停止します。

次の制御シーケンスを使用して設定し、XTermのシェル(BASH)でコマンドラインをクリックします。カーソルをこの位置に移動します。。少なくとも私が持っていた古代のFedora 18ではそれがうまくいきました。 (私は非常に長いパイプラインを作成する傾向があるため、この機能は長年使用して完全に慣れてきたので、私にとっては素晴らしく重要です。) 「ターゲットクリック」機能を有効にするにはどうすればよいですか(通常はPS1BASH変数で): \[\e[?2001;2002;2003;2004;2005;2006s\e[?2001;2002;2003h\] そして、元の保存状態を復元します(通常PS0はシェルで実行されるコマンドに影響を与えないため)。 \[\e[?2001;2002;2003;2004;2005;2006r\] 実験に使用したエイリアスは次のとおりです。 alias tmouseon='printf -- '\''\e[2001;2002;2003;2004;2005;2006s\e[?2001;2002;2003h'\''' alias tmouseoff='printf -- '\''\e[?2001;2002;2003;2004;2005;2006r'\''' 以下は私のXTerm設定です。一部はこの問題に関連している可能性がありますが、XTermのマニュアルによると、私の設定に問題を引き起こす可能性がある他のオプションやオプションが見つかりませんでした。また、xrdb -merge私のXを知らないことに注意してください。リソースファイルを使用.xinitrcしましたがxrdb、ディストリビューションのデフォルト設定が気に入らず、ディストリビューションへのフルアクセスを望んでいたため、何年も問題なく使用してきました。 ! Init XTerm.ptyInitialErase: true XTerm.waitForMap: true ! Buffers XTerm.buffered: true XTerm.bufferedFPS: 100 XTerm.maxBufSize: 131072 XTerm.minBufSize: 8192 ! TERMINAL ! Name XTerm.VT100.termName: xterm-256color ! Session XTerm.VT100.loginShell: true ! Features XTerm.VT100.allowFontOps: true XTerm.VT100.allowMouseOps: true XTerm.VT100.allowTcapOps: true XTerm.VT100.allowTitleOps: true XTerm.VT100.allowWindowOps: true XTerm.VT100.c132: true ! Input XTerm.VT100.backarrowKey: true XTerm.VT100.backarrowKeyIsErase: true ! Scrolling XTerm.VT100.scrollBar: false XTerm.VT100.scrollTtyOutput: false XTerm.VT100.allowScrollLock: true ! Screen buffer XTerm.VT100.saveLines: 10000 ! Alternate screen XTerm.VT100.titeInhibit: true XTerm.VT100.tiXtraScroll: true ! Visual bell XTerm.VT100.visualBell: true XTerm.VT100.visualBellLine: true XTerm.VT100.visualBellDelay: 150 ! Pointer shape XTerm.VT100.pointerShape: hand1 ! Margin bell XTerm.VT100.marginBell: true XTerm.VT100.nMarginBell: 8 ! Cursor blinking XTerm.VT100.cursorBlink: true XTerm.VT100.cursorOffTime: 250 XTerm.VT100.cursorOnTime: 750 ! Selection XTerm.VT100.charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48 XTerm.VT100.highlightReverse: false XTerm.VT100.highlightSelection: true XTerm.VT100.trimSelection: true (色設定を省略...) 非常に古い(知っていますが、かなり「スパルタ」環境にあり、通常のツールを使用したとき)、Fedora 18ワークステーションを最新のFedora 36にアップグレードした後、マウスの機能はXTerm Clickのカーソルが機能しなくなり、見つかりませんでした。問題の根本原因。 (一生懸命修正しようとしましたが、完全に失敗しました。)機能を復元したいと思います。誰でも助けることができますか? 誰も同じ問題がありますか?どうやって分析しますか? 私の考えでは可能TermInfoで問題が発生しましたが、もう詳しく調べる方法がわかりません。

Admin

bashメタ文字とは何ですか?
bash

bashメタ文字とは何ですか?

私はそれ以上の説明なしで文字列をbashから文字列として安全に使用できるようにするプログラムを書いています。次に、''文字列をsで囲み、'各文字列をに置き換えます'\''。これはうまくいきますが、今では結果文字列ができるだけ素敵に見えるようにしたいと思います。そのため、たとえばsandwichjustに変換できますが、sandwichにthing$HOME変換する必要があります'thing$HOME'。 究極の目標は展示するbashコマンドを人間に修正してこのような['ls', '-l', 'Filename"with\'crazy$chars']ものをls -l 'Filename'with'\''crazy$chars'。

Admin

シェルスクリプトでカンマ区切りの行に複数のユーザー入力を追加する
bash
shell-script
ssl

シェルスクリプトでカンマ区切りの行に複数のユーザー入力を追加する

ユーザーが入力を完了するまで、複数のドメイン名に対するユーザー入力を受け取る必要があります。入力は1つのドメイン名でも複数のドメイン名でもかまいません。そしてドメイン名はカンマで区切る必要があります,。 ドメイン名を次のコマンドに渡すにはどうすればよいですか?助けてください。 keytool -genkey -keystore tc_keystore.jks -keysize 2048 -keypass password -storepass password -keyalg RSA \ -dname "CN=domain1.com,OU=Devteam,O=Softech,L=Chicago,ST=IL,C=US" \ -alias domain1.com -ext san=dns:domain2,domain3,domain4,domain5,domain6,domain7 私はシェルスクリプトを初めて使用するので、単一のユーザー入力を読み取り、それを変数に保存してその変数を呼び出します。以下のとおりです。ただし、複数のユーザー入力をコンマで区切る必要がある場合は、問題が発生します。 keytool -genkey -keystore $keystore -keysize 2048 -keypass $password -storepass $password -keyalg RSA \ -dname "CN=$domain1,OU=Devteam,O=Softech,L=Chicago,ST=IL,C=US" \ -alias $domain1 -ext san=dns:domain2,domain3,domain4,domain5,domain6,domain7

Admin

「CTRL + L」コマンドを使用した後に前のページに戻る方法は?
bash
terminal

「CTRL + L」コマンドを使用した後に前のページに戻る方法は?

Linux端末で画面を消去するには、ショートカットを使用できますCRTL +L。それ以降は新しいページが作成されるようです。前のページに戻ることはできますか?スクロールバーを使用しないコマンドやショートカットがありますか?

Admin

エイリアスを使用するには、SSH経由でリモートでコマンドを実行します。
bash
shell
ssh
alias

エイリアスを使用するには、SSH経由でリモートでコマンドを実行します。

shopt -s expand_aliases ttmp="SUCCESS" alias aliased_command='echo $ttmp' 上記の行を.bashrcファイルに追加すると、エイリアスをリモートで使用できます。 [USER@REMOTESERVER ~]$ ssh MYSERVER aliased_command SUCCESS シェルが非対話型の場合、Shoptを使用してExpand_aliasesシェルオプションを設定しない限り、エイリアスは拡張されません。 expand_aliasesオプションを使用すると、非対話型シェルでエイリアスを使用できます。 しかし、私が実行したとき: [USER@REMOTESERVER ~]$ ssh MYSERVER echo $- himBH SSHを介してリモートコマンドを実行すると、対話型シェルを使用しているようです。 (i含む) これは正しいですか? もしそうなら、Expand_aliasesオプションが必要なのはなぜですか? エラーが発生した場合、ssh SERVER COMMAND非対話型シェルを使用している場合、MYSERVERファイルをssh MYSERVER COMMAND読み取るのはなぜですか?.bashrc非対話型シェルは.bashrcファイルを読みません。? cf) コマンドを引用すると、別の出力が生成されます。 [USER@REMOTESERVER ~]$ ssh MYSERVER 'echo $-' hBc すべてのリンク、コメントを送信していただきありがとうございます。

Admin

Pacmanパッケージをエミュレートする方法は?
bash
arch-linux
python
pacman

Pacmanパッケージをエミュレートする方法は?

Pacmanパッケージのファイルの内容を印刷するスクリプトを完了しました。pkg-extract_original)ところで問題が発生しました。最終機能テスト。基本的にテストがあります。 def should_print_file_contents_from_package(): # Given a dummy package which claims to own a filesystem package file package_name = "filesystem" file_path = "/etc/hosts" file_contents = "Hello World!" current_directory = dirname(__file__) package_directory = f"{current_directory}/package" run( ["makepkg", "--force"], check=True, cwd=package_directory, env={ "PACKAGE_NAME": package_name, "FILE_PATH": file_path, "FILE_CONTENTS": file_contents, }, ) # Given the dummy package directory as cache environment = {"PACMAN_CONFIG": f"{DIRECTORY}/pacman.conf"} # When requesting a file from an installed package result = run( ["./pacman-package-file.bash", file_path], stdout=PIPE, check=True, env=environment, ) # Then it should print the contents of the build file assert result.stdout == file_contents a dummy 、PKGBUILDファイル: #!/usr/bin/env bash # shellcheck disable=SC2034,SC2154 pkgname="$PACKAGE_NAME" pkgbase="$PACKAGE_NAME" version_and_release="$(pacman --query "$PACKAGE_NAME" | cut --delimiter=' ' --fields=2)" pkgver="$(cut --delimiter='-' --fields=1 <<< "$version_and_release")" pkgrel="$(cut --delimiter='-' --fields=2 <<< "$version_and_release")" arch=(any) package() { mkdir --parents "${pkgdir}$(dirname "$FILE_PATH")" printf '%s' "$FILE_CONTENTS" > "${pkgdir}${FILE_PATH}" } 、仮想pacman.conf: [options] CacheDir = tests/package … そしてシェルスクリプト: #!/usr/bin/env bash … script_name="$(basename "$0")" # Add extra pacman parameters if specified pacman_command=('pacman') if [[ -n "${PACMAN_CONFIG-}" ]] then pacman_command+=("--config=${PACMAN_CONFIG}") fi owners_stderr="${working_directory}/owners_stderr" mapfile -t owners < <("${pacman_command[@]}" --query --owns --quiet "$1" 2> "$owners_stderr") owner="${owners[0]}" package_url="$("${pacman_command[@]}" --sync --print "$owner")" if [[ "${package_url::7}" != 'file://' ]] then printf "%s: Package missing - download using \`pacman --sync --downloadonly %s\` and retry\n" "$script_name" "$owner" >&2 exit 9 fi … 問題は、構成が仮想パッケージディレクトリを指していても、pacman --cachedir=tests/package --sync --print filesystemテスト/パッケージのファイルパスの代わりにHTTPS URLが印刷されることです。 pacman仮想パッケージファイルのパスを印刷するには何が必要ですか?

Admin

sed:私のsedスクリプトに「s」の未知のオプションがあります。
bash
sed
scripting

sed:私のsedスクリプトに「s」の未知のオプションがあります。

閉鎖。質問は〜です。無関係。現時点では回答は許可されていません。 問題の説明再現できない問題自然に消えているように見える(またはスペルエラーが修正された後に消える)記事は、将来の読者には役に立たない可能性が高いため、トピックから抜け出した記事です。 閉鎖3年前。 この問題を改善する だからSED.sedというスクリプトがあります。このスクリプトは、車のデータデータセットを処理するために作成されました。まず、スクリプトに必要な機能を説明したいと思います。 3つのことをしたい 年を数十年に変えます。セットには1970年から89年までの自動車のみが含まれているため、年を適切な10年に置き換えました。はい(1972年と1974年は1970年代に置き換えられました) 自動車メーカーとモデルは二重引用符のペアで表示されます。私はこれを一重引用符に変え、ブランドとモデルを分離しました。したがって、「Honda civic lx」と「audi 500s(ディーゼル)」は「honda」「civic lx」と「audi」「500s(ディーゼル)」になります。 データ損失がある場合、一部のデータ行に「?」が含まれます。データセットからこの行を削除したいと思います。 つまり、私のスクリプトは次のようになります s/"([^" ]+) +([^"]+)"$/'"'\1' '\2'/" s/7[0-9]( )/70s/g s/8[0-9]( )/80s/g /?/d 次に、このスクリプトを次のようにsedコマンドに渡しました。 sed -E -i -f SED.sed auto-mpg.data これにより、次のエラーが発生します。 sed: file SED.sed line 1: unknown option to `s'

Admin

隠された項目だけがリストされている場合、どうすれば除いて..できますか?
bash
command-line
ls
dot-files

隠された項目だけがリストされている場合、どうすれば除いて..できますか?

ls -d .*隠された「アイテム」(ファイルとディレクトリ)のみをリストします。技術的に(私の考えでは)で始まるすべてのプロジェクトをリストします.。これには現在のディレクトリ.と上記のディレクトリが含まれます..。 ls -Aまた、「ほとんどすべての」項目が一覧表示され、非表示の項目と非表示の項目が一覧表示されますが、含まれていないことがわかり.ます..。しかし、それらを組み合わせても、ls -dA .*私の隠されたアイテムの「ほとんどすべての」アイテムはリストされません。 除外する方法と隠された項目だけがリストされている場合は何ですか.?..

Admin

この文字の構文エラー||
bash
shell

この文字の構文エラー||

私はこれを持っています: set -e ( ( docker stop html2pdf docker rm html2pdf ) || { echo; } ) & 私はバックグラウンドでこのコマンドを実行しようとし、そのうちの1つが失敗した場合は無視します。 ただし、次のエラーが発生します。 /home/oleg/codes/cm/html-to-pdf/scripts/run.sh: line 13: syntax error near unexpected token `||'

Admin

`clang-format --version`が1を返すのはなぜですか?
bash
command-line
rhel
clang

`clang-format --version`が1を返すのはなぜですか?

私はRHEL7を使用しており、ちょうどインストールしましたclang。sudo yum install clang その後、コマンドを実行すると、clang-format --version出力は次のようになります。 me@localhost:~$ clang-format --version LLVM (http://llvm.org/): LLVM version 3.4.2 Optimized build. Built May 10 2018 (10:48:27). Default target: x86_64-redhat-linux-gnu Host CPU: x86-64 me@localhost:~$ echo $? 1 ご覧のとおり、エラーなしclang-format --versionで動作しているようですが。echo $?1 このコマンドに問題がありますか? 私はUbuntuシステムで同じことをしましたが、そのようなエラーは発生しませんでした。 出力type -a clang-format: clang-format is /usr/bin/clang-format clang-format is /bin/clang-format 出力file "$(command -v clang-format)": /usr/bin/clang-format: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=899595580dbae12ee1ae6eb9feb8a19aa6d51f49, stripped

Admin

一部の列番号で文字列を開始
bash

一部の列番号で文字列を開始

並べて印刷したい2つの文字列があります。しかし、2番目の文字列が特定の列番号から始まるようにしたいです。どうですか? 以下を使用しましたが、string2位置21で逆さまに印刷しました。 n=21 string1="Hello" string2="World!" p=$(( n - ${#string1} )) printf "%s%*s\n" "$string1" $p " $string2" 結果 1 2 123456789012345678901 Hello World!

Admin