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

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

鄧州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),鄧州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鄧州成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的鄧州做網(wǎng)站的公司定做!

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! 強(qiáng)制不保存退出

:w 保存

:w! 強(qiáng)行保存

: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:向尾部進(jìn)行

            ?PATTERN:向首部進(jìn)行

                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命令:實(shí)時查找;查找速度略慢;精確查找;

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

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

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

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

       查找條件:

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

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

                    *, ?,[]

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

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

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

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

                -group GROUPNAME:

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

                -gid GroupID:

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

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

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

                -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)運(yùn)行命令或腳本

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

            /etc/bashrc

            ~/.bashrc

           功用:

                (1)定義命令別名;

                (2)定義本地變量;

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

       類型:

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

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

           局部變量:作用范圍僅為當(dāng)前shell進(jìn)程中某代碼片斷(通常為函數(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中的引用符號:

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

        "":弱引用

        ``:命令引用

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

SUID:

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

        (2)啟動為進(jìn)程之后,其屬主不是發(fā)起者,而程序文件自己的屬主;這種機(jī)制即為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

   進(jìn)程的安全上下文:

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

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

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

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

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

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

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

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

分區(qū):分隔存儲空間為多個小的空間,每個空間可獨(dú)立使用文件系統(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)掛載選項(xiàng)的啟用或關(guān)閉

        dumpe2fs:

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

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

        fsck:Filesystem check

            fsck -ttype

            fsck.type

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

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

                -f:強(qiáng)制檢測

        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

分享文章:vi,find,bash,磁盤管理,chmod
分享鏈接:http://bm7419.com/article12/psopgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、品牌網(wǎng)站建設(shè)、服務(wù)器托管、App設(shè)計(jì)網(wǎng)站維護(hù)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)