Unix & Linux

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

3
2つの別々のストリームで標準出力と標準エラー出力を表示する
私は、stdoutとstderrを視覚的に分離して、インターリーブしないようにし、簡単に識別できるようにする方法を探しています。理想的には、stdoutとstderrには、画面上に、たとえば異なる列に表示される別々の領域があります。たとえば、次のような出力になります。 ~$ some command some useful output info ERROR: an error more output ERROR: has occurred another message ~$ 代わりに次のようになります。 ~$ some command | some useful output info | more output | ERROR: an error another message | ERROR: has occurred ~$ |

2
rpmでやっていることと、rpmなしでそのテキストを取得する方法
を実行するとless package.rpm、lessはパッケージに関するあらゆる種類のメタ情報を表示します。あまり正確ではありません-メタ情報を抽出できるようにコードが組み込まれていますか、または最初の部分がテキストファイルのように見えるようにrpmが構成されていますか? headここではあまり役に立たないので、前者を想定します。しかし、本当の質問にたどり着くために、grepこのメタデータをあまり見せないようにしたい場合、どうすればこれを達成できますか?
12 grep  rpm  less 

1
ルートはchmodできませんか?
私の部署には、CentOSとsambaを備えた小さなファイルサーバーがあります。基本的なメンテナンスを実行できるルートアクセス権があります。 今日、いくつかのフォルダーを読み取り専用にしていたので、先に進んでを実行しましたchmod -R -w some-folder/が、いくつかのファイルについては応答がありました: chmod:./somefile.pdf:新しいパーミッションはr-xr-xr-xではなくr-xrwxr-xです 追加した後、-v私は多くの情報を取得しません。 `./somefile.pdf 'のモードは0575(r-xrwxr-x)として保持されます 念のため次のことを試しました。 # touch test-file # chmod -v -R -w . mode of `./somefile.pdf' retained as 0575 (r-xrwxr-x) chmod: ./somefile.pdf: new permissions are r-xrwxr-x, not r-xr-xr-x mode of `./test-file' changed to 0444 (r--r--r--) rootがchmodを実行できない理由は考えられませんか? いくつかのヒント: ファイルシステムは読み取り専用ではありません (一部のファイルのみがchmoddedを拒否しました)。 ルートとして chmodコマンドを実行しましたが、効果はありませんでした。 ファイルが存在するパーティションはext4です。 更新:これは、lsattrファイルおよびフォルダーを含む上での出力です。 # …
12 chmod 

3
sedまたはawkを再度呼び出さずに、文字列からドット文字を削除するにはどうすればよいですか?
次のhostlist.txtようなテキストを含むというファイルがあります。 host1.mydomain.com host2.mydomain.com anotherhost www.mydomain.com login.mydomain.com somehost host3.mydomain.com 次の小さなスクリプトがあります。 #!/usr/local/bin/bash while read host; do dig +search @ns1.mydomain.com $host ALL \ | sed -n '/;; ANSWER SECTION:/{n;p;}'; done <hostlist.txt \ | gawk '{print $1","$NF}' >fqdn-ip.csv 出力先fqdn-ip.csv: host1.mydomain.com.,10.0.0.1 host2.mydomain.com.,10.0.0.2 anotherhost.internal.mydomain.com.,10.0.0.11 www.mydomain.com.,10.0.0.10 login.mydomain.com.,10.0.0.12 somehost.internal.mydomain.com.,10.0.0.13 host3.mydomain.com.,10.0.0.3 私の質問は.、コンマの直前を削除せずにsed、gawk再度呼び出すことはできませんか?ドットを取り除く既存の呼び出しsedまたはgawk呼び出しで実行できるステップはありますか? hostlist.txt 数千のホストが含まれるので、スクリプトを高速かつ効率的にしたいです。

1
json.toolのドキュメントが見つかりません[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 UnixおよびLinux Stack Exchangeで話題になるようにします。 3年前に閉店しました。 json.toolを使用してかなりのpythonを生成する散在する記事をオンラインで見つけることができますが、使用法に関する明確なドキュメントはありません。docs.pythonを確認しました。ただし、json.toolの正式なドキュメントはありません。 json.toolを使用してjsonを検証するワークフロー(他の人が作成)をいくつか持っていますが、json.toolが常に有効なjsonを生成しないと警告する投稿も見ました。それで、json.toolがどのように機能するかについてもっと理解したいと思います。 json.toolの明確で包括的なドキュメントで誰かを推薦できますか?
12 python  json 

3
インストールしたすべてのパッケージを完全に削除しますか?
いくつかのツールをテストおよびインストールするために、CentOS7がインストールされた1つのLinuxサーバーを使用していました。そして今、私はインストールしたパッケージの数を覚えていません。 私のサーバーが以前のように新しいものになるように、すべてのパッケージを削除したいです。すべてのパッケージを検索して、1つずつ削除したくありません。1つのコマンドだけでそれらを削除する方法はありますか?

4
特定の行番号にテキストを挿入する
行のデータに応じてテキストドキュメントの内容を分割するbashスクリプトに取り組んでいます。 元のファイルの内容が次の行に沿っていた場合 01 line 01 line 02 line 02 line bashを使用してこのファイルの3行目に挿入するにはどうすればよいですか 01 line 01 line text to insert 02 line 02 line 私はヒアドキュメントまたは私のスクリプトに似たものを使用してこれを行うことを望んでいます #!/bin/bash vim -e -s ./file.txt <<- HEREDOC :3 | startinsert | "text to insert\n" :update :quit HEREDOC 上記はもちろん機能しませんが、このbashスクリプトに実装できる推奨事項はありますか?

4
Bashのビルトインexecの使用例/実用例
Bashの組み込みexecのドキュメントからこれを考慮してください。 execは、新しいプロセスを作成せずにシェルを置き換えます ユースケース/実用例を提供してください。これが理にかなっているのかわかりません。 私はグーグルでI / Oリダイレクトについて知りました。もっと説明してもらえますか?

4
Cライブラリのmanページを書く必要がありますか?
LinuxとFreeBSD用の小さなCライブラリを作成し、そのドキュメントを作成します。私はマニュアルページの作成についてもっと学ぼうとしましたが、ライブラリ用のマニュアルページを作成するベストプラクティスの指示や説明は見つかりませんでした。特に、私は関数のマニュアルページをどのセクションに置くことに興味がありますか?3?たぶん良い例やマニュアルがありますか?ライブラリから各関数のマニュアルページを作成するのは悪い考えですか?
12 linux  freebsd  man 

5
Debian 8に最新のgitをインストールする方法は?
私はいくつかの問題を抱えてgit-lfsおり、最新のものにアップグレードgitするとこの問題を解決できると思います。gitDebianの現在のバージョンは2.1.4、公式サイトの現在の安定バージョンは2.6.4です。ソースからのみビルドできますか、または外部リポジトリを追加できますか?
12 debian  git 

4
lsof -p PID vs lsof | grep PID
lsofコマンドの出力がわかりません。 私が書くとき lsof -p PID 私は4行を得て、書くとき lsof | grep PID 何百行もあります。 同じ結果を返すべきではないでしょうか? ご回答ありがとうございます。出力は次のとおりです。それはサブプロセスのように見えますか、このタスクの意味は何ですか? lsof -p 29076 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied) java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied) java 29076 pr txt unknown /proc/29076/exe (readlink: …
12 process  lsof 

2
docker hello-worldを実行できません:デバイスのマウントポイントが見つかりません
dockerの新機能。 のソフトウェア管理ツールからdockerをインストールしましたmint 17。 私が実行する docker run hello-worldと、私は受け取ります: FATA[0000] Error response from daemon: Cannot start container a6bcc1ede2c38cb6b020cf5ab35ebd51b64535af57fa44f5966c37bdf89c8781: [8] System error: mountpoint for devices not found サービスログ(/var/log/upstart/docker.log)を見ると: ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not …

1
既存のgz(gzip)ファイルをrsyncableに変換する方法
私はrsyncを使用して、毎日多くの新しいファイルを含む多くのgzファイルを含むリポジトリをバックアップしています。これらのgzファイルはgzipの--rsyncableオプションで構築されていないため、rsyncバックアップの速度は本来よりも遅くなります(サイズを大幅に大きくしたり、互換性に影響を与えたりすることなく、gzファイルをより「rsyncフレンドリー」にします)。また、ファイルはpythonのgzipモジュールを使用するpythonスクリプト(rdiff-backup)によって生成され、gzipの--rsyncableに相当するものをサポートしていないため、作成時に問題を修正できません。 そのため、rsyncを実行する前に、ソースデータ内の新しいgzファイルを識別できます(つまり、rsyncが最後に実行されてからの新しいファイル)。次に、これらのファイルを「再gzip」して、rsyncable-formatでgzip圧縮するようにします。その後、最適化されたソースからrsyncを実行できます。 これは、各ファイルをgunzip、次にgzip --rsyncableで実行することを意味すると思いますが、データやメタデータを失うリスクを冒さない方法でこれを行う方法はあまりわかりません。提案はありがたいことに受け取った。
12 rsync  gzip 

2
マウントネームスペースの外側でバインドマウントが見えるのはなぜですか?
そこで、Linuxのマウント名前空間がどのように機能するかを把握しようとしています。そこで、私は少し実験をして、2つのターミナルを開き、次のコマンドを実行しました。 ターミナル1 root@goliath:~# mkdir a b root@goliath:~# touch a/foo.txt root@goliath:~# unshare --mount -- /bin/bash root@goliath:~# mount --bind a b root@goliath:~# ls b foo.txt ターミナル2 root@goliath:~# ls b foo.txt ターミナル2でマウントが見えるのはなぜですか?これはマウント名前空間の一部ではないため、ここではディレクトリが空であると思われました。また、でオプションを渡し-o shared=noて使用しようとしましたが、同じ結果が得られました。--make-privatemount 私は何が欠けていますか、どうすれば実際にプライベートにすることができますか?

2
Linux iptables sshポート転送(martian拒否)
ホームネットワークにNATを実行するLinuxゲートウェイがあります。パケットを透過的に転送したいが、特定のIP /ポート(つまり、VPN以外)にのみ転送したい別のネットワークがあります。使用するIPとポートの例を次に示します。 Source Router Remote Gateway Remote Target 192.168.1.10 -> 192.168.1.1 -> 1.2.3.4 -> 192.168.50.50:5000 ソースマシンが、ルーターから直接ルーティングできるかのように、リモートターゲット上の特定のポートと通信できるようにしたいと思います。ルーターでは、eth0はプライベートネットワークで、eth1はインターネットに直接接続されています。リモートゲートウェイは、sshで接続できる別のLinuxマシンであり、リモートターゲットに直接ルーティングできます。 単純なソリューションでの私の試みは、次のようなルーターでsshポート転送をセットアップすることです。 ssh -L 5000:192.168.50.50:5000 1.2.3.4 これはルーターで正常に機能します。ルーターは現在、ポート5000にローカルに接続できます。したがって、「telnet localhost 5000」は、期待どおりに192.168.50.50:5000に接続されます。 次に、現在確立されているsshトンネルを介して、ソースとファネルからのトラフィックをリダイレクトします。私はこれのためにNATルールを試みました: iptables -t nat -D PREROUTING -i eth0 -p tcp -s 192.168.1.10 --dport 5000 -d 1.2.3.4 -j DNAT --to-destination 127.0.0.1:5000 また、ルーターは既にNATゲートウェイであるため、必要なポストルーティングルールが既にあります。 -A POSTROUTING -s 192.168.1.0/24 -o …

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