タグ付けされた質問 「shell」

シェルは、Unixのコマンドラインインターフェイスです。シェルにインタラクティブにコマンドを入力するか、スクリプトを記述してタスクを自動化できます。/ bin / shおよび最も互換性のあるシェル(ash、bash、ksh、zshなど)に適用される質問には、このタグを使用します。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。

3
プライベートディレクトリの下にパブリックディレクトリを作成できますか?
サーバー上にアクセス許可700の個人フォルダー/ a / bがあります。/a/bのコンテンツを他のユーザーがリストしたくない。/ aの所有者はルートです。 ここで、すべてのユーザーに対してディレクトリ/ a / b / cの完全な権限を開く必要があります。 / a / b / cの許可を777に変更しましたが、他の人にはまだアクセスできません。


9
lorem ipsumジェネレーターのようなものはありますか?
「lorem ipsum generator」のようなものはありますか?私はそれがLatexやLibreOfficeにも存在することを知っていますが、端末コマンドを探しています。loremipsum 10 >> file1.txtlorem ipsumの最初の10段落を与えるようなものを入力したいと思います。各段落は各パラグラフの間に1つのLF文字と1つの空の白い線で終わりました。そして、出力は現在のディレクトリのfile1.txtというファイルにリダイレクトされます。
20 shell  terminal  text 


6
Unixシェルの「stdin / stdout API」はどれくらい安定していますか?
grepping、awking、sedding、pipingは、Unixライクなオペレーティングシステムのユーザーの日常的なルーチンであり、コマンドラインまたはシェルスクリプト(以降、総称してフィルターと呼ばれます)内にあります。 本質的に、「標準」のUnix CLIプログラムとシェルビルトイン(これ以降コマンドと総称される)を使用する場合、フィルターは正しく機能するために各フィルターステップでstdin、stdout、およびstderrの正確な予測形式を必要とします。以下では、このコマンドのこの正確な形式をこのコマンドのAPIと呼びます。 Web開発のバックグラウンドを持つ人として、この種のデータ収集とデータ処理を技術的にWebスクレイピングと比較します。これは、データ表示にわずかな変化がある場合でも非常に不安定な手法です。 私の質問は、UnixコマンドAPIの安定性に関するものです。 Unixライクなオペレーティングシステムのコマンドは、入力と出力に関して正式な標準化に従っていますか? いくつかの重要なコマンドの更新が、古いバージョンのコマンドを使用して作成されたフィルターの機能を破壊する原因となったことがありますか? Unixコマンドは、あるフィルターが壊れるような方法で変更することは絶対に不可能であるという時間の経過とともに成熟しましたか? コマンドAPIの変更によりフィルターが時々破損する可能性がある場合、開発者としてフィルターをこの問題から保護するにはどうすればよいですか?


4
特殊文字を含むファイルの一括名前変更(または正しく表示)
このファイルのように、特殊文字を含むファイルを含む多数のディレクトリとサブディレクトリがあります。 robbie@phil:~$ ls test�sktest.txt test?sktest.txt Findはエスケープシーケンスを明らかにします: robbie@phil:~$ find test�sktest.txt -ls 424512 4000 -rwxr--r-x 1 robbie robbie 4091743 Jan 26 00:34 test\323sktest.txt コンソールで名前を入力できる唯一の理由は、タブ補完のためです。これはまた、それらの名前を手動で変更できることを意味します(そして特殊文字を削除します)。 LC_ALLをUTF-8に設定しましたが、これは役に立たないようです(また、新しいシェルではありません): robbie@phil:~$ echo $LC_ALL en_US.UTF-8 Macのsshを使用してマシンに接続しています。Ubuntuのインストールです。 robbie@phil:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=7.10 DISTRIB_CODENAME=gutsy DISTRIB_DESCRIPTION="Ubuntu 7.10" シェルはBashで、TERMはxterm-colorに設定されています。 これらのファイルはかなり前から存在しており、Ubuntuのインストールを使用して作成されていません。そのため、システムエンコーディング設定が以前は何であったかはわかりません。 私は次のラインに沿って物事を試しました: find . -type f -ls | sed 's/[^a-zA-Z0-9]//g' しかし、私は私が望むすべてを行うソリューションを見つけることができません: 表示できない文字を含むすべてのファイルを識別します(上記はあまりにも多くの方法を無視します) ディレクトリツリー内のすべてのファイルに対して(再帰的に)、mv …


4
パスに依存しないシバン
2台のマシンで実行できるようにするスクリプトがあります。これらの2台のマシンは、同じgitリポジトリからスクリプトのコピーを取得します。スクリプトは、適切なインタープリターで実行する必要があります(例:)zsh。 残念ながら、両方 envとzshローカルおよびリモートのマシンで異なる場所に住んでいます: リモートマシン $ which env /bin/env $ which zsh /some/long/path/to/the/right/zsh ローカルマシン $ which env /usr/bin/env $which zsh /usr/local/bin/zsh /path/to/script.shいつものZshようにスクリプトを実行すると使用可能なものを使用するように、どうすればシバンを設定できますPATHか
20 shell  zsh  cron  path 

3
異なるシェルで「echo -e」を使用したエスケープシーケンス
Linuxのシェルに-eは、echoコマンドのフラグが存在しないように思えます。これはめちゃくちゃな設定ですか、それとも「通常」ですか? 例としてのコード: #!/bin/sh echo -e "\e[3;12r\e[3H" プリント: -e \e[3;12r\e[3H これは以前に機能しました!いくつかのsttyコマンドがひどく間違っていて、今はもう機能しないと思います。誰かが私shが実際にちょうどであると提案しましたbash。

3
複数のファイルの内容をスクリプトの標準入力に供給するための略記
たとえば、スクリーンからいくつかの結果をscript読み取りstdin、画面に出力するというスクリプトがあります。 1つのファイルのコンテンツをフィードしたい場合は、次のように入力します。 $ ./script < file1.txt しかし、複数のファイルの内容を同じ方法でスクリプトにフィードしたい場合、どうしても可能ですか?これまでに思いついた最高のものは: cat file1.txt file2.txt > combined.txt && ./script < combined.txt 2つのコマンドを使用して、一時ファイルを作成します。同じことを行う方法はありますが、結合ファイルの作成をバイパスする方法はありますか?

5
2つのテキストファイル(diffの反対)の共通行(類似性)を出力しますか?
Diffは、2つのファイル間の変更を表示するための優れたツールです。しかし、2つのテキストファイルの類似性を表示する方法(違いを無視しながら)? すなわち、サンプル入力: a: Foo Bar X Hello World 42 b: Foo Baz Hello World 23 擬似出力(次のようなもの): @@ 2,3 =Hello World 両方のファイルをソートして通信を使用するだけでは十分ではありません。その場合、行情報が失われるためです。

3
整数の比較:算術式または条件式
Bashでは、条件式を使用して2つの整数を比較できます arg1 OP arg2 OPはの一つである-eq、-ne、-lt、-le、-gt、または-ge。これらの算術二項演算子は、arg1がそれぞれarg2と等しい、等しくない、より小さい、以下、より大きい、またはより大きい場合にtrueを返します。Arg1およびarg2は、正または負の整数です。 または算術式: <= >= < > 比較 == != 平等と不平等 2つの整数を比較する方法が2つあるのはなぜですか?どちらを使用するか? たとえば、[[ 3 -lt 2 ]]条件式と(( 3 < 2 ))算術式を使用します。比較がtrueの場合、両方とも0を返します 2つの整数を比較する場合、これらの2つの方法は常に同じ意味で使用できますか?はいの場合、なぜBashには1つではなく2つのメソッドがあるのですか?


4
dirnameおよびbasename vsパラメーター展開
ある形式を他の形式よりも優先する客観的な理由はありますか?パフォーマンス、信頼性、移植性? filename=/some/long/path/to/a_file parentdir_v1="${filename%/*}" parentdir_v2="$(dirname "$filename")" basename_v1="${filename##*/}" basename_v2="$(basename "$filename")" echo "$parentdir_v1" echo "$parentdir_v2" echo "$basename_v1" echo "$basename_v2" 生産物: /some/long/path/to /some/long/path/to a_file a_file (v1はシェルパラメーター展開を使用し、v2は外部バイナリーを使用します。)

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