1. 程式人生 > 實用技巧 >8-23 linux檔案管理常用命令和Bash特性

8-23 linux檔案管理常用命令和Bash特性

一、Linux目錄配置標準和檔案型別

1Linux 目錄配置標準FHS(Filesystem Hierarchy Standard)

FHS:

/boot: 引導檔案存放目錄,例如kernel(vmlinuz)bootloader(grub, grub2)

/bin: binary,供使用者使用的基本的命令;OS啟動即會用到程式;

/sbin:管理類的基本命令;

/lib: 基本共享庫;核心模組;

/lib64:x86_64系統的共享庫;

/etc:配置檔案目錄;

/home/USERNAME: 普通用主目錄的預設位置;

/root: 管理員的主目錄;

/media:行動式移動裝置;

/mnt:臨時檔案系統掛載點;

/opt: 可選目錄,第三方應用程式的預設安裝位置;

/devdevices,裝置檔案

bblock devicesrandom access

c: character deivceslinear access

/proc

偽檔案系統;用於輸出核心與程序的相關資訊;

/sys

偽檔案系統;

/srvservices,系統上執行服務用到中間資料;

/tmp:臨時檔案目錄;

/usrUniversal Shared, Read-only data;

bin:保證系統提供基本功能;

sbin

lib

lib64

include: C程式的標頭檔案;header files

share:結構化的獨立資料

doc, man

local:現在常用的第三方程式的安裝位置;

bin

sbin

lib

lib64

etc

share

/varvariable data files

cache:應用程式快取資料

lib:應用程式的狀態資訊資料

local:專用於為/usr/local下的應用程式儲存可變資料;

lock:鎖檔案

log:日誌檔案

opt:專用於/opt

spool:應用程式的資料池;

run:執行中的程序的相關資料;通常用守護程序的pid檔案;

/selinux

2Linux的檔案型別:

-(f):普通檔案

-d: 目錄檔案

-b: 塊裝置檔案

- c: 字元裝置檔案

- l: 符號連結檔案

- p:

命名管道檔案

-s:套接字檔案

二、Bash的基礎特性(1)

1history

預設儲存命令條數:HISTSIZE=1000

持久儲存位置:~/.bash_history

用法:history N:顯示最近的N

例:

wKioL1XcYKCSkJ0wAACa5Ghvb9E230.jpg

history -c:清空命令歷史中的命令

history -d OFFSET:刪除指定位置的命令

history –a /PATH/TO/SOMEFILE:儲存當前命令歷史中緩衝區的命令至指定檔案

呼叫此前執行過的命令

!#:再次執行命令歷史中第#條命令

!!:再次執行上一條

!STRING:再次執行命令歷史中最近一次以STRING開頭命令

2、命令補全功能:TAB

3、命令執行狀態回值

命令執行成功與否的狀態,由bash自己追蹤:儲存在特殊變數“#中;

0:成功 1-255:失敗

例:

wKiom1XcXpeTqioSAABa--IMbxY433.jpg

4、命令列展開

~:自動展開為當前使用者的主目錄

~ USERNAME:自動展開為指定使用者的家目錄

{}:使用花括號中內容可依次展開

例: /tmp/{x,y,z} 展開後為/tmp/x /tmp/y /tmp/z

/tmp/{x,y}/{m,n} 展開後為tmp/x/m /tmp/x/n /tmp/y/m /tmp/y/n

5、命令別名和命令引用

可用alias命令檢視目前定義的別名

例:

wKioL1XcYHLjzzzeAACoB4f8x7E028.jpg

wKioL1XcYDGgBSwdAAB7Y6WD_qE494.jpg

命令別名的定義方式:alias ALIAS=’command’

取消命令別名:unalias

例:

wKiom1XcXf6SkT44AAAdPQ-dy3s587.jpg

spacer.gif

特性:命令別名設定只對當前程序有效,重啟後恢復

命令別名和命令相同時,可使用\command,呼叫命令本身

三、Bash的基礎特性(02)

1、檔名萬用字元(globbing

檔名可用萬用字元

*:匹配任意長度的任意字元

例:p*d表示pad,ipad,pd

?:匹配任意單個字元

[ ]:字元範圍,匹配指定字元集合中的任意單個字元

例:[a-z]表示任意單個字母 [0-9]表示任意單個數字 [a-z0-9]表示任意單個字母或數字

[^ ]:字元範圍,匹配指定字元集合中的任意單個字元

字元集合表示方式

[:lower:]:所有的小寫字母

[:upper:]:所有的大寫字母

[:alpha:]:所有的字母

[:alnum:]:所有的數字和字母

[:punct:]:所有標點符號

[:space:]:所有的空白字元

[^[:lower:]]:取反

練習:

顯示/etc/目錄下,以非字母開頭,後面跟了一具字母及其它任意長度任意字元的檔案或目錄;

wKiom1XcXcfwXvamAAAqfhNb4-I166.jpg

2、組合鍵

Ctrl+l:清屏

Ctrl+a: 切換至命令列首

Ctrl+e:切換至命令列尾

Ctrl+c:取消命令執行

Ctrl+u:刪除游標所在處至行首的內容;

Ctrl+k: 刪除游標所在處至行尾的內容;

3IO重定向和管道

程式:指令+資料

讀入資料:Input

輸出資料:Output

開啟的檔案都一個fdfile descriptor

標準輸入:keyboard, 0, /dev/stdin

標準輸出:monitor, 1, /dev/stdout

標準錯誤輸出:monitor, 2, /dev/stderr

I/O重定向:

輸入重定向

輸出重定向:

COMMAND > NEW_POS, COMMAND >> NEW_POS

>:覆蓋重定向;

>>:追加重定向;

set -C

如果覆蓋重定向目標檔案存在,則禁止執行;

>|

set +C

錯誤重定向:

2>:覆蓋

2>>:追加

同時重定向標準輸出流和錯誤輸出流:

COMMAND > /path/to/file.out 2> /path/to/file.err

COMMAND > /path/to/file.out 2>&1

COMMAND &> /path/to/file.out

輸入重定向:

<

tr命令:

tr [OPTION]... SET1 [SET2]

-d: 刪除字元

Here Document<<

cat >> /path/to/somefile << EOF

管道:

COMMAND1 | COMMAND2 | ..

四、目錄管理類命令:

mkdir, rmdir, tree, dirname, basename

(1) mkdir

mkdir [OPTION] /PATH/TO/SOMEWHERE

-p:建立父目錄

-v: 顯示建立過程

練習:

如何建立目錄:x_m, x_n, y_m, y_n

wKioL1XcX7-T6QM7AAB8TdTqu2k540.jpg

(2) rmdir

rmdir /PATH/TO/SOMEWHERE

刪除空目錄;

(3) tree

tree [OPTION]... [DIR]

-d:只層級目錄型別的檔案;

-L level: 只顯示幾個層級;

五、文字檔案檢視命令:

cat, tac, more, less, tail, head

more, less

翻屏檢視;

more [OPTIONS]... FILE...

-d: 顯示翻頁有退出提示

Space: 向後一屏;

Enter: 向後一行;

b: 向前一屏;

less [OPTION]... FILE...

文字搜尋:

/KEYWORD

?KEYWORD

n: 與命令方向相同的下一個;

N:與命令方向相反的前一個;

headtail

head [OPTION]... FILE

tail [OPTION]... FILE

-n #

wKiom1XcXZDg51BRAACEBNnLT4I747.jpg

-#

-c #: 顯示前/#個位元組

tail的專用選項:

-f: follow

時間戳管理工具:touch

每個檔案都有三個時間戳:

atime: 檔案最近一次被訪問的時間;

mtime: 檔案最近一次被“修改”的時間;

ctime:檔案最近一次被“改變”的時間;

檔案資料:

metadata

data

touch [OPTION]... FILE...

更新時間戳至當前時間;

-a: 只更新atime

-m: 只更新mtime

-t STAMP:

[[CC]YY]MMDDhhmm[.ss]

-c: 不建立空檔案

wKioL1XcX4bjwNwKAAIvbB58OGs417.jpg

六、檔案管理命令:

cp, mv, rm

複製命令:cp, copy

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

cp SRC DEST:

SRC是檔案:

如果DEST不存在:新建目標檔案,並將SRC複製到目標檔案;

如果DEST存在:

如果DEST是檔案:用SRC的內容覆蓋至DEST檔案中;

如果DEST是目錄:在DEST目錄中新一個與原檔案同名的檔案,將將SRC內容複製到新建的同名的目標檔案中;

cp SRC... DEST:

如果DEST不存在:

是錯誤的;

如果DEST存在:

如果DEST是檔案:錯誤;

如果DEST是目錄:

常用選項:

-r, -R: 遞迴複製;

-d: 不跟蹤符號連結;

--preserve[=ATTR_LIST]

mode, ownership, timestamps

context, links, xattr, all

-a: -dR --preseve=all

-i: interactive

-f: force

-v: 顯示過程

mv: move, 移動檔案

mv [OPTION]... [-T] SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY SOURCE...

常用選項:

-i:互動式

-f:強制

rm: remove

rm [OPTION]... FILE...

只刪除檔案;

常用選項:

-r:

-f:

-i:

文字編輯器:

nano

七、檔案處理工具:

wcword counts

wc [OPTION]... FILE...

-l: 顯示行數

-w: 顯示單詞數

wKiom1XcXRCzKNagAAA3xb7WetM828.jpg

cut

cut OPTION... [FILE]...

-d: 指明分隔符;-d' ', -d:

-f:指明要顯示的欄位

#:

#-#1-3

#,#: 1,3,7

wKioL1XcXvvi-XLkAADG5DcRaj0753.jpg

sort命令:排序

sort [OPTION]... [FILE]...

-r: 逆序

-f: 忽略字元大小寫

-u: 排序後去重

-t CHAR: 指明分隔符

-k #: 欄位

-n: 表示以數值大小排序

uniq命令:

uniq [OPTION]... [FILE]...

-c: 顯示每行重複的次數;

-d: 只顯示重複過的行;

-u: 只顯示不曾重複的行;

wKioL1XcXomREOYiAACqRnnx1Bc444.jpg

轉載於:https://blog.51cto.com/liulongthe/1688215