1. 程式人生 > >(一)linux基礎(2)

(一)linux基礎(2)

2-2 inode pat info onf 日期和時間 大小 事先 遞歸

(一)Linux基礎(2)
  • 1、Linux上的文件管理類命令

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

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

        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命令類似

    ? mv命令:move mv - move (rename) files

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

    (3)、rm命令: remove

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

    常用選項:

    ? -i: interactive 交互式

    ? -f: force 強制

    ? -r: recursive 遞歸

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

    危險操作: rm -rf /*

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

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

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

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

    實戰:

    使用命令行展開功能

    1、創建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,

    2、在/tmp目錄下創建目錄:x_y, x_z, q_y, q_z

    [[email protected] tmp]# mkdir -pv /tmp/{a1/{a,b},a2}
    mkdir: 已創建目錄 "/tmp/a1"
    mkdir: 已創建目錄 "/tmp/a1/a"
    mkdir: 已創建目錄 "/tmp/a1/b"
    mkdir: 已創建目錄 "/tmp/a2"
    [[email protected] trash]# mkdir -v /tmp/{x,q}_{y,z}
    mkdir: 已創建目錄 "/tmp/x_y"
    mkdir: 已創建目錄 "/tmp/x_z"
    mkdir: 已創建目錄 "/tmp/q_y"
    mkdir: 已創建目錄 "/tmp/q_z"
  • 3、什麽是文件的元數據

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

    ? 元數據:metadata

    ? 數據:data

    數據是是文件的內容,而元數據是文件的屬性信息,我們可以用stat命令來查看文件的元數據

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

    命令格式: stat FILE...

    [[email protected] ~]# 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是無法指定修改的,他隨元數據發生改變而隨之改變

  • 4、命令引用

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

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

    [[email protected] ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
    [[email protected] ~]# ls /tmp | grep tfile
    tfile-2019-04-06-16-54-51
  • 5、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中

    [[email protected] ~]# mkdir /tmp/mytest1
    [[email protected] ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
    [[email protected] ~]# 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/
  • 6、用戶和組管理類命令的使用方法

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

    [[email protected] ~]# groupadd jack
    [[email protected] ~]# groupadd tom
    [[email protected] ~]# useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom

(一)linux基礎(2)