Unix & Linux

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

1
Ubuntuカーネルに強制的にマウント/を失敗させ、initramfsレスキューシェルにドロップするにはどうすればよいですか?
私はinitramfsレスキュー環境をカスタマイズしようとしていますが、シングルユーザーモードではなく、カーネルがマウントに失敗してレスキューシェルにドロップするように強制したいと思います。/(initramfs) どうやってやるの? 注:initramfs-toolsカスタマイズ手順を実行する方法を知っていますが、結果を確認できる必要があります。

2
ssh-agent:キーリング全体の認証を転送しません
私は2つの秘密SSHキーを持っています: 私の個人的なマシンにアクセスするための1つ、 1つは、私の仕事でサーバーにアクセスするためのものです。 これら2つのキーをを使用してssh-agentに追加しssh-addます。 ここで、ssh -A root@jobsrv自分のジョブキー(接続に使用しているものjobsrv)に対してのみエージェント認証を転送したいと思います。 rootアクセス権を持つ誰もがjobsrv私のエージェントを使用して自分のマシンに対して自分自身を認証できるため、これが必要です。 この分離を達成する方法はありますか?

1
ELF実行可能ファイルのどの部分がメモリに読み込まれますか?
私がすでに知っていること: ELF実行可能ファイルにはいくつかのセクションがあり、.textセクションと.dataセクションはプログラムの主要な部分であるため、メモリにロードされます。しかし、プログラムが機能するためには、特に動的にリンクされている場合、より多くの情報が必要です。 私が興味を持っているのは、.plt、.got、.dynamic、.dynsym、.dynstrなどのセクションです。関数とアドレスのリンクを担当するELFの部分。 私がこれまでに理解できたことから、.symtabや.strtabなどのものがメモリにロードされない(またはとどまらない)ことです。しかし、リンカは.dynsymと.dynstrを使用していますか?彼らは記憶に残っていますか?プログラムコードからそれらにアクセスできますか? そして、カーネルメモリに常駐する実行可能ファイルの部分はありますか? これに対する私の関心は主に法医学ですが、このトピックに関する情報があれば役立ちます。これらのテーブルと動的リンクについて私が読んだリソースはより高レベルであり、それらは動作を説明するだけであり、メモリの内容について実用的なものは何もありません。 質問について不明な点がある場合はお知らせください。

3
Bashで二重文字を見つけるための正規表現
コマンドライン(Bash)で、テキスト、リストなどの二重文字のすべての出現を検出する正規表現を探しています。 主な質問:様配列を探すための簡単な方法があるaa、ll、ttttt1は同じ文字のn個の出現箇所を検索することを正規表現を定義し、その他は?私が探しているのは、非常に基本的なレベルでこれを達成することです。コマンドライン。Linuxシェル。 かなりの調査の後、私は次の答えにたどり着きました–そしてそれらから生じる質問、そしてそれゆえ彼らは私に解決策がどこにあるのかについてのヒントを与えてくれました。だが: a)(e)grepとバックスラッシュの問題 grep 'a\{2\}' 探す aa egrep'a{2}' 探す aa 質問:バックラッシュを設定する必要性は、実際に使用するコマンドにバインドされていますか?もしそうなら、誰かがここで(e)grepを使用するときに考慮すべき他のことを教えてくれますか? b)私が探していたものとは異なりますが、この質問に対する回答をここで見つけました。 grep -E '(.)\1' filename同じ文字が複数回出現するエントリを探しますが、その頻度は尋ねません。これは私が探しているものに近いですが、繰り返しの数を設定したいと思います。 私はおそらくこれを2つ以上の質問に分割する必要がありますが、この素晴らしいサイトをここに殺到させたくありません。 PS:もう一つの問題、おそらくトピックオフけど:それであるin、inside、atまたはon the shell。そしてon the command line正しいですか?

2
console-kit-daemon CPUとRAMを消費する
少し低迷しているシステムがあります。topコンソールキットデーモンは、18〜30%のCPUと約50%のメモリを占めると報告しています。ログインしているユーザーは2人だけです。1人はXに、もう1人はsshを介してログインします。 これを解決する方法はありますか? Debianを実行しています。unameレポート: Linux bulls5 2.6.32-5-686#1 SMP Sun Sep 23 09:49:36 UTC 2012 i686 GNU / Linux 最初の数行top: 9456 root 20 0 2006m 1.8g 2020 S 19 50.2 1788:50 console-kit-dae 1501 messageb 20 0 425m 397m 796 S 0 10.6 230:20.64 dbus-daemon 3799 tomcat6 20 0 932m 450m 7208 S …


2
FATファイルシステムを最適化する賢い方法は?
Linux / Unix(USBスティックなど)を実行しているときにFATファイルシステムを最適化する最良の方法は何ですか? すべてのコンテンツを別の場所にコピーし、フォーマットして、もう一度コピーしますか? KDOSコマンドでFreeDOSデフラグユーティリティを使用しますか? パーティションロジックで起動しますか? その他?
10 filesystems  fat  vfat 

1
実際にwodimの「-dao」、「-sao」、「-tao」、「-raw」の書き込みモードを理解する
でwodimを一枚のディスクでのような多くの異なる書き込みモードの間で選択することができたら、(「 - DAO」)、セッションアットワンス(「 -サン」)、トラックアットワンス(「 - TAO」)または生の書き込みモード(「 -生」) 。私が理解しているように、トラックアットワンスは、SAOモードとDAOモードのときに一度に1つのトラックを書き込み、レーザーはトラック間で停止しません。これはオーディオCDの場合にのみ重要であり、データCDの場合に違いはありませんか(たとえば、Linuxディストリビューションイメージの書き込み)。さらに、オーディオCDおよびTAOモードの場合でも、wodimは1つのトラックの開始または終了位置をどのようにして知るのですか?SAOモードでは、CD-Rメディアに複数回書き込むことができるのは正しいですか?最後に重要なことですが、この場合、生の書き込みモードは役に立ちますか?

2
なぜ `cp`と` rm`はディレクトリを別々に扱うのですか?
ツールがディレクトリを好きでcp、rm通常のファイルとは別に扱うのはなぜですか?どちらも、ユーザーが再帰的な動作を希望することを明示的に指定する必要があります。そうしないと、ディレクトリをまったく扱いません。 コンピュータとの最初のやり取り(しばらくの間)は、Windows / GUI /ポイントアンドクリック/ドラッグアンドドロップ環境で行われましたが、これらの操作がターゲットに関係なく同じように動作するのは常に自然なことでした。 この動作は、ワイルドカードを使用してコマンドを実行するときに特にイライラします。空でないサブディレクトリ*を除いて、ディレクトリ()内のすべてを削除したい場合はどうなりますか? これは、ユーザーが自分で足を撃たないようにするための一種のセキュリティ機能であるとしか想像できませんが、これはいくつかのUnixの原則についての私の理解と矛盾しています。 Unixは通常、ユーザーを自分から保護しません。それは常にユーザーが彼女がしていることを知っていると仮定しています。 Unixの場合、すべてがファイルです。ディレクトリは単なる別のファイルではありませんか?なぜ違う扱いを受けるのですか? 私の質問: この動作は技術的な制限によるものですか、それとも意図的な選択ですか? 後者の場合、 この選択の動機となった理由の歴史的な説明はありますか?
10 rm  cp 


5
曜日に基づいてIf-Elseクエリを使用するにはどうすればよいですか?
問題:今日が木曜日かどうかを確認し、この状態の結果に基づいてさまざまなアクションを実行する必要があります。私は2つの異なるアプローチを試しました: 曜日名の取得: DAYOFWEEK=$(date +"%a") echo DAYOFWEEK: $DAYOFWEEK if ["$DAYOFWEEK" == "Thu"]; then echo YES else echo NO fi 日番号を取得する: DAYOFWEEK=$(date +"%u") echo DAYOFWEEK: $DAYOFWEEK if ["$DAYOFWEEK" == 4]; then echo YES else echo NO fi どちらの場合も、出力はYESであるべきですが、NOです。なにが問題ですか?

2
カーネルモジュール:.oと.ko
カーネルモジュールを含むファイルが呼び出さ.oれているようです。少なくとも、このようなチュートリアルを見るとわかります。しかし、私のdebian squeezeボックスでは、これらのファイルはと呼ばれているようです.ko。 それはファイルが呼び出されているかどうかを配布(またはverisonその)に依存しない.oか、.koそうでなければ、彼らは多かれ少なかれ同じですか?

1
zsh補完:特定のディレクトリからファイル名を取得する
OK、少し背景:私はMacを使用し、CLIで可能な限り多くのことを行います。 特に、USBスティックcpやmvファイルを頻繁に差し込み、すぐに取り出し(アンマウントして切断)したいと思っています。これは通常、いくつかのキーストロークで実行できますが、マウントを解除するには(10.7では)空のデスクトップスペース(通常は少なくとも2スペース離れている)に移動してディスクを選択し、「command-e」を押す必要があります。率直に言って、このアンマウント手順は、数桁も、プロセスの中で最も時間がかかり、退屈な部分です。 次のように単純にタイプできるほうがはるかに自然で効率的です。 ej<tab> J<tab> 私のUSBスティックマウントが/ Volumes / Jeffersonにあると言います。私の6つのキーストロークから得られるものは次のとおりです。 eject /Volumes/Jefferson これはコマンドを実行するはずです: diskutil unmount /Volumes/Jefferson だから、私は素敵な小さな関数を書きました: eject() { diskutil unmount /Volumes/$1 } そして、それに伴う補完関数: compdef '_files -g "/Volumes/*"' eject ただし、これには問題があります。_filesこの関数は、完全なパスを生成します。これで、「eject」関数の行をに変更できdiskutil unmount $1、動作しますが、パスが/ Volumes /で始まるため、マウントポイント名の最初の文字を入力することができません。たとえば、と入力J<tabすると、PWD内のファイルのオートコンプリートが表示されます。/Volumes/J<tab>必要な補完を取得するには、入力する必要があります。 では、完全なパスを生成するのではなく、事前定義された特定の場所からファイル名を取得する補完関数はありますか? 私はこれを6回のキーストロークまで下げたいと思っています。
10 zsh  osx  autocomplete 

1
「man」ページを検索するためのパスはどのように設定されますか?
manページの検索に使用するパスがどのように設定されているのか、私は困惑しています。「正しいこと」は魔法のように起こっているようです。たとえば、PATHを /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin に /usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin man(に従ってman --path)ページを検索したパスは、 /usr/share/man:/usr/local/share/man:/opt/X11/share/man:/usr/local/git/share/man:/usr/texbin/man に /usr/local/git/share/man:/usr/share/man:/usr/local/share/man:/opt/X11/share/man:/usr/texbin/man どういうわけか、私がデフォルトのGitを「オーバーライド」しているGitのバージョンでは、組み込みGitのドキュメントより前に、そのドキュメントが正しく検出されています。どうですか?
10 path  man 

2
時間を比較する良い方法は?
現在の時刻を確認し、実行するはずの適切な時刻でない場合はスクリプトを中止する必要があります。また、他の誰かがそれを実行した場合、中止する必要があります。 例:午後10時から午前2時(4時間のウィンドウ)の間に開始された場合にのみ、スクリプトを実行する必要があります。 現在、私は以下を行っています。時間をかけdate +%k%Mてハードコードされた数値と比較する #!/bin/sh currTime=`date +%k%M` check_time_to_run() { tempTime=$1 if [ $tempTime -gt 200 -a $tempTime -lt 2200 ]; then echo "Time is between 2 AM and 10 PM. Aborting." exit 1 else echo "Time is after 10 PM and before 2 AM. Running normally." fi } check_time_to_run $currentTime …

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