Unix & Linux

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

5
LinuxでのO_DIRECTの使用
この質問がプログラマー指向すぎる場合は、お知らせください。Linux 2.6のopen()システムコールのO_DIRECTフラグに精通している人がいるのだろうか?Linusはその使用を軽んじていますが、高性能ファイル書き込みはその使用を示しているようです。現実世界での経験と推奨事項を知りたいです。 詳細:私が使用しているアプリケーションは独自のキャッシュを維持しており、その際に平均で5倍以上の高速化を実現しています。ファイルに書き込むとき、キャッシュの内容はファイルシステムのキャッシュに書き出される必要がありますが、これは冗長であり、パフォーマンスの問題と思われます。



4
`curl | sh`と `sh -c“ $(curl)”`?
この質問は、UnixおよびLinux Stack Exchangeで回答できるため、Server Faultから移行されました。 2年前に移行され ました。 (たとえば)Dockerの簡単なインストール方法の1つは次のとおりです。 curl -sSL https://get.docker.com/ | sh ただし、次のようなものも見ました(Dockerの例を使用): sh -c "$(curl -sSL https://get.docker.com/)" 機能的には同じように見えますが、一方を他方よりも使用する理由はありますか?それとも、単に好み/美学のものですか? (注意してください、未知の起源からスクリプトを実行するとき、非常に注意してください。)

4
PDFファイルをOCRし、PDF内に保存されたテキストを取得する方法は?
最初に、これが以前に尋ねられた場合は謝罪します-私は既存の投稿をしばらく検索しましたが、サポートが見つかりませんでした。 Fedoraが複数ページの検索不可能なPDFをOCRし、このPDFを画像の上にテキストレイヤーを含む新しいPDFファイルに変換するソリューションに興味があります。Mac OSXまたはWindowsではAdobe Acrobatを使用できますが、Linuxでは特にFedoraで使用できますか? https://snippets.webaware.com.au/howto/pdf-ocr-linux/は解決策を説明しているように見えますが、残念ながらexact-imageを取得するときにすでに失われています。
23 command-line  pdf  ocr 

12
GRUBは再起動後にコマンドラインで起動します
Linux 10をプリインストールしたWindows 10とともにラップトップにインストールしました。コンピューターの電源を入れると、通常のGRUBメニューがほとんどの場合表示されます。 ただし、LinuxまたはWindowsを起動してから再起動すると、次のスクリーンショットに示すように、コマンドラインモードでGRUBが起動します。 おそらく、そのプロンプトから起動するために入力できるコマンドがありますが、私にはわかりません。動作するのは、Ctrl + Alt + Delを使用して再起動し、通常のGRUBメニューが表示されるまでF12を繰り返し押すことです。この手法を使用すると、常にメニューがロードされます。F12キーを押さずに再起動すると、常にコマンドラインモードで再起動します。 BIOSでEFIが有効になっていると思い、GRUBブートローダーを/ dev / sdaにインストールしました。 なぜこれが起こっているのですか?GRUBが常にメニューをロードするようにするにはどうすればよいですか? 編集 コメントで示唆されているように、grub-efiパッケージを削除して再インストールしようとしました。これで問題は解決しませんでしたが、コマンドプロンプトモードで起動すると、GRUBに次のメッセージが表示されます。 error: no such device: 6fxxxxx-xxxx-xxxx-xxxx-xxxxxee. Entering rescue mode... grub rescue> blkidコマンドで確認しましたが、それがLinuxパーティションの識別子です。この追加情報は、何が起こっているのかを理解するのに役立つかもしれません。

3
「netstat -s」の代替
netstat -s 受信したTCPリセットメッセージの数、送信したICMP「エコー要求」メッセージの数、またはルートの欠落によりドロップされたパケットの数など、非常に詳細なプロトコル統計を多数出力します。 Linux netstatが現在非推奨と見なされている場合、代替手段はありますか? が提供する統計は、ss -sが提供する統計と比較して表面的なものnetstatです。
23 linux  netstat  iproute 

4
PS出力の列名を無効にする
ps -pコマンドの出力をフォーマットするには? このようなものを見せないようにするには: PID TTY TIME CMD ただし、PIDのみです。 Linuxを使用しています。
23 process  ps 

5
UTF-8ファイルをASCIIに変換する(ベストエフォート)
複数の言語のテキストを含むUTF-8のファイルがあります。それの多くは人々の名前です。それをASCIIに変換する必要があり、結果を可能な限りまともなものにする必要があります。 より広いエンコードからより狭いエンコードへの変換をアプローチする方法は多数あります。最も単純な変換は、すべての非ASCII文字を「_」などのプレースホルダーに置き換えることです。ファイルが記述されている言語がわかっている場合は、ローマ字表記などの追加の可能性があります。 Unixで利用可能なUnixツールまたはプログラミング言語ライブラリは、UTF-8からASCIIへの適切な(ベストエフォート)変換を可能にしますか? テキストのほとんどは、ヨーロッパのラテン系ベースの言語です。

8
ブートごとに/etc/resolv.confを上書きするものは何ですか?
linux直接起動するミニのファイルが与えられましたfirefox。私がインターネットに接続できないということだけが、それがしなければならないすべてのために機能します。 ネットワークには3つのDNSサーバーがあり、すべて機能します。私もそれらをpingできます。しかししようとしたときping google.deか、wget google.de私が取得bad addressエラー。 nslookup google.de 何らかの理由で動作します。 ファイルに入れresolv.confたresolv.confものと同じ内容を持たないブート済みシステム上で問題を追跡しました.iso。 作成と変更に入るすべての要因を理解してみましたresolv.conf。私はそれをすべて手に入れたとは確信していませんが、私は間違いなくそこに私の解決策を見つけませんでした。 だから最後の溝の努力として、私はresolv.confファイルを不変にしてみました :~# chattr +i /etc/resolv.conf 驚いたことに、再構築して再起動すると、私のファイルの名前が変更されresolv.conf~、その場所に私を悩ませていたのと同じ標準ファイルがありました。 ファイルの内容は、ネットワーク自体から情報を取得していると信じさせます。.isoインターネットアクセスなしでVirtualboxを起動すると、ファイルはそのまま保持されます。 ファイルの一部から/etc/dhcp/dhclient.conf削除することで、ネットから情報を取得しないように変更しようdomain-name-serverとdomain-name-searchしましたrequest。 残念ながら機能しませんでした。 NetworkManagerがインストールされていません。isoはUbuntu 14.04に基づいています。 おそらく重要な情報が欠落しています。提供させていただきます。 更新: クリアするファイルを見つけたと思いますresolv.conf。 のようです /usr/share/udhcpc/default.script #!/bin/sh # udhcpc script edited by Tim Riker <Tim@Rikers.org> [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 …

8
Debian 8にnginx-fullをインストールする際の問題
debian jessieにnginx pkg(nginx-full)をインストールするのに問題があります # apt-get install nginx-full Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: nginx-common Suggested packages: fcgiwrap nginx-doc The following NEW packages will be installed: nginx-common nginx-full 0 upgraded, 2 newly installed, 0 to remove and 0 not …
23 debian  nginx 

5
カットを使用して複数の空白で区切るにはどうすればよいですか?
このサンプルの最後の列を取得したい: [ 3] 1.0- 2.0 sec 1.00 MBytes 8.39 Mbits/sec [ 3] 2.0- 3.0 sec 768 KBytes 6.29 Mbits/sec [ 3] 3.0- 4.0 sec 512 KBytes 4.19 Mbits/sec [ 3] 4.0- 5.0 sec 256 KBytes 2.10 Mbits/sec ... 私が使用する場合 cut -d\ -f 13 私は得る Mbits/sec 6.29 4.19 2.10 時々、間に追加のスペースがあるためです。

5
特定の桁数を含むvim検索番号
大きなドキュメントで特定の長さの数値を見つける必要があります。このために正規表現を使用しようとしました。たとえば、正確に2桁の数字を検索する必要がある場合は、使用します\d\d(つまり、/ dを2回押した後にスペースを続けます)。これはうまく機能します。 しかし、10桁の数字を見つけるには、\d10回入力するのは実際には不可能です。 試しました\d{2}、「E486:パターンが見つかりません:\ d {2}」 これを達成するためのより速く/簡単な方法はありますか?

3
fork()のコピーオンライトは複数のフォークをどのように処理しますか?
ウィキペディアによると(これは間違っている可能性があります) fork()システムコールが発行されると、親プロセスに対応するすべてのページのコピーが作成され、子プロセスのOSによって別のメモリ位置にロードされます。しかし、これは特定の場合には必要ありません。子がexecシステムコール(Cプログラム内から実行可能ファイルを実行するために使用されます)を実行するか、fork()。親プロセスのコマンドを実行するためだけに子が必要な場合、親プロセスのページをコピーする必要はありません。execこれは、子プロセスを呼び出したプロセスのアドレス空間を実行するコマンドで置き換えるためです。 このような場合、コピーオンライト(COW)と呼ばれる手法が使用されます。この手法では、分岐が発生したときに、親プロセスのページは子プロセス用にコピーされません。代わりに、ページは子プロセスと親プロセスの間で共有されます。プロセス(親または子)がページを変更するたびに、その特定のページのみの個別のコピーが、変更を実行したプロセス(親または子)に対して作成されます。このプロセスは、今後のすべての参照で共有ページではなく、新しくコピーされたページを使用します。他のプロセス(共有ページを変更しなかったプロセス)は、ページの元のコピー(共有されなくなった)を引き続き使用します。この手法は、何らかのプロセスがページを書き込むときにページがコピーされるため、コピーオンライトと呼ばれます。 いずれかのプロセスがページに書き込もうとすると、ページの新しいコピーが割り当てられ、ページフォールトを生成したプロセスに割り当てられるようです。元のページは、後で書き込み可能とマークされます。 私の質問はfork()、プロセスが共有ページへの書き込みを試みる前に複数回呼び出された場合はどうなりますか?
23 linux  c  fork 


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