第二週

1. Linux上的文件管理類命令都有哪些,其經常使用的使用方法及其相關示例演示.

文件系統操做命令-目錄node

  • ls查看文件或目錄的工具linux

    用法:ls [選項]...[文件]...shell

    -l 出文件名以外,列出文件的類型、權限、全部者、所屬組、文件大小、修改時間等詳細信centos

    -a 顯示全部以.開關的項目安全

    -A 列出除.及..之外的斜體項目app

    -R 遞歸列出目錄內容,若目錄下有文件或子目錄,則如下全部文件皆按序列出工具

    -n 相似-l,但列出UID及GID號oop

    -F 在列出的文件名後加一個符號,去區分文件類型;例如*表明可執行文件;/表明是目錄;@表明連接文件;普通文件以後不加符號ui

  • 實例:命令行

    [root@etcd01 opt]# ls -alF
    total 4415492
    drwxr-xr-x.  5 root root         88 Mar 19 01:41 ./
    dr-xr-xr-x. 20 root root       4096 Mar 13 20:49 ../
    -rw-r--r--   1 root root 4521459712 Dec  6 17:25 CentOS-7.4-x86_64-DVD-1708.iso
    drwx--x--x   4 root root         26 Feb 27 22:38 containerd/
    drwxr-xr-x   5 root root         36 Mar 13 11:17 etcd
    drwxr-xr-x   5 root root         36 Mar 19 01:41 kubernetes/

cd 更改目錄,切換目錄

  • 用法:cd 目標目錄

    【選項】

    . 當前目錄

    ..父目錄

    cd .. 切換到父目錄,切換到上一級目錄

    cd 切換到當前用戶家目錄

    cd ~ 切換到當前用戶家目錄

    cd - 返回上一次所處的目錄

    cd  相似於cd 「test」 命令中的雙引號(也能夠是單引號);切換到名稱帶有空格的目錄

  • 實例:

    [root@etcd01 ~]# cd /opt/
    [root@etcd01 opt]# cd kubernetes/
    [root@etcd01 kubernetes]# cd -
    /opt

pwd 顯示當前所處的目錄

  • 【選項】

    pwd -p 顯示實際的工做目錄,而非使用連接路徑

    [root@etcd01 opt]# pwd -P
    /opt

mkdir1建立目錄

  • 【選項】

    mkdir 只能在已存在的目錄下建立目錄

    mkdir -p 幫助你直接將所需的目錄遞歸建立起來。(在一個不存在的上級目錄裏面建立目錄)

rmdir 刪除空目錄

  • 【選項】

    rmdir 只能刪除空目錄

    rmdir -p 遞歸刪除空目錄

rm 刪除文件或目錄

  • 【選項】

    rm 只能刪除文件

    rm -r 刪除目錄及目錄下的項目(文件和目錄)

    rm -f 不提示強制刪除

  • 【實例1】

    rm -rf *

    強制刪除全部文件,可是不包含隱藏文件。謹慎使用!!!!

  • 【實例2】

    同時刪除多個文件或目錄

    每一個項目以空格隔開

    [root@etcd01 tmp]# rm -rf {a,b,c}

mv 移動文件或目錄

  • mv 原文件路徑 目標文件路徑 移動

    【選項】

    -f 不提示並覆蓋文件

    -n 不覆蓋已存在文件

    -b 覆蓋以前把原文件作備份,備份的文件在文件名以後有個~符號

    -u 只有原文件比覆蓋的文件新的時候才能夠覆蓋文件;舊文件不能覆蓋新文件

du 顯示目錄的磁盤使用狀況

  • du查看目錄或文件大小


    -a--all顯示目錄中個別文件的大小

    -b--bytes 顯示目錄或文件時,以byte爲單位.

    -c--total 除了顯示個別目錄或文件的大小外,同時民顯示全部目錄或文件的總和

    -D--dereference-args 顯示指定符號鏈接的源文件大小

    -h--human-readable 以K,M,G爲單位,提升信息的可讀性

    -H--si-h參數相同,可是K,M,G是以1000爲換算單位

    -k--kilobytes以1024 bytes爲單位

    -l--count-links 重複計算硬件鏈接的文件

    -L <符號鏈接> 或 --dereference <符號鏈接> 顯示選項中指定符號鏈接的源文件

    -m--megabytes 以1MB爲單位

    -s--summarize僅顯示總計

    -S--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小

    -x--one-file-xystem 以一開始處理時的文件系統爲準,若趕上其它不一樣的文件系統目錄則略過

    -X <文件> 或 --exclude-from=<文件>在 <文件> 指定目錄或文件

    --exclude=<目錄或文件>略過指定的目錄或文件

    --max-depth=<目錄層數> 超過指定層數的目錄後,予以忽略。

    --help 顯示幫助

    --version 顯示版本信息

  • 實例


    [root@etcd01 kubernetes]# ls
    bin  cfg  ssl
    [root@etcd01 kubernetes]# du -h --exclude=bin
    16K     ./cfg
    16K     ./ssl

df查看全部已掛載磁盤使用狀況

  • 實例

    [root@etcd01 kubernetes]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   46G   29G   18G  62% /
    devtmpfs                 7.8G     0  7.8G   0% /dev
    tmpfs                    7.8G     0  7.8G   0% /dev/shm
    tmpfs                    7.8G  704M  7.1G   9% /run
    tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
    /dev/sda1                497M  158M  340M  32% /boot
    /dev/loop0               4.3G  4.3G     0 100% /mnt/cdrom
    tmpfs                    1.6G     0  1.6G   0% /run/user/0

    註解

    第一列: 文件系統對應的磁盤分區
    第二列:分區的總空間大小,含的數據塊的數據
    第三列:已使用空間大小
    第四列:未使用空間大小
    第五列:用戶空間使用的百分比
    第六列: 文件系統的掛載點

2. 使用命令行展開功能,建立/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目錄下建立目錄:x_y, x_z, q_y, q_z

  • 實例

    [root@etcd03 /]# mkdir -pv /tmp/a{1/{a,b},2}
    mkdir: created directory ‘/tmp/a1’
    mkdir: created directory ‘/tmp/a1/a’
    mkdir: created directory ‘/tmp/a1/b’
    mkdir: created directory ‘/tmp/a2’
    [root@etcd03 /]# mkdir -pv /tmp/{x,q}_{y,z}
    mkdir: created directory ‘/tmp/x_y’
    mkdir: created directory ‘/tmp/x_z’
    mkdir: created directory ‘/tmp/q_y’
    mkdir: created directory ‘/tmp/q_z’

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

  • 元數據信息:

    file:文件名;

    size:文件大小

    block:文件佔了多少個數據塊

    IO Block:文件所佔數據塊的塊大小

    Device:硬件,既說明該文件在硬盤的那個柱面

    Inode:文件Inode號,文件的索引節點號

    links:連接

    Access:文件權限

    Uid:該文件所屬的屬主

    Gid:該文件所屬的屬組

    context:安全上下文

    Access(第二個):文件上一次的訪問時間

    Modify:文件上一次修改的時間

    Change:文件上一次屬性更改的時間

  • 查看文件元數據的方法

    stat命令:

stat [OPTION]... FILE...

[root@etcd03 ~]# stat /etc/issue
  File: ‘/etc/issue’
  Size: 23              Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 67192987    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-04-08 09:42:19.438089565 +0800
Modify: 2017-08-30 23:53:07.000000000 +0800
Change: 2018-04-16 15:26:42.557988341 +0800
 Birth: -

修改文件的時間戳方法:

touch命令:用於改變文件時間戳,若是文件不存在則建立一個空文件

touch [OPTION]... FILE...  

-c:指定的文件路徑不存在時不予建立:
-a:僅修改access time:
-m:僅修改modify time:
-t STAMP:
    [[CC]YY]MMDDhhmm[.ss] 年月日時分秒
    touch -m -t 200212010303.03

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

  • 實例

    [root@etcd03 tmp]# touch `date +%Y-%m-%d-%H-%M-%S`
    [root@etcd03 tmp]# ls
    2019-04-08-18-14-06

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

  • 實例

    [root@etcd03 tmp]# mkdir mytest1
    [root@etcd03 tmp]# cp -rv /etc/p*[^0-9] mytest1/

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

  • 實例

    [root@etcd03 tmp]# groupadd jack
    [root@etcd03 tmp]# useradd -u 5001 -d /tmp/tom/ -s /bin/zsh -G jack tom
    [root@etcd03 tmp]# cat /etc/passwd grep tom
    [root@etcd03 tmp]# cat /etc/passwd |grep tom
    tom:x:5001:5001::/tmp/tom/:/bin/zsh
    [root@etcd03 tmp]# id tom
    uid=5001(tom) gid=5001(tom) groups=5001(tom),1003(jack)

7. 經常使用的用戶以及文件管理命令有哪些,並演示命令以及用法。


useradd、userdel、usermod、passwd、groupadd、groupdel、groupmod、gpasswd、chage、chsh、id、su

  • useradd命令:建立用戶

    useradd  [OPTION]  USER
    -u, --uid UID:指定UID;
    -g, --gid GROUP:指定基本組ID,此組得事先存在;
    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔;
    -c, --comment COMMENT:指明註釋信息;
    -d, --home HOME_DIR:以指定的路徑爲用戶的家目錄;經過複製/etc/skel此目錄並重命名實現;指定的家目錄路徑若是事先存在,則不會爲用戶複製環境配置文件;
    -s, --shell SHELL:指定用戶的默認shell,可用的全部shell列表存儲在/etc/shells文件中;
    -r, --system:建立系統用戶;
  • userdel命令:刪除用戶

    userdel [OPTION] USER
        -r:刪除用戶時一併刪除其家目錄;
  • usermod命令:修改用戶屬性

    usermod [OPTION] USER
        -u, --uid UID:修改用戶的ID爲此處指定的新UID;
        -g, --gid GROUP:修改用戶所屬的基本組;
        -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用戶所屬的附加組;原來的附加組會被覆蓋;
        -a, --append:與-G一同使用,用於爲用戶追加新的附加組;
        -c, --comment COMMENT:修改註釋信息;
        -d, --home HOME_DIR:修改用戶的家目錄;用戶原有的文件不會被轉移至新位置;
        -m, --move-home:只能與-d選項一同使用,用於將原來的家目錄移動爲新的家目錄;
        -l, --login NEW_LOGIN:修改用戶名;
        -s, --shell SHELL:修改用戶的默認shell;
        -L, --lock:鎖定用戶密碼;即在用戶原來的密碼字符串以前添加一個"!";
        -U, --unlock:解鎖用戶的密碼;
  • passwd命令:修改用戶密碼

    passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
        (1) passwd:修改用戶本身的密碼;
        (2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限;
    
            -l, -u:鎖定和解鎖用戶;
            -d:清除用戶密碼串;
            -e DATE: 過時期限,日期;
            -i DAYS:非活動期限;
            -n DAYS:密碼的最短使用期限;
            -x DAYS:密碼的最長使用期限;
            -w DAYS:警告期限;
    
            --stdin:
            echo "PASSWORD" | passwd --stdin USERNAME
  • groupadd命令:添加組

    groupadd [OPTION] group_name
    
        -g GID:指定GID;默認是上一個組的GID+1;
        -r: 建立系統組;
  • groupdel命令:刪除組

    groupdel [OPTION] GROUP
  • groupmod命令:修改組屬性

    groupmod [OPTION] GROUP
        -g GID:修改GID;
        -n new_name:修改組名;
  • gpasswd命令:管理組

    組密碼文件:/etc/gshadow
    
    gpasswd [OPTION] group
        -a USERNAME:向組中添加用戶
        -d USERNAME:從組中移除用戶
  • chage命令:更改用戶密碼過時信息

    chage [OPTION] 登陸名
    
        -d
        -E
        -W
        -m
        -M
  • id命令:顯示用戶和所屬羣組的實際與有效ID

    id [OPTION]... [USER]
        -u: 僅顯示有效的UID;
        -g: 僅顯示用戶的基本組ID; 
        -G:僅顯示用戶所屬的全部組的ID;
        -n: 顯示名字而非ID;
  • su命令:切換用戶

    登陸式切換:會經過讀取目標用戶的配置文件來從新初始化
        su - USERNAME
        su -l USERNAME
    非登陸式切換:不會讀取目標用戶的配置文件進行初始化
        su USERNAME
    注意:管理員可無密碼切換至其它任何用戶;
    -c 'COMMAND':僅以指定用戶的身份運行此處指定的命令;
相關文章
相關標籤/搜索