1悼凑、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關(guān)示例演示鸡捐。
(1)目錄管理命令
——ls:列出指定目錄下的內(nèi)容
格式:ls [OPTION]... [FILE]...
? ? ? ? -a:顯示所有文件包括隱藏文件
-A:顯示除.和..之外的所有文件
-l栈暇,--long:顯示文件的詳細(xì)屬性信息
-h:對文件大小進(jìn)行單位換算,可能影響精度
-d:查看目錄本身而非其內(nèi)部的文件
-r:逆序顯示文件
-R:遞歸顯示文件
示例:ls -lah / --詳細(xì)顯示/目錄下的所有文件(包括隱藏文件)
——mkdir:創(chuàng)建目錄
格式:mkdir [OPTION]... DIRECTORY...
-p:遞歸創(chuàng)建目錄
-m:創(chuàng)建目錄時給定權(quán)限
示例:mkdir -m 711 -p /data/MODE/A --在/data目錄下遞歸創(chuàng)建MODE/A兩個目錄同時指定目錄A的權(quán)限為711
——rmdir:刪除目錄
格式:rmdir [OPTION]... DIRECTORY...
-p:刪除目錄后如果其父目錄為空箍镜,則一并刪除
示例:rmdir -p /data/test/A --刪除A目錄后源祈,test目錄為空,一并刪除
——cd:切換目錄
示例:cd ..:切換到上級目錄
cd ~:切換回自己的家目錄
cd -:在上一次目錄與當(dāng)前目錄直接來回切換
——pwd:顯示當(dāng)前目錄
(2)文件管理命令
——cp:復(fù)制
格式:單源復(fù)制:cp [OPTION]... [-T] SOURCE DEST(如果DEST不存在則創(chuàng)建色迂,存在則覆蓋)
多源復(fù)制:cp [OPTION]... SOURCE... DIRECTORY(DEST必須為directory)
-i:交互式復(fù)制香缺,即覆蓋前提醒用戶確認(rèn)
-f:強(qiáng)制覆蓋目標(biāo)文件
-r,-R:遞歸復(fù)制目錄
示例:cp -if /data/[1-3].txt /data/test --test必須為目錄,把三個文件一起復(fù)制到test中
cp -r /data /practice --把data目錄及目錄下的內(nèi)容一起復(fù)制到practice中
——mv:剪切
格式:單源剪切:mv [OPTION]... [-T] SOURCE DEST(如果DEST不存在則創(chuàng)建歇僧,存在則覆蓋)
多源剪切:mv [OPTION]... SOURCE... DIRECTORY(DEST必須為directory)
-i:交互式復(fù)制图张,即覆蓋前提醒用戶確認(rèn)
-f:強(qiáng)制覆蓋目標(biāo)文件
示例:mv -i /data/[1-3].txt /practice --把/data目錄下三個txt文件剪切到/practice下
——rm:刪除
格式:rm [OPTION]... FILE...
-i:交互式復(fù)制锋拖,即覆蓋前提醒用戶確認(rèn)
-f:強(qiáng)制覆蓋目標(biāo)文件
-r,-R:遞歸處理祸轮,將制定目錄下的所有文件包括目錄一并刪除
示例:rm -rf /practice --遞歸刪除/practice目錄
(3)文本內(nèi)容管理命令
——cat:正向查看文本內(nèi)容
格式:cat [OPTION]... [FILE]...
-n:給顯示的文本行編號
-E:顯示行結(jié)束符號$
示例:cat -n /etc/fstab --查看/etc/fatab內(nèi)容并顯示行號
——tac:倒敘查看文本內(nèi)容
格式:tac [OPTION]... [FILE]...
示例:tac /etc/passwd --倒敘查看文本內(nèi)容
——head:顯示文本內(nèi)容兽埃,默認(rèn)顯示頭10行
格式:head [OPTION]... [FILE]...
-n #:顯示文本頭#行內(nèi)容
示例:head -5 /etc/passwd --顯示/etc/passwd文件頭5行內(nèi)容
——tail:顯示文本內(nèi)容,默認(rèn)顯示后10行
格式:tail [OPTION]... [FILE]...
-n #:顯示文本后#行內(nèi)容
-f:查看文件尾部內(nèi)容結(jié)束后不退出适袜,跟隨顯示新增的行
示例:tail -8 /etc/passwd --顯示/etc/passwd文件后8行內(nèi)容
——more:分屏顯示文本內(nèi)容柄错,每次顯示一屏顯示完停止
格式:more [options] file [...]
Space鍵:顯示文本下一屏內(nèi)容
Enter鍵:只顯示文本下一行內(nèi)容
b鍵:顯示文本上一屏內(nèi)容
q鍵:退出
——less:分屏顯示文本內(nèi)容,不主動退出
格式:less [options] file [...]
Space鍵:顯示文本下一屏內(nèi)容
Enter鍵:只顯示文本下一行內(nèi)容
b鍵:顯示文本上一屏內(nèi)容
q鍵:退出
2苦酱、bash的工作特性之命令執(zhí)行狀態(tài)返回值和命令行展開所涉及的內(nèi)容及其示例演示售貌。
bash特性之一:命令別名?
獲取當(dāng)前用戶可用的別名的定義:?
bash的特性之二:命令歷史?
命令語法格式:?
history [-c] [-d OFFSET] [n]?
history -anrw [FILENAME]?
history -ps VALUE [VALUE…]?
-c: 清空命令歷史;?
-d offset(偏移量):刪除指定命令歷史疫萤,offset為history顯示出來的命令數(shù)字?
-r: 從文件讀取命令歷史至歷史列表中颂跨;?
-w:把歷史列表中的命令追加至歷史文件中;?
history #:顯示最近的#條命令给僵;
bash特性之三:快捷鍵?
Ctrl+a:跳轉(zhuǎn)至命令行行首?
Ctrl+e:跳轉(zhuǎn)至命令行行尾?
Ctrl+u:刪除行首至光標(biāo)所在處之間的所有字符毫捣;?
Ctrl+k:刪除光標(biāo)所在處至行尾的所有字符;?
Ctrl+l:清屏帝际,相當(dāng)于clear
bash的特性之四:命令補(bǔ)全和路徑補(bǔ)全
1.命令查找和補(bǔ)全機(jī)制:?
(1) 查找內(nèi)部命令蔓同;?
(2) 根據(jù)PATH環(huán)境變量中設(shè)定的目錄,自左而右逐個搜索目錄下的文件名蹲诀;?
(3) 給定開頭的部分字符串如果能惟一標(biāo)識某命令程序文件斑粱,則直接補(bǔ)全;?
不能惟一標(biāo)識某命令程序文件脯爪,再擊tab鍵一次则北,會給出列表;?
2.路徑補(bǔ)全?
在給定起始路徑下痕慢,以對應(yīng)路徑下的打頭字串逐一匹配起始路徑下每個文件:?
TAB按鍵;?
如果能惟一標(biāo)識尚揣,則直接補(bǔ)全;?
否則掖举,再一次tab快骗,給出列表;?
3.命令行展開?
~:自動展開為用戶的家目錄塔次,或指定的用戶的家目錄方篮;?
{}:花括號展開±海可承載一個以逗號分隔的路徑列表藕溅,并能夠?qū)⑵湔归_為多個路徑;
bash的特性之五:命令行展開:
1)继榆、命令行展開巾表;?
以某些bash能夠解釋的符號來代替命令中的某些參數(shù)汁掠。?
~:展開為用戶的家目錄;?
例:切換至家目錄?
cd ~;pwd?
/root?
{}:可承載一個以逗號分隔的列表攒发,并將其展開為多個路徑调塌;?
例:在/tmp/d目錄下創(chuàng)建f1,f2,f3三個文件?
touch /tmp/d/f{1,2,3}?
bash
bash特性之六:命令的執(zhí)行狀態(tài)結(jié)果:?
1)、bash的基礎(chǔ)特性之狀態(tài)值返回:在bash中使用一個特殊的變量$?來保存上一個命令的執(zhí)行狀態(tài)結(jié)果惠猿。?
0表示成功,?
1-255表示失敗?
例如:?
bash特性之七:變量
變量引用:?
變量替換:把變量引用符號出現(xiàn)的位置替換為其指向的內(nèi)存空間中的數(shù)據(jù)负间;
bash變量種類:
本地變量:作用域為當(dāng)前shell進(jìn)程偶妖;不包括其子進(jìn)程;
環(huán)境變量:使用域為當(dāng)前shell進(jìn)程及其子進(jìn)程政溃;
局部變量:
作用域:生效范圍趾访,也即可引用到的范圍;
本地變量:?
變量賦值:NAME=VALUE
3董虱、請使用命令行展開功能來完成以下練習(xí):
? (1)扼鞋、創(chuàng)建/tmp目錄下的:a_c, a_d, b_c, b_d
mkdir -pv /tmp/{a_,b_}{c,d}
? (2)、創(chuàng)建/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
mkdir -p /tmp/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}
4愤诱、文件的元數(shù)據(jù)信息有哪些云头,分別表示什么含義,如何查看淫半?如何修改文件的時間戳信息溃槐。
文件的數(shù)據(jù)分兩種:一種元數(shù)據(jù),既屬性數(shù)據(jù)科吭;一種就是數(shù)據(jù)本身昏滴;可使用stat命令查看文件的元數(shù)據(jù).
如stat A?
文件:A
大小:2 byte 塊:8? ? IO 塊:4096 普通文件
設(shè)備:fd00h/64768d Inode:787 硬鏈接:1
權(quán)限:(7644/-rwSr-Sr_T) Uid:( 0/ root) Gid:( 0/ root)
環(huán)境:unconfined_u:object_r:etc_runtime_t:s0
最近訪問:2018-08-15 14:28:54.150787278 +0800
最近更改:2018-08-15 14:36:03.658777613 +0800
最近改動:2018-08-15 14:36:03.658777613?+0800
創(chuàng)建時間:-
其中:
file:文件名对人;
size:文件大小(Byte)
block:文件占了多少個數(shù)據(jù)塊
IO Block:文件所占數(shù)據(jù)塊的塊大小
Device:硬件谣殊,既說明該文件在硬盤的那個柱面
Inode:節(jié)點號
links:鏈接
Access(第一個):權(quán)限
Uid:該文件所屬的屬主
Gid:該文件所屬的屬組
context:安全上下文
Access(第二個):文件上一次的訪問時間
Modify:文件上一次修改的時間
Change:文件上一次屬性更改的時間
2)修改文件的時間戳信息:
可以使用touch命令更改文件的時間戳:
語法:
touch [OPTION]… FILE…
常用選項:
-c: 指定的文件路徑不存在時不予創(chuàng)建;
-a: 僅修改access time牺弄;
-m:僅修改modify time姻几;
-t:使用指定的日期時間,而非現(xiàn)在的時間
5猖闪、如何定義一個命令的別名鲜棠,如何在命令中引用另一個命令的執(zhí)行結(jié)果?
通過命令 alias定義命令別名培慌,在bash中科院通過$(command) 的方式應(yīng)用命令的執(zhí)行結(jié)果
6豁陆、顯示/var目錄下所有以l開頭,以一個小寫字母結(jié)尾吵护,且中間至少出現(xiàn)一位數(shù)字(可以有其它字符)的文件或目錄盒音。
ls -d /var/l*[0-9]*[a-z]
7表鳍、顯示/etc目錄下,以任意一個數(shù)字開頭祥诽,且以非數(shù)字結(jié)尾的文件或目錄譬圣。
ls -d /etc/[0-9]*[^[:digit:]]
8、顯示/etc目錄下雄坪,以非字母開頭厘熟,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls -d /etc/[^[:alpha:]][[:alpha:]]*
9维哈、在/tmp目錄下創(chuàng)建以tfile開頭绳姨,后跟當(dāng)前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22阔挠。
touch /tmp/tfile_`date +%F-%H-%M-%S`
10飘庄、復(fù)制/etc目錄下所有以p開頭,以非數(shù)字結(jié)尾的文件或目錄到/tmp/mytest1目錄中购撼。
cp -r /etc/p*[^[:digit:]] /tmp/mytest1
11跪削、復(fù)制/etc目錄下所有以.d結(jié)尾的文件或目錄至/tmp/mytest2目錄中。?
cp -r /etc/*.d /tmp/mytest2
12迂求、復(fù)制/etc/目錄下所有以l或m或n開頭碾盐,以.conf結(jié)尾的文件至/tmp/mytest3目錄中。
cp /etc/[l,m,n]*.conf /tmp/mytest3