8-23 linux檔案管理常用命令和Bash特性
一、Linux目錄配置標準和檔案型別
1、Linux 目錄配置標準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: 可選目錄,第三方應用程式的預設安裝位置;
/dev:devices,裝置檔案
b:block devices,random access
c: character deivces,linear access
/proc:
偽檔案系統;用於輸出核心與程序的相關資訊;
/sys:
偽檔案系統;
/srv:services,系統上執行服務用到中間資料;
/tmp:臨時檔案目錄;
/usr:Universal Shared, Read-only data;
bin:保證系統提供基本功能;
sbin
lib
lib64
include: C程式的標頭檔案;header files
share:結構化的獨立資料
doc, man
local:現在常用的第三方程式的安裝位置;
bin
sbin
lib
lib64
etc
share
/var:variable data files
cache:應用程式快取資料
lib:應用程式的狀態資訊資料
local:專用於為/usr/local下的應用程式儲存可變資料;
lock:鎖檔案
log:日誌檔案
opt:專用於/opt
spool:應用程式的資料池;
run:執行中的程序的相關資料;通常用守護程序的pid檔案;
/selinux
2、Linux的檔案型別:
-(f):普通檔案
-d: 目錄檔案
-b: 塊裝置檔案
- c: 字元裝置檔案
- l: 符號連結檔案
- p:
-s:套接字檔案
二、Bash的基礎特性(1)
1、history
預設儲存命令條數:HISTSIZE=1000
持久儲存位置:~/.bash_history
用法:history N:顯示最近的N個
例:
history -c:清空命令歷史中的命令
history -d OFFSET:刪除指定位置的命令
history –a /PATH/TO/SOMEFILE:儲存當前命令歷史中緩衝區的命令至指定檔案
呼叫此前執行過的命令
!#:再次執行命令歷史中第#條命令
!!:再次執行上一條
!STRING:再次執行命令歷史中最近一次以STRING開頭命令
2、命令補全功能:TAB
3、命令執行狀態回值
命令執行成功與否的狀態,由bash自己追蹤:儲存在特殊變數“#?”中;
0:成功 1-255:失敗
例:
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命令檢視目前定義的別名
例:
命令別名的定義方式:alias ALIAS=’command’
取消命令別名:unalias
例:
特性:命令別名設定只對當前程序有效,重啟後恢復
命令別名和命令相同時,可使用\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/目錄下,以非字母開頭,後面跟了一具字母及其它任意長度任意字元的檔案或目錄;
2、組合鍵
Ctrl+l:清屏
Ctrl+a: 切換至命令列首
Ctrl+e:切換至命令列尾
Ctrl+c:取消命令執行
Ctrl+u:刪除游標所在處至行首的內容;
Ctrl+k: 刪除游標所在處至行尾的內容;
3、IO重定向和管道
程式:指令+資料
讀入資料:Input
輸出資料:Output
開啟的檔案都一個fd:file 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?
(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:與命令方向相反的前一個;
head和tail:
head [OPTION]... FILE
tail [OPTION]... FILE
-n #
-#
-c #: 顯示前/後#個位元組
tail的專用選項:
-f: follow
時間戳管理工具:touch
每個檔案都有三個時間戳:
atime: 檔案最近一次被訪問的時間;
mtime: 檔案最近一次被“修改”的時間;
ctime:檔案最近一次被“改變”的時間;
檔案資料:
metadata
data
touch [OPTION]... FILE...
更新時間戳至當前時間;
-a: 只更新atime
-m: 只更新mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-c: 不建立空檔案
六、檔案管理命令:
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
七、檔案處理工具:
wc:word counts
wc [OPTION]... FILE...
-l: 顯示行數
-w: 顯示單詞數
cut:
cut OPTION... [FILE]...
-d: 指明分隔符;-d' ', -d:
-f:指明要顯示的欄位
#:
#-#:1-3
#,#: 1,3,7
sort命令:排序
sort [OPTION]... [FILE]...
-r: 逆序
-f: 忽略字元大小寫
-u: 排序後去重
-t CHAR: 指明分隔符
-k #: 欄位
-n: 表示以數值大小排序
uniq命令:
uniq [OPTION]... [FILE]...
-c: 顯示每行重複的次數;
-d: 只顯示重複過的行;
-u: 只顯示不曾重複的行;
轉載於:https://blog.51cto.com/liulongthe/1688215