溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vi,find,bash,磁盤管理,chmod

發(fā)布時間:2020-07-19 17:24:21 來源:網(wǎng)絡(luò) 閱讀:583 作者:未知_未覺 欄目:大數(shù)據(jù)

作業(yè)(練習(xí))內(nèi)容:

1、總結(jié)文本編輯工具vim的使用方法;

Vim :全屏編輯器,模式化編輯器

        Vim模式:

                編輯模式(命令模式)

                輸入模式

                末行模式

    模式轉(zhuǎn)換:

    編輯--à輸入:

        i:在當(dāng)前光標(biāo)所在字符的前面,轉(zhuǎn)為輸入模式;

        a:在當(dāng)前光標(biāo)所在字符的后面,轉(zhuǎn)為輸入模式;

        o:在當(dāng)前光標(biāo)所在的下方,新建一行,并轉(zhuǎn)為輸入模式;

        I:在當(dāng)前光標(biāo)所在行的行首,轉(zhuǎn)換為輸入模式

        A:在當(dāng)前光標(biāo)所在行的行尾,轉(zhuǎn)換為輸入模式

        O:在當(dāng)前光標(biāo)所在行的上方,新建一行,并轉(zhuǎn)為輸入模式:

打開文件

#vi /tmp/grub2.cfg

    Vi +#:打開文件,并定位于第#行

    Vi + :打開文件,定位至最后一行

    Vi +/PSTTERN: 打開文件,定位至第一次被PATTERN匹配到的行的行首

默認(rèn)處于編輯模式

    關(guān)閉文件

末行模式關(guān)閉文件

:q 不保存退出

:wq 保存退出

:q! 強制不保存退出

:w 保存

:w! 強行保存

:wq --à:x

    2編輯模式下退出

        zz:保存并退出

vim的末行模式

        (1) 地址,定界

            :start_pos,end_pos

                #:第#行;

                #,#

                #,+#

                    .:當(dāng)前行

                    $:最后一行

                %: 全文,相當(dāng)于1,$

                /pat1/:第一次被此模式所匹配到的行;

                #,/pat1/

                /pat1/,/pat2/

            后可跟編輯命令:

                d, y

                w, r

        (2) 查找

            /PATTERN:向尾部進行

            ?PATTERN:向首部進行

                n: 與命令同方向

                N:與命令反方向

        (3) 查找替換

            s: 在末行模式下,在地址定界的范圍內(nèi)完成查找替換操作;

                s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符

                    要查找的內(nèi)容:可使用模式

                    替換為的內(nèi)容:不能使用模式,但可以使用后向引用符號,以引用前面模式中的分組括號所匹配到的內(nèi)容;

                        \1,\2, ...

                        &:引用“要找的內(nèi)容”匹配到的整個內(nèi)容;

                    修飾符:

                        i:忽略大小寫

                        g:全局替換

                /:用于分隔符,所以,要查找的內(nèi)容或替換為的內(nèi)容中出現(xiàn)此符號,要使用\對其轉(zhuǎn)義,使用格式:\/

                    分隔符可替換為其它字符:例如@,#等;

 

1、總結(jié)文件查找命令find的使用方法;

find命令:實時查找;查找速度略慢;精確查找;

        find [OPTION]... [查找路徑] [查找條件] [處理動作]

            查找路徑:默認(rèn)為當(dāng)前路徑;

查找條件:指定的查找標(biāo)準(zhǔn),可以根據(jù)文件名、大小、屬主屬組、類型等進行;默認(rèn)為找出指定路徑下的所有文件;

            處理動作:對符合條件的文件做什么操作;默認(rèn)為輸出至屏幕;

        查找條件:

            根據(jù)文件名進行查找:

                 -name "文件名稱": 支持使用glob;

                    *, ?,[]

                 -iname "文件名稱":不區(qū)分字符大小寫,支持使用glob;

                 -regex "PATTERN":以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱;

            根據(jù)屬主、屬組查找:

                -user USERNAME: 查找屬主為指定用戶的文件;

                -group GROUPNAME:

                -uid UserID: 查找文件的屬主指定uid的文件;

                -gid GroupID:

                -nouser: 查找沒有屬主的文件;

                -nogroup:查找沒有屬組的文件;

            根據(jù)文件類型進行查找:

                -typeTYPE

                    f:普通文件

                    d:目錄

                    l:符號鏈接

                    b:塊設(shè)備

                    c:字符設(shè)備

                    p:命名管道

                    s:套接字

            組合查找條件:

                與條件:-a

                或條件:-o

                非條件:-not, !

 

                !A-o !B = !(A -a B)

                !A-a !B = !(A -o B)

 

            根據(jù)文件大小來查找:

                -size[+|-]#UNIT

                    單位:k, M, G

 

                    #UNIT:(#-1,#]

                    +#UNIT:(#,+oo)

                    -#UNIT:[0,#-1]

 

            根據(jù)時間戳:

                以“天”為單位

                    -atime[+|-]#

                        #:[#,#+1)

                        +#:[#+1,oo]

                        -#:[0,#)

                    -mtime

                    -ctime

 

                以“分鐘”為單位

                    -amin

                    -mmin

                    -cmin

 

            根據(jù)權(quán)限:

                -perm[/|-]MODE

                    MODE:精確權(quán)限匹配

                    /MODE:任何一類對象(u,g,o)的任何一位權(quán)限符合條件即可;隱含或條件;

                        /400

                    -MODE:為每一類對象指定的每一位權(quán)限都必須同時存在方為符合條件;隱含與條件;

 

        處理動作:

            -print: 默認(rèn)處理動作

            -ls:類似于對查找到的每個文件做"ls -l"的操作;

            -delete:刪除查找到的文件;

            -fls/path/to/somefile:查找到的文件的詳細(xì)路徑信息保存至指定文件中;

 

            -okCOMMAND {} \;

                對每個文件執(zhí)行指定的命令之前需要用戶事先確認(rèn);

            -execCOMMAND {} \;

                無需用戶確認(rèn);

2、總結(jié)bash環(huán)境變量的相關(guān)內(nèi)容;

配置文件,生效范圍劃分,存在兩類:

        全局配置:

            /etc/profile,/etc/profile.d/*.sh

            /etc/bashrc

        個人配置:

            ~/.bash_profile

            ~/.bashrc

    按功能劃分,存在兩類:

        profile類:為交互式登錄的shell提供配置

            /etc/profile,/etc/profile.d/*.sh

            ~/.bash_profile

            功用:

                (1) 定義環(huán)境變量,例如PATH、PS1

                (2) 運行命令或腳本

        bashrc類:為非交互式登錄shell提供配置

            /etc/bashrc

            ~/.bashrc

            功用:

                (1) 定義命令別名;

                (2) 定義本地變量;

    變量:內(nèi)存空間,變量名

        類型:

            環(huán)境變量:作用范圍當(dāng)前shell進程及其子進程

            本地變量:作用范圍當(dāng)前shell進程

            局部變量:作用范圍僅為當(dāng)前shell進程中某代碼片斷(通常為函數(shù)上下文)

            位置變量:$1, $2

            特殊變量:$?

        變量定義方式:

            bash內(nèi)置變量:可直接調(diào)用,內(nèi)置了許多環(huán)境變量,例如PATH等

            自定義變量:

            變量賦值:變量名=值

        bash弱類型:

            變量存儲數(shù)據(jù)時,默認(rèn)均采用字符形式;任何變量可以不經(jīng)聲明,直接引用;

                120:24bits

                120:8bits

    定義本地變量:

        name=value

        查看:set

    定義環(huán)境變量:

        exportname=value

        declare -xname=value

        查看:env, printenv, export

    撤消變量:

        unset name

    引用變量:

        ${name},$name

    bash中的引用符號:

        '': 強引用,變量替換不會發(fā)生

        "":弱引用

        ``: 命令引用

3、總結(jié)Linux文件系統(tǒng)上的特殊權(quán)限(SUID、SGID、Sticky)的知識點;

SUID

        (1) 任何一個可執(zhí)行程序文件能不能啟動為進程:取決于發(fā)起者對程序文件是否有執(zhí)行權(quán)限;

        (2) 啟動為進程之后,其屬主不是發(fā)起者,而程序文件自己的屬主;這種機制即為SUID;

        權(quán)限設(shè)定:

            chmodu+s FILE...

            chmodu-s FILE...

        注意:

            s: 屬主原本擁有x權(quán)限;

            S: 屬主原本無x權(quán)限;

SGID

        默認(rèn)情況下,用戶創(chuàng)建文件時,其屬級為此用戶所屬的基本組;

        一旦某目錄被設(shè)定了SGID權(quán)限,則對此目錄擁有寫權(quán)限的用戶在此目錄中創(chuàng)建的文件所屬的組為目錄的屬組,而非用戶的基本組;

        權(quán)限設(shè)定:

            chmodg+s FILE...

            chmodg-s FILE...

Sticky:

        對于一個多人可寫的目錄,此權(quán)限用于限制每個僅能刪除自己的文件;

        權(quán)限設(shè)定

            chmodo+t FILE...

            chmodo-t FILE...

權(quán)限模型:

        u, g, o

            r, w, x

    進程的安全上下文:

        前提:進程有屬主(進程以哪個用戶的身份運行);文件有屬主和屬組;

        (1) 用戶是否能夠把某個可執(zhí)行程序文件啟動為進程,取決于用戶對程序文件是否擁有執(zhí)行權(quán)限;

        (2) 程序啟動為進程后,此進程的屬主為當(dāng)前用戶,也即進程的發(fā)起者;進程所屬的組,為發(fā)起者的基本組;

        (3) 進程擁的訪問權(quán)限,取決其屬主的訪問權(quán)限:

            (a) 進程的屬主,同文件屬主,則應(yīng)用文件屬主權(quán)限;

            (b) 進程的屬主,屬于文件的屬組,則應(yīng)用文件屬組權(quán)限;

            (c) 則應(yīng)用其它權(quán)限;

5、總結(jié)Linux磁盤管理、文件系統(tǒng)相關(guān)知識點及其相關(guān)命令的使用方法;

分區(qū):分隔存儲空間為多個小的空間,每個空間可獨立使用文件系統(tǒng);

    分區(qū)工具:

        fdisk,parted, sfdisk

    fdisk工具的使用:

        最多支持在一塊硬盤上的15個分區(qū);

        分區(qū)管理子命令:

            p: 顯示

            n: 創(chuàng)建

            d: 刪除

            t: 修改分區(qū)ID

            l: 列出所有支持ID類型

            w: 保存退出

            q: 放棄修改并退出

            m: 獲取幫助

        創(chuàng)建完成之后,查看內(nèi)核是否已經(jīng)識別新的分區(qū):

            # cat/proc/partitions

        有三個命令可以讓內(nèi)核重讀磁盤分區(qū)表:

                CentOS5: partprobe [DEVICE]

                CentOS6,7:

                    partx

                    kpartx

                partx命令:

                    partxDEVICE

                    partx-a DEVICE

                    partx-a -n M:N DEVICE

                        M

                        M:

                        :N

                kpartx命令:

                    kpartx-af DEVICE

    Linux文件系統(tǒng)管理:

    mkfs, mkfs -ttype = mkfs.type

    ext:mke2fs

    創(chuàng)建文件系統(tǒng):

        mke2fs[OPTION]... DEVICE

            -t  {ext2|ext3|ext4}

            -b{1024|2048|4096}

            -L'LABEL'

            -j:mke2fs -t ext3

            -i #

            -N #

            -m #: 預(yù)留磁盤空間占據(jù)多大百分比的空間為后期管理使用;

            -OFEATURE[,...]

                -O^FEATURE:關(guān)閉此特性

                has_journal

    文件系統(tǒng)屬性查看及調(diào)整工具:

        e2label

        e2lableDEVICE [LABEL]

        tune2fs

            顯示ext系列文件系統(tǒng)的屬性,或調(diào)整其屬性;

            -l:顯示超級塊中的信息;顯示整個文件的屬性及布局等相關(guān)信息;

            -L'LABEL':修改卷標(biāo);

            -m #: 調(diào)整預(yù)留給管理員的管理空間百分比;

            -j: ext2--> ext3

            -O:文件系統(tǒng)屬性的啟動或關(guān)閉

            -o:文件系統(tǒng)默認(rèn)掛載選項的啟用或關(guān)閉

        dumpe2fs

            -h: 僅顯示超級塊信息;

    文件系統(tǒng)檢測:

        fsck:Filesystem check

            fsck -ttype

            fsck.type

                -a: 自動修復(fù)錯誤

                -r: 交互式修復(fù)錯誤

                -f: 強制檢測

        e2fsck:ext系列文件系統(tǒng)專用的檢測修復(fù)工具;

            -y: 自動回答為“yes”

            -f:force

    6、復(fù)制/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;

[root@localhost~]# cp -p /etc/grub2.cfg /tmp/
[root@localhost~]# ls /tmp/
grub2.cfg
[root@localhost~]# vi /tmp/grub2.cfg
:%s/^\s*//g或者:%s/^[[:space:]]//g  在左下角命令模式


    7、復(fù)制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首加一個#; 原有空白字符保留;

[root@localhost~]# cp /etc/rc.d/init.d/functions /tmp/
[root@localhost~]# vi /tmp/functions


:%s/^\s/#&/g或者:%s/^[[:space:]]/#&/g   在左下角命令模式

    8、替換/tmp/functions文件中的/etc/sysconfig/init為/var/log;

[root@localhost~]# vi /tmp/functions
:%s/\/etc\/sysconfig\/init/\var\/log/g


    9、刪除/tmp/functions文件中所以#開頭,且#后面至少跟了一個空白字符的行的行首#;

[root@localhost~]# vi /tmp/functions
:%s/^#\(\s\+\)/\1/g


    10、查找/var目錄屬主為root,且屬組為mail的所有文件;

[root@localhost~]# find /var -user root -group mail -ls
134295027    0 drwxrwxr-x   2 root    mail            6 Jun 10  2014 /var/spool/mail
[root@localhost~]#


    11、查找/usr目錄下不屬于root、bin或hadoop的所有文件;

[root@localhost~]# find /usr ! -user root ! -user bin ! -user hadoop -ls
find: ‘hadoop’is not the name of a known user
[root@localhost~]# useradd hadoop
[root@localhost~]# find /usr ! -user root ! -user bin ! -user hadoop -ls
--------------這里可能需要等待幾秒中,不要以為卡在這里---------
200304    0 drwx------   2 polkitd root            6 Jun 10  2014 /usr/share/polkit-1/rules.d


    12、查找/etc目錄下最近一周內(nèi)其內(nèi)容修改過,且屬主不為root或hadoop的所有文件;

[root@localhost~]# find /etc -mtime -7 ! -user hadoop -ls
67108993   12 drwxr-xr-x  74 root    root         8192 Sep  2 08:23 /etc
431625    4 -rw-r--r--   1 root    root           14 Sep  2 04:36 /etc/tuned/active_profile
67985872    4 -rw-r--r--   1 root    root          470 Sep  2 08:23 /etc/group
67985873    4 ----------   1 root    root          371 Sep 2 08:23 /etc/gshadow
67985868    4 -rw-r--r--   1 root    root          995 Sep  2 08:23 /etc/passwd
67985871    4 ----------   1 root    root          643 Sep  2 08:23 /etc/shadow
67109049    4 drwxr-xr-x   6 root    root         4096 Sep  2 04:36 /etc/sysconfig
134732599    4 drwxr-xr-x   2 root    root         4096 Sep  2 04:36 /etc/sysconfig/network-scripts
135058400    4 -rw-r--r--   1 root    root          352 Aug 28 05:38/etc/sysconfig/network-scripts/ifcfg-eno16777736
67427376    4 -rw-r--r--   1 root    root          952 Sep  2 08:18 /etc/passwd-
67109038    4 ----------   1 root    root          614 Sep  2 08:18 /etc/shadow-
67311285    4 -rw-r--r--   1 root    root          455 Sep  2 08:18 /etc/group-
67109030    4 ----------   1 root    root          360 Sep  2 08:18 /etc/gshadow-
[root@localhost~]#


[root@localhost~]# find /etc -mtime -7 ! -user hadoop ! -user root -ls
[root@localhost~]#   ----這里如果把root也除外什么都沒有了,但是可以修改屬主吖
[root@localhost~]# cp -p /etc/group- /etc/group1
[root@localhost~]# find /etc -mtime -7 ! -user hadoop ! -user root -ls
[root@localhost~]# chown bin: /etc/group1
[root@localhost~]# find /etc -mtime -7 ! -user hadoop ! -user root -ls
67985874    4 -rw-r--r--   1 bin     bin           455 Sep  2 08:18 /etc/group1
[root@localhost~]#


    13、查找當(dāng)前系統(tǒng)上沒有屬主或?qū)俳M,且最近一周內(nèi)曾被訪問過的所有文件;

[root@localhost ~]# find /-nouser -mtime -7


    14、查找/etc目錄下大于20k且類型為普通誰的的所有文件;

[root@localhost ~]# find /etc -type f-size +20k -ls
[root@localhost ~]# find /etc-size +20k -type f -ls


    15、查找/etc目錄下所有用戶都沒有寫權(quán)限的文件;

[root@localhost ~]# find /etc ! =perm+222 -ls
[root@localhost ~]# find /etc-not -perm +222


    16、查找/etc目錄下至少有一類用戶沒有執(zhí)行權(quán)限的文件;

[root@localhost~]# find /etc ! -perm -111 -ls
[root@localhost~]# find /etc -not -perm -222 -ls


    17、查找/etc/init.d目錄下,所有用戶都有執(zhí)行權(quán)限,且其它用戶擁有寫權(quán)限的文件;

[root@localhost~]# find /etc/init.d -perm -113 -ls
67208865    0 lrwxrwxrwx   1 root    root           11 Aug 21 04:01/etc/init.d -> rc.d/init.d


 

    18、讓普通用戶能使用/tmp/cat去查看/etc/shadow文件;

[root@localhost~]# which cat
/usr/bin/cat
[root@localhost~]# cp /bin/cat /tmp
[root@localhost~]# ls -l /tmp/
total 76
-rwxr-xr-x. 1root root 54048 Sep  2 09:01 cat
-rw-r--r--. 1root root 13430 Sep  2 07:45 functions
-rw-r--r--. 1root root  3976 Aug 21 04:12 grub2.cfg
[root@localhost~]# chmod u+s /tmp/cat 
[root@localhost~]# ls -l /tmp/
total 76
-rwsr-xr-x. 1root root 54048 Sep  2 09:01 cat
-rw-r--r--. 1root root 13430 Sep  2 07:45 functions
-rw-r--r--. 1root root  3976 Aug 21 04:12 grub2.cfg
[root@localhost~]# chmod u-s /tmp/cat 
[root@localhost~]# ls -l /tmp/
total 76
-rwxr-xr-x. 1root root 54048 Sep  2 09:01 cat
-rw-r--r--. 1root root 13430 Sep  2 07:45 functions
-rw-r--r--. 1root root  3976 Aug 21 04:12 grub2.cfg
[root@localhost~]# chmod 4755 /tmp/cat 
[root@localhost~]# ls -l /tmp/
total 76
-rwsr-xr-x. 1root root 54048 Sep  2 09:01 cat
-rw-r--r--. 1root root 13430 Sep  2 07:45 functions
-rw-r--r--. 1root root  3976 Aug 21 04:12 grub2.cfg
[root@localhost~]#


    19、創(chuàng)建目錄/test/data,讓某組內(nèi)普通用戶對其有寫權(quán)限,且創(chuàng)建的所有文件的屬組為目錄所屬的組;此外,每個用戶僅能刪除自己的文件;

[root@localhost~]# mkdir -p /test/data
[root@localhost~]# groupadd only
[root@localhost~]# chown :only /test/data/
[root@localhost~]# ls -l /test/
total 0
drwxr-xr-x. 2root only 6 Sep  2 09:14 data
[root@localhost~]# chmod o+t /test/data/
[root@localhost~]# ls -l /test/
total 0
drwxr-xr-t. 2root only 6 Sep  2 09:14 data
[root@localhost~]# useradd -G only user1



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI