(一)linux基礎(2)

(一)Linux基礎(2)


  • 一、Linux上的文件管理類命令node

    Linux上的文件管理類命令有:cp,mv,rm.python

    (1)、cp命令: copy
    源文件:目標文件;shell

    cp - copy files and directories
    
    單源複製: cp [OPTION]... [-T] SOURCE DEST
         多源複製: cp [OPTION]... SOURCE... DIRECTORY
                        cp [OPTION]... -t DIRECTORY SOURCE...
    
    A、單源複製: cp [OPTION]... [-T] SOURCE DEST
                   若是DEST不存在,則事先建立此文件,並複製源文件的數據流至DEST中;
                   若是DEST存在:
                   若是DEST是非目錄文件;則覆蓋目標文件;
                   若是DEST是目錄文件:則如今DEST目錄下建立一個與源文件同名的文件,並複製其數據流;
    
    B、多源複製
                    cp [OPTION]... SOURCE... DIRECTORY
                    cp [OPTION]... -t DIRECTORY SOURCE...
    
                  若是DEST不存在:錯誤;
                  若是DEST存在:
                       若是DEST是非目錄文件: 錯誤;
                       若是DEST是目錄文件: 分別複製每一個文件至目標目錄中,並保持原名;
    
      經常使用選項
           -i: 交互式複製,即覆蓋以前提醒用戶去人;
           -f: --force 強制覆蓋目標文件; 
           -r,-R: 遞歸複製目錄;
           -d: 複製符號連接文件自己,而非其指向的源文件;
           -a:-dR --preserve=all,archive,用於實現歸檔;
           --preserv=
                 mode:權限
                 ownership:屬主和屬組
                 timestamps:時間戳
                 context:安全標籤
                 xattr:擴展屬性
                 links: 符號連接
                 all: 上述全部屬性

    (2)、mv命令安全

    ​ 用法和cp命令相似bash

    ​ mv命令:move mv - move (rename) fileside

    命令格式:
    
                mv [OPTION]... [-T] SOURCE DEST
                mv [OPTION]... SOURCE... DIRECTORY
                mv [OPTION]... -t DIRECTORY SOURCE...
    
        源文件和目標文件再同一個目錄下,即重命名
            經常使用選項:
                -i:交互式
                -f:force

    (3)、rm命令: removepost

    命令格式:rm [OPTION]... FILE...命令行

    經常使用選項:code

    ​ -i: interactive 交互式遞歸

    ​ -f: force 強制

    ​ -r: recursive 遞歸

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

    危險操做: rm -rf /*

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

  • 二、bash的基礎特性:命令行展開

    ~:自動展開爲用戶的家目錄,或指定的用戶的家目錄;

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

    實戰:

    使用命令行展開功能

    一、建立/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,

    二、在/tmp目錄下建立目錄:x_y, x_z, q_y, q_z

    [root@bogon tmp]# mkdir -pv /tmp/{a1/{a,b},a2}
    mkdir: 已建立目錄 "/tmp/a1"
    mkdir: 已建立目錄 "/tmp/a1/a"
    mkdir: 已建立目錄 "/tmp/a1/b"
    mkdir: 已建立目錄 "/tmp/a2"
    [root@bogon trash]# mkdir -v /tmp/{x,q}_{y,z}
    mkdir: 已建立目錄 "/tmp/x_y"
    mkdir: 已建立目錄 "/tmp/x_z"
    mkdir: 已建立目錄 "/tmp/q_y"
    mkdir: 已建立目錄 "/tmp/q_z"
  • 三、什麼是文件的元數據

    對Linux文件系統來說,每一個文件都由兩類數據組成:

    ​ 元數據:metadata

    ​ 數據:data

    數據是是文件的內容,而元數據是文件的屬性信息,咱們能夠用stat命令來查看文件的元數據

    (1)、stat命令:
    stat - display file or file system status

    命令格式: stat FILE...

    [root@bogon ~]# stat /tmp/hi.txt 
    File: ‘/tmp/hi.txt’
    Size: 23            Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d  Inode: 67309026    Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2019-04-04 17:53:48.707013568 +0800
    Modify: 2019-04-04 17:53:48.707013568 +0800
    Change: 2019-04-04 17:53:48.707013568 +0800
    Birth: -
元數據信息 解釋說明
File 文件名
size 文件的大小
blocks 佔用block的數量
io block block總大小爲4096
regular file 定義文件類型-常規文件
Device 設備編號的十六進制和十進制
Inode 文件的Inode值
Links 文件的硬連接數
第一個Access 文件的權限
Context 註釋信息
Access 訪問時間
Modify 修改時間
Change 改動時間

​ 狀態信息有三個時間戳:

​ access time:訪問時間,atime即:經過cat,more等讀取其內容的最近一次時間

​ modifiy time: 修改時間,mtime即:改變文件內容的時間

​ change time: 改變時間,ctime:即元數據發生改變的時間

​ 修改文件的時間戳信息使用touch命令

​ (2)、touch命令

touch - change file timestamps   

     touch [OPTION]... FILE...         (若是touch的文件不存在默認會建立一個空文件)
            -c: 指定的文件路徑不存在是不予建立
         -a:僅修改access time
            -m:僅修改modify time
            -t STAMP
            use [[CC]YY]MMDDhhmm[.ss]   instead of current time

​ PS:change time是沒法指定修改的,他隨元數據發生改變而隨之改變

  • 四、命令引用

    bash的基礎特性: 引用
    強引用: '' ---其內部的任何字串直接顯示
    弱引用: "" ---變量中所存儲的值做變量替換顯示出來
    命令引用: ``或$()

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

    [root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
    [root@localhost ~]# ls /tmp | grep tfile
    tfile-2019-04-06-16-54-51
  • 五、複製/etc目錄下全部以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中

    [root@localhost ~]# mkdir /tmp/mytest1
    [root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
    [root@localhost ~]# ls -F /tmp/mytest1/
    pam.d/  passwd  passwd-  pbm2ppa.conf  pinforc  pki/  plymouth/  pm/  pnm2ppa.conf  popt.d/  postfix/  ppp/  prelink.conf.d/  printcap  profile  profile.d/  protocols  pulse/  purple/  python/
  • 六、用戶和組管理類命令的使用方法

    練習:建立用戶tom,指定UID爲5001,指定家目錄爲/tmp/tom, 指定shell爲/bin/zsh, 指定基本組爲tom,附加組爲jack

    [root@localhost ~]# groupadd jack
    [root@localhost ~]# groupadd tom
    [root@localhost ~]# useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom
相關文章
相關標籤/搜索