Unix & Linux

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

3
ブート時にカーネル全体がメモリにロードされていますか?
初期のRAMディスクの機能について説明しているこの人気のあるIBM文書(Webでかなり頻繁に参照されています)を読みます。 しかし、これがどのように機能するかを概念化する際に壁にぶつかりました。 ドキュメントでは、それは言います GRUBなどのブートローダーは、ロードされるカーネルを特定し、このカーネルイメージと関連するinitrdをメモリにコピーします 私はすでに混乱しています:カーネル全体をメモリにコピーしますか、それともその一部ですか?カーネル全体がメモリ内にある場合、なぜ初期RAMディスクが必要なのでしょうか? initrdの目的は、小さな汎用カーネルイメージを作成できるようにすることであり、カーネルイメージがロードされる前にinitrdが正しいモジュールをインストールすることだと思いました。しかし、カーネル全体がすでにメモリにある場合、なぜinitrdが必要なのでしょうか? それは私を混乱させる別のことももたらします-カーネルにロードされるモジュールはどこにありますか?すべてのカーネルモジュールはinitrd内に格納されていますか?

1
btrfsでデータをコピーせずにファイルを複製する方法は?
私はbtrfsの経験はありませんが、ファイルを重複排除できると宣伝されています。 私のアプリケーションでは、ディレクトリツリー全体を複製する必要があります。 私が学んだことから、btrfsはただちにではなく、いくつかのポストスキャンで重複を排除するだけです。使用するだけでもcp重複排除は行われないようです(少なくとも、dfコピーされたファイルのサイズでディ​​スク使用量が増加していることを示しています)。 データを完全に移動させずにbtrfs、別の場所でファイルを複製するように直接指示することはできますか? 本質的には、ハードリンクに似ていますが、独立したメタデータ(アクセス許可、修正時間など)を使用します。

6
コンポーズキーで小文字のパイ(「π」)を作成する方法は?
Composepi(たとえばfsymbols.comで説明されているように)を使用して小文字のpi文字を作成できるようになったと確信していますが、それはもう機能しません。私の作成キーは他のキャラクター(Composeaa「å」など)で機能するので、何が問題なのでしょうか? 私は持っていない/usr/share/X11/locale/en_GB.utf8/Compose(または~/.XCompose)、それはインストール/生成されるべきものですか?があり/usr/share/X11/locale/en_US.utf8/Composeます。/usr/share/X11/locale/en_GB.utf8/Composeこれを修正するにはシンボリックリンクで十分ですか? $ locale LANG=en_GB.utf8 LC_CTYPE="en_GB.utf8" LC_NUMERIC="en_GB.utf8" LC_TIME="en_GB.utf8" LC_COLLATE="en_GB.utf8" LC_MONETARY="en_GB.utf8" LC_MESSAGES="en_GB.utf8" LC_PAPER="en_GB.utf8" LC_NAME="en_GB.utf8" LC_ADDRESS="en_GB.utf8" LC_TELEPHONE="en_GB.utf8" LC_MEASUREMENT="en_GB.utf8" LC_IDENTIFICATION="en_GB.utf8" LC_ALL= スピンオフ質問。

5
2つのファイルを区切り文字のトリプルパイプ記号「|||」で1行ずつマージします
2つの言語で同じ行数を持つ2つの並列ファイルがあり、これら2つのファイルを区切り文字で1行ずつマージする予定|||です。たとえば、2つのファイルは次のとおりです。 ファイルA: 1Mo 1,1 I love you. 1Mo 1,2 I like you. Hi 1,3 I am hungry. Hi 1,4 I am foolish. ファイルB: 1Mo 1,1 Ich liebe dich. 1Mo 1,2 Ich mag dich. Hi 1,3 Ich habe Durst. Hi 1,4 Ich bin neu. 予想される出力は次のとおりです。 1Mo 1,1 I love you. ||| …

8
チェック変数はシェルのようなBourneの配列ですか?
配列変数をサポートするBourne like shellでは、変数が配列であるかどうかを確認するために何らかの解析を使用できます。 以下のすべてのコマンドは、実行後に実行されましたa=(1 2 3)。 zsh: $ declare -p a typeset -a a a=( 1 2 3 ) bash: $ declare -p a declare -a a='([0]="1" [1]="2" [2]="3")' ksh93: $ typeset -p a typeset -a a=(1 2 3) pdksh およびその派生物: $ typeset -p a set -A a typeset a[0]=1 …
14 bash  shell  zsh  ksh  yash 

3
「find -exec」はどのようにファイル名にスペースを渡しますか?
名前にスペースが含まれるファイルを含むディレクトリがある場合、たとえば $ ls -1 dir1 file 1 file 2 file 3 これらすべてを次のように別のディレクトリに正常にコピーできます。 $ find dir1 -mindepth 1 -exec cp -t dir2 {} + ただし、の出力にfind dir1 -mindepth 1はエスケープされていないスペースが含まれます。 $ find dir1 mindepth 1 dir1/file 1 dir1/file 3 dir1/file 3 のprint0代わりに使用する場合print、出力にはエスケープされていないスペースが含まれています。 $ find dir1 mindepth 1 -print0 dir1/file 1dir1/file 2dir1/file 3 を使用してこれらのファイルを手動でコピーcpするには、スペースをエスケープする必要があります。しかし、私がコマンドを使用するか、コマンドの最後に関係なく、cpの引数が来るとき、これは不要であるようです。find+\; …

3
カーネルがinitを実行できないのはなぜですか?
このページで Raspbianイメージをダウンロードしました。qemu内でイメージを起動するために使用できるカーネルをコンパイルしようとしています。 kernel.orgからLinuxカーネルソースをダウンロードして実行しました。 make versatile_defconfig make menuconfig 次に、カーネルに次の機能を追加しました。 PCIサポート(CONFIG_PCI) SCSIデバイスのサポート(CONFIG_SCSI) SCSIディスクのサポート(CONFIG_BLK_DEV_SD) SYM53C8XXバージョン2 SCSIサポート(CONFIG_SCSI_SYM53C8XX_2) 拡張3(ext3)ファイルシステム(CONFIG_EXT3_FS) 拡張4(ext4)ファイルシステム(CONFIG_EXT4_FS) また、ディスクイメージをループマウントし、以下を実行しました。 コメントアウト /etc/ld.so.preload /etc/fstab使用するために調整し/dev/sda1、/dev/sda2 次に、イメージをアンマウントし、次を使用してマシンを起動しようとしました。 qemu-system-arm \ -M versatilepb \ -m 256 \ -kernel linux-4.3/arch/arm/boot/zImage \ -hda 2015-09-24-raspbian-jessie.img \ -serial stdio \ -append "root=/dev/sda2 rootfstype=ext4 rw console=ttyAMA0" カーネルはファイルシステムをマウントできましたが、すぐに問題が発生しました: Kernel panic - not syncing: Attempted to …
14 linux-kernel  arm  qemu  init 


1
しばらくしてデスクトップロックが機能しなくなるのはなぜですか?
xautolock明らかに実行されています: $ ps wafux | grep [x]autolock user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock ただし、ロックしようとすると: $ xautolock -locknow Could not locate a running xautolock. 別にスピンアップするxautolockと動作します: $ xautolock -time 10 …

2
シェルスクリプトから一時ファイルを安全に作成してアクセスするにはどうすればよいですか?
私は中に固定名前のファイルに出力をリダイレクトすることを読んで/tmp、攻撃者(あるいは不満)であればあるため、セキュリティ上のリスクとなる可能性がありますファイルがあることの通知/tmp/tmpfileformyscript.tmp、彼は私への読み取りアクセス権を持っていなくても(私は私のスクリプトを実行したときに作成されますスクリプト)、たとえば、スクリプトを実行するときにファイルln -s ~wildcard/.bashrc /tmp/tmpfileformyscript.tmpを破棄するシンボリックリンクを作成でき.bashrcます。 だから代わりに私はのようなものを使用することができますfilename="tmpfile.tmp.$RANDOM" ; echo outputtext > "$filename"。 ただし、キャッシュにtmpファイルを使用したい場合があります。その場合、「tmpfile.tmp。*」が何かに一致するかどうかを知りたい場合は/tmp、新しいファイルを作成するのではなく、そのファイルを使用します。残念ながらtest、[ -f filename ]私が知る限り、同等のものはファイルグロビングをサポートしていません。 したがって、私の質問は2つあります。 一時ファイルを安全に作成するにはどうすればよいですか?"predictablename.$RANDOM"受け入れられるプラクティスですか、それともより良い(より安全で簡単な)方法がありますか? 確認することで、ファイルに簡単にアクセスしたり、後でその存在を確認したりするにはどうすればよいpredictablenameですか?

5
変更するために(実行せずに)前のコマンドを呼び出す方法は?
最後のコマンドを実行せずに取得できるトリックを思い出せません。 上矢印キーを押してコマンドを変更するときに!1255コマンドにアクセスできるようにしたいとしましょう。それでは、コマンドを呼び出して、コマンドラインに表示されるが実行されず、その後矢印キーでアクセスできるようにするコツは何ですか? エコーを入れてみましたが、コマンドの前にエコーがあります。正しく行う方法を覚えていません。

2
Mac OS Xで最大スワップスペースを増やすにはどうすればよいですか?
Mac OS X Yosemite 10.10.5では、128 GBのメモリ(Cで記述されたコマンドラインプログラム)を割り当てて使用する必要がある計算を実行しようとすると、カーネルは極端な偏見でプロセスを強制終了します。このコンソールログエントリは、1つのインスタンスの例です。 9/25/15 7:08:40.000 PMカーネル[0]:低スワップ:PID 6202(huffgrp)の強制終了 64 GBのメモリを割り当てて使用すると、計算は正常に機能し、妥当な時間内に動作します。Macのハードドライブには32 GBのRAMとbeaucoupスペースがあります。8 GBのRAMを搭載した別のMacでもこれを試してみました。64GBの計算も同様にうまく動作しますが、もちろん時間がかかりますが、128 GBの計算はカーネルによって同様に殺されます。 ところで、malloc()どれだけのスペースを要求しても、エラーが返されることはありません。カーネルは、プロセスが実際に使用するメモリが多すぎるとプロセスを強制終了します。その結果、ハードドライブへの大量のスワップが発生します。 そのため、64 GBから128 GBの間に秘密のスワップスペース制限があるようです。 私の質問は次のとおりです。より多くのスワップ領域を許可するようにカーネルを再構成するにはどうすればよいですか?有望なファイルを見つけました/System/Library/LaunchDaemons/com.apple.dynamic_pager.plistが、秘密の番号はそこにありません。のマニュアルページにdynamic_pagerは、スワップファイルの名前と場所を設定するだけであると書かれています。-S作成されたスワップファイルのサイズを設定するオプションを文書化した同じマニュアルページの古いバージョンがあります。160 GBのスワップファイルを要求してみましたが、効果はありませんでした。スワップファイルはそれぞれ1 GBのままであり、プロセスは依然としてカーネルによって強制終了されました。

9
コマンド「date -d @xxxxxx」と「find ./」をチェーンする方法は?
1970-01-01以降のミリ秒単位で与えられるタイムスタンプの名前のディレクトリがあります: 1439715011728 1439793321429 1439879712214 . . そして、私は次のような出力が必要です: 1442039711 Sat Sep 12 08:35:11 CEST 2015 1442134211 Sun Sep 13 10:50:11 CEST 2015 1442212521 Mon Sep 14 08:35:21 CEST 2015 . . コマンドですべてのディレクトリをリストできます: find ./ -type d | cut -c 3-12 しかし、出力を次のコマンドに入れることはできません。 date -d @xxxxxx出力を操作します。 これどうやってするの?
14 shell  find  date 

3
Linuxでプロセスを殺さないようにする
私はパスワードマネージャーアプリケーションに取り組んでおり、セキュリティ上の理由から、殺せないプロセスを立ち上げたいと思っています。 さらに、標準入力から読み取り、書き込む必要があるため、このプログラムをデーモンにしたくないのです。 これを行う方法はありますか?
14 linux  process  kill 


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