1、Linux上的文件管理類命令都有哪些,其常用的使用方法及相關示例演示;
1)alias:命令別名;
# alias ;獲取所有可用別名的定義;
# alias NAME=‘COMMAND’:定義別名;
~]# alias hello='ls'
~]# hello /tmp/
19-52-46 1abc a_c b_c
# unalias NAME ;撤銷別名;
~]# unalias hello
2)which:shows the full path of (shell) commands
which [options] programname […]
~]# which ls
alias ls='ls –color=auto'
/usr/bin/ls
不顯示命令別名:
~]# \which ls
/usr/bin/ls
~]# which ls –skip-alias
/usr/bin/ls
3)whereis :locate the binary, source, and manual page files for a command
whereis [options] name…
-b Search only for binaries.
僅搜索二進制程序路徑;
-m Search only for manuals.
僅搜索使用手冊文件路徑;
4)history:命令歷史;
(1)定制history的功能,可通過環境變量實現:
HISTSZIE:shell進程可保留的命令歷史的條數:
[root@localhost ~]# echo $HISTSIZE
1000
HISTFILE:持久保存命令歷史的文件; .bash_history
[root@localhost ~]# echo $HISTFILE
/root/.bash_history
HISTFILESIZE:命令歷史文件的大小;
[root@localhost ~]# echo $HISTFILESIZE
1000
(2)命令用法:
history [-c] [-d 偏移量] [n]
或
history -anrw [文件名]
或
history -ps 參數 [參數…]
-c 刪除所有條目從而清空歷史列表。
-d offset偏移量 從指定位置刪除歷史列表。
-w 將當前歷史寫入到歷史文件中,并追加到歷史列表中
-r 從文件讀取命令歷史至歷史列表中
-w 把歷史列表中的命令追加至歷史文件中
# history NUMBER :顯示最近的NUMBER條命令
(3)調用命令歷史列表中的命令:
!NUM :再一次執行歷史列表中的第NUM條命令;
!! :再一次執行上一條命令;
!STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令;
注意:命令的重復執行有時候需要依賴于冪等性:(可成功執行)
調用上一條命令的最后一個參數:
a)快捷鍵:ESC鍵+.
b)字符串:!$
(4)控制命令歷史記錄的方式;
環境變量:HISTCONTORL
[root@localhost ~]# echo $HISTCONTROL
ignoredups
ignoredups:忽略重復的命令;
ignorespace:忽略以空白字符開頭的命令;
ignoreboth:以上兩者同時生效;
5)文件查看類命令:
(1)more命令:
more FILE
特點:翻屏至文件尾部后自動退出;
(2)less命令:
less FILE
man調用的就是less命令
(3)head命令:
查看文件的前n行;默認10行;
head [options] FILE
-n [NUM]
-[NUM]
(4)tail命令:
查看文件的后n行;默認10行;
tail [options] FILE
-n [NUM]
-[NUM]
-f:查看文件尾部內容結束后不退出,跟隨顯示新增內容;
(5)stat命令:
stat – display file or file system status
stat FILE…
6)touch :change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路徑不存在時,不予創建;
-a:改變訪問時間,access time
-m:改變更改時間,modify time
-t:STAMP
[[CC]YY]MMDDhhmm[.ss]
touch FILE 創建空文件
7)cp:copy
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
(1)單源復制:cp [OPTION]… [-T] SOURCE DEST
如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中;
如果DEST存在:
如果DEST是非目錄文件:則覆蓋目標文件;
如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
(2)多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在:錯誤;
如果DEST存在:
如果DEST是非目錄文件,錯誤;
如果DEST是目錄文件,分別復制每個文件至目標目錄中,并保持原名;
(3)常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強行覆蓋目標文件;
-r,-R:遞歸復制目錄;復制目錄及目錄中文件;
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a: -dR –preserve=all,archive,用于實現歸檔;
–preserv=
mode:權限
owership:屬主和屬組
timestamps:時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
8)mv:move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-i:交互式;
-f:force
9)rm:remove
rm [OPTION]… FILE…
常用選項:
-i:交互式;
-f:force
-r:遞歸刪除目錄,recursive
刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf /*
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示;
1)命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失敗:1-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
[root@localhost etc]# ls dd
ls: 無法訪問dd: 沒有那個文件或目錄
[root@localhost etc]# echo $?
2
[root@localhost etc]# lss
-bash: lss: 未找到命令
[root@localhost etc]# echo $?
127
命令正常執行時,有的還會有命令返回值:
根據命令及其功能不同,結果各不相同;
2)引用命令的執行結果:
$(COMMAND)
或
`COMMAND`
[root@localhost tmp]# mkdir $(date +%H-%M-%S)
[root@localhost tmp]# ll
總用量 4
drwxr-xr-x. 2 root root 6 2月 8 19:52 19-52-46
[root@localhost tmp]# mkdir $(date +%H-%M-%S)
[root@localhost tmp]# ll
總用量 4
drwxr-xr-x. 2 root root 6 2月 8 19:52 19-52-46
drwxr-xr-x. 2 root root 6 2月 8 19:52 19-52-54
3)命令行展開:
~ :自動展開為用戶的家目錄,或指定的用戶的家目錄;
{};可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
1、創建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b 目錄;
3、使用命令行展開功能來完成以下練習;
1)創建/tmp目錄下:a_c,a_d,b_c,b_d
2)創建/tmp/mylinux目錄;
4、文件的元數據信息有哪些,分表表示什么含義,如何查看?如何修改文件的時間戳信息。
1)任何文件系統中的數據分為數據和元數據。數據是指普通文件中的實際數據,而元
數據指用來描述一個文件的特征的系統數據,諸如訪問權限、文件擁有者以及文件數據塊的分布信息(inode…)等等。在集群文件系統中,分布信息包括文件在磁盤上的位置以及磁盤在集群中的位置。用戶需要操作一個文件必須首先得到它的元數據,才能定位到文件的位置并且得到文件的內容或相關屬性。
2)stat:display file or file system status
stat FILE…
3)時間戳:
access time(最近訪問)
modify time(最近更改)
change time(最近改動)
4)touch:change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路徑不存在時,不予創建;
-a:改變訪問時間,access time
-m:改變更改時間,modify time
-t:STAMP
[[CC]YY]MMDDhhmm[.ss]
(1)更改訪問時間(access time):
(2)更改更改時間(modify time)
(3)使用[[CC]YY]MMDDhhmm[.ss]格式更改成確切的時間:
(4)也可以使用-d,改變日期;
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
1)定義命令別名:
2)重定向:
(1)> :覆蓋輸出
>>:追加輸出
(2)錯誤輸出流重定向:2> ; 2>>
(3)合并正常和錯誤輸出流:
1)&> ; &>>
(4)合并輸出:
(5)命令的引用:
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一個數字(可以有其他字符)的文件或目錄。
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄。
9、在/tmp目錄下創建以tfile開頭,后跟當前日子和時間的文件。
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
12、復制/etc目錄中所有以1或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
原創文章,作者:徐 琦,如若轉載,請注明出處:http://www.www58058.com/68085
非常的詳細和認真,加油,再接再勵。