フォーラムを検索しましたが、初心者なので理解できるものが見つかりません。
テキストの特定の 3 行を編集し、それを保存して、サービスの再起動コマンドを実行するスクリプトを作成しようとしています。これはファン制御のために行われます。まだ GUI が見つかっていないため、夏なので日中はファンの速度を上げる必要があるため、手動で速度を編集しています。
誰かが温度ベースにしろと言う前に、私は温度が一定度以下になるようにしたいし、夜間はファンの速度を下げても大丈夫なので、それは不可能なことです。
sudo nano /etc/fancontrol
sudo service fancontrol restart
毎日実行するコマンドですが、毎回編集するのは飽きてしまいました。2 つのスクリプト (1 つはファン速度を高く、もう 1 つは低くする) を使用して、特定の時間に手動または自動で実行できるとします。
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/it87.2608
DEVNAME=hwmon1=coretemp hwmon2=it8728
FCTEMPS=hwmon2/pwm2=hwmon2/temp2_input hwmon2/pwm3=hwmon1/temp4_input
FCFANS=hwmon2/pwm2=hwmon2/fan2_input hwmon2/pwm3=hwmon2/fan1_input
MINTEMP=hwmon2/pwm2=10 hwmon2/pwm3=25
MAXTEMP=hwmon2/pwm2=80 hwmon2/pwm3=55
MINSTART=hwmon2/pwm2=**220** hwmon2/pwm3=210
MINSTOP=hwmon2/pwm2=**200** hwmon2/pwm3=200
MAXPWM=hwmon2/pwm2=**220** hwmon2/pwm3=255
太字の値は変更する必要がある値です。
みなさん、よろしくお願いします!
答え1
コマンドを使用してファイルを編集することができますsed
。例えば、
sed -i 's/MINSTART=hwmon2\/pwm2=220/MINSTART=hwmon2\/pwm2=400/' /etc/fancontrol
値220
を に変更します400
。
s
は「検索」を意味します。コマンドを各部分に分ける区切り文字の後に/
、次の(エスケープされていない) まで、検索する文字列が続きます/
。 は\/
エスケープされたで、「次の を、コマンドのさまざまな部分の区切り文字としてではなく、検索文字列に属するリテラル文字として/
解釈する」ことを意味します。その後に、 で終了する、 で置き換える文字列が続きます。終了 の後にオプションを追加できます。重要なオプションは で、これは出現をすべて置き換える必要があることを意味します。デフォルトでは、最初に見つかった出現のみが置き換えられます。/
/
/
g
検索文字列を具体的にすると、ファイル内の他の文字列と一致する可能性が低くなります。