Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

2
find + xargsでファイルを移動する:ターゲットはディレクトリではありませんか?
次のコマンドを実行すると: > mkdir some_dir > find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir 次のような数百行が表示されます。 mv: target `/foo/bar/XX.csv` is not a directory どうして?xargsが実行されると思った: mv /foo/barXX.csv some_dir find見つかったすべてのファイルに対して。どうしたの?ちなみにこれはzshで 更新: Update1: 私は試した: find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir しかし、私は次のような数行を得ました: mv: cannot stat `{}': No …
9 find  xargs 

4
bashコマンドラインバッファーにテキストを置く
プログラムで特定のテキストをbashのコマンドラインバッファーに入れ、読み取り、編集してコマンドとして使用したいと思います。 私が楽しみにしているのはread -i、コマンドに似ていますが。 -i text readlineを使用して行を読み取る場合、テキストは編集を開始する前に編集バッファーに配置されます。 編集:プログラムでこれをスクリプトで記述したい場合は、スクリプトを起動し、コマンドバッファーを準備するか、コマンド履歴を変更します(いくつかの質問が示唆しているように)。
9 bash  readline 

1
シェルの「単語の削除」ショートカットが削除する文字数が多すぎる
Bashの下では、Alt+のいくつかの動作が何d年もの間私を狂わせてきており、設定で修正できる可能性があることを理解しました。 私がターミナルにいて、次のようなコマンドを発行した場合: ...$ cat >> ~/notesSuperLongFilename.txt 次に、発行したい場合は、 ...$ scp ~/notesSuperLongFilename.txt 私は戻って取得したいのですが、「>>猫を〜/ notesSuperLongFilename.txt」し、Ctrl + Pを(前の行)を使用して行うCtrl+ a、その後、Alt+ dとAlt+ d再び私が持っていると思いますので。 ...$ ~/notesSuperLongFilename.txt そして、私は単に「scp」と入力してからCtrl+を実行することができますm(またはEnter / Returnキーを押します)。 ただし、最初のAlt+の後、次のようになるため、機能しませんd。 ...$ >> ~/notesSuperLongFilename.txt (ここまでは順調ですね) しかし、2番目以降Alt+ d私は得る: ...$ .txt だから、何らかの理由でAlt+ d削除「>>〜/ notesSuperLongFilename」一回だけではなく、削除するので「>>」。 これは、文字通り何年もの間、Linux / Bashで私を狂わせている最大の時間浪費である必要があります。 では、どうすればAlt+のこの(おそらく壊れている)動作を修正できdますか? PS:私はそのAlt+ d動作の「責任者」が誰なのかわかりません。それがターミナルなのか、それともシェル(私の場合はBash)なのかわかりません。

2
Middlemanサーバーを介したSSHトンネル-1つの手順で接続する方法(キーペアを使用)?
私の質問は、基本的に私の既存の2つのステップを1つのステップに変える方法です。 次のようにMiddlemanサーバーを使用して、2台のコンピューター間にSSHトンネルを設定しています。 Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop 現在私がしていることは、Kubuntu_laptopからDebian_Serverへ、次にDebian_ServerからKubuntu_desktopへのSSHです。私はKubuntu_laptopでbashで発行された1つのSSHコマンドを作成したいと思います。これにより、Kubuntu_desktop(shell / bash)に接続されます。 現在使用しているコマンドは以下の通りです。ステップ1: me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server ステップ2: admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost 次に、(kubuntu_laptopから)SSH経由でkubuntu_desktopに接続します。 RSAキーは、すべてのSSH接続に必要です。パスワードのログインはずっと無効になっています。また、コンピューターのユーザーアカウントが2台のコンピューターで異なることに注意してください。 このレッグの接続について: Debian_Server<--nat_fw<--Kubuntu_desktop 以下にその確立方法を示します。 autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22 Kubuntu_desktopがuser@mydebian.com(admin @ debian_serverではない)としてMiddlemanに接続することに注意してください。しかし、Kubuntu_desktopに接続すると、管理者ユーザーとして接続します。 既存の監視ポート(5234)またはリモート(-R)ポート番号(この例では1234)を変更できません。SSHのセキュリティを変更してパスワードログインを許可できません。新しいファイアウォールポートを開けません。ユーザーアカウントを変更できません(ラップトップを除く)。

2
Samba共有をマウントする適切な方法
Arch LinuxシステムにsambaでCIFSネットワークファイルシステムをマウントしたいと思います。ログインするたびに(ssh、TTY、またはKDMのいずれかを介して)このファイルシステムをマウントしたいと思います。 にネットワーク共有を追加することで、希望するものにかなり近づくことができます/etc/fstab。最大の「問題」は、パスワードをハードコーディングするか/etc/fstab、ユーザー名とパスワードを使用して資格情報ファイルを作成する必要があることです。アクセス許可を600に設定しても、ユーザー名とパスワードをプレーンテキストファイルに保存するのは危険です。 ネットワーク共有を安全に自動マウントする「適切な」方法はありますか?PAMでこれを行うことはできますか(私のユーザー名とパスワードは両方のマシンで同じです)。
9 samba 


1
キーの組み合わせをキーに再マッピングする方法は?
Xサーバーベースのシステムでキーの組み合わせをキーに再マッピングすることは可能ですか?たとえば、End+ を押すとArrow_up、キーコードHomeが生成されますか?Googleはこの問題について沈黙しているようです。より便利なキーボードマッピングの多くの可能性を開くため、解決策があればそれは素晴らしいことです。

2
bashスクリプトでグラフィカルにパスワードを要求し、デフォルトのsudoタイムアウト設定を保持する
sudo -A(SUDO_ASKPASS)オプションは、明らかな原因は、タイムアウト(例えば、timestamp_timeout)の設定を失うことSUDO。 sudo -Aオプションを使用したいが、bashスクリプトでデフォルトのタイムアウト(Ubuntuでは15分など)を保持したい。ユーザーのパスワードを安全にGUIダイアログで要求したいのですが、スクリプトの入力を1回だけ要求します(50回以上は要求しません)。 さらに、スクリプト全体をrootユーザーとして実行したくありません。これは悪い考えです。さらに、この場合、私のスクリプトによって作成されたファイルの所有権は正しくありません。 sudo -Aオプションは、デフォルトのタイムアウトを保持している場合は機能します。 sudoマニュアルから: オプション:‑A 通常、sudoがパスワードを必要とする場合、ユーザーの端末からそれを読み取ります。‑A(askpass)オプションを指定すると、(おそらくグラフィカルな)ヘルパープログラムが実行され、ユーザーのパスワードが読み取られ、パスワードが標準出力に出力されます。SUDO_ASKPASS環境変数が設定されている場合は、ヘルパープログラムへのパスを指定します。それ以外の場合、/ etc / sudo.confにaskpassプログラムを指定する行が含まれていれば、その値が使用されます。例えば: # Path to askpass helper program Path askpass /usr/X11R6/bin/ssh-askpass ちなみに、kdesudoにも同じ問題があります。たとえ同じスクリプトで1秒後でも、呼び出されるたびにパスワードが必要です。 Kubuntu 12.04 64ビットを使用しています。 以下は、ソリューションのすべての部分の完全に機能する例です。これは、bashスクリプト、ここで提案されている「myaskpass」スクリプト、および「.desktop」ファイルで構成されています。すべてが100%GUIである必要があります(端末の相互作用はまったくありません)。したがって、.desktopファイルは不可欠です(afaik)。 $ cat myaskpass.sh #!/bin/bash kdialog --password "Please enter your password: " exit 0 $ cat askpasstest1.desktop #!/usr/bin/env xdg-open [Desktop Entry] Comment=SUDO_ASKPASS tester1 Exec=bash …


3
プロセスに同じファイル名の別のファイルを読み取らせる
ファイルを読み取るアプリケーションがあります。それをprocessnameとファイル〜/ .configurationと呼びましょう。ときProcessNameのは、走ることは常に読み込み〜/ .configurationをし、異なって設定することはできません。「〜/ .configuration」に依存する他のアプリケーションもありますが、プロセス名の実行中ではありません。 〜/ .configurationの内容を置き換えるスクリプトでプロセス名をラップすることはオプションですが、最近、停電があり(内容がスワップアウトされている間に)、上記のファイルの以前の内容が失われたため、これは望ましくありません。 LD_DEBUG=files processnameプロセスが特定のファイルを読み込もうとしたときに、プロセスをだましてさまざまなコンテンツを読み取らせる方法(おそらく、遠くに関連する何かを使用しますか)はありますか?実行可能ファイル内のファイル名を検索して置き換えることは少し侵略的ですが、同様に機能するはずです。 open()呼び出しを引き継ぐカーネルモジュール(https://news.ycombinator.com/item?id=2972958)を作成することは可能ですが、より簡単またはよりクリーンな方法はありますか? 編集:プロセス名実行可能ファイルで〜/ .configurationを検索すると、〜/ .configurationを読み取る直前に別のファイル名を読み取ろうとしていることがわかりました。問題が解決しました。

2
bashスクリプトにunix / linuxユーザーを追加する方法
これが私のテストbashスクリプトです。それを機能させることができません。2つのエラーが表示されます。 Use of uninitialized value $answer in chop at /usr/sbin/adduser line 589. Use of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590. これが私のスクリプトです: #!/bin/bash sudo adduser myuser << ENDX password password First Last Y ENDX exit 0 出力は次のとおりです。 me@mycomputer$ ./adduser.sh Adding user `myuser' ... Adding new group …
9 bash  useradd 

1
zsh補完を変更して、プロンプトの上に補完を配置します
私は長年のtcshユーザーで、ついにzshを試すことにしました。私は補完機能をいじっていますが、値が多い可能性がある補完機能のタブを押すと、プロンプトの下に補完オプションが表示され、プロンプトが下部から押し出されます。端末の。TCSHは古いプロンプトを残し、下の新しい行に補完を出力してから、これまでに入力したプロンプトとコマンドを再出力します。 完了オプションがプロンプトの上に表示されるように、完了ロジックを変更する方法はありますか?

2
このddrescueコマンドは何かをしていますか?
故障したハードドライブからデータを回復しようとする過程で、私はコマンドを実行していddrescueます。 コマンドは9日間実行されており、ディスクアクティビティのサウンドから、何かが実行しているのではないかと思いました。コマンドラインの出力は、これまでずっと多かれ少なかれ静的に見えてきました。 $ sudo ddrescue -r3 /dev/sdb /home/dave/RECOVERY/usb500.image /home/dave/recovery_usb500.logfile Press Ctrl-C to interrupt Initial status (read from logfile) rescued: 0 B, errsize: 0 B, errors: 0 Current status rescued: 0 B, errsize: 500 GB, current rate: 0 B/s ipos: 2539 MB, errors: 1, average rate: 0 B/s opos: 2539 MB, …

3
パスワードでプログラムを安全に供給する
コマンドラインでのパスワードの使用に関する問題を理解した後、問題なく(どこかにパスワードが記録されずに)プログラムにパスワードを与える方法を見つける必要があります。 私はソースからLAMPサーバー全体を自動的にインストールするbashスクリプトを持っています:Apache、FastCGI、PHPおよびMySQL。これらのインストールにはパスワード、特にMySQLが必要です。 パスワードを明かさずにスクリプトを完全に自動化するにはどうすればよいですか? 編集(6月9日、3:55 UTC): コマンドラインでパスワードを使用して、mysqlをroot経由で起動します。 root@dor-desktop:/home/dor# PASS=`cat /home/dor/tmpf/pass` root@dor-desktop:/home/dor# mysql -u root -p"$PASS" Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 (この場合はPASS = "p4ssw0rd") そしてps aux | grep mysql、通常のユーザー(dor)を介して実行しますが、パスワードは表示されません! (の一部)ps出力は次のとおりです。 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME …

1
クリップボードからHTMLをマークダウンテキストとして保存
Webページのセクションを強調表示してクリップボードにコピーし、マークダウンとしてローカルディスクに保存できるようにしたいのですが。それを行うための効率的な方法が必要です。 私の現在の面倒な方法は: セクションをハイライトしてクリップボードにコピー Libre Office Writerを開く Writerに貼り付ける WriterドキュメントをHTMLとして保存 オープンターミナル cd HTMLを保存したディレクトリに pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md 明らかに、もっと良い方法が必要です!助言がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.