1、Linux上文件/目錄相關命令有哪些?
-
1)目錄管理類命令:mkdir、rmdir
-
(1)mkdir:make directorise 創建文件夾
使用格式: mkdir [OPTION]... DIRECTORY... 常用選項: -p:自動按需創建父目錄 -v、verbose:顯示詳細過程 -m MODE:創建目錄時直接給定權限,否則即為umask配置的默認權限;
-
(2)rmdir:remove empty directorise 刪除空目錄
使用格式: rmdir [OPTION]... [DIRECTORY]... 常用選項: -p:刪除某個目錄后,如果其上一級目錄為空,則一并刪除; -v:顯示操作過程; blob.png 注:因當前目錄不是空目錄,所以操作.(當前目錄)時提示失敗。
-
2)文件查看類命令:cat、tac、head、tail、more、less
-
(1)分屏查看命令:more與less
使用格式:more|less FILE 注:more命令翻屏至文件尾部后自動退出
-
(2)head命令:查看文件的前n行,默認為10行
使用格式:head [OPTIONS] FILE
常用選項: -n NUM:NUM表示要查看的行數; -NUM:NUM表示要查看的行數;
-
(3)tail命令:查看文件的后n行,默認為10行
使用格式:tail [OPTIONS] FILE
常用選項: -n NUM:NUM表示要查看的行數; -NUM:NUM表示要查看的行數;
-
(4)cat與tac
使用格式:cat|tac FILE
-
3)文件管理工具:cp、mv、rm
-
(1)cp命令:復制文件或目錄
常用選項: -i,--interactive:交互式復制,即覆蓋前提示用戶確認; -f,--force:強制覆蓋目標文件; -R,-r,-recursive:遞歸復制目錄; -d:復制符號鏈接文件本身,并不復制其指向的源文件; -a:-dR --preserve=all,archive,用于實現歸檔 -preserv= mode 權限 owership 屬主與屬組 timestamps 時間戳 context 安全標簽 xattr 擴展屬性 link 符號鏈接 all 上述所有屬性 實例: 將文件file1復制成文件file2 cp file1 file2 采用交互方式將文件file1復制成文件file2 cp -i file1 file2 將文件file1復制成file2,因為目的文件已經存在,所以指定使用強制復制的模式 cp -f file1 file2 同時將文件file1、file2、file3與目錄dir1復制到dir2 cp -R file1 file2 file3 dir1 dir2
-
(2)mv命令:是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
常用選項: -i:交互式 -f:強制覆蓋 實例1:將文件file1改名為file2,如果file2已經存在,則詢問是否覆蓋 mv -i log1.txt log2.txt 實例2:將文件file1改名為file2,即使file2存在,也是直接覆蓋掉 mv -f log3.txt log2.txt
-
(3)rm命令:為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對于鏈接文件,只是刪除了鏈接,原有文件均保持不變。
rm [OPTION]... FILE... 常規選項: -i:交互式執行 -f:強制執行,不提示任何信息 -r:遞歸執行 刪除目錄:rm -rf /PATH/TO/DIR 危險操作:rm -rf / 、rm -rf /* 建議不用的不文件不要直接刪除,可移動至某個專用的目錄(模擬回收站)
2、bash的工作特性值命令執行狀態返回值和命令行展開;
-
通過 $? 獲取上一次命令執行的結果,0表示成功,非0表示失敗。
-
命令行展開
-
花括號展開:{ }
在非引號內的內容,如果用花括號包括,而且里面用逗號分隔(至少包含一個逗號,可以是空內容),這樣花括號里的內容會被展開成用空格分開的一個列表,花括號前后可以緊隨前綴和后綴
如:
echo {a,b,c} echo hello,{world,pig}
-
波浪號展開:~
從波浪號~到第一個未被引號包含的斜杠/(如果沒有斜杠,則全部算上),作為波浪號前綴。 在波浪號后面的字符串作為一個可能的登錄名:如果為空,被展開成該用戶的HOME變量,如果HOME變量未設置,則用用戶執行shell的主目錄替換。如果不為空,則按照該登錄名的主目錄替換。
如:
echo ~ # 顯示$HOME內容 echo ~root # 顯示root用戶主目錄
-
Shell參數和變量展開
用$符號開始,后面接著變量名或者花括號括起來的變量名,如果是花括號內以嘆號開頭,那么就是變量名本身。 如:
echo $PWD # 顯示PWD對應的值 echo ${PWD} # 顯示PWD對應的值
3、使用命令行展開功能完成以下練習:
-
(1)創建/tmp目錄下的:a_c,a_d,b_c,b_d
mkdir -pv /tmp/{a,b}_{c,d}
-
(2)創建/tmp/mylinux目錄下的如下目錄:
實現命令: mkdir -pv /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}} 實現效果: [root@localhost ~]# tree /tmp/mylinux/ /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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息?
-
(1)文件的元數據:
任何文件系統中的數據分為數據和元數據。數據是指普通文件中的實際數據,而元數據指用來描述一個文件的特征的系統數據,如訪問權限、文件擁有者、文件數據塊的分布信息(inode...)、文件時間戳信息等。
-
(2)查看文件的元數據
stat FILE #使用stat命令可以查看文件或目錄的元數據
-
(3)修改文件的時間戳信息:
touch命令:可以用于改變access time和modity time touch [OPTIONS]... FILE... -c:指定文件,當文件不存在時不予創建 -a:僅改變access time -m:僅改變modify time -t STAMP: [[CC]YY]MMDDhhmm[.ss]
5、如果定義命令的別名,如何在命令中引用另一個命令的執行結果?
-
(1)如何定義命令的別名:
alise NAME='COMMAND' 注意:此方法僅對當前shell進程有效
-
(2)命令中引用另一個命令的執行結果:
使用`COMMAND` 如: ls -l `find /etc -name "pa*"`
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可有其它字符)的文件或目錄;
ls /var/ | grep "^l.*[0-9].*[[:lower:]]$"
7、顯示/etc目錄下,以任意數字開頭,且以非數字結尾的文件或目錄;
ls /etc/ | grep "^[0-9].*[^0-9]$"
8、顯示/etc目錄下,以非字母開頭,后面跟一個字母以及其它任意長度任意字符的目錄或文件;
ls /etc/ | grep "^[^[:alpha:]][[:alpha:]].*"
9、在/tmp/目錄下創建以tfile開頭,后面跟上當前日期和時間的文件,文件名如:tfile-2016-05-27-09-32-22;
mkdir /tmp/tfile-$(date "+%Y-%m-%d-%H-%M-%S")
10、復制/etc目錄下所有以p開頭、以非數字結尾的文件或目錄至/tmp/mytest1目錄中;
cp -r /etc/p*[^0-9] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中;
cp -r /etc/*\.d /tmp/mytest2/
12、復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中;
cp -r /etc/[lmn].\.conf /tmp/mytest3/
原創文章,作者:N22-江西-H隨風,如若轉載,請注明出處:http://www.www58058.com/42475
以N開頭或者以N結尾,使用行首或行末牟定來實現。答題比較認真,繼續保持。