Linux基礎之文件管理和bash特性

部分文件管理命令,bash的一些基礎特性,部分glob文件匹配示例

文件管理命令:

?cp命令:針對文件內容進行復制,元數據不會復制到目標文件或目錄中

單源復制:cp [OPTION] source destination

  • 若目標文件不存在,則先創建文件在copy
  • 若目標是非目錄文件(目標文件非空),則覆蓋目標文件
  • 若目標是目錄文件,則在目標目錄中創建文件,再復制數據到該文件中
  • 若源是目錄的話,默認復制不會成功,需要附帶選項(-r)

示例:? cp /etc/fstab /tmp/fstab

多源復制:多個文件復制

  • 若目標文件不存在,則不能復制
  • 若目標不是目錄文件,則不能復制
  • 若目標為目錄,則在目錄中創建這幾個文件,并復制相應的數據進文件中

? 常見選項:

  • -i:interactive,進行復制操作之前會提示用戶
  • -f:強制覆蓋目標文件
  • -r:遞歸復制目錄(子目錄也會復制)
  • -d:只復制鏈接本身,鏈接所指向的目標文件不復制,preserve=links
  • -a:復制鏈接本身及所指向的目標文件,包括元數據,presereve=all

mv命令:復制文件至目標文件,然后刪除原文件

? 規則:mv [OPTION] source DEST

? 示例:mv /tmp/zabbix_server.log /var/log/

? 常見選項:

  • -i:interactive
  • -f:強制移動force

rm命令:刪除文件

? 規則:rm [OPTION] FILE

? 示例:rm –rf /tmp/123/1.txt

? 選項:

  • -i:interactive
  • -f:強制刪除
  • -r:recursive,遞歸刪除)(此選項慎用)

cd命令:切換目錄change directory

? 規則:cd /some/dirtectory

? 示例:cd /etc/inittab

pwd命令:顯示當前目錄,內建命令,可直接使用

?

ls命令:顯示指定目錄或文件的內容

? 規則:ls [OPTION] /file/or/directory

? 示例:ls –l /etc/init.d

命令執行狀態返回值:

命令執行結果只有兩種情況:

成功:返回值一定為0

失?。?/strong>返回值1-255都有可能

bash使用特殊變量$?來存放最近一次命令執行的返回狀態值,可使用echo $?來得到命令的執行結果狀態

命令行展開:

~展開為root的家目錄

~USERNAME為用戶USERNAME的家目錄

{ }可以承載逗號分隔的列表,并將其展開為多個路徑

示例:touch /{x,y}/{a,b}相當于創建了四個文件/x/a,/x/b,/y/a,/y/b

(1)創建/tmp目錄下的:a_c, a_d, b_c, b_d

touch {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

├── tmp

├── usr

│?? └── local

│?????? ├── bin

│?????? └── sbin

└── var

├── lock

├── log

└── run

touch /tmp/myselinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,prooc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

文件的元數據:

? ? ? 元數據分類:

  • mode:權限
  • ownership:屬主屬組
  • timestamp:時間戳
  • links:符號連接
  • xattr:擴展屬性
  • context:安全標簽
  • 文件大小

??????元數據查看:

? stat命令可以查看文件的元數據

規則:stat [OPTION] [FILE]

示例:stat –f /etc/fstab(顯示文件所在文件系統的信息而不是文件信息)

? ? ??元數據時間戳修改:

? touch命令可以修改時間戳

?規則:touch [OPTION] FILE

?示例:touch –a /tmp/log/zabbix_server.log(修改文件的存取時間)

? 選項:

  • -a:只更改存取時間
  • -d:使用指定日期時間
  • -m:更改修改時間(modify time)
  • -r:將文件的時間更改為參考值(-reference=FILE)
  • -t:使用指定時間

bash特性之命令別名及命令結果引用:?

? ?命令別名的定義:

命令的定義使用alias命令(只在當前shell進程有效)

? 規則:alias string=’COMMAND [OPTION] [argument]’

? 示例:alias rm=’mv -i’

? ?命令結果引用:

  • $(name):將括號內運行的內容作為變量引用
  • `name`:反引號,與$(name)的用法相似
  • 管道:具有一定的邏輯結構,上一個命令的運行結果作為參數傳遞到下一個命令

bash特性之glob文件匹配:

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

ls –ld /var/l*[[:digit:]]lower:]]

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

ls –ld /etc/[[:digit:]]*[^[:digit:]]

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

ls –ld /etc/[^[:alpha:]][[:alpha:]]*

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

touch /tmp/tfile-$(date +%Y-%m-%d-%H-%m-%S)

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

cp –R /etc/p*[^[:digit:]] /tmp/test1

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

cp -R /etc/*.d /tmp/test2

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

cp –R /etc/{l,m,n}*.conf /tmp/mytest3

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91156

(0)
~~
上一篇 2018-01-16 20:20
下一篇 2018-01-17 11:44

相關推薦

  • OpenStack私有云部署

    前言 相信你一定對“云主機”一詞并不陌生吧,通過在Web頁面選擇所需主機配置,即可快速定制一臺屬于自己的虛擬主機,并實現登陸操作,大大節省了物理資源。但這一過程是如何實現的呢?本文帶來OpenStack Icehouse私有云實戰部署。 OpenStack 簡介 OpenStack是由網絡主機服務商Rackspace和美國宇航局聯合推出的一個開源項目,Ope…

    2016-12-19
  • Nginx配置進階

    目錄 ngx_http_rewrite_module模塊 ngx_http_gzip_module模塊 ngx_http_fastcgi_module模塊 ngx_http_ssl_module模塊 ngx_http_referer_module模塊 ngx_http_rewrite_module模塊 將用戶某一次請求的URI當中的字符串是不是能夠被我們給出…

    Linux干貨 2016-11-05
  • Linux bash 特性、相關變量以及編程

    Linux bash 特性、相關變量以及編程 bash 特性之:命令hash 緩存此前執行過的命令(都是外部命令,不記錄內嵌命令),加速命令的執行 hash    -d 清空指定命令記錄   -r 直接清空hash表 bash 特性之一: 變量 程序=指令+數據 指令是有文件提供 數據是由…

    Linux干貨 2016-12-29
  • Centos6搭建vsftpd手冊

    1、開啟防火墻ftp端口vi /etc/sysconfig/iptables     #編輯防火墻配置文件 1 -A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT(允許21端口通過防火墻) 2 -A INPUT -m st…

    Linux干貨 2017-04-26
  • 系統管理之網絡管理

    今天給大家分享一些網絡方面的知識,,這塊的知識很重要哦,都是涉及網絡最底層的鏈路和協議,是我們學習大型服務的基礎,和前提.希望大家努力理解這方面的內容,今天的內容大概有這幾方面: 1.計算機網絡概念 2.計算機網絡體系結構 3.物理層 4.數據鏈路層 5.網絡層 6.IP地址及子網 7.傳輸層 8.應用層 計算機網絡概念 計算機網絡是個發展中的概念和技術,具…

    Linux干貨 2016-09-05
  • 實驗:系統啟動和內核管理

    實驗:bootloader 破壞stage1: 備份:dd if=/dev/sda of=/app/mbr bs=1 count=512 破壞:dd if=/dev/zero of=/dev/sda bs=1 count=446;此時/boot/grub/下的文件沒有任何改動; 表現:stage1破壞后系統會直接進行光盤引導 修復1:救援模式–&…

    Linux干貨 2017-05-14

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-02-07 10:16

    總結的比較全,最后的例子可以多想幾種方式來處理~

欧美性久久久久