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

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

6
ファイルの内容を小文字に変換します
temp小文字と大文字の内容のファイルがあります。 入力 私のtempファイルの内容: hi Jigar GANDHI jiga 上位から下位にすべて変換したいです。 コマンド 私は次のコマンドを試しました: sed -e "s/[A-Z]/[a-z]/g" temp しかし、間違った出力を得ました。 出力 私はそれが欲しい: hi jigar gandhi jiga 引数の代替部分には何が必要sedですか?

11
特定の範囲の乱数を生成する
少しグーグルで調べた後、シェルコマンドを使用して特定の範囲(最小と最大の間)に含まれるランダムな10進整数を生成する簡単な方法を見つけることができませんでした。 /dev/random、/dev/urandomおよびについて読みました$RANDOMが、これらはどれも必要なことを実行できません。 別の便利なコマンド、または以前のデータを使用する方法はありますか?


5
evalとexecの違いは何ですか?
evalそしてexec両方のコマンドを実行するのbashのコマンド(1)に内蔵されています。 またexec、いくつかのオプションがありますが、それが唯一の違いですか?彼らの文脈はどうなりますか?

3
再帰的なグロブ?
私はこのような何かを書きたいです: $ ls **.py すべての.pyファイル名を取得するために、ディレクトリ階層を再帰的にたどります。 検索する.pyファイルがある場合でも、シェル(bash)は次の出力を提供します。 ls: cannot access **.py: No such file or directory 私がしたいことをする方法はありますか? 編集:の特定のケースに興味がないことを指定したいのですlsが、問題はglob構文に関するものです。

12
ソースシェルスクリプトへのパスを決定する
ソースシェルスクリプトがそれ自体へのパスを見つける方法はありますか?私は主にbashに関心がありますが、tcshを使用する同僚もいます。 ソーシングによりコマンドが現在のシェルで実行されるため$0、ソーススクリプトではなく、現在のシェルの呼び出しも同じであるため、ここではあまり運がないかもしれません。私の現在の最善の考えはsource $script $script、最初の位置パラメータに必要な情報が含まれるようにすることです。誰より良い方法がありますか? 明確にするために、スクリプトを実行しているのではなく、ソースを提供しています。 source foo.bash
80 shell  source 




2
sudo suを実行する正当な理由はありますか?
ルートアカウントが無効になっているマシンでルートシェルを起動するには、次のいずれかを実行できます。 sudo -i:対話型ログインシェルを実行します(読み取り/root/.bashrcと/root/.profile) sudo -s:非ログインインタラクティブシェルを実行します(読み取り/root/.bashrc) Ubuntuの世界ではsudo su、ルートシェルを取得する方法として提案されていることがよくあります。1つが実行するのに、なぜ2つの別々のコマンドを実行するのですか?私が知る限り、はとsudo -i同等sudo su -でsudo -sあり、と同じsudo suです。 唯一の違いは次のとおりです(sudo -i左側とsudo su -右側を比較): sudo -s(左)とsudo su(右)の比較: 主な違い(SUDO_foo変数とを無視LS_COLORS)はXDG_foo、sudo suバージョンのシステム変数のようです。 その違いがかなりエレガントなものを使用することを保証するケースはありますsudo suか?(よくあることですが)他の人に安全に、走っても意味がない、sudo suまたは何かが足りないと伝えてもいいですか?


14
シェルの履歴を検索する最良の方法
grepよりも、コマンドで履歴ファイルを検索するより良い方法はありますか?コマンドが何から始まるのか、私にはある程度のアイデアはありますが、それが歴史のどこまで遡ったのかはわかりません。 更新:以前はzsh固有でしたが、回答が重複しているため、ここで任意のシェル(またはモード(vi / emacs))に自由に答えてください。

8
ログインシェルとしての/ usr / sbin / nologinはセキュリティ目的に役立ちますか?
私には/etc/passwd、ファイル、私がいることがわかりますwww-dataのApacheが使用するユーザーだけでなく、システムのユーザーのすべての種類は、どちらか持っている/usr/sbin/nologinか、/bin/false自分のログインシェルとして。たとえば、次の行を選択します。 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin games:x:5:60:games:/usr/games:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin syslog:x:101:104::/home/syslog:/bin/false whoopsie:x:109:116::/nonexistent:/bin/false mark:x:1000:1000:mark,,,:/home/mark:/bin/bash そのため、これらのユーザーのいずれかにスワップしようとすると(ユーザーのアクセス許可の理解を確認するためにやりたいことがあり、おそらく他の少なくとも中途の正当な理由があります)、失敗します: mark@lunchbox:~$ sudo su www-data This account is currently not available. mark@lunchbox:~$ sudo su syslog mark@lunchbox:~$ もちろん、次のような方法でシェルを起動できるため、それほど不便ではありません。 mark@lunchbox:~$ sudo -u www-data /bin/bash www-data@lunchbox:~$ しかし、それでは、これらのユーザーにログインシェルを拒否することで、どのような目的が果たされるのかと思うだけです。インターネットで説明を見ると、多くの人がこれがセキュリティに関係していると主張しており、これらのユーザーのログインシェルを変更することは何らかの形で悪い考えであることに誰もが同意するようです。引用符のコレクションは次のとおりです。 Apacheユーザーのシェルを非対話型に設定することは、一般的にセキュリティ上の良い習慣です(対話型でログインする必要のないすべてのサービスユーザーは、シェルを非対話型に設定する必要があります)。 - https://serverfault.com/a/559315/147556 ユーザーwww-dataのシェルは/ usr / sbin / nologinに設定されており、非常に正当な理由で設定されています。 - https://askubuntu.com/a/486661/119754 [システムアカウント] は、特にシェルが有効になっている場合、セキュリティホールになる可能性があります。 悪い bin:x:1:1:bin:/bin:/bin/sh 良い bin:x:1:1:bin:/bin:/sbin/nologin …
78 shell  security  users  login 

4
「検索」の出力をソートしますか?
findコマンドにパイプする前に、出力をアルファベット順にソートできる必要があります。| sort |間の入力が機能しなかったので、どうすればよいですか? find folder1 folder2 -name "*.txt" -print0 | xargs -0 myCommand
77 shell  find  sort  xargs 

4
「set -x」を元に戻す方法は?
set -xターミナルに入力しました。 ターミナルは、出力の上に最後に実行されたコマンドを出力し続けるため、コマンドは ~]$echo "this is what I see" 返却値 + echo 'this is what I see' this is what I see のmanページはありませんset。どうすればset -xオフにできますか?
77 shell 

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