くだらねえ質問はここに書き込め! Part 238
■ このスレッドは過去ログ倉庫に格納されています
まずは2ch-Linux-Beginnersを読みましょう。
いろいろとまとめられているので(・∀・)イイ!!
http://www12.atwiki.jp/linux2ch/
読んでも解決しなかったら、質問を書きこむ前にここを読もう。
http://www12.atwiki.jp/linux2ch/?About
質問に対して答えてもらったら、お礼よりも、結果報告。
過去ログ検索
Google検索
https://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=2ch.net%2Ftest%2Fread.cgi%2Flinux%2Fhttps://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=5ch.net%2Ftest%2Fread.cgi%2Flinux%2F
※前スレ
くだらねえ質問はここに書き込め! Part 237
http://mao.5ch.net/test/read.cgi/linux/1563027196/ すみません
android 10に搭載されている
ファイルベースの暗号化というのは
初期状態で有効化されているのでしょうか?
現時点で有効なのかどうかの確認手段が分かりません >>294
イタチな上に、エアユーザー?簡単に確認できるだろ
確認できない程度なら知る必要は無い >>295
android 10ではフルディスク暗号化がサポート外になったから
従来の暗号化の確認手段では確認は無理 自己解決しました
「adb shell getprop ro.crypto.state」で確認可能だったようです elementaryOS Junoを使ってます
マウスのダブルクリックの感度を調節したいのですが
メニューからはマウスのダブルクリック感度を変更する方法が見当たりません…
もしかしてCUIからコマンドまたはコンフィグファイル編集で調節できればと思ったのですが、
Linuxではマウスの設定コマンドまたはコンフィグファイルはありますか? sed 1d a b c とするとaにしか1dが効かないけど sed -i 1d a b c にすると全ファイルに1dが効くのは仕様? (debian) sedの入力に複数ファイルを指定できるなんて初めて知った。 純粋な vi でファイルを挿入することはできないの? The traditional viの資料をざっとみましたが、
vimでいうところの:r filename と同じ機能は無いみたいですね。
<http://ex-vi.sourceforge.net/vi.html> >>306
いや:r filename あるだろ?
> <http://ex-vi.sourceforge.net/vi.html>
にはexコマンドが載ってないだけでは。 sedと言えば-i使った時も結果を表示できない?
リダイレクトなら代わりのteeで済むのに $ echo | awk '{print "foo"}'
foo
どうして、echo | が最初にくるんでしょうか?
むしろ、awk '{print "foo"}' | echo なような気がするんですが。
awk '{print "foo"}' | cat でも動作しませんでした。 >>303
確認したらBSDでも同じ挙動らしい
どうも >>309
> $ echo | awk '{print "foo"}'
通常は
$ awk 'BEGIN{print "foo"}'
などと書くのを、そいつが知らないだけ。おそらく gawk infoなどを読んだ事の無いやつ。 >>302
同じような置換を複数ファイルにたいしてやりたいときは
sed -i '...' *.txt
ってよくやる >>311
>>309はawkの使い方を尋ねているのか。
たずねているのは並び順についてではないのか
awk '{print "foo"}' | echo
が>>309としてはfooと表示させる正しい順番のような気がするが、
でも、ダメ(ダメな理由は何?)で、逆の
echo | awk '{print "foo"}'
だとfooと表示される。どうしてこれが正しいか順番(|の右左を入れ替えた)になるんですか?
が質問の主旨じゃないのか
俺は低脳でシェルスクリプト分からんから答えられないが。 大体何したいのかが不明
echo foo で済むだろ >>314
俺思うに、何かしたいから尋ねているのではなく、文法(この場合は並び順)
について知りたいと言うことなんじゃないかと思う
プログラミング言語(シェルスクリプトもプログラミング言語)では文法の理解は大事だからな >>315
そもそも>>309の書き方が正しいみたいな前提から始まってるのがおかしいんじゃないか
echoの出力 (この場合は引数なしだから空) をパイプでawkに渡してるけど、awkも受け取った入力を使うわけでもなくただ "foo" を出力するだけだから結果として foo が出力される
echo foo bar | awk '{ print $1 }'
echo foo bar | awk '{ print $2 }'
を実行してみると多少は意味のある(応用の効く)結果になる >>315
> 文法
等価例がその回答だろう。
普通は比較して理解を図るのでは。 >>309
$ awk '{print "foo"}'
だと入力が指定されていませんから、標準入力(キーボードから打ち込む)待ち状態になります
動作していないのではなく待ち状態
何か文字を打ち込んでエンターキーを押せばfooが表示出力されます
その出力をechoやcatへ渡すのは???です >>309
> awk '{print "foo"}' | cat でも動作しませんでした
動いているけど標準入力で待ちになってるから、わかりづらいだけだと思う
ABCとか適当に何かうって、CTRL-Dすればfooが最後に出力される
上の方の指摘通りBEGINつければawk '{print "foo"}' | catですぐにfooが返ってくる
awk '{print "foo"}' | echo もechoで標準入力待ち状態になってる。
しかしcatと違ってechoが新たに標準入力作ちゃってる( 上書き?)から、
適当に入力してもfooは返ってこない
awk 'BEGIN {print "foo"}' | echo も空白になる。
この例でecho でfooを表示させるには
awk 'BEGIN {print "foo"}' | echo $(cat)
awk 'BEGIN {print "foo"}' | xargs -I@ echo @
fooを明示的に引数として渡さないと表示されない
むかしパイプからechoで値とれなくて躓いたから、この質問のレス主の気持ち分かる 皆様、レス頂きましてありがとうございました。
シェルで、$((1.4*3))のように、小数のある計算ができなかったことから、
awkに挑戦しました。
皆様のレスを読ませていただき、少しだけわかってきました。ありがとうございます。
今は、awkで計算した結果を、result=`awk 'BEGIN{print 1.4*3}'` みたいに、シェル変数に格納しようと考えています。
>>311
awk 'BEGIN {}' のように、BEGINという構文があることから、
一度しっかりawkというものを勉強したいと思いました。
BEGINを使うと、echoが不要になることは新しい発見になりました。
>>313>>315
そうです。echo | awk '{print "foo"}' の書き方が、
これまでのechoの使い方からは理解不能だったのです。
>>314
ノー!!
>>318
理解しました!
awk '{print "foo"}' は入力を待っている状態なんですね。試したら、確かに!
だから、echo | awk '{print "foo"}' で空の入力(>>316さんのおっしゃる内容)を送る必要があるわけか。なるほど。
>>311さんのように、awk 'BEGIN {print}' とすると、その待ち入力が不要になるという理解ができそうです。 >>319
まとめてくださってありがとうございます。共感されて、嬉しいです。
でも、とても複雑です。Linuxの入力、出力の基本が曖昧だからなのかもしれません。
それに、awk '{print "foo"}' | echo がなぜダメなのかを教えて下さってありがとうございます。
まず、awkは入力待ちで出力しない、一方でechoは上流からの入力待ちになっている。
このとき、何かキー入力しても | echoの影響で、awkの方にはもはや入力されないということなんですね。
キーボード入力がどこかに向いてしまったということかもしれないですね。
awk 'BEGIN {print "foo"}' | echo $(cat) は、なぜ、
awk 'BEGIN {print "foo"}' | cat ではダメなんだろうという疑問が残ります。
catは標準入力を画面に出力するから、どうしてechoを挟む必要があるんだろうなあ。
基本を勉強します。 >>321
>awk 'BEGIN {print "foo"}' | echo $(cat) は、なぜ
言葉足らずで混乱させちゃったかもしれません。
パイプを通した時echoが明示的に引数必要なときがあるのを強調したかっただけで、
正規表現とかのフィルター挟む必要ないなら
awk 'BEGIN {print "foo"}' | echo $(cat) と awk 'BEGIN {print "foo"}' | cat は結果は同じです
よろしくです >>322
ご丁寧にありがとうございました。
echoに上流からのデータを渡したいときに、
教えて頂いた方法を使ってみたいと思います。
勉強になりました! AMDのRyzen3 2200G買っちゃいました。まちがって型落ちの方買っちゃいました。でも安かったのでセーフ。ボクもアンド使いマンに転校。
せっかくだからカーネルをコンパイルしよおと思いました。5.4.0-rc6
どおせならCPUを合わせようと、プロセッサーファミリイのオプション見たら以下から選べとありました。
・Opteron/Athlon64/Hammer/K8
・Intel P4 / older Netburst based Xeon
・Core 2/newer Xeon
・Intel Atom
・Generic-x86-64
アンドなので、一番上のやつを選んだんですが、RyzenはK8とかじゃなくてZenアーキテクチァーなので、性能を出し切れてるかわかんないです。
Core2のを選んだほうが逆に良かったでしょおか。わかんないです。
どっちがいいと思いますか?
ちなみにコンパイル中にまだgcc落ちてないです。エラー心配です。3000番台買えばよかった。 3000番も2000番もたいして変わらないよ
AMDはM/BとRAM選びが肝
2200GはSEGV出ないはずだが シェルスクリプトのforループなどで、
ループindexが0のときだけ1を得て、
それ以外の場合は、全て2を得る方法ってあるでしょうか。
for((i=1 ; i<100;i++)) ; do ここでループインデックスに応じて上記のように、1か2を得たい。 ; done
最初、シンプルにi/i +1 で、目的は達成できると思いきや、
0除算エラーに見舞われて、手をこまねいています。
別途、関数を作って引数を判断して目的の値を得るしかないでしょうか。 tigervncでログインするとrootユーザーだとサウンド設定の音源ボードが存在するのに
一般ユーザーだとダミーの出力になってしまいます。
一般ユーザーでも音源使えるようにする方法どこかに書いてありませんか? >>326
こういうこと?
expr 2 - \( i = 0 \) え?あ?何やってるんだろう? 放置してたが、さらに斜め上のw
どうして、ゼロ除算するような発想が生まれて、さらにこういうレスがつくんだろw
> ループindexが0のときだけ1を得て、
> for((i=1 ; i<100;i++)) ;
それループインデックスの最初は1だからw
ゼロ除算するってことだから i は 0から始まるのが正しいんだろうとして
> ループindexが0のときだけ1を得て、
> それ以外の場合は、全て2
と自分が書いてるとおり書けばいいんだよ
for((i=0 ; i<100;i++)) ; do echo $((i == 0 ? 1 : 2)); done
計算せずになんでも文字列処理してしまうやつがいるが、
時には計算しないほうがいい ちなみに>>328はexprをループの数だけ呼び出すから遅くなる。 >>327
Linuxで音鳴らすとか興味ないからやったこと無いけど
(デスクトップインストールすると勝手に鳴るが)
ユーザー権限の話なら、いつものグループに追加するとかじゃね? >>329
計算でやろうとするのは止めて、
素直に文字列処理することにしました。
$((i == 0 ? 1 : 2))
は、ワンライナーで書けて、気に入っています。
どうも、ありがとうございました。
>>328
expr という評価の方法もあるのですね。
初めて知りました。
ありがとうございます。 >>332
> $((i == 0 ? 1 : 2))
これは文字列処理じゃないぞw
三項演算子という、足し算掛け算などの演算子の一種だ >>245
亀レスで申し訳無いです。
実際にやってみました、他ドメインに配送するサーバのipアドレスのみspfに記載しました。
特に問題は起きていないのでこれでokです、ありがとうございました。 >>331
ビンゴでした。
ユーザーをaudioグループに追加したら鳴るようになりました。
ありがとう。 >>333
>計算せずになんでも文字列処理してしまうやつがいるが、時には計算しないほうがいい
文字列処理、
計算、
三項演算子、
計算というのは、i/i+1みたいなやり方で、
ここでは、三項演算子という方法で目的の数を得ているわけですね。
文字列処理は、カット、ペーストかな。 まじでくだらない質問で恐縮です
gnome-shellにおいてClient-side decorationsに対応していないアプリを起動した時、ウインドウデコレーションは何を使ってるんでしょうか? すまんが、CSVファイルをくっつけたいんだけどさあ
最終行に改行をくっつけて統合とか、簡単にやる技あったら教えてくれんかな? catでくっつけると、最終行に改行をいれる方法がわからんべ・・・どうすればよかんべえな? $ cat csv1 <(echo) csv2 > csvnew >>338
for f in *.csv; do printf '%s\n' "$(cat "$f")"; done
"$(cat FILE)" で各ファイル末尾の1個以上の連続改行を捨てて
printf で改めて改行を付ける メモリーの中見るのにいいソフトないですか?
メモリーが完全にクリアされたか
メモリーがどのソフトが使ってどんなデータが入ってるか
見れるソフトないですか?
てか、セキリティ上メモリーを検査するソフトってあるの?
まあ、超有名でユーザー多いソフトでお願いたします。 >>347
いや、やりたいのはソフトが使ってるメモリーの内容を確認しようとしてるのだが、出来ますか?
ついでに、このソフトが「メモリーの内容をこのソフト以外使ってない」とか
メモリーが外部に漏れてないとか確認できる方法ってありますか?
あと、このソフト閉じたらメモリーがちゃんとクリアされてるか確認したいですね
とくに、ソフトはどれと決まってません。
まあ、めもちょうけいのソフトとかで実験出来れば。 >>348
そんなツールは知らんが事態はあなたの思っているよりも複雑だよ。
まずプログラムの使っているメモリというものは、
カーネルの都合で物理メモリ上(memory compaction)やswap領域上(paging)を動き回る。
これを防ぐには/proc/sys/vm/compact_unevictable_allowedを0に設定したカーネル上で、
かつ、プログラム側が高セキュリティを要求するメモリ領域に対して
明示的にmlockシステムコールを呼ぶ必要がある。
> ソフト閉じたらメモリーがちゃんとクリアされてるか
通常は物理メモリの内容は放置で、他の用途に物理メモリが
割り当てられる段階になって初めてクリアされる。
カーネルでメモリが解放された瞬間にクリアする必要があるなら
CONFIG_PAGE_POISONINGを有効にしてコンパイルしたカーネルが必要。
つまりカーネルとアプリケーション両方が対応している必要がある。 >>348
一言で言うなら、どれもできません。
OSを改造するぐらいの力があれば
できるかもしれません。 >>345
横スレですが、いわれてみればこれってcatと同じなんだ
すごい勉強になった >>346
coreダンプ?
詳しい事は知らない。 >>348
セキュリティ意識低いなぁw
意味がないことをやって、やった気になりたいだけでしょ?
意味がないから、セキュリティ意識低いよ。 >>349-353
そんな難しいのですか?
Windowsでいうと「ねこまんま」っていうソフト使ってゲーム中のメモリー見るみたいに
簡単に出来ないのですか?
Linuxで↑のようなことやることは出来ますか?
>>349-350
プログラム指定してメモリーの中見るのはデキるのですか?
gdbってのでやるのですか?
>>352
Coreダンプではないと思います。
OSのバグ取りとかでもないです。
>>353
意味あるでしょ?
普通にパスワードとかメモリーに入っててそれを他のソフトで読み取られたら嫌じゃん。 嫌じゃんと言われてもね。
他のプロセスのメモリは読み取れるように作られてるし
仮に読み取れなかったとしたら、実行ファイルにパッチ当てるだけだし >>354
> プログラム指定してメモリーの中見るのはデキるのですか?
> gdbってのでやるのですか?
物理メモリが絡むセキュリティはおいておいて、
プロセスのメモリの中身を見たいだけならgdbでできる。
--pidでattachして
examineコマンドとか:x/64b 0x論理アドレス
findコマンドとか:find 開始アドレス,終了アドレス,"探索文字列"
あるいは/proc/(pid)/memをファイルを直接読み書きするのでも見られる。
/proc/(pid)/mapsファイルをみて適切なアドレスにlseek64する必要があるからバイナリエディタじゃ開けないけど。
重ねて言うがこれでプロセスに現在割り当てられている範囲に残っていないことが確認できたとしても
物理メモリやswap領域のどこかに残ってないことの保証にはならないからね >>356
忘れてた。UbuntuだとYamaパッチが入っていて
デフォルトだと子プロセスしかgdbでattachできなくなってるから
/proc/sys/kernel/yama/ptrace_scope を0にしておく必要がある。 >>354
/dev/mem をhexdump で見れますよ
見たところでわからないと思うけど >>355-358
なんかすごい難しそうだなあ
物理メモリとプロセスのメモリって違うのかあ
結局は、メモリーの中見てどのプロセスがどの情報を保有してるか
知り尽くすのは不可能に近いってことですよね?
答えてくださってる方は相当知識ありそうなのに、
それでも難しいと言ってるのだから・・・
結局は、これで物理メモリーもプロセスのメモリーもまっさらに出来るのですか?
$ echo 3 > sudo /proc/sys/vm/drop_caches ラズパイにラズパイ用にのcentos7のイメージ入れて、起動して、現在、sshにてyum updateを実行しようとしているのですが
mirrar listが何やら無効な様子・・・。情弱の私はググっても未だmirrar listの設定方法がよくわからないので
今有効なcentos7のmirrar listの設定を、テキストで書き込んでくれるとすごくうれしいのですが・・・ ちなみに、このように表示されています
https://ftp.riken.jp/Linux/centos/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below knowledge base article
https://access.redhat.com/articles/1320623
If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/
One of the configured repositories failed (CentOS-7 - Addons),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
(略)
failure: repodata/repomd.xml from addons: [Errno 256] No more mirrors to try.
https://ftp.riken.jp/Linux/centos/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found >>359
え
メモリまっさらにしたんなら
再ログインすればイイだけじゃん
超簡単 プロセスのメモリを見るには他の人も書いてるけどgdbでアタッチして、xコマンドでアドレスを指定すれば見られる。
問題は意味のある変数がどのアドレスに格納されているか。
毎回同じように実行されるようなプログラムだったら該当箇所にブレイクポイントを仕掛けて
変数のアドレスを覚えておけばいい。
どこだかわからないのであれば、/proc/<pid>をさぐって、ヒープやスタックが格納
されている領域を見つけてしらみつぶしに探すしかないと思う。
echo 3 > sudo /proc/sys/vm/drop_caches
これはメモリキャッシュを捨てるってだけの話で、メモリをクリアーするわけではない。
そもそも、使ってないメモリ領域を消すのにもCPUやメモリが働かないといけないので無駄で
メモリクリアーされることを期待しちゃだめ。
しっかり消したいなら、そういうプログラムを書くか電源を落とすか。 >>354
>Windowsでいうと「ねこまんま」っていうソフト使ってゲーム中のメモリー見る
winで出来るならLinuxでも出来るんだろうが、要高技術力でかなりの高脳でないと駄目だろう
このスレ連中では無理だろう >>352
再ログインじゃダメだよ。再起動も怪しい。
電源を一旦切るしか無い。 だから結局
> メモリーの中を見るって、まさか全容量見ていくの?
これなんだよ >>364-367
>>364
これは無理ですわ
予想を超えるハイパー難易度だわ
echo 3 > sudo /proc/sys/vm/drop_caches
でも消えないとは知らなかった。
なんかメモリー消すプログラムってLinuxでないんですかねえ?
消すとOSが使ってるメモリーの部分まで消えてぐちゃぐちゃになりそうなんで
普通にソフトとしてないんですかねえ?
>>365
Winのねこまんまは例えですよ
素人なんでよくわからないのですが、
ねこまんま = gdbとバイナリーエディターみたいなもんなんじゃないのかなあ
ねこまんま
https://www.vector.co.jp/soft/win95/hardware/se254476.html
ねこまんまによるゲーム改造
http://cheater.seesaa.net/article/233298107.html
>>366-367
再起動でも消えてないかもなのかw
怖すぎでしょ
まあ、やはり俺レベルじゃメモリーの中全部見れないし無理ですよね プロセス終了したらその部分のメモリはkernelに返って回収されるし、リングプロテクションで守られるし、メモリを消す意味がわからない。 単に「意味のない話でネタ投下だろ」
くだらないw・・・・って、今気がついた、スレ名が「くだらない質問」だった。
メモリーを消すなどというくだらない、つまらない、意味のない質問は、スレ的には正しいw apt search hogeをした時
一番最初のフィールドの「i」と「p」と「v」と
二番目のフィールドにたまに出てくる「A」は
なんの意味ですか? >>368
> なんかメモリー消すプログラムってLinuxでないんですかねえ?
Cでsysinfo();のfreeram分のメモリをmallocしてゼロ埋めするのを書いたらどうだろう >>372
man aptitude の COMMAND-LINE ACTIONS の search の項目を参照 次の結果の最後の行にある、215kB/sを、MB単位で、0.215MB/sのように出力するオプションってあるでしょうか。
# dd if=/dev/sda bs=10000 count=1 > /dev/shm/test
1+0 records in
1+0 records out
10000 bytes (10 kB, 9.8 KiB) copied, 0.0465801 s, 215 kB/s
もしなければ、結果を文字列処理して、MB/sの場合と、kB/sの場合とで、
それぞれバイト単位になるように計算しなければならないので面倒くさいなあと。 >>376
素直に自分でやるのはめんどくさいから
僕の代わりにオプションを調べて、
もし、あるならオプションを教えて、
ないなら、これやるのを作ってくださいとと書けばいいのに >>377
man ddには見つけられませんでした。
裏技ってあるのかなあと。 >>378
bsに倍数接尾子を付ければいいのでは
1000ならbs=10kB、1024ならbs=10Kで >>375
372です。疑問が解決しました
ありがとうございました >>379
ありがとうございます。
でも、ダメでした。
# dd if=/dev/sda bs=1k count=1 > tes
1+0 records in
1+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.000223181 s, 4.6 MB/s
kで指定したのに、Mで結果が帰ってきている。
結局、k Mそれぞれの場合を判別して、
いったんバイトに変換してから、M表記に変換するようなファンクションで対応することにしました。 GNU ld 2.31.1 は libhoge.so.1 があっても -lhoge が見つかりませんと言いやがる
無理やりシンボリックリンク libhoge.so を作ると見つけられる ddってかなり浮いてるけど=を使うコマンドって他にもあるのか
コマンドの構文くらい統一すりゃいいのに find「なんか言ったか?」
ps「なんか言ったか?」 Win10とデュアルブートしているレガシーBIOSのディスクをUEFIに変換するなら、
どんな方法が一番簡単でしょうか?
いったんLinuxを削除してMBR2GPTで変換してからLinuxを再インストールでしょうか? ■ このスレッドは過去ログ倉庫に格納されています