Linux基礎(二)

一. Linux上的文件管理類命令,及其經常使用的使用方法和相關示例演示

    1. 目錄管理命令

      mkdir:make directory(建立目錄)php

                語法:mkdir [OPTION]... DIRECTORY...node

                -p: 自動按需建立父目錄;mysql

                -v: verbose,顯示詳細過程;linux

                -m MODE:直接給定權限;sql

                 注意:路徑基名方爲命令的做用對象;基名以前的路徑必須得存在;               shell

                示例: mkdir -p /tmp/test/x/y    ----在/tmp目錄下遞歸建立/test/x/y三個目錄vim

                            mkdir -v /tmp/test/x/y    ----在/tmp目錄下遍歷看是否已經有了咱們要建立的文件,有就不建立,沒有就建立安全

                            mkdir -m 777 z             ----在當前目錄下z目錄同時指定目錄z的權限爲777bash

    rmdir:remove empty diectories (刪除目錄)app

                 語法:rmdir [OPTION]... DIRECTORY...

                        -p: 刪除某目錄後,若是其父目錄爲空,則一併刪除之;

                        -v: 顯示過程;

                       注意:rmdir 只能刪除空目錄

                示例:[root@SilasSZL x]# rmdir -pv /tmp/x/y1/a/

                          rmdir: removing directory, ‘/tmp/x/y1/a/’

                          rmdir: removing directory, ‘/tmp/x/y1’

                          rmdir: removing directory, ‘/tmp/x’

                          rmdir: failed to remove directory ‘/tmp/x’: Directory not empty


        tree目錄結構查看

                 語法:tree [options] [directory]

                        -d:只顯示目錄

                         -L level:指定要顯示的層級;

                示例[root@SilasSZL x]# tree -d

                        .

                        ├── test3

                        └── x2

                        

                        2 directories

                        [root@SilasSZL x]# cd /tmp/

                        [root@SilasSZL tmp]# tree -L 1

                        .

                        ├── Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>

                        ├── mysql.sock

                        ├── sess_gd1l4k5doad05sgsmgubcjnrkj0l9b4m

                        ├── sess_r6db4ausbtqt9jhn5b2d2ra9vgas9317

                        ├── systemd-private-f7cf3ddec7f649aaafdeb498d9de431c-ntpd.service-A3JkPQ

                        └── x

                        

                        2 directories, 4 files


        cd:change  directory (改變工做目錄)

                語法:cd [/PATH/TO/SOMEDIR]

                示例:cd ..:切換到上級目錄

                          cd ~:切換回本身的家目錄

                          cd -:在上一次目錄與當前目錄直接來回切換

        pwd:顯示當前目錄

                示例[root@SilasSZL ~]# pwd

                          /root


        ls:list 顯示指定路徑下的文件列表

                語法:ls [OPTION]... [FILE]...

                        -a: 顯示全部文件,包括隱藏文件;

                        -A:顯示除.和..以外的全部文件;

                       -l: --long, 長格式列表,即顯示文件的詳細屬性信息;

                       -h, --human-readable:對文件大小單位換算;換算後結果可能會非精確值;

                       -d:查看目錄自身而非其內部的文件列表;

                       -r: reverse, 逆序顯示;

                      -R: recursive,遞歸顯示;

                    示例[root@SilasSZL ~]# ls -a

                                .   anaconda-ks.cfg  .bash_logout   .bashrc  install.log         .mysql_history  satools  .tcshrc   .vimrc

                               ..  .bash_history    .bash_profile  .cshrc   install.log.syslog  .rnd            .ssh     .viminfo

                            [root@SilasSZL ~]# ls -R

                                .:

                                anaconda-ks.cfg  install.log  install.log.syslog  satools


                                ./satools:

                                black.txt  freemem.sh  iptables.sh  lnmp.sh  mysql  php502_check.sh  ssh_safe.sh


    2. 文件管理命令

        cp:copy(複製)

                語法:單源複製:cp [OPTION]... [-T] SOURCE DEST

                            注意:若是DEST不存在:則事先建立此文件,並複製源文件的數據流至DEST中;

                                       若是DEST存在:

                                                                若是DEST是非目錄文件:則覆蓋目標文件;

                                                                若是DEST是目錄文件:則先在DEST目錄下建立一個與源文件同名的文件,並複製其數據流;

                   多源複製:cp [OPTION]... SOURCE... DIRECTORY

                                     cp [OPTION]... -t DIRECTORY SOURCE...

                            注意:若是DEST不存在:錯誤;

                                       若是DEST存在:

                                                                若是DEST是非目錄文件:錯誤;

                                                                若是DEST是目錄文件:分別複製每一個文件至目標目錄中,並保持原名;

                經常使用選項:-i:交互式複製,即覆蓋以前提醒用戶確認;

                                  -f:強制覆蓋目標文件;

                                  -r, -R:遞歸複製目錄;

                                  -d:複製符號連接文件自己,而非其指向的源文件;

                                  -a:-dR --preserve=all, archive,用於實現歸檔;

                                          --preserv=

                                                          mode:權限

                                                          ownership:屬主和屬組

                                                          timestamps: 時間戳

                                                          context:安全標籤

                                                          xattr:擴展屬性

                                                          links:符號連接

                                                          all:上述全部屬性

                示例

                        image.png

        mv:move(移動)

                語法:mv [OPTION]... [-T] SOURCE DEST

                           mv [OPTION]... SOURCE... DIRECTORY

                           mv [OPTION]... -t DIRECTORY SOURCE..

                經常使用選項:-i:交互式;

                                 -f:force  強制

                示例

                       image.png

                       image.png

        rm:remove  刪除

                語法:rm [OPTION]... FILE...

                經常使用選項:-i:interactive   交互式;

                                 -f:force  強制

                                 -r: recursive  遞歸

                注意:全部不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)

                示例刪除目錄:rm -rf /PATH/TO/DIR

                          危險操做:rm -rf /*

二. bash的工做特性之命令執行狀態返回值和命令行展開所涉及的內容及示例演示

    1.命令執行狀態返回值:

        bash經過狀態返回值來輸出此結果:

                成功:0

                失敗:1-255

                命令執行完成以後,其狀態返回值保存於bash的特殊變量$?中;

                示例

                       image.png

    2. 命令行展開

                ~: 展開爲用戶的主目錄

                ~USERNAME:展開爲指定用戶的主目錄

                {}:可承載一個以逗號分隔的列表,並將其展開爲多個路徑

                示例/tmp/{a,b} = /tmp/a, /tmp/b

                          /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

 使用命令行展開功能來完成如下練習。

    1.建立/tmp目錄下的:a_c, a_d, b_c, b_d

                示例

                        image.png

    2. 建立/tmp/mylinux目錄下的:

        mylinux/

        I————bin

        I————boot

        II————grub

        I————dev

        I————etc

        I       I————rc. d

        I       I        I————init. d

        I       I————sysconfig

        I              I————network-scripts

        I————lib

        I       I————modules

        I————lib64

        I————proc 

        I————sbin

        I————sys

                示例

                        image.png

 文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息。

            1.文件的元數據包括文件名(File)、大小(Size)、數據塊(Blocks)、IO塊(IO Block)、設備(Device)、節點號(Inode)、硬連接(Links)、權限(Access)、文件所屬主(Uid)、文件所屬組(Gid)、最近訪問時間(Access Time)、最近文件修改時間(Modify Time)、最近文件屬性更改時間(Change Time)

            2.經過 touch 命令修改文件的時間戳信息:

                    -c:指定的文件不存在時不予建立(全部時間都會改變);

                   -a:僅修改access time(實際change time會隨着改變);

                   -m:僅修改modify time(實際change time會隨着改變);

                   -t:使用指定的日期時間,格式[[CC]YY]MMDDhhmm[.ss](access time和modify time爲指定時間,change time爲當前系統時間)

                示例

                     image.png

 如何定義一個命令的別名,如何在命令中引用另外一個命令的執行結果?

        1.經過 alias 命令能夠查看全部命令的別名或者定義別名,取消別名可經過命令 unalias。

                定義別名格式:alias NAME='COMMAND'

                注意:定義的別名只對當前shell進程有效

                示例

                        image.png

        2.引用命令的執行結果可經過 $(COMMAND) 或者 COMMAND 兩種方式。

                示例[root@SilasSZL ~]#  echo $(date)

                           Sat Oct 6 09:43:05 CST 2018

顯示/var目錄下全部以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(能夠有其它字符)的文件或目錄。

        # ls -d /var/l*[0-9]*[[:lower:]]

 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

        # ls -d /etc/[0-9]*[^0-9]

 顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字符的文件或目錄。

        # ls -d /etc/[^[:alpha:]][[:alpha:]]*

 在/tmp目錄下建立以tfile開頭,後跟當前日期和時間的文件,文件名形如: tfile-2016-05-27-09-32-22。

         [root@SilasSZL tmp]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"`

         [root@SilasSZL tmp]# ll|grep tfile-2016-05-27-09-32-22

 複製/etc目錄下全部以p開頭,以非數字結尾的文件或目錄到/tmp/mytestl目錄中。

        # cp -a /etc/p*[^0-9] /tmp/mytest1

十一 複製/etc目錄下全部以.d結尾的文件或目錄至/tmp/mytest2目錄中。

        # cp -a /etc/*.d /tmp/mytest2

十二 複製/etc/目錄下全部以1或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

        # cp -a /etc/[l,m,n]*.conf /tmp/mytest3

相關文章
相關標籤/搜索