初心者の質問相談にやさしく答えるスレ Part13
■ このスレッドは過去ログ倉庫に格納されています
聞き方が悪いから教えない、 とか、「俺は教育的目的から、わざと全部は教えないことにしている」 などという、下記スレに巣食っているロートルはお断り。 初心者に優しく応えようとする気のある人が、 今となってはバカバカしく思えるような質問相談にも優しく答えるスレです。 オススメLinuxディストリビューションは? Part77 https://mao.5ch.net/test/read.cgi/linux/1585131003/ 【初心者】Ubuntu Linux 128【本スレ】 https://mao.5ch.net/test/read.cgi/linux/1588073533/ 前スレ 初心者の質問相談にやさしく答えるスレ Part12 https://mao.5ch.net/test/read.cgi/linux/1559314687/ 禁止事項 ・トリを使おうとしている質問者に対して、そんなトリはやめろとかという、斜め上からのアドバイス ・質問者そっちのけでの昔語り(昔はもっと苦労したもんだ、今の若い者は…) ・知らないのに、使ったことないのに、知ったかぶりでの書き込み ・ググれという誰でも言えそうな忠告 ・俺は知ってるけど言わない等といった、実社会での扱われ方からの僻みから来る ・意地悪な言辞 >>188 やっぱりその方がいいですよね 今までめんどくさがってましたが、ちゃんと鍵作るようにします >>186 競合するコマンドがいくつもあるだけでなく、ライブラリの競合もあるみたいだし、 私としてはインストールするのは気持ちが悪いので、ソースをもらってきて、 make までして、インストールはせずに、使いたいものだけ alias して使っています。 ど素人の見当違いの質問かもしれませんが、是非お答え下さい。 mailbox形式のメールサーバーにおける、/var/spool/mailと〜/mail/mailboxの関係を明確につかめません。 ローカルドメインを宛先とするメールを受信するとまず/var/spool/mailに入り、その後muaでメールを受信すると〜/mail/mailboxにはいるのかなと思っているのですが、合っていますか? echo "hoge:foo" | base64 というコマンドを打ってから、何のコマンドを打っても(例lsなら) ls: line 1: hoge:foo: command not found と出て使えなくなりました $PATHには変な文字列は入ってませんでした どこの設定を壊してしまったんでしょうか? 端末の起動がもたつくようになった 関数は一つのファイルに大量に書くより外部ファイルとしてPATHを通した場所に置く方がいいんだろうか >>193 別ファイルにしたらそれを読み込む負担が増えるから悪くなることはあっても 良くなることはないような気がする 基本拾った関数やエイリアスは.bash_aliasに書いて巨大な関数やsh以外は~/binに置いてるがこれでいいよな? sedって/パターン/の文字区別無視は無理なんだろうか iが使えるのはsだけだし 質問がよくわからないんだけど、アドレスで正規表現を使う場合に、大文字小文字を区別したくないということ? info sed によれば、I フラグを使う手があるらしい。こんな具合。 $ sed -n '/foo/Ip' sample.txt コマンドラインで行の移動ってどうやるの $ seq 3 | CMD 1 3 2 みたいなん 何がしたいのか全然わからんが なんでもいいからとにかく行の順番を変えたいなら $ seq 3 | shuf >>200 $ ed -s <(seq 3) <<< $'3m1\n,p' ubuntu mate 20.04 +fcitx-mozcのかな入力環境下で「¥|-」キーを別のキーに割り当てたいんですが、半角のときは「¥」、かな入力のときは素直に「ー」を出せるようにするにはどこをいじったらいいでしょうか xmodmap -e 'keycode 51=yen bar' とやるだけでは「¥」は半角でそのまま出ますが「ー」はかな入力時にSHIFT+キーじゃないと出ません 「ー」をSHIFTなしで一回で出せるようにしたいのです mozcの方にかなテーブルがどこかにあるのかと思って探しましたがわかりませんでした 所有者がルートのファイルをsudo rm で削除できるのに sudo cat ルート所有のファイル > 新規ファイル ってやるとできないけどなぜなんですか? >>204 権限がありませんって出る あとコピーはできる >>204 > sudo cat ルート所有のファイル > 新規ファイル sudoの効力は「cat ルート所有のファイル」まで 「>」以降はsudoする前のシェルがやる 「echo hoge >新規ファイル」ができないのと同じ >>204 リダイレクトやパイプはsudo前のシェルが自分の権限で処理するので sudo sh -c "cat example.txt > output.txt"としてroot権限のシェルでリダイレクトを処理させるか sudo cat example.txt | sudo tee output.txtのようにteeで代用する vimでreadonlyのファイルを強制保存する時もtee使うんだよな sudo付け忘れた時とか よっぽどのことがない限り入る 多くの場合はグラホがうまく使えないとかあるけど でもここで聞くレベルじゃISO用意できなかったりするんじゃないの ちなみにいまどき無線LANが使えないってないわ これくらいのレベルならヤフオクで5000円くらいだからそっちで選べばいいと思う 複数行単位で逆順ってどうやる? $ seq 4 | CMD 3 4 1 2 こんなん seq 10 |tac |sed -n 'h;n;p;g;p' sed 版は行が偶数である必要があるので、基数でも構わないように awk 版。 seq 11 |tac |awk 'NR % 2 != 0 {line = $0; next}; {print $0"\n"line} END{if (NR % 2 != 0) print $0}' xargs で、行列変換できるのでは? a b c a b c >>212 例は2行単位のもの出しているけど、2行単位以外の複数行(3行とか4行との)単位でもやりたいのか? sedの基本は理解したが肝心の処理の流れが分からんわ パターンスペースだのホールドスペースだの 処理過程の行を表示する方法はないのかしら >>212 長くなれば配列使ってループで回す seq 4 | xargs | awk '{print $3 "\n" $4 "\n" $1 "\n" $2}' 自分ならスクリプト書いてwhile readしちゃうけどなあ ちなみにスクリプト書くのがえらいとは思ってない 仕事でシェル書ける?って聞かれたことあるけど当然あると答えるんだけど パイプを使った簡単な方法を思いつかないとメンテが大変なスクリプトを残すことになる まあ1行で書かれた難解なコマンドを解読するのも面倒なんだけどw >>218 自分が使ったわけではないけどsedsedつーのがあるらしい 自分は処理を想定して置換パターン考えるけど 思ってるように置換されないことはよくあって超テストしまくる 今はシェルスクリプト書くこと少ないんだけど あーこれ過去に悩んだわってのは結構多く解決したあとに思い出す >>221 ワンライナーの方が保守性が低いだろうに やっていることが複雑なプログラムは 結局何で書いても保守性は上がらない >>226 シャープは台湾資本のメーカーだから安心だな VARが複数行の場合はどうすれば? $ VAR=`seq 1`; seq 2 | sed "s/$VAR/@&/" @1 2 $ VAR=`seq 2`; seq 3 | sed "s/$VAR/@&/" sed: -e expression #1, char 3: `s' コマンドが終了していません VAR=`seq 2`; seq 3 | perl -0777 -pe "s/($VAR)/\@\$1/" sed でやるなら sed の文法に合わせる必要がある。 すなわち、改行をエスケープシーケンスに置き換える。 それをした上でも sed でやるには N や t を使う必要があるだろう。 そして多分、本当にやりたいことはそれではないだろう。 なにをしたいのか正直に書いたほうがいいと思う。 URLのメモがあって特定のURLの行頭に#を入れたいだけなんだ 実際のVARには対象行の文字列が入ってる sed ' /aaa/s/^/#/ /bbb/s/^/#/ ' foo.txt これを大量に書かずに済む方法はないかってこと hoge = PARAM1:VALUE1-0:VALUE1-1;VALUE1-2 こういうあたいを、最初の:区切り文字にするっていう方法ありますか? 具体的には、 hoge = PARAM1 と VALUE1-0:VALUE1-1;VALUE1-2 に分けるのが望みです。 関係あるかわかりませんが、実際には区切り文字の:は半角です、 半角コロンは視認性がすんごい悪かったので、視認性のため全角にしております。 よろしくお願いいたします。 >>232 改行されたURLのみのリストならこれで大丈夫なはず xargs -I{} sed '/{}/s/^/#/' < url_list.txt >>233 cut -d ':' -f 1 と cut -d ':' -f 2- でできるよ >>235 ありがとうございます。 N番目から最後までってのがあるんですね。 勉強になりました。 >>234 これじゃ動かんわ こっち sed 's|/|\\\\/|g' url_pattern_list |xargs -I{} sed '/{}/s/^/#/' url_list URL には . も含まれてると思うのだが、エスケープしなくていいのだろうか。 行全体のマッチじゃなくていいのだろうか。 パターンの数だけ sed を起動するよりもスクリプトファイルを作って それを実行する方が効率的でデバッグもしやすいのではなかろうか。 当人が判断すればいいことだが、ちょっと気になった。 >>238 >>230 の条件が 複数のマークする対象が変数に入っている、絶対にsedは使う、1ライナー なんだよ。 Linuxユーザーは超こだわりを持つ奴がおおいからな (なんで、そんなにこだわる? 基地外かよな奴が多いからな) Debian でディスクレスシステムもどき (USBメモリでBIOSモード起動、NASへiSCSIで接続してルートマウント) を作ったんですが、 シャットダウンや再起動しようとすると NIC が落とされるのが早いのか、処理がうまくいかないようです。 (シャットダウンシーケンス中なのに waiting for ifup for enp1s1 ( 1 min 30 sec ) ... みたいな感じ) 数分待てば再起動できるけど、どうにも時間がかかりすぎるのでなんとかしたいです。 たぶん NIC を落とさないようにするのかな、と思いつつも、どう検索したらいいのか分からずここに来ました。 分かる方、よろしくお願いします。 >>238 悪いこと言わないからここのスレタイを一度読んでみ? https://qiita.com/dankogai/items/ffc4f31a8a949bd7ec01 上記のサイトをみながらzfsについて勉強・検証しているのですが zfs snapshot tank@20201003 このコマンドは通るのですが、 上記のコマンドを打たずに以下のコマンドを打つと「WARNING: could not send tank@20201003: does not exist」と表示されます。 zfs snapshot tank@20201003 > tank@20201003.zfs 上記ページをみても書いていなかったので、シリアライズする際は一度スナップショットを取ってからしかできないという理解で間違いないですか? aa.html foo bb.html cc.html この中で連続するhtmlをsedで全消しするにはどうすれば? この例だと結果はaa.htmlとfooの2行ですが実際の行数は不定です あくまで特定の文字列を含む行が連続したら消すってことです >>247 わざわざsedを指定しているってことは、 sedでやることが一番重要なことなんだよ。 (sedでやっていないのはイラネよーーーだろ) おかげで、高脳案件になってしまっているからな。 >>246 最初から全部やりたいこと書けよ 誰かが答えたら行末じゃないとか言い出すんだろ sed で書いてみた。長いよ。 #!/bin/sed -nf /\.html/! { :print p b end } /\.html/ { # 文字列 html 1 行目 $ { # html のある 1 行目が最終行なら表示する p b end } h n /\.html/! { H g b print } /\.html/ { # 文字列 html 2 行目、4, 6 ... 行目 :loop n /\.html/! b print /\.html/ b loop # 文字列 html 3 行目、5, 7 ... 行目 } # 2 個目からのループの終わり } # 1 個目からのループ終わり :end sedのverboseモードってないだろうか 習熟できてないからなんでこんな結果になるんだってのが多くて 結果が出ない時もあるし >>250 rubyの人の書き方ににているが、ひょっとして,rubyの人? なんか、俺よりずっとsedに詳しい感じだな。 rubyできる人なら、それなりにシェルスクリプトができても不思議ではないだろうからな。 >>251 頭のいい人はsed,awk,正規表現とかをすげーなと言う感じで活用するんだろうが、 低脳の俺なんかは、どう書いたらいいんだ、なんでこんな結果になるんだ だからな Ruby で作った。ただし、ファイルを2回読んでるけど TEXT = <<'EOT' aa.html foo bb.html cc.html EOT # 文字列を含む行番号を、配列に入れる line_numbers = TEXT.each_line.with_object( [ ] ).with_index( 1 ) do | ( line, ary ), line_num | # 各行・蓄積変数・行番号 ary.push( line_num ) if line.include? "html" # 含む end # 上の配列から、連続している行番号だけを残す。2次元配列を平坦化する consecutive_numbers = line_numbers.chunk_while{ |prev, nxt| prev + 1 == nxt }. select { |ary| ary.length >= 2 }.flatten! unless consecutive_numbers puts "連続している行はありません!" return # 処理なし end results = TEXT.each_line.with_object( [ ] ).with_index( 1 ) do | ( line, ary ), line_num | # 各行・蓄積変数・行番号 if line_num == consecutive_numbers[ 0 ] consecutive_numbers.shift # 先頭の要素を取り除く else ary.push( line ) end end print results.join シェルスクリプト、sed, awk は、 覚えることが多くて、ややこしくて出来ない 漏れは可読性・保守性を優先してるから、Ruby しか書けない。 基本、Rubyだと英語のように読めるから plamo linux です mdadm: No devices listed in conf file were found. とメッセージが出てブートしなくなりました 昨日までちゃんとブートしていました 元に戻るにはどうすればいいんでしょうか >>252 こういうのは、パズルを解く感じで面白がっています (実用的だとは思わない)。 sed は、info sed をざっと読んだだけで、よく知りません。 でも、info sed はお読みになると良いと思います。 sed/awkなんてvi/emacsと同じで黎明期に先行者利益で広がっただけで今じゃ棺桶に片足突っ込んでるようなジジイがマウント取るために無理やり活かされてるゾンビみたいなもんだから今の時代そんなもん使わんでいいよ 当時その場の思いつきで作られた合理性の欠片もないオレオレインターフェースやナメクジレベルの鈍足パフォーマンスでメリットなんかないしググりゃちゃんと直感的なインターフェースにマトモなパフォーマンスのツールが他にいくらでもあるから >>255 どうもすみません 何度もやり直して、上手くいかず しばらく放置して電源を入れると 上手くブートしました 失礼 >>257 じゃあその方法で解決する方法を紹介してやりゃいいのにww >>260 ググれば? Linuxでフルパスからファイル名のみ取り出す方法 | 俺的備忘録 そもそも、変換元のPATHの出力をfindで行っているのであれば、「-printf」でファイル名だけを指定すればよい。 find ./ -printf "%f\n" 拡張子削除については、awkやsedを用いるとよいだろう。 テキストファイルの1行目が特定の文字列だったら的な処理がしたくて if [ $(head -n 1 ./file.txt) = "ABC" ] こうやって書くとテキストファイルが空だった時にunary operator expectedでエラーになるんだけど 一旦変数に入れてやるなりしないとだめですかね "$変数"ならエラーにならないんだけど 環境 lubuntu18.04 xorg xmonadをダウンロードした後にログアウトしてlightDMでxmonadを選択してログインしたら何も映らなくなった 仮想コンソールは映る 再起動しても意味なし dmrcの中身をxmonadからlubuntuに戻しても意味なし コンソールからxinitrcを読み込んでstartxすればそのGUIは映るけど普通に起動すると駄目 なんが原因でどうしたらいいんでしょう? 知らんがlightDMを入れ直したら? sudo apt --reinstall install lightDM やってみるけど多分駄目だろうな DMは関係ないっぽい なんかいろいろ挙動が異常 >>265 役に立つかどうかわからないけれど、~/.xsession-errors と /vag/log/Xorg.0.log を まず見るところじゃないの。うちの場合は、Xfce4 だから、~/.xfce4-session.verbose-log なんてのもある。 おまえらカロリーメイトの特設サイトでコマンド打ってこいよ open jtalkのオンラインデモ、今音声出力出来るか すいませんtimedatectlコマンドはSystem clock synchronized: yes NTP service: active の場合、実行するだけで即座にNTPと同期してくれるのですか? >>271 ありがとう ntpdate要らなかったか update-grubを実行したドライブ内のOSだけ検出することって出来ますか? USBメモリに複数のディストリを入れています。 update-grubしたときにこのUSBメモリ以外は無視してほしいのです。 他を物理的に外したりBIOSで無効にしたり、あとでgrub編集するより、 最初から検出しない方法があればと思っています。 CMD| `cat -`をしたらCtlr+dで入力の終端を明示するけどこの操作を自動化できないです? >>275 CMDがどんなコマンドかわからんけど execとかそういう話? windowsにはどこにでも置けて単一で機能するexeがありますがLinuxにはないんです? もしくは一つのフォルダで完結するポータブル版 >>277 拡張子が exe ではないけど、単体で動作するモノは何処に置いても 動作するよ。 出力のプロセス置換って使う機会ないけどどんな時に使うんです? >>280 NGで元ネタ見れないけど appimageでしょ? あれの、注意点は appimage作った環境が ibusかFcitxかっで 日本語入力できるか、できないか って変わってくるんだけど… いまの、Ubuntuがibusだから 自分のマシンもibusにしとけば ほぼほぼ、ちゃんと使える って 環境が手に入る まともな日本語使えてないのに日本語入力必要なんだw Ubuntuとあるからappimageじゃなくてsnapことを語ってるのか? あと改行が気持ち悪い >>283 元ネタは、Linux には、 ・何処にでも置けて実行出来る exe のようなモノは無いか? ・一つのディレクトリで完結する実行環境は? だから、Windows のように個人専用環境を整えたいって ことじゃね?Windows で言う、PortableApp やらインストール 不要なアプリみたいなの。確かに Windows だと USB に 環境詰めてるけど、Linux では考えたことないな。 >>283 >>287 なんだこの変な読点の打ち方 「NGで元ネタ見れない」とか知らんよ 自分で登録したNGワードなんだから自分でなんとかしろよ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる