Unix は、元々1970年頃にベル研究所が開発を始めたオペレーティング・システムです。現代においては「UNIX標準」を満たすシステムを指して Unix とも言います。なお、個別のシステムについての質問はなるべく個別のタグをつけるようにしてください。
Questions tagged [unix]
87 questions
24
votes
2 answers
#! /bin/sh で、 ! の後にスペースを空けることに理由はあるか
シェルスクリプトに指定される shebang が、
#! /bin/sh
のように、 ! マークとインタプリターの間にスペースが挿入されているケースをたびたび見かけます。
#!/bin/sh
の形式ではなく、このようにスペースをいれて shebang を記述する特別な理由はありますか。

Yuki Inoue
- 16,805
- 19
- 80
- 196
7
votes
1 answer
RFC4646 と UNIX 環境変数の違い
UNIX 環境変数 LC_*** 系に設定する値は RFC3066 というか RFC4646 にほぼ基づいているようですが、微妙に差異があるようです。
- 区切りコード: RFC4646 では %x2D (ハイフン-マイナス) に対し、環境変数では %x5F アンダースコア
- RFC4646 には case insensitive とあるが、環境変数では使い分けがされているようだ
そして実際、下記のようなコマンドを入力してもエラーは出ず結果は同じでした。
(cygwin と…

774RR
- 21,855
- 19
- 44
6
votes
1 answer
ディレクトリ内を再帰的に全置換する時の選択肢
ディレクトリ内を再帰的に全置換する際、grepを使用するかfindを使用するかいつも迷うのですが
・下記は同じ意味ですか?
grep -rl 置換前 . | xargs sed -i 's/置換前/置換後/g'
find . -type f - | xargs sed -i 's/置換前/置換後/g'
find . -type f -exec sed -i 's/置換前/置換後/g' {} +
find . -type f -exec sed -i 's/置換前/置換後/g' {}…

re9
- 6,698
- 29
- 124
- 232
5
votes
4 answers
ターミナルの diff で、github のように、行の中で具体的に差分がある部分に色付けをしたい
github の PR の diff 表示では、行ごとの diff に加えて、行中のどこの部分に差異があるのかを表示してくれます。例えば linux の PR から適当に拾ってきたこのページ などが具体例です。
今、コマンドライン上の diff においても、このように色付けができたら便利だろうと思い、その方法を探しています。
diff に色を付けようとして、見つかったパッケージは、 colordiff というツール で、これを使うと、例えば +…

Yuki Inoue
- 16,805
- 19
- 80
- 196
5
votes
4 answers
rootが一般ユーザのファイル内容を変更してもファイルの所有者は変更されない?
rootが例えば下記のようなコマンドで、一般ユーザが所有するのファイルを一括置換したとしても、ファイル自体の所有者は変更されない、という考え方で合っているでしょうか?
$ find /path -type f -exec sed -i 's%hoge%piyo%g' {} +
質問
root の所有になるのは、root (sudo -s でスイッチ) が明示的に既存ファイルの所有者を変更したときか、root (sudo -s でスイッチ) が新規ファイルを生成 (もしくはダウンロード)…

re9
- 6,698
- 29
- 124
- 232
4
votes
1 answer
XDG_ 系の環境変数とは?
https://git-scm.com/docs/gitattributes を見ていました。
そこで、もし $XDG_CONFIG_HOME の環境変数が設定されているならば~のような記述があったのですが、この環境変数はみなれていないので、これは何なのかと思っています。
質問:
XDG_ 系の環境変数とは何ですか?
どのような環境だと設定されている変数ですか?
どのような設定を表す変数ですか?

Yuki Inoue
- 16,805
- 19
- 80
- 196
3
votes
3 answers
unix で、 特定のディレクトリで、 shebang が /bin/sh のものだけ実行権限を付与したい
諸事情により、特定のディレクトリの中の、実行権限がすべて吹っ飛んでしまいました; すべて 664 のパーミッションになっています。
このディレクトリには、実行可能(だったはずの)シェルスクリプトと、 windows 用の .bat ファイルが混合しています。
この状態で、実行可能だったはずのシェルスクリプトすべてに実行権限を付与したいと考えています。具体的には、実行可能だったシェルスクリプトは、すべて shebang が #!/bin/sh だったので、これらに対して chmod…

Yuki Inoue
- 16,805
- 19
- 80
- 196
3
votes
2 answers
拡張子gzを付けないとgzip(gunzip)コマンドで解凍できない
testファイルを作成して、gzipコマンドで圧縮すると、test.gzが作成されます。
このtest.gzを拡張子を外した名前(test)に変更すると、gzipコマンドやgunzipコマンドで
解凍することができないのですが、なぜでしょうか。
gunzip -S .gz test

user7461
- 405
- 1
- 5
- 15
2
votes
1 answer
unix 環境で、 ascii diagram を作成・編集したい
http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/apply-filter-to-interface.html
yamaha のルーターについての資料を読んでいました。ここで、その処理のフローが以下に抜粋する通り、 ascii の diagram にて表現されていました。
:
[BRI] : ISDN回線 or 専用線
:
…

Yuki Inoue
- 16,805
- 19
- 80
- 196
1
vote
1 answer
.envファイルがlsコマンドの実行結果に表示されない
■疑問
なぜ.envファイルがlsで表示されないのか?
結果的には作業ディレクトリ直下に存在した
find -name…

anko
- 389
- 3
- 13
- 31
1
vote
1 answer
シンボリックリンク作成時のエラーを解消したい
ln: failed to create symbolic link ‘xxx/yyy’: File exists
英語の資料はたくさん見つけたのですが、これはどういった意味なのでしょうか?
何をすれば解消しましすか?
teratermにSSH接続し、サーバ上で作業しています。
windows10,teraterm

anko
- 389
- 3
- 13
- 31
1
vote
2 answers
ターミナルコマンド ファイル名の末尾に一定の文字列を加える
macです。
あるディレクトリの中身が以下のようになってます。
1_X.jpg
2.jpg
3.jpg
4_X.jpg
5.jpg
.
.
.
ファイル名は常に".jpg"か、"_X.jpg"になってます。
これを全て***_X.jpgにしたいです。
つまり"_X"がついてない全てのファイル名に"_X"を付与してあげたいです。
どのようにすればいいでしょうか。

akao
- 133
- 1
- 6
0
votes
3 answers
find と sed で複数ファイルを一括置換する場合、「渡す文字列の長さ」と「結果が表示されるまでの速度」には関係がありますか?
/var/www/html/lib/a/b/c/filename_x.php
上記を下記へ置換する場合、「ファイル名だけを指定する場合」と「フルパスを指定する場合」で置換実行処理速度に違いはありますか?
/var/www/html/lib/a/b/c/filename_z.php
・長い文字列の方が見つけやすい気もするし、短い文字列の方が処理が軽い気もするし、違いがあれば知りたいと思い質問しました
ファイル名だけを指定する場合の一例
$ find . -type f -name…

re9
- 6,698
- 29
- 124
- 232
0
votes
1 answer
$ find . -type f -name '*.php' -exec sed -i 's/a\.php/b\.php/g' {} + で何を置換したかを表示するには?
CentOSで下記コマンドを実行しました
・置換実行されたファイルもあるのですが、コマンド結果には表示されませんでした
・置換したファイルをコマンド結果に表示させる方法はありますか?
$ find . -type f -name '*.php' -exec sed -i 's/a\.php/b\.php/g' {} +
sed: 一時ファイル /xxxx/sedf2hZwQ を開くことができませんでした: 許可がありません sed: 一時ファイル /xxxx
を開くことができませんでした:…

re9
- 6,698
- 29
- 124
- 232
0
votes
1 answer
find . -type f -name と find . -name について
find . -name '*.php' -print0 | xargs -0 grep hoge
・上記コマンドを実行したら、.phpの名前がディレクトリが付いている箇所で下記表示となりました
/xxxx/packer.php: ディレクトリです
・ディレクトリは検索できないのですか? 渡せない??
phpファイルだけを検索したい場合は、明示的にファイル指定した方が良いですか?
・この方が早く検索できますか?
find . -type f -name '*.php' -print0…

re9
- 6,698
- 29
- 124
- 232