1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示
答:針對文件常用的命令有如下幾大類:
a)文件創建命令 touch
touch /path/filename —-新建一個空的文件
b)文件復制命令 cp
cp /path1/filename1 /path2/ —-復制path1路徑下的filename1文件到path2路徑下,并保持文件名不變
cp /path1/filename1 /path2/filename2 —-復制path1路徑下的filename1文件到path2路徑下,并修改文件名為filename2
其中cp命令中幾個常用參數如下:
-d:如果復制的是鏈接文件,則保留鏈接文件屬性,而非復制文件的實際數據
-l:以硬鏈接方式復制,而非復制文件的實際數據
-R(-r):執行遞歸復制,主要針對目錄文件
-i:執行交互式復制,復制過程中會詢問用戶的選擇
-p:保留源文件的基本屬性,而非自動繼承目的路徑的屬性
–presever=all:保留除-p基本屬性之外的其他屬性,如xattr(括展屬性),SElinux上下文屬性等
-a:等同于-dR –preserve=all
c)文件移動命令 mv
mv /path1/filename1 /path2/ —-復制path1路徑下的filename1文件到path2路徑下,并保持源文件名不變,同時刪除path1路徑下的源文件
mv /path1/filename1 /path2/filename2 —-復制path1路徑下的filename1文件到path2路徑下,并修改文件名為filename2,同時刪除path1路徑下的源文件
其中mv命令中幾個常用參數如下:
-i:執行交互式操作,文件或者目錄移動過程中會詢問用戶的選擇
-f:強制模式,不詢問用戶的選擇,強制執行命令動作
-u:更新模式,當目標文件比源文件陳舊時,執行mv操作,反之則不執行
d)文件刪除命令 rm
rm /path/filename —-刪除文件或者目錄
其中rm命令中常用參數如下:
-i:交互式操作,刪除過程中詢問用戶的選擇
-f:強制模式,直接執行刪除不詢問用戶選擇
-r:遞歸模式,以遞歸方式執行刪除文件或目錄,此方式可以用戶對非空目錄的刪除
e)遍歷文件命令 ls
ls /path/filename
其中ls命令中常用參數如下:
-l:長格式顯示文件的信息,7段文件信息(文件類別與文件基本權限,鏈接次數,文件屬主,文件屬組,文件大小,文件創建時間日期,文件名)
-d:僅顯示目錄文件,不顯示目錄下所含的文件以及子目錄
-Z:顯示文件的SElinux上下文屬性
-i:顯示文件或目錄的i-node信息
-R:遞歸顯示目錄以及目錄所包含的文件和子目錄信息
-t:按時間排序,而非默認的文件名字符排序
-S:按文件大小排序
-r:反向輸出排序結果,常和-t,-S等聯合使用
-n:顯示屬主,屬組的id號,而非其名稱
-h:按照人類易讀的數值顯示文件大小信息
–color=auto:自動顯示不同文件類別的顏色(如:藍色代表目錄文件,紫色代表鏈接文件,黃色代表設備文件,黑色代表普通文件)
f)文件基名與目錄名
basename /path/filename —-顯示/path/filename中的基名,即filename
dirname /path/filename —-顯示/path/filename中的目錄名,即path
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
答:
命令執行狀態分為如下兩種:
執行成功:0
執行失?。?-255
使用“$?"特殊變量保存命令執行的狀態返回值
例如:
~]$ ls /etc/abc
ls: 無法訪問/etc/abc: 沒有那個文件或目錄
# 執行ls命令提示錯誤,沒有找到相應文件或目錄
此時查詢命令執行狀態返回值如下
~]$ echo $?
2
#返回值是2(失?。?/span>
~]$ cd /yes
bash: cd: /yes: 沒有那個文件或目錄
#執行目錄切換命令,提示不存在/yes目錄
~]$ echo $?
1
#查詢命令執行狀態返回值是1(失敗)
~]$ cd /etc/
etc]$
#執行正確的目錄切換命令,切換目錄到/etc下
etc]$ echo $?
0
#查詢命令執行狀態返回值是0(成功)
命令行展開有如下幾種
~:表示當前用戶的家目錄
etc]$ cd ~
~]$
~account:表示指定account賬戶的家目錄
~]# cd ~user1
user1]#
{}:可以代表花括號內以逗號(,)分割的多個表示路徑的名稱,例如 /etc/{path1,path2} 代表/etc/path1以及/etc/path2兩個目錄
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c,a_d,b_c,b_d
答:mkdir /tmp/{a,b}_{c,d}
(2)、創建/tmp/mylinux目錄下的:
mylinux/
|——bin
|——boot
|——grup
|——dev
|——etc
|——rc.d
|——init.d
|——sysconfig
|——network-scripts
|——lib
|——modules
|——lib64
|——proc
|——sbin
|——sys
|——tmp
|——usr
|——local
|——bin
|——sbin
|——var
|——lock
|——log
|——run
答:mkdir -p /tmp/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
4、文件的元數據信息有哪些,分別表示什么含義如何查看?如何修改文件的時間戳信息。
答:文件的元數據包含文件的權限,文件的屬性以及括展屬性,文件所對應的inode號等信息,通過stat查看文件元數據信息
使用touch命令,vim編輯文件,mv修改文件名等都可以影響文件的時間戳
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
答:
定義別名:alias 命令1=‘命令2’
命令引用:通過管道符號“|”,把前一個命令的結果作為下一個命令的輸入,例如:echo “redhat”| passwd –stdin user表示把前一個echo顯示的redhat字符作為后一個passwd密碼輸入的值
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄
答:ls -r /var | grep ^l.*[0-9]\{1,\}.*[a-z]$ 或者 ls -d /var/l*[0-9]*[a-z]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
答:ls -r /etc | grep ^[0-9].*[^0-9]$ 或者 ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭后面跟了一個字母以及其他任意長度任意字符的文件或目錄
答:ls -r /etc | grep ^[^[:alpha:]][[:alpha:]].* 或者 ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
答:touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
答:cp -a /etc/p*[^0-9] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
答:cp -a /etc/*.d /tmp/mytest2
12、復制/etc目錄下所有以l或者m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
答:cp -a /etc/[l,m,n]*.conf /tmp/mytest3
原創文章,作者:N24_shishen,如若轉載,請注明出處:http://www.www58058.com/60073