Unix & Linux

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

3
400の権限を持つファイルがrootからは書き込み可能であるのに、ユーザーからは読み取り専用であるのはなぜですか?
非特権ユーザーとしてファイルを作成し、アクセス許可モードをに変更すると400、そのユーザーには正しく読み取り専用として表示されます。 $ touch somefile $ chmod 400 somefile $ [ -w somefile ] && echo rw || echo ro ro すべては順調です。 しかし、その後ルートがやって来ます: # [ -w somefile ] && echo rw || echo ro rw 一体何ですか?確かに、rootは読み取り専用ファイルに書き込むことができますが、それを習慣にするべきではありません。ベストプラクティスでは、書き込み許可ビットをテストできるように指示する傾向があり、そうでない場合は設定されています。理由のためにその方法。 私は両方を理解したいと思い、なぜこれが起こっている、そしてどのように私は得ることができます偽の書き込みビットがセットされていないファイルをテストするときにリターンコードを?

1
Bashのコマンドリストの残りをキャンセルするにはどうすればよいですか?
Bashでは、たまにコマンドのリストを入力してを押しますがEnter、後でリストの最後の方にあるコマンドに誤りがあることに気づきます。Ctrl+ を押すCと、現在実行中のコマンドが終了し、残りのリストがキャンセルされることがわかっています。現在実行中のコマンドを終了せずにリストの残りをキャンセルする方法はありますか? たとえば、次のように入力したとしましょう foo; bar または foo && bar where fooは、実行を中断しないことが非常に重要である長期実行コマンドであり、bar不可逆的で不要な処理を実行します(たとえば、shutdown -h nowまたはrm -rf /)。fooがまだ実行されている間に、シェルにfoo終了させるがbar後で実行しないように指示する一般的な方法はありますか?(はい、bar実行可能ではないようにアクセス許可を変更することはできますが、それまでの間使用したいbarような場合は特に便利ではrmありません。所有していないbar場合やbar組み込みの場合は機能しません。)

5
awk / sed / perl one liner + jsonファイルからプロパティ行のみを印刷する方法
jsonファイルからプロパティ行のみを印刷する方法 jsonファイルの例 { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "items" : [ { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "tag" : "version1527250007610", "type" : "kafka-env", "version" : 8, "Config" : { "cluster_name" : "HDP", "stack_id" : "HDP-2.6" }, "properties" : { "content" : "\n#!/bin/bash\n\n# Set KAFKA specific environment variables here.\n\n# The java implementation to use.\nexport JAVA_HOME={{java64_home}}\nexport …
10 awk  sed  perl  json  jq 

3
ローカルのLinux Gitから直接、リモートでGithubリポジトリのディレクトリ名を変更しますか?
これは私のGitリポジトリです: https://github.com/benqzq/ulcwe これは、名前のディレクトリを持っているlocalと私は別の名前(から、言うに社名を変更したいlocalとxyz)。 各ファイルのディレクトリ名を個別に変更する必要があるため、GitHub GUIを使用して手動で変更するのは悪夢です(GitHubにはまだ「ディレクトリの名前変更」機能が含まれていません。信じられないかもしれません)。 Gitをインストールした後、次のコマンドを試しました。 git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit GitHubパスワードのプロンプトは表示されませんでしたが、次のエラーが発生しました。 fatal: Not a git repository (or any parent up to mount point /mnt/c) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). プロジェクトのダウンロード、変更、テスト、そしてホスティングプロバイダー(この場合はGitHub)へのプッシュがGitの全体的なポイントであることはわかっていますが、ディレクトリを変更するだけの場合は、直接操作が必要です。Gitでも可能ですか? 多分別のプログラムを使うべきですか?

2
/ devフォルダーにMAKEDEVが見つからないのはなぜですか?
購入した本でサポートしながら、現在Linux Mintのディレクトリツリーを調査しています。まあ、本は具体的に言った: /devディレクトリは、すべてのデバイスのための特別なデバイスファイルが含まれています。デバイスファイルはインストール時に作成され、後で/dev/MAKEDEVスクリプトを使用して作成されます。/dev/MAKEDEV.local(...)ローカル専用デバイスファイルやリンクを作成し、システム管理者によって書かれたスクリプトです。 そのスクリプトを見つけることができません、それを見つけることになっていますか、それとも新しいデバイスのインストール時に生成されますか?

4
タブ「\ t」が行にある長さを決定します
テキスト処理フィールドで、タブの長さが8文字(デフォルトの長さ)以下かどうかを知る方法はありますか? たとえば、タブ区切りのサンプルファイルがあり、フィールドの内容が1つ未満のタブに収まる場合(≤7)、その後にタブがある場合、そのタブは「タブサイズ-フィールドサイズ」のみになります。 ' 長さで。 行のタブの全長を取得する方法はありますか?私はタブの数(つまり、10個のタブが10を返すべきではない)を探しているのではなく、それらのタブの文字長を探しています。 以下の入力データの場合(フィールド間で区切られたタブと1つのタブのみ): field0 field00 field000 last-field fld1 fld11 fld001 last-fld fd2 fld3 last-fld 各行のタブの長さを数えるので、 11 9 9

1
/ bin / ipのソースコードはどこにありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 Unix&Linux Stack Exchangeのトピックとなるようにしてください。 2年前休業。 私はコマンドを使用しています/bin/ip: ip addr add 10.10.10.0 dev eth0 ipコマンドがどのように機能するかについてのソースコードを確認したいと思います。利用できますか?
10 source 

7
時間コマンドと同様に、コマンドのログ終了コード
を使用して time sleep 1 利回り: $ time sleep 1 real 0m1.005s user 0m0.001s sys 0m0.001s 終了コードsleepや実行したいコマンドを出力するために使用できるコマンドはありますか? 好きなもの: $ log-exit-code sleep 1 おそらくこれで十分ですか? sleep 1 && echo "$?"
10 exit  exit-status 

4
コマンドを見つけ、出力を列挙して選択を許可しますか?
を使用するとfind、多くの場合、次のような複数の結果が見つかります find -name pom.xml ./projectA/pom.xml ./projectB/pom.xml ./projectC/pom.xml 特定の結果のみを選択したい場合があります(例:)edit ./projectB/pom.xml。find出力を列挙し、別のアプリケーションに渡すファイルを選択する方法はありますか?お気に入り: find <print line nums?> -name pom.xml 1 ./projectA/pom.xml 2 ./projectB/pom.xml 3 ./projectC/pom.xml !! | <get 2nd entry> | xargs myEditor ? [編集]言及した解決策のいくつかを使って、いくつかの特異なバグにぶつかった。だから私は再現する手順を説明したいと思います: git clone http://git.eclipse.org/gitroot/platform/eclipse.platform.swt.git cd eclipse.platform.swt.git <now try looking for 'pom.xml' and 'feature.xml' files> [編集]解決策1 これまでのところ「nl」(列挙型出力)の組み合わせで、ヘッドとテールを組み合わせて関数にして$(!!)を使用すると機能するようです。 つまり: find -name pom.xml …
10 bash  files  find 

5
角括弧グロビングにおける大文字と小文字の区別
通常、bashグロビングでは大文字と小文字が区別されます。 $ echo c* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo C* CarePackage.md ChocRippleCake.md Clips 角括弧を使用しても、これは変更されないようです。 $ echo [c]* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo [C]* CarePackage.md ChocRippleCake.md Clips ハイフンが使用されている場合でも、変更されません。 $ echo [c-c]* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py …
10 bash  shell  wildcards  locale 

1
メインパッケージが依存するパッケージの特定のバージョンを設定することは可能ですか?
FreeBSD 10.3の開発環境があります。FreeBSDはパッケージの依存関係をそのように管理し、メインパッケージが依存するすべてのパッケージの最新バージョンを常に探すと聞きました。そしてそれは本当のように見えます。だから、私の質問は: これは本当ですか?それを証明する公式文書はありますか? この問題を克服する最良の方法は?

3
ドメイン名なしのホスト名で内部的にサーバーにSSHで接続する方法は?
仕事を完了するには、職場で複数のサーバーにログインする必要があります。アクセスするサーバーのFQDNを入力するのに飽きてきました。自分のプライベートネットワークでsshを使用してログイン/ログアウトしています。私はそれが私たち自身のプライベートネットワーク上にあると99%確信していますb / cすべてのサーバーがip addr 10.xyzを持っていますドメイン名ではなくホスト名だけでサーバーにsshする方法はありますか? サーバーは複数の国にあります。サーバーの命名方法は非常に長いです。名前は次のとおりです。 hostname.country.domainname.com 手根管のタイプを入力しています ssh me@hostname1.country.domainname.com ...サーバーにアクセスするたびに。私が米国にいて、米国にある別のホストにアクセスしようとすると、入力するだけで問題なくssh me@hostname2接続できます。私はアメリカにいる、イギリスのサーバーに接続しようとした場合しかし、私は入力できませんssh me@hostname3.engとに接続しますhostname3。 私が行った回避策は、一部のサーバーの〜/ .ssh / configファイルにエイリアスを設定することでした。ただし、そのファイルに1000台以上のサーバーを追加することは現実的ではないと思います。私はすでに20台以上のサーバーを追加しており、同僚は私が頭がおかしいと思っていますが、振り回すときにFQDNを入力するのはおかしいと思います。 毎回domainname.comを入力する必要がないように簡単に設定できる方法はありますか?
10 ssh  networking 

1
プロセスのすべてのメモリページを1つのNUMAノードから別のNUMAノードに移行する方法は?
Linuxでは、実行時にKVM仮想マシンのメモリページをあるNUMAノードから別のNUMAノードに移行したいと考えています。しかし、KVMハイパーバイザーやlibvirt APIを使用して、それを行うためのインターフェイスを見つけることができません。次に、でnuma_migrate_pages関数を使用して-lnuma、VMプロセスのメモリページを移行しようとしました。しかし、このnuma_migrate_pages関数は一部のページのみを移行でき、すべてのページは移行できないことがわかりました。たとえば、次のテキストは、このVMプロセスのメモリページの分布を示しています。 Node0: 0 pages Node1: 1538 pages Node2: 270641 pages Node3: 552 pages そして、Node2のすべてのページをNode0に移行したいと思います。ただし、numa_migrate_pages関数を使用した後、以下のテキストが示すように、一部のページのみが移行されます。 Node0: 7952 pages Node1: 1538 pages Node2: 262113 pages Node3: 552 pages 次に、ファイルを開くと、Node2に残っているほとんどのページが匿名のダーティページであることがわかります。/proc/[pid of VM process]/numa_maps 7f572c000000 default anon=262143 dirty=262143 N2=262113 ... それでは、なぜNode2のすべてのページをNode0に移行できないのでしょうか。ここの問題は何ですか?
10 linux  kvm  numa 

2
vi / vimでは、ファイルを上書きするのではなく、ファイルに追加するにはどうすればよいですか?
簡単にファイルに書き込むことができます:w <file>。ファイルを上書きする代わりに、ファイルに追加して書き込む方法を教えてください。 使用例:ログファイルからいくつかのサンプルを別のファイルに取り込みたい。今日それを達成するために私はできる: ログファイルを開く いくつかの行を選択してください Shift+v ファイルに書き込む: :w /tmp/samples いくつかの行を選択してください Shift+v 追加する/tmp/samplesと:w !cat - >> /foo/samples 残念ながら、手順5は長く、見苦しく、エラーが発生しやすくなります(a >がないと、データが失われます)。ここにVimがもっと良いものを持っているといいのですが

3
自分のGNU / Linuxディストリビューションの名前を完全に変更
Debian GNU / Linuxベースのオペレーティングシステム/ディストリビューションを開発しています。視覚障害者向けです。「標準」のDebian Live CDを入手して、ベアメタルのコマンドラインからディストリビューションをビルドしました。ここにいくつかの機能があります: Xfceデスクトップ、視覚障害者向けに大幅に変更。 ハイコントラストのテーマ、アイコン、配色。 構成済みのOrcaスクリーンリーダー。 直感的でシンプルな画面拡大鏡。 仮想キーボード; 私が作成したデスクトップアプリケーション、ロゴ、壁紙、bashスクリプトの基本セット。 システムはほぼ準備が整っており、インストール可能で、ある種の「アルファ」状態です。まだ名前がありませんので、「Redebian」と呼んで、スクリプトでこの名前を使用します。私は8月に学校の科学技術フェアでプレゼンテーションを行います(現在は高校生です)。このプロジェクトは私にとって非常に重要です。 しかし、1つ気になったことがあります。OSの名前をDebianから適切な名前に変更する方法がわかりません。私は数日間、Googleで検索して編集する提案を持って/etc/os-release、/etc/issueそしてさらにいくつかのファイルが、私は、システムを壊すことを恐れています。私は公式のDebianリポジトリを使用しているため、リリース名は非常に壊れやすい要素です。 Debianベースのオペレーティングシステムの名前を安全かつ適切に変更するにはどうすればよいですか?たとえば、システムの起動時に「Welcome to Redebian」ではなく「Welcome to Redebian」と表示したいとします。そして、update-grubスクリプトにシステムを「Redebian」として認識させたい。
10 linux  debian 

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