cp、chmod、chown、chgrp、grepコマンドの詳しい説明と応用例

CP

機能: ファイルまたはディレクトリをコピーします。

一般的なオプション:

- アーカイブ

-b ターゲット ファイルが存在する場合、バックアップを作成します。バックアップ ファイルは、ファイル名に ~ を付けたものです。

-f はファイルまたはディレクトリを強制的にコピーします

-r ディレクトリを再帰的にコピーします

-p は、元のファイルまたはディレクトリの属性を保持します。

-ファイルを上書きする前にユーザーに確認します

-u ソース ファイルの変更時刻が宛先ファイルよりも新しい場合にのみコピーします。

-v コピー情報を表示します

例:

ディレクトリをコピーします:

# cp -rf テスト /opt

chmod

3 種類のユーザーを操作する権限:
 chmod [-R] OCTAL-MODE FILE に octal を使用...

        指定されたカテゴリのユーザーの操作権限: =
            u: 所有者
            g: 所属グループ
            o: その他
            a: すべて

            1 つ以上の category=mode を指定します

            chmod u=rw 
            chmod ug=rw
            chmod o= 

        指定されたカテゴリのユーザー指定の許可ビットを操作します: +/-
            chmod u+x 
            chmod +w 

        --reference=FILE: 参照ファイル権限

        -R: 再帰的変更

演習: /etc/skel とその中のすべてのコンテンツを /home/mageedu にコピーします。このディレクトリとその中のすべてのファイルには、他のユーザーやグループへのアクセス権がありません。 # cp -r /etc/skep /home/
        mageedu
        # chmod -R go= /home/mageedu

 チャウン

chown コマンドは、ファイルまたはディレクトリの所有者とグループを変更します。このコマンドは、ユーザーが指定されたファイルの所有者になることを承認したり、ファイルが属するグループを変更したりすることができます。ユーザーはユーザーまたはユーザー D にすることができ、ユーザー グループはグループ名またはグループ ID にすることができます。ファイル名にはスペースで区切られたファイルのリストを指定でき、ファイル名にはワイルドカード文字を含めることができます。

このコマンドを使用できるのは、ファイル所有者とスーパー ユーザーだけです。

文法

chown(オプション)(パラメータ)

オプション

-c または --changes: 効果は「-v」パラメータと似ていますが、変更された部分のみが報告されます。

-f または --quite または --silent: エラー メッセージを表示しません。

-h または --no-dereference: 他の関連ファイルを変更せずに、シンボリック リンク ファイルのみを変更します。

-R または --recursive: 再帰処理。指定されたディレクトリ内のすべてのファイルとサブディレクトリをまとめて処理します。

-v または --version: 命令の実行プロセスを表示します。

--dereference: 効果は「-h」パラメータと同じです。

--help: オンライン ヘルプ;

--reference=<参照ファイルまたはディレクトリ>: 指定されたファイルまたはディレクトリの所有者およびグループを、参照ファイルまたはディレクトリの所有者およびグループと同じに設定します。

--version: バージョン情報を表示します。

パラメータ

ユーザー:グループ: 所有者と、それが属する作業グループを指定します。「:group」を省略した場合、ファイル所有者のみが変更されます。

ファイル: 所有者とワークグループを変更するファイルのリストを指定します。複数のファイルとターゲットをサポートし、シェルのワイルドカードをサポートします。

ディレクトリ /usr/meng とその下のすべてのファイルとサブディレクトリのファイル所有者を liu に変更します。

chown -R Liu /usr/meng

 chgrp

機能: ドキュメントが属するユーザーグループを変更します。

構文: #chgrp -R グループ名 ドキュメントへのパス

grep

構文形式:
            grep [オプション]... 'PATTERN' ファイル...

                --color=自動

        正規表現:
            文字の種類によって記述されるパターンであり、その多くは文字通りの意味を表すのではなく、コントロールやワイルドカードなどの機能を表現します。メタ
                キャラクタ: 文字通りの意味を表しませんが、追加の機能の説明に使用されます。

            正規表現: 正規表現エンジン

            基本正規表現: grep
            拡張正規表現: egrep、grep -E
            fgrep: 高速、正規表現の使用はサポートされていません

        基本的な正規表現のメタキャラクター:
            文字の一致:
                .: 任意の 1 文字と一致
                []: 指定された範囲の任意の 1 文字と一致
                    [0-9]、[[:digit:]]
                    [az]、[[: lower: ]]
                    [AZ]、[[:upper:]]
                    [[:space:]]
                    [[:punct:]]
                    [[:alpha:]]
                    [[:alnum:]]
                [^]:
            メタキャラクターと一致する回数:前の文字が出現できる回数を指定するために使用されます
                *: 任意の長さ、その前の文字は任意の回数出現できます。
                    例: x*y
                        xxy、xyy、y、 
                \?: 0 回または 1 回、その前の文字 オプションです。
                    例: x\?y
                        xy, y, ay
                \{m\}: m 回、その前の文字は m 回出現する必要があります。
                    例: x\{2\}y
                        xy、xxy、y、xxxxy、xyy
                \{m,n\}: 少なくとも m 回、最大 n 回
                    例: x\{2,5\}y
                        xy, y, xxy
                \{m,\}: 少なくとも m 回
                \{0,n\}: 最大 n 回

                .*: 任意の長さの任意の文字


            貪欲モードで作業します:できるだけ                    多くの位置アンカーを一致させます:
                ^: 行の先頭にアンカー;
                    パターンの左端に書き込みます
                $: 行末アンカー:
                    パターンの右端に書き込みます
                ^$:空行

                特殊文字を含まない連続した文字列は単語と呼ばれます。
                \<: 単語の先頭、単語の左側に表示されます。 \b
                    \<char
                \>: 単語の末尾、右側に表示されます。単語の横、\b
                    char\>
            グループ化:
                \( \)
                    例: \(ab\)*
                    グループ内のパターンと一致する内容は、正規表現エンジンによってメモリに記憶され、後で参照できます。

                引用:
                    たとえば、\(ab\(x\)y\).*\(mn\) には
                        番号が付けられています。左括弧は左から後ろに、対応する右括弧は
                        \(a\(b\(c\)\) です。 mn \(x\)\).*\1

                \#: パターン自体ではなく、n 番目の括弧で一致するコンテンツを参照します。
                    例:
                        \(ab\?c\).*\1

                            abcmnaaa
                            abcmnabc
                            abcmnac
                            acxyac

        コマンドオプション:
            -v: 逆選択
            -o: 文字列が存在する行ではなく、一致する文字列のみを表示します
            -i:ignore-case、文字の大文字と小文字を無視します
            -E: 拡張正規表現の使用をサポートします
            -A #print一致の最後の数行
            -B #一致の最初の数行を出力
            -C #一致の最初の数行を出力

 練習する:

1. /etc/skel ディレクトリを /home/tuser1 にコピーします。これは、/home/tuser1 の他のグループおよび他のユーザーとその内部ファイルにアクセス権がないことを要求します。

[root@dxlcentOS ~]# cp -a /etc/skel/ /home/tuser1
[root@dxlcentOS ~]# chmod -R go= /home/tuser1 递归修改权限,g:组的权限,o其他人权限,后面没有加权限,表示取消他们的权限

2. /etc/group ファイルを編集し、グループ hadood を追加します。

[root@dxlcentOS ~]# vim /etc/group
hadoop:x:2050:
加入一行hadoop:x:2050:,指定组名和组ID,组ID不能和存在的ID号相同,要是没有指定组ID,则是无效组,不能往里面添加用户。

3. /etc/passwd ファイルを手動で編集し、ユーザー hadoop を追加するための新しい行を追加します。その基本グループ ID は Hadoop グループの ID 番号で、そのホーム ディレクトリは /home/hadoop です。

[root@dxlcentOS ~]# vim /etc/passwd
hadoop:x:2049:2050::/home/hadoop:/bin/bash
Hadoop用户增加进用户信息库后,还没有家目录,还要复制/etc/skel过来

4. /etc/skel ディレクトリを /home/hadoop にコピーします。この場合、/home/hadoop ディレクトリの所有者グループおよび他のユーザーにはアクセス権が付与されていないことが必要です。

[root@dxlcentOS ~]# cp -a /etc/skel /home/hadoop
[root@dxlcentOS ~]# chmod go= /home/hadoop

5. /home/hadoop ディレクトリとその中のすべてのファイルを変更して、hadoop を所有者とし、グループを hadoop にするようにします。

[root@dxlcentOS ~]# chown -R hadoop /home/hadoop | chgrp -R hadoop /home/hadoop

6. /proc/meminfo ファイル内の大文字または小文字の S で始まるすべての行を 2 つの方法で表示します。

[hadoop@dxlcentOS ~]$ grep -i “^s” /proc/meminfo
[hadoop@dxlcentOS ~]$ grep “^[Ss]” /proc/meminfo

7. /sbin/nologin 以外のユーザーに対して、/etc/passwd ファイル内のデフォルトのシェルを表示します。

[hadoop@dxlcentOS ~]$ grep -v “/sbin/nologin” /etc/passwd

8. /etc/passwd ファイル内のデフォルトのシェルが /bin/bash であるユーザーを表示します。

[root@dxlcentOS ~]# grep “/bin/bash” /etc/passwd
root:x:0:0:root:/root:/bin/bash
centos:x:1000:1000::/home/centos:/bin/bash

9. /etc/passwd ファイルで 1 桁または 2 桁の番号を見つけます。

[root@dxlcentOS ~]# grep “\<[0-9]\{1,2\}\>” /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
…….

10. /boot/grub/grup.conf ファイル内で少なくとも 1 つの空白文字で始まる行を表示します。

[root@dxl ~ 12:33:45]# grep “^[[:space:]]\+” /boot/grub/grub.conf

11. /etc/rc.d/rc.sysinit ファイル内の、# で始まり、少なくとも 1 つの空白文字、その後に少なくとも 1 つの空白以外の文字が続く行を表示します。

[root@dxl ~ 12:46:27]# grep "^[#][[:space:]]\+[^[:space:]]\+" /boot/grub/grub.conf
# grub.conf generated by anaconda
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-[generic-]version.img

12. 「netstat -tan」コマンドの結果で、「LISTEN」で終わり、その後に空白文字が続く行を見つけます。

[root@dxl ~ 12:59:51]# netstat -tan | grep "LISTEN[[:space:]]\+$"
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN  

13. ユーザー bash、testbash、basher、および nologin (シェルは /sbin/nologin) を追加し、ユーザー名が現在のシステムのデフォルト シェルと同じであるユーザー情報を見つけます。

最初のステップは、ユーザー bash、testbash、basher、および nologin を追加することです。

ステップ2

[root@dxl ~ 13:24:53]# grep  -E "^([^:]+\>).*\1$" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:504:504::/home/bash:/bin/bash
nologin:x:507:507::/home/nologin:/sbin/nologin

概要: グループ情報ベース ファイル /etc/grouptonggu を編集して追加したグループの ID は、既存のグループ ID と同じにすることはできません。

ユーザー情報ベースの /etc/passwd ファイルを手動で編集してユーザーを追加し、ホーム ディレクトリのパスを指定しても、すぐには反映されません。/etc/skel ディレクトリを /home/hadoop にコピーする必要もあります。そして、その所有者とグループを Hadoop に変更します。

おすすめ

転載: blog.csdn.net/weixin_44657888/article/details/129299840