1.常見的文件管理命令
常見的文件查看類命令:cat, tac, head, tail, more, less
分屏查看命令:more和less
more FILE
特點:翻屏至文件尾部后自動退出;
less命令:
翻屏:
空格:向文末翻一頁
b:向文首翻一頁
Ctrl+d:向文末翻半頁
Ctrl+u:向文首翻半頁
回車鍵:向文末翻一行
k:向文首翻一行
G:跳轉至最后一行
#G:跳轉至指定行
1G:跳轉至文件首部
文本搜索:
/keyword:從文件首到文件尾部依次查找:不區分大小寫
?keyword:從文件尾部到首部依次查找
n:與查找命令方向相同
N:與查找命令方向相反
head命令:
查看文件的前n行;默認前10行
head [options] FILE
tail命令:
查看文件的后n行;
tail [options] FILE
-n #
-#
-f:查看文件尾部內容結束后不退出,動態顯示新增的行;
stat命令:(顯示元數據信息)
stat – display file or file system status
stat FILE…
文件:由兩類數據組成,分別是元數據和數據

元數據:如圖所示,文件的元數據信息顯示的都是文件的屬性。包括文件名,文件大小,塊大小,位置信息,權限,所有者,所屬組,時間戳等信息。
時間戳:
最近訪問:2018-06-22 14:04:07.596960757 +0800 access time(atime)? 最后讀取文件內容的時間
最近更改:2018-06-22 14:04:07.596960757 +0800 modify time(mtime)? 數據改變
最近改動:2018-06-22 14:04:07.596960757 +0800 changge time(ctime) 元數據改變(數據改變必定引起元數據改變)
修改時間戳用下面的touch命令。

touch命令:
touch – change file timestamps,創建的是空文件
touch [OPTION]… FILE…
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP? 自己指定要改的時間戳
[[CC]YY]MMDDhhmm[.ss]
文件管理工具: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…
如:cp aa bb cc mysysroot/? ? cp /etc/{issue,fstab} /tmp/
如果DEST不存在:錯誤;
如果DEST存在:
如果DEST是非目錄文件:錯誤;
如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名;
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r, -R:遞歸復制目錄;復制整個目錄,包括里面的文件
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于實現歸檔;
mv命令:move 移動或重命名文件
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
常用選項:
-i:交互式;
-f:force
rm命令:remove? 刪除文件或目錄
rm [OPTION]… FILE…
常用選項:
-i:interactive? 交互式
-f:force 強制
-r: recursive? 遞歸刪除
示例如下:
[root@localhost tmp]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost tmp]# tac passwdxz:x:1000:1000:xz:/home/xz:/bin/bashtcpdump:x:72:72::/:/sbin/nologin
[root@localhost tmp]# head -2 passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost tmp]# tail -2 passwdtcpdump:x:72:72::/:/sbin/nologinxz:x:1000:1000:xz:/home/xz:/bin/bash

[root@localhost tmp]# cp -r /etc/passwd /tmp/mysysroot/? ? 遞歸復制目錄

2.bash基礎特性之命令返回值和命令展開
一條命令執行之后會有兩種返回結果,一種是命令的返回值,還有就是命令狀態返回值。
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
#echo $?
命令正常執行時,有的還會有命令返回值:根據命令及其功能不同,結果各不相同;
引用命令的執行結果:
$(COMMAND) 或`COMMAND`
示例:


bash基礎特性之命令行展開:
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
示例如下:



別名概述
命令除了擁有自身本來的名字外,還可以設置別名,即在本名的基礎上多加些參數,將本來的功能加強,方便使用。
獲取所有可用別名的定義:
~]# alias
定義別名:
~]# alias NAME=’COMMAND’
注意:僅對當前shell進程有效,即當前登錄的客戶端
撤銷別名:
~]# unalias NAME

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

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

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

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

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

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

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

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