![コンソール、tty[0-9]*、vc/[0-9]* を除き、/etc/securetty のすべてのエントリを削除します。](https://linux33.com/image/167749/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%80%81tty%5B0-9%5D*%E3%80%81vc%2F%5B0-9%5D*%20%E3%82%92%E9%99%A4%E3%81%8D%E3%80%81%2Fetc%2Fsecuretty%20%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
/etc/securetty
コンソールtty[0-9]
とvc/[09]
。
~]# cat /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
ttyS0
ttysclp0
egrep
コマンドを使用して出力を収集しようとしています。しかし、1-9 "ttyまたはvc /"だけを取得する方法がわかりません。
~]# egrep "console|vc/|tty" /etc/securetty
次の結果を得るのに役立ちます。
~]# cat /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
答え1
そこくらいだ!
egrep 'console|vc/[0-9]$|tty[0-9]$' /etc/securetty
一般的なヒントは、変数を置き換える必要がない限り、二重引用符ではなく一重引用符を使用することです。
答え2
これは私にとって効果的です。
# sed '/^console$\|^vc\/[1-9]$\|^tty[1-9]$/!d' /etc/securetty
確認後、フラグを使用してファイルを置き換えることが-i
できます。sed
しかし、まずファイルをバックアップしてください!
答え3
grep
それぞれオプションを持つ複数のパターンを指定すると、-e
パターン間で効果的にORが発生します。ここでは、grep
対応する-x
オプションを使用して完全な行と一致するようにします。
$ grep -x -e console -e 'tty[0-9]' -e 'vc/[0-9]' /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
私はあなたが意味すると思うvc/[09]
パターンを修正しました。vc/[0-9]
数値および(またはより大きい整数)を含むデバイス名も必要に応じてtty
パターンとしておよびを使用してください。vc
10
11
tty[0-9]*
vc[0-9]*