Week2 bash特性及文件相關

1. 文件類命令及其常用的使用方法

文本查看類命令
cat head tail more less

分屏查看命令

more less
more FILE 翻至最后一頁自動退出
less FILE -f 翻至最后一頁不退出 若有追加內容則立即顯示

首尾查看命令
head tail

head命令: 查看文件前n行

head FILE
head [option] FILE
head -20 /etc/rc.d/init.d/functions

tail命令:查看文件的后n行

tail FILE
-f: 顯示文件后不退出等待追加的新行并立即顯示
tail -20 /etc/rc.d/init.d/functions

文件管理類
cp mv rm

cp命令: copy

cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…

單源復制

 cp [OPTION]... [-T] SOURCE DEST
 若DEST不存在: 創建此文件并復制源文件數據流至DEST中
 若DEST存在:
  若DEST是非目錄文件,則覆蓋目標文件
  若DEST是目錄,則先在DEST目錄下創建一個與源文件同名的文件 并復制其數據流至此文件

多源復制

cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
        若DEST不存在->error
        若DEST存在,
            DEST是非目錄文件->error
            DEST是目錄文件:分別復制每一個文件至目錄目錄并保持原名
    選項
        -i: 交互式復制,即覆蓋之前提醒用戶確認        -f:強制覆蓋目標文件
        -r/R:遞歸復制目錄:        -d:復制符號鏈接本身 而非其指向的源文件        -a: -dR --preserve=all   archive歸檔
        --preserve=
            mode ownership timestamps context xattr links all

mv命令: move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…

   -i:交互式   -f:force

rm命令: remove

    -i:交互式    -f:force
    -r:recursive
     rm -rf /PATH/TO/DIR

所有不用的文件建議不要直接刪除,而是移動到某專用目錄(模擬回收站)

2. bash的工作特性

2.1 命令執行狀態返回值

命令執行結果:
命令執行狀態返回值:
保存于bash的特殊變量$? 成功:0 失敗1-255

2.2 引用

強引用 'XXX' 單引號——不做替換直接顯示
弱引用 "XXX" 雙引號——變量會被替換
命令引用——替換為命令執行結果
$(COMMAND)
`COMMAND`

  [root@node2 ~]# A=20
  [root@node2 ~]# echo '$A'
  $A
  [root@node2 ~]# echo "$A"
  20
  [root@node2 ~]# echo date
  date
  [root@node2 ~]# echo $(date)
  Sun Dec 11 10:21:16 CST 2016

2.3 命令行展開

命令行展開
~:可承載一個逗號分隔的路徑列表,并將其展開為多個路徑

創建 /tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2
  mkdir -pv /tmp/x/{y1/{a,b},y2}

tree命令:顯示目錄結構
tree [options] directory
-L 顯示層數

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

   mkdir -pv /tmp/{a,b}_{c,d}

(2)創建/tmp/mylinux目錄下的/下的各一級目錄及其部分子目錄:

  mkdir -p /tmp/mysysroot/{bin,sbin,etc/sysconfig/network-scripts,usr{/bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var{/cache,log,run}}

2.4 文件名通配符使用

globbing: 文件名通配
匹配模式: 元字符

 *: 匹配任意長度的任意字符
 ?: 匹配任意單個字符 []:匹配指定范圍內的任意單個字符        [a-z],[A-Z],[0-9],[a-z0-9]
        [[:upper:]] [[:lower:]] [[:alpha:]]        [[:digit:]] 
        [[::alnum]] 字母+數字        [[:space:]] 
        [[:punct:]] 標點符號 [^]:匹配指定范圍外的任意單個字符        [^0-9]
        [^[:alnum:]]

練習:
顯示/var目錄下所有以l開頭 以小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄

ls /var/l[0-9][[:lower:]]

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

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

顯示在/etc目錄下以非字母開頭后跟一個字母以及其他任意長度任意字符的文件或目錄>ls /etc/[^[:alpha:]][:alpha:]*

在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件 tfile-2016-05-27-09-32-22

touch "tfile-$(date "+%Y-%m-%d-%H-%M-%S")"

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

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

復制/etc所有以.d結尾的文件或目錄至/tmp/mytest2目錄中

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

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

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

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

文件分數據和元數據
數據:data –> cat等看到的內容
元數據:meta data –>文件自身的屬性 stat看到的信息

文件大小 文件類型 權限 IO塊數 屬主屬組ID號 時間戳

時間戳:
Access: 2016-12-10 14:36:34.574026967 +0800Modify: 2014-04-02 23:30:47.000000000 +0800 數據改變
Change: 2016-11-12 01:17:23.004986603 +0800 元數據改變

可用stat命令查看文件元數據

touch:change timestamps

touch [OPTION]..FILE
  -c 文件不存在時不予創建
  -a 僅修改access time
  -m 僅修改modify time
  -t STAMP YYMMDDhhmm[.ss]
touch -m -t 201312010303.03 /tmp/1.txt

原創文章,作者:alonedreamer,如若轉載,請注明出處:http://www.www58058.com/63183

(0)
alonedreameralonedreamer
上一篇 2016-12-11
下一篇 2016-12-11

相關推薦

  • Linux Zabbix監控

                           Linux Zabbix監控 zabbix監控系統:    zabbix是基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zab…

    Linux干貨 2016-11-19
  • 淺談群紅包的實現

    前言:紅包是支付的方式, 也是社交的延伸。群紅包在這兩塊領域串聯得很好, 表現尤為的濃墨重彩. 承接上兩篇技術淺談:1). 淺談接龍紅包的技術實現.2). 淺談微信紅包搖一搖的技術實現.這一次, 讓我們談談群紅包的技術實現. 一為是紅包的分配算法, 二為競搶的技術實現. 分配算法:最初玩群紅包的時候, 并沒有意識到分配算法的難度…

    Linux干貨 2015-03-10
  • 文本處理和正則表達式練習(0805)

    1、找出ifconfig命令結果中本機的所有IPv4地址     1.1 Centos7     1.2 Centos6 2、查出分區空間使用率的最大百分比值,取各分區利用率的數值 取出各分區數值 取出最大百分比 3、查出用戶UID最大值的用戶名、 UID及shell類型 4、查出/tmp…

    Linux干貨 2016-08-06
  • linux系統網絡配置基礎實例(網卡別名、bong、路由)

    概述:本文主要介紹網卡別名(一張網卡多個IP)、bonging(多張網卡綁定一個IP)、以及路由實驗 Linux網絡配置基礎 基本網絡配置 將Linux主機接入到網絡,需要配置網絡相關設置。一般包括如下內容:主機名:hostname示例:臨時有效 [root@centos6 ~]# hostname MyHostName [ro…

    Linux干貨 2016-09-06
  • 文件權限解析

    文件權限其實就是用戶和用戶組對文件或目錄進行操作的權力。 文件的屬性           上圖中顯示詳細信息文件的詳細屬性,以最后一行為例從左向右依次說明:     1、drwxr-xr-x.    …

    2015-03-23
  • 馬哥教育網絡班21期+第3周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 //使用who命令列出列出當明顯登錄的所有用戶,使用cut命令取出用戶名,使用sort命令去重即可// [root@localhost ~]# who | cut -d' ' -f1…

    Linux干貨 2016-08-08

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 23:22

    贊,基礎內容的總結將成為后面最寶貴的記憶~繼續加油~

欧美性久久久久