1. 程式人生 > >從零開始的Linux學習Ⅱ

從零開始的Linux學習Ⅱ

col ctrl name 情況 bcd 刪除 指定 同名 ati

Linux上的文件管理類命令

常用的文件管理工具有:cp , mv , rm

  1. cp命令——copy:
    NAME
    cp - copy files and directories
    復制 文件 和 目錄
    SYNOPSIS
    單源復制 cp [OPTION]... [-T] SOURCE DEST
    多源復制 cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
    常用OPTION:
    -i:交互式復制,即覆蓋之前提醒用戶確認;
    -f:強制覆蓋目標文件;
    -r, -R:遞歸復制目錄;
    -d:復制符號鏈接文件本身,而非其指向的源文件;
    -v:顯示過程
    -a:-dR --preserve=all, archive,用於實現歸檔;
    --preserv=
    mode:權限
    ownership:屬主和屬組
    timestamps: 時間戳
    context:安全標簽
    xattr:擴展屬性
    links:符號鏈接
    all:上述所有屬性
    cp SRC...DEST
    復制 源 目標
    情況一:
    (1)如果DEST不存在:新建DEST,並將SRC中的內容填充至DEST中;
    如果目標存在:如果DEST是文件:將SRC中的內容覆蓋至DEST中;(可以使用-i來提醒用戶是否覆蓋)
    (2)如果DEST是目錄文件:在DEST下新建與源文件同名的文件並將SRC中的內容填充至新文件中;
    情況二:如果SRC是目錄則必須使用-r選項
    (1)如果DEST存在,則其必須是目錄,否則報錯:現在DEST目錄下創建與SRC同名的目錄,並將SRC中的所有內容復制到DEST中
    (2)如果DEST不存在,則先創建DEST目錄,並將SRC中的所有內容復制到DEST目錄中

2.mv命令:move:
NAME

 mv - move (rename) files
         移動 (重命名)文件

SYNOPSIS

             單源移動 mv [OPTION]... [-T] SOURCE DEST
             多源移動 mv [OPTION]... SOURCE... DIRECTORY
             mv [OPTION]... -t DIRECTORY SOURCE..           

常用OPTION:

    -i:交互式
    -f:force 強制
  1. rm命令:
    NAME
    rm - remove files or directories

SYNOPSIS

       rm [OPTION]… FILE…

常用OPTION:

 -r, -R, –recursive:遞歸刪除目錄及其內容;
 -f,force:強制刪除,不提示確認;
 -i,–interactive:交互式,提示確認;

因為刪除命令是很危險的操作,請不要隨便使用刪除命令!
如需刪除可以先創建一個模擬回收站備份文件後,等確認沒用後再進行刪除;
技術分享圖片
極度危險

bash的工作特性

bash的基礎特性:命令的執行狀態結果

命令執行的狀態結果:
        bash通過狀態返回值來輸出此結果:
            成功:0
            失敗:1-255

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

    命令正常執行時,有的還回有命令返回值:
        根據命令及其功能不同,結果各不相同;

    引用命令的執行結果:
        $(COMMAND)
        或`COMMAND`

bash的基於特性:引用
    強引用:‘‘
    弱引用:""
    命令引用:``

bash基礎特性:快捷鍵
    Ctrl+a:跳轉至命令行行首
    Ctrl+e:跳轉至命令行行尾
    Ctrl+u:刪除行首至光標所在處之間的所有字符;
    Ctrl+k:刪除光標所在處至行尾的所有字符;
    Ctrl+l:清屏,相當於clear
  • 命令行展開
    ~:自動展開為用戶的家目錄,或指定的用戶的家目錄:
    { }:可承載一個以逗號分隔的路徑列表,並能夠將其展開為多個路徑:
    例如:/tmp/{a,b} 相當於 /tmp/a /tmp/b

文件的元數據信息

文件的數據分為兩類:一類為數據,即文件的實際內容;另一類為元數據,用來描述文件的特征。
元數據內容:
1.文件名
2.文件大小
3.文件所在數據塊
4.數據塊的大小
5.文件類型
6.文件所在的Inode
7.硬鏈接次數
8.權限
9.屬主id
10.屬組id
11.最近一次訪問時間戳
12.最近一次更改文件內容的時間戳
13.最近一次更改文件元數據的時間戳

  • 查看文件的元數據——stat命令

NAME

          stat - display file or file system status

SYNOPSIS

          stat [OPTION]... FILE...

OPTION

          -f 輸出文件系統的狀態,而非文件的狀態
          -t 顯示簡要格式的文件元數據信息
  • 修改文件的時間戳
    可以使用touch命令更改文件的時間戳:
    NAME
    touch - change file timestamps

SYNOPSIS

      touch [OPTION]... FILE...

常用OPTION:

   -a     change only the access time
           僅修改 access time;
   -c, --no-create
          do not create any files
   僅修改文件的時間,若該文件不存在則不創建新文件
   -d, --date=STRING
          parse STRING and use it instead of current time
          後面可以接欲修訂的日期而不用目前的日期,也可以使用 –date=”日期或時間”
         -m   change only the modification time
             僅修改 modification time ;
   -t STAMP
          use [[CC]YY]MMDDhhmm[.ss] instead of current time
   後面可以接欲修訂的時間而不用目前的時間,格式為[[CC]YY]MMDDhhmm[.ss]

命令的別名

定義別名命令——alias
使用alias命令就可以在命令中引用另一個命令的執行結果

語法:# alias name=’command line’

alias的作用僅在該次登入的操作,即輸入一次alias後,這個修改只在當前的Shell生效。如果重新開啟一個Shell,或者重新登錄,則這些alias將無法使用。
在Centos7中系統默認包含的有
技術分享圖片
alias永久化的方法:

(1)若要每次登入就自動生效別名,則把別名加在/etc/profile或~/.bashrc中。
然後# source ~/.bashrc

(2)若要讓每一位用戶都生效別名,則把別名加在/etc/bashrc最後面,
然後# source /etc/bashrc


練習:

請使用命令展開行功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c ,a_d , b_c , b_d

         mkdir -p {a,b}_{c,d}

技術分享圖片

(2)、創建/tmp/mylinux目錄下的:
mylinux/

├ ─ ─ bin

├ ─ ─ boot

│         └ ─ ─ grub

├  ─   ─  dev

├ ─ ─ etc

│         ├ ─ ─ rc.d

│         │         └ ─ ─ init.d

│         └ ─ ─ sysconfig

│                        └ ─ ─ network-scripts

├ ─ ─ lib

│        └ ─ ─ modules

├ ─ ─ lib64

├ ─ ─ proc

├ ─ ─ sbin

├ ─ ─ sys

mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys}
![](http://i2.51cto.com/images/blog/201810/07/1040103d5be01f587ebdd158fe127c5e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201810/07/9656f0b88119dfb267c11ebef9751b6e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

(3)、顯示/var目錄下所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。

    ls -d /var/l?[[:lower:]]
        ![](http://i2.51cto.com/images/blog/201810/07/50ae8af220becf818e06c9f318d61825.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

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

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

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

    ls -d /etc/[^a-z][a-z]*

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

    touch /tmp/tflie-$(date +\%F-\%H-\%M-\%S)

技術分享圖片

(7)、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

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

(8)、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

       cp -r /etc/*.d /tmp/mytest2/

(9)、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

        cp -r /etc/[lmn]*.conf /tmp/mytest3/

從零開始的Linux學習Ⅱ