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

スクリプトは、「プレーンテキスト」ファイルに記述された一連の指示です。スクリプトインタープリター(たとえば、Bashまたは別のシェル、Python、Perl、Rubyなど)がファイルを読み取り、コマンドプロンプトで入力されたかのように指示を実行します。

2
スクリプトが完了する前にシャットダウンしないようにUbuntuを設定することは可能ですか?
スクリプトを使用して、1つのディスクから別のディスクへのbtrfsパーティションの増分バックアップを実行します。 スクリプトは、cron.weeklyによって1日のランダムな時間に開始されます。 スクリプトの実行中にシステムをシャットダウンすると、古いバックアップが削除され、新しいバックアップが作成されないという問題が発生します。 スクリプトが終了するまで待つようにシステムをセットアップする方法はありますか? systemdでUbuntu 16.04を使用しています。

5
簡単な方法で更新チャネルを追加および削除します
Ubuntu Software & Updatesには更新チャネルを有効にするGUIがあります 更新 提案された バックポート 保安 このスクリーンショットに示すように: 私は次のようなコマンドを使用して端末内からこれを行う簡単な方法を探しています sudo apt-add-update enable updates sudo apt-add-update enable proposed sudo apt-add-update enable backports sudo apt-add-update enable security sudo apt-add-update disable updates sudo apt-add-update disable proposed sudo apt-add-update disable backports sudo apt-add-update disable security そして追加のもの sudo apt-add-update enable default sudo apt-add-update disable …

4
ローカルIPが変更されたときにスクリプトを実行する方法は?
重複としてマークする前:これは、動的DNSなどに関するものではありません。 ネットワークがアップするたびにスクリプトを実行する方法を知っています。次の/etc/NetworkManager/dispatcher.dようなディレクトリにスクリプトを追加するだけです。 #!/bin/bash IF=$1 STATUS=$2 case "$2" in up) logger -s "NM Script up $IF triggered" su rmano -c /home/romano/bin/myscript ;; down) logger -s "NM Script down $IF triggered" ;; *) ;; esac 私の場合、myscript非常にシンプルですifconfig -a > ~/Dropbox/myifconfig.txt---私は大学のどこからでも自分のローカルIPを知る必要があるので、それを使用します。 これまでのところ、システムは正常に動作しています。ただし、残念ながら、ここでのDHCP は、インターフェイスのダウン/アップなしで IPがいつか変更されるように構成されています。その場合、スクリプトは(論理的に)実行されず、ファイルは更新されません。 DynDNSアプローチを使用することはできません。変更は外部から見えるIPではなくローカル IPで行われるためです。 スクリプトをcronに入れて1分ごとに実行するか、少し複雑なスクリプトを書いて(...エレガントではありません。質問は次のとおりです。 ローカルIPが変更されたときにスクリプトをトリガーする方法はありますか? 更新1 /etc/dhcp/dhclient-enter-hooks.d/既存の/etc/dhcp/dhclient-enter-hooks.d/resolvconfに基づいてにスクリプトを配置しようとしましたが、トリガーされません。NM(ネットワークマネージャー)がdhcpコマンドを呼び出さずに、それ自体でdhcpネゴシエーションを行っていると思われます(確認が必要)。

3
スクリプト内の色オプションを指定したエコーコマンドとコマンドの動作が異なる
echo -e "\e[1;31mThis is red text\e[0m"コマンドラインで実行すると、赤いテキストが出力されます。 ただし、スクリプトファイルに書き込む場合 test.sh #! /bin/bash echo -e "\e[1;31mThis is red text\e[0m" 走る $ sh test.sh 印刷する -e \e[1;31mThis is red text\e[0m なぜ彼らは異なって行動するのですか?

2
bcの結果を変数に渡す方法
スクリプトを書いていますが、結果をbc変数に渡したいと思います。2つの変数(var1およびvar2)を宣言し、それらに値を与えました。私のスクリプトでは、bc別の変数sayに結果を渡して、他の計算var3に使用できるようにしvar3ます。これまでのところ、私が探しているものではないファイルに結果を書き込むことができ、端末で結果をエコーすることもできましたが、結果を変数に渡したいだけですその変数で作業できます。 echo "scale=2;$var1/var2" | bc

5
コマンドラインアーカイブマネージャー/エクストラクター
すべての圧縮形式に対応するすべての抽出コマンドを忘れてしまいます。 そのため、ファイル拡張子を適切な抽出コマンドにマッピングするだけのスクリプトを書くことを考えていました。しかし、私はこのようなものがすでに存在すると思います、私はそれを見つけることができません。 ファイルローラーのようなものには満足しますが、ファイルローラーはGUIツールです。

2
ls -lとllの違いは?
私は全体としてプログラミングが比較的新しく、いくつかのチュートリアルがls -lディレクトリのファイルを見るのに使うように言っていて、他の人は言っていましたll。これlsは短いリストですが、他の2つに違いはありますか?

4
bashスクリプトを介してユーザーアカウントを追加する適切な方法
現在使用しているスクリプトコードは次のとおりです。 getent group $MYGROUP if [ $? -ne 0 ] ; then sudo su -c "groupadd $MYGROUP" fi sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP" このアプローチはopenSuseでうまく機能します。しかし、Ubuntuで作成されるユーザーアカウントにはいくつかの問題があるため、ここで助けを求めています。 端末プロンプトが設定されていません(echo $PS1何も返しません) 端末で矢印キーとタブキーが正しく機能しない パスワードが機能しないようです(この問題が何であるかはまだ明確ではありませんが) この新しいユーザーに設定された/ etc / sudoers権利は尊重されません 代わりにadduser(useraddではなく)を使用して手動でユーザーを作成した場合、Ubuntuではこれらの問題は発生しません。ただしadduser、openSuse(afaik)では使用できません。したがって、Debian専用ではないスクリプト、またはUbuntuで動作する(そして他のディストリビューションで動作を停止しない)bashスクリプトを介してユーザーアカウントを追加する方法が必要です。 最後に、私は理解したいと思い違いの間adduserとをuseradd。たとえば、どのスケルトンディレクトリが使用されadduserているのかを知りたいのですが、それが理由useraddで期待どおりに機能しない可能性があります(デフォルトを受け入れたためです)。 ありがとう
15 bash  scripts  users  adduser 

4
bashスクリプトを作成するとき、現在のファイルの場所の絶対パスを取得するにはどうすればよいですか?
というbashファイルがあるとしmyBash.bashます。次の場所にあります。 /myDirect/myFolder/myBash.bash ここで、スクリプト内/myDirect/myFolderで文字列(の場所myBash.bash)を使用します。この場所を見つけるために使用できるコマンドはありますか? 編集:アイデアは、そのzipファイル内のbashスクリプトによって開始できるコードでzipフォルダーをセットアップすることです。私はそのzipファイル内のコードの相対ファイルパスを知っていますが、絶対パスは知りません。それらが必要です。1つの方法は、パスにハードコードするか、ファイルのパスを変数として指定することです。ただし、bash-fileがそれ自体の場所を把握し、zipファイルの構造に関する知識から他のファイルへの関連するパスを作成することが可能であれば、より簡単になります。

4
bashでディレクトリパスを見つけるときに正規表現を渡す方法は?
ディレクトリに名前が付けられているanacondaかminiconda、ユーザーにあるかを確認するために、小さなbashスクリプトを作成しました$HOME。しかしminiconda2、自宅のディレクトリは見つかりません。 どうすれば修正できますか? if [ -d "$HOME"/"(ana|mini)conda[0-9]?" ]; then echo "miniconda directory is found in your $HOME" else echo "anaconda/miniconda is not found in your $HOME" fi PS:私が持っている場合[ -d "$HOME"/miniconda2 ]; then、それはminiconda2ディレクトリを見つけるので、エラーは部分にあると思います"(ana|mini)conda[0-9]?" スクリプトを一般的にしたいです。私にとっては、miniconda2ですが、他のユーザーにとっては、anaconda2、miniconda3などになる可能性があります。

7
特定の拡張子を持つファイルとそれらが入っているディレクトリをカウントするにはどうすればよいですか?
.c大規模で複雑なディレクトリ構造で拡張子を持つ通常のファイルの数、およびこれらのファイルが分散しているディレクトリの数を知りたい。必要な出力は、これらの2つの数値だけです。 ファイルの数を取得する方法についてこの質問を見てきましたが、ファイルが存在するディレクトリの数も知る必要があります。 ファイル名(ディレクトリを含む)に文字が含まれている可能性があります。.または-で始まり、スペースまたは改行がある場合があります。 名前がで終わる.cシンボリックリンクと、ディレクトリへのシンボリックリンクがあるかもしれません。シンボリックリンクを追跡したりカウントしたりしたくない、または少なくともそれらがカウントされているかどうか、いつカウントされるのかを知りたい。 ディレクトリ構造には多くのレベルがあり、最上位ディレクトリ(作業ディレクトリ)には少なくとも1つの.cファイルがあります。 私は急いで(Bash)シェルでいくつかのコマンドを書いて自分でそれらを数えましたが、結果が正確だとは思いません... shopt -s dotglob shopt -s globstar mkdir out for d in **/; do find "$d" -maxdepth 1 -type f -name "*.c" >> out/$(basename "$d") done ls -1Aq out | wc -l cat out/* | wc -l これは、あいまいなリダイレクトに関する苦情を出力し、現在のディレクトリ内のファイルを見逃し、特殊文字でトリップします(たとえば、リダイレクトされたfind出力はファイル名に改行を出力します)。 .cファイルとそれらを含むディレクトリを確実に列挙するにはどうすればよいですか? それが役立つ場合、悪い名前とシンボリックリンクでテスト構造を作成するいくつかのコマンドがあります: mkdir -p cfiles/{1..3}/{a..b} && cd …


6
ファイルの最初の行を削除する方が速いのは…sedとtailのどちらですか?
この回答(sedを使用してファイルの最初の行を削除するにはどうすればよいですか?)では、ファイルの最初のレコードを削除する2つの方法があります。 sed '1d' $file >> headerless.txt ** ----------------または---------------- ** tail -n +2 $file >> headerless.txt 個人的には、このtailオプションは見た目が楽しく、読みやすいと思いますが、おそらく私はセドに挑戦しているからでしょう。 どの方法が最速ですか?
14 scripts  sed  tail 

2
Unity Launcherのカスタム右クリックアクションにより、カーソルが20秒間ビジー状態になります
ユニティ・ランチャー(Ubuntuの14.04)のアイコンを右クリックして「ウィンドウを最小化する」オプションを持っているために、私は、詳細な指示に従って、ここで変更に関する.desktopファイルをし、カスタム作られたFirefox中でランチャーを~/.local/share/applications/フォルダ。.desktopファイルの関連部分は次のとおりです。 Actions=NewWindow;NewPrivateWindow;Minimize [Desktop Action NewWindow] Name=Open a New Window Exec=firefox -new-window OnlyShowIn=Unity; [Desktop Action NewPrivateWindow] Name=Open a New Private Window Exec=firefox -private-window OnlyShowIn=Unity; [Desktop Action Minimize] Name=Minimize Windows Exec=sh /home/myusername/Documents/xdotool_sh/minimize.sh firefox OnlyShowIn=Unity; デスクトップアクション「最小化」minimize.shは、次の内容を持つ単純なシェルスクリプトを呼び出します。 #/bin/bash name=$1 for i in $(xdotool search --class "$name"); do xdotool windowminimize $i done スクリプトはxdotool、公式リポジトリからインストールできるを使用して、すべてのfirefoxウィンドウを見つけ、それらを繰り返し処理し、最小化します。 スクリプトは機能し、ランチャーの右メニューオプション「Windowsの最小化」も機能しますが、ウィンドウが最小化されるとすぐに、マウスポインターは「ビジー」モードになり、約20秒間このままになります(ただし、マウスのアクションはレスポンシブ)。 Unityの正しいメニューオプションからシェルスクリプトを起動すると、この動作につながる理由を誰もが知っていますか? …

5
Ubuntuでメモ帳(Windows)で作成されたスクリプトを実行する
Windowsでメモ帳ファイルを作成し、Ubuntuにコピーしました。このファイルには、いくつかのiptablesルールが含まれています。それを使用chmod +xして実行するファイルを実行した後、動作しませんでした。 ただし、Ubuntu(gedit)ファイルを作成し、同じ内容をメモ帳ファイルからコピーし、実行可能にして実行すると、動作しました。 NotepadファイルをUbuntuで実行するにはどうすればよいですか?

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